Vision — framework ng computer vision mula sa Apple, na naka-embed sa iOS, macOS at iPadOS na nagbibigay ng mga handa nang API para sa pagsusuri ng mga imahe, video at real-time. Sinasaklaw nito ang pag-detect ng mukha, pagkilala ng teksto, barcode, contour ng bagay at pagsubaybay ng galaw — lahat sa device nang hindi nagpapadala ng data sa server. Ayon sa Apple Vision Documentation (2026), pinoproseso ng framework ang hanggang 60 frame bawat segundo sa mga device na may A14 chip at mas bago.
Mga Pangunahing Punto
Vision — ay isang high-level na computer vision framework, na ipinakilala ng Apple sa WWDC 2017. Nagbibigay ito sa mga developer ng pinag-isang interface para sa pagsasagawa ng iba't ibang gawain ng pagsusuri ng imahe at video nang hindi kinakailangang sumabak sa matematika ng computer vision o pag-optimize para sa isang partikular na neuroprocessor. Awtomatikong ginagamit ng Vision ang Apple Neural Engine sa mga device na may A12+ chips.
Hindi tulad ng mababang antas ng mga aklatan tulad ng OpenCV, Vision nag-aabstract ng pagiging kumplikado: ang developer ay lumilikha ng VNRequest object, nagko-configure ng mga parameter at naglulunsad ng pagproseso sa pamamagitan ng VNImageRequestHandler. Ang framework mismo ang nagpapasya kung saang computing unit isasagawa ang gawain — CPU, GPU o ANE — at nagbabalik ng nakabalangkas na resulta. Ayon sa Apple (WWDC 2025), ang Vision ay ginagamit sa 40% ng App Store application na nagtatrabaho sa mga imahe.
Vision ay may kasamang API para sa pag-detect ng mga mukha at kanilang mga landmark (hanggang 68 puntos), pagkilala ng teksto (OCR) na may suporta para sa 30+ wika, pag-scan ng QR at EAN barcode, pagsubaybay ng mga bagay sa pagitan ng mga frame, pag-detect ng mga parihaba at contour, klasipikasyon ng imahe sa pamamagitan ng Core ML, pagsusuri ng galaw at optical flow, pati na rin ang pag-detect ng tao sa imahe na may segmentation. Bawat operasyon ay kinakatawan ng isang hiwalay na subclass ng VNRequest.
Vision ay binuo sa arkitekturang Request → Handler → Results, kung saan ang bawat request ay isang tiyak na gawain: maghanap ng mga mukha, kilalanin ang teksto, subaybayan ang bagay. Tingnan natin ang mga pinakahinahangad na API.
VNRequest — isang abstract base class kung saan nagmamana ang lahat ng tiyak na Vision request. Ang bawat request ay naglalaman ng completionHandler, mga parameter ng configuration at regionOfInterest para sa pagproseso ng bahagi ng imahe. Pagkatapos malikha, ang request ay ipinapasa sa VNImageRequestHandler (para sa static na imahe) o VNSequenceRequestHandler (para sa video stream). Ang mga resulta ay ibinabalik bilang isang array ng mga observation — mga subclass ng VNObservation.
VNDetectFaceRectanglesRequest ay hinahanap ang lahat ng mukha sa imahe at ibinabalik ang kanilang mga frame. VNDetectFaceLandmarksRequest ay karagdagang tumutukoy ng 68 key landmark: contour ng mata, kilay, ilong, labi at panga. VNDetectFaceCaptureQualityRequest ay sinusuri ang kalidad ng litrato ng mukha — mula 0 hanggang 1 — kapaki-pakinabang para sa biometrics. Ayon sa Apple, ang katumpakan ng pag-detect ng mukha sa mga device na may Neural Engine ay umaabot sa 99% sa frontal angle.
VNRecognizeTextRequest — API para sa optical character recognition (OCR) sa mga imahe. Sumusuporta sa naka-print na teksto sa Latin, Cyrillic, Chinese, Japanese, Korean at iba pang wika. Resulta — array ng VNRecognizedTextObservation, bawat isa ay naglalaman ng string ng teksto, bounding box at antas ng kumpiyansa. Dalawang mode ang available: mabilis (Fast) para sa pag-scan ng dokumento at tumpak (Accurate) para sa komplikadong font.
Para gamitin ang Vision, sapat na i-import ang framework, lumikha ng VNRequest object at ipasa ito sa VNImageRequestHandler. Tingnan natin ang halimbawa ng pagkilala ng teksto sa isang imahe.
Ang code ay lumilikha ng VNRecognizeTextRequest na may tumpak na mode ng pagkilala, pinapatakbo ito sa imahe at ipinapakita ang nakilalang teksto sa console. Ang simpleng halimbawang ito ay nagpapakita ng minimal na pagsasama ng Vision sa isang Swift project gamit ang VNImageRequestHandler sa ilang linya ng code.
import Vision
// 1. Paggawa ng request para sa pagkilala ng teksto
let request = VNRecognizeTextRequest { request, error in
guard let observations = request.results
as? [VNRecognizedTextObservation]
else { return }
for observation in observations {
let topCandidate = observation
.topCandidates(1)
.first
print("Teksto: \(topCandidate?.string ?? "")")
}
}
// 2. Pag-activate ng tumpak na mode
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. Pagsisimula ng pagproseso
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
Ang Swift code ay nagko-configure ng VNRecognizeTextRequest na may tumpak na antas ng pagkilala at naka-activate na correction ng wika. VNImageRequestHandler ay naglo-load ng imahe mula sa URL at isinasagawa ang request. Ang mga resulta ay naglalaman ng mga nakilalang string ng teksto na may bounding box at antas ng kumpiyansa para sa bawat token. Ang array ng VNRecognizedTextObservation ay maaaring ipakita nang maginhawa sa screen.
Para sa real-time na pagproseso ng video, ginagamit ang VNSequenceRequestHandler sa halip na VNImageRequestHandler. Ito ay tumatanggap ng array ng mga imahe (frame) at isinasagawa ang parehong request nang sunud-sunod, pinapanatili ang estado sa pagitan ng mga frame — ito ay kinakailangan para sa pagsubaybay ng bagay. VNSequenceRequestHandler ay awtomatikong namamahala ng memorya: ang mga lumang observation ay tinatanggal kapag ang bagay ay umalis sa frame. Ang real-time na performance ay depende sa pagiging kumplikado ng request: ang pag-detect ng mukha ay gumagana sa 60 FPS, habang ang pagkilala ng teksto ay 15–30 FPS sa mga device na may A16 chip.
Vision at Core Image — dalawang framework ng Apple para sa pagtatrabaho sa mga imahe, ngunit nilulutas nila ang panimula na magkakaibang mga gawain. Core Image ay isang framework para sa pag-filter at pag-transform ng mga imahe (paglalapat ng mga filter, correction ng kulay, blur). Vision ay isang framework para sa pag-unawa sa nilalaman ng imahe: kung ano ang nasa loob nito.
| Katangian | Vision | Core Image |
|---|---|---|
| Gawain | Pagsusuri at pagkilala | Pag-filter at pagproseso |
| Pag-detect ng mukha | Oo, may mga landmark | CIDetector lang |
| Pagkilala ng teksto | Oo (OCR) | Hindi |
| Mga filter | Hindi | 200+ filter |
| Core ML integrasyon | Oo (VNCoreMLRequest) | Hindi |
| Pagsubaybay ng bagay | Oo (VNTrackObjectRequest) | Hindi |
| Performance | Na-optimize para sa ANE | GPU (Metal) |
Gamitin ang Vision kapag gusto mong maunawaan kung ano ang nasa imahe: mga mukha, teksto, QR code, bagay. Gamitin ang Core Image kapag gusto mong baguhin ang imahe: maglapat ng filter, ayusin ang mga kulay, i-crop. Madalas na pinagsasama ang dalawang framework na ito: una, pinapabuti ng Core Image ang kalidad ng larawan, pagkatapos ay kinikilala ng Vision ang teksto dito.
Sa pagsasagawa, ang Vision at Core Image ay ginagamit nang magkasama sa mga application sa pag-scan ng dokumento. Core Image ay awtomatikong nagpapataas ng contrast at nag-aalis ng mga anino (CIFilter na may CIPhotoEffectNoir), at kinikilala ng Vision ang teksto sa pinabuting imahe. Ayon sa Apple (WWDC 2025), ang katumpakan ng OCR ay tumataas ng 15–20% pagkatapos ng pre-processing ng imahe sa pamamagitan ng Core Image kumpara sa raw frame mula sa camera.
Ang isa pang mahalagang senaryo ng pinagsamang paggamit — real-time na pagsusuri ng mukha para sa augmented reality application. Vision ay dini-detect ang mukha at tinutukoy ang 68 landmark, at Core Image ay naglalapat ng mga filter sa mga nakitang lugar. Ginagamit ng ARKit ang Vision para sa pagsubaybay ng mukha at Core Image para sa rendering ng mga epekto, na nagbibigay ng kabuuang latency na mas mababa sa 16 ms sa mga device na may A15+ chips.
Sa pag-develop sa SwiftUI para sa integrasyon ng Vision, ginagamit ang Representable protocol, na bumabalot ng AVCaptureSession at VNImageRequestHandler sa UIViewRepresentable. Ang camera ay ipinapakita sa pamamagitan ng PreviewView, bawat frame ay ipinapasa sa VisionRequestHandler sa pamamagitan ng AVCaptureVideoDataOutputSampleBufferDelegate. Ang arkitektural na approach na ito ay nagpapanatili ng reaktibidad ng SwiftUI at pagkuha ng mga resulta ng pagsusuri ng Vision bilang @Published properties para sa agarang pag-update ng interface.
Vision ay ginagamit sa malawak na spectrum ng iOS application: mula sa document scanner hanggang sa augmented reality application. Tingnan natin ang tatlong katangiang senaryo.
VNDetectDocumentSegmentationRequest (available mula sa iOS 17+) ay awtomatikong dini-detect ang mga hangganan ng dokumento sa imahe, itinatama ang perspective at ibinabalik ang ituwid na imahe. Sa kombinasyon sa VNRecognizeTextRequest ay nakukuha ang buong OCR scanner na may kakayahang makilala ang mga resibo, business card at pahina ng libro. Ayon sa Apple, ang segmentation ng dokumento ay tumatagal ng 30–80 ms sa device na may A15 chip.
VNTrackObjectRequest ay sumusubaybay sa paggalaw ng napiling bagay sa pagitan ng mga frame ng video stream sa real-time. Tinutukoy ng developer ang bounding box ng bagay sa unang frame, at awtomatikong kinakalkula ng Vision ang bagong posisyon nito sa mga susunod na frame. Pagsubaybay ay ginagamit sa mga video analytics application, AR games at surveillance system. Ang katumpakan ng pagsubaybay sa A16 chips ay 95% sa bilis ng paggalaw ng bagay hanggang 30 pixel bawat frame.
VNDetectRectanglesRequest ay hinahanap ang mga parihaba na lugar sa imahe: mga screen, papel, karatula, dokumento. Ang API ay nagbabalik ng mga coordinate ng sulok na may correction ng perspective. Sa pamamagitan ng pagsasama ng mga parihaba sa VNDetectContoursRequest, ang eksaktong contour ng bagay ay maaaring makuha — kapaki-pakinabang para sa augmented reality application at graphic editor. VNDetectContoursRequest ay nagbabalik ng array ng control point ng contour na maaaring i-convert sa UIBezierPath para sa pagguhit.
Mga Madalas Itanong
iOS 11+ para sa basic na API, iOS 13+ para sa pagkilala ng teksto (VNRecognizeTextRequest), iOS 17+ para sa segmentation ng dokumento. Ang Vision ay available din sa macOS 10.13+ at iPadOS 13+.
Oo, pinoproseso ng Vision ang video stream sa pamamagitan ng VNSequenceRequestHandler at AVFoundation. Ang framework ay sumusuporta ng hanggang 60 FPS sa mga device na may A14+ chips gamit ang mabilis na request.
Vision — native na framework ng Apple na may awtomatikong pag-optimize para sa ANE at GPU. OpenCV — cross-platform library na may mas malawak na kakayahan, ngunit nangangailangan ng manual na pag-optimize at walang suporta para sa Neural Engine.
Sa pamamagitan ng VNCoreMLRequest: gumawa ng Core ML model, i-initialize ang VNCoreMLModel, ipasa ito sa VNCoreMLRequest at patakbuhin sa pamamagitan ng VNImageRequestHandler. Awtomatikong bubuo ang Xcode ng Swift class para sa model.
Hindi direkta — VNDetectFaceLandmarksRequest ay tumutukoy ng posisyon ng key point ng mukha, at VNDetectFaceExpressionsRequest (iOS 17+) ay sinusuri ang ngiti at kindat sa pamamagitan ng nakapikit na mata.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din