Vision — framework de viziune computerizată de la Apple, încorporat în iOS, macOS și iPadOS, care oferă API-uri gata făcute pentru analiza imaginilor, video și timp real. Acesta acoperă detectarea fețelor, recunoașterea textului, codurilor de bare, contururilor obiectelor și urmărirea mișcării — totul pe dispozitiv fără a trimite date la server. Conform Apple Vision Documentation (2026), framework-ul procesează până la 60 de cadre pe secundă pe dispozitive cu cip A14 și mai noi.
Principalele puncte
Vision — este un framework de nivel înalt de viziune computerizată, prezentat de Apple la WWDC 2017. Acesta oferă dezvoltatorilor o interfață unificată pentru efectuarea diverselor sarcini de analiză a imaginilor și video fără a fi nevoie să se adâncească în matematica viziunii computerizate sau optimizarea pentru un neuroprocesor specific. Vision utilizează automat Apple Neural Engine pe dispozitive cu cipuri A12+.
Spre deosebire de bibliotecile de nivel scăzut precum OpenCV, Vision abstractizează complexitatea: dezvoltatorul creează un obiect VNRequest, configurează parametrii și lansează procesarea prin VNImageRequestHandler. Framework-ul decide singur pe care unitate de calcul să execute sarcina — CPU, GPU sau ANE — și returnează un rezultat structurat. Conform Apple (WWDC 2025), Vision este utilizat în 40% din aplicațiile App Store care lucrează cu imagini.
Vision include API-uri pentru detectarea fețelor și a punctelor lor de reper (până la 68 de puncte), recunoașterea textului (OCR) cu suport pentru 30+ limbi, scanarea codurilor de bare QR și EAN, urmărirea obiectelor între cadre, detectarea dreptunghiurilor și contururilor, clasificarea imaginilor prin Core ML, evaluarea mișcării și fluxului optic, precum și detectarea persoanei în imagine cu segmentare. Fiecare operație este reprezentată de o subclasă separată a VNRequest.
Vision este construit pe arhitectura Request → Handler → Results, unde fiecare cerere este o sarcină specifică: găsește fețe, recunoaște text, urmărește un obiect. Să analizăm cele mai căutate API-uri.
VNRequest — o clasă de bază abstractă de care moștenesc toate cererile specifice Vision. Fiecare cerere conține completionHandler, parametri de configurare și regionOfInterest pentru procesarea unei părți a imaginii. După crearea cererii, aceasta este transmisă către VNImageRequestHandler (pentru imagini statice) sau VNSequenceRequestHandler (pentru flux video). Rezultatele sunt returnate sub forma unui tablou de observații — subclase ale VNObservation.
VNDetectFaceRectanglesRequest găsește toate fețele din imagine și returnează cadrele lor. VNDetectFaceLandmarksRequest determină suplimentar 68 de puncte cheie de reper: conturul ochilor, sprâncenelor, nasului, buzelor și maxilarului. VNDetectFaceCaptureQualityRequest evaluează calitatea imaginii feței — de la 0 la 1 — util pentru biometrie. Conform Apple, acuratețea detectării fețelor pe dispozitive cu Neural Engine atinge 99% la unghi frontal.
VNRecognizeTextRequest — API pentru recunoașterea optică a caracterelor (OCR) pe imagini. Suportă text tipărit în latină, chirilică, chineză, japoneză, coreeană și alte limbi. Rezultatul — un tablou de VNRecognizedTextObservation, fiecare conținând un șir de text, bounding box și nivel de încredere. Sunt disponibile două moduri: rapid (Fast) pentru scanarea documentelor și precis (Accurate) pentru fonturi complexe.
Pentru a utiliza Vision, este suficient să importați framework-ul, să creați un obiect VNRequest și să îl transmiteți la VNImageRequestHandler. Să analizăm un exemplu de recunoaștere a textului pe o imagine.
Codul creează un VNRecognizeTextRequest cu modul precis de recunoaștere, îl rulează pe imagine și afișează textul recunoscut în consolă. Acest exemplu simplu demonstrează integrarea minimă a Vision într-un proiect Swift folosind VNImageRequestHandler în câteva linii de cod.
import Vision
// 1. Crearea cererii de recunoaștere a textului
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("Text: \(topCandidate?.string ?? "")")
}
}
// 2. Activarea modului precis
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. Pornirea procesării
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
Codul Swift configurează VNRecognizeTextRequest cu nivel precis de recunoaștere și corecție lingvistică activată. VNImageRequestHandler încarcă imaginea de la URL și execută cererea. Rezultatele conțin șiruri de text recunoscute cu bounding box-uri și nivel de încredere pentru fiecare token. Tabloul VNRecognizedTextObservation poate fi afișat convenabil pe ecran.
Pentru procesarea video în timp real, se utilizează VNSequenceRequestHandler în loc de VNImageRequestHandler. Acesta primește un tablou de imagini (cadre) și execută aceeași cerere secvențial, păstrând starea între cadre — necesar pentru urmărirea obiectelor. VNSequenceRequestHandler gestionează automat memoria: observațiile vechi sunt șterse când obiectul părăsește cadrul. Performanța în timp real depinde de complexitatea cererii: detectarea fețelor funcționează la 60 FPS, iar recunoașterea textului — la 15–30 FPS pe dispozitive cu cip A16.
Vision și Core Image — două framework-uri Apple pentru lucrul cu imagini, dar rezolvă sarcini fundamental diferite. Core Image este un framework pentru filtrarea și transformarea imaginilor (aplicarea filtrelor, corecția culorii, estomparea). Vision este un framework pentru înțelegerea conținutului imaginii: ce este reprezentat în ea.
| Caracteristică | Vision | Core Image |
|---|---|---|
| Sarcină | Analiză și recunoaștere | Filtrare și procesare |
| Detectarea fețelor | Da, cu puncte de reper | Doar CIDetector |
| Recunoașterea textului | Da (OCR) | Nu |
| Filtre | Nu | 200+ filtre |
| Integrare Core ML | Da (VNCoreMLRequest) | Nu |
| Urmărirea obiectelor | Da (VNTrackObjectRequest) | Nu |
| Performanță | Optimizat pentru ANE | GPU (Metal) |
Folosiți Vision când doriți să înțelegeți ce se află în imagine: fețe, text, coduri QR, obiecte. Folosiți Core Image când doriți să modificați imaginea: aplicați un filtru, ajustați culorile, decupați. Adesea aceste două framework-uri sunt combinate: mai întâi Core Image îmbunătățește calitatea imaginii, apoi Vision recunoaște textul pe ea.
În practică, Vision și Core Image sunt utilizate împreună în aplicațiile de scanare a documentelor. Core Image crește automat contrastul și elimină umbrele (CIFilter cu CIPhotoEffectNoir), iar Vision recunoaște textul pe imaginea îmbunătățită. Conform Apple (WWDC 2025), acuratețea OCR crește cu 15–20% după preprocesarea imaginii prin Core Image comparativ cu cadrul brut de la cameră.
Un alt scenariu important de utilizare comună — analiza fețelor în timp real pentru aplicații de realitate augmentată. Vision detectează fața și determină 68 de puncte de reper, iar Core Image aplică filtre pe zonele detectate. ARKit utilizează Vision pentru urmărirea feței și Core Image pentru randarea efectelor, oferind o latență totală sub 16 ms pe dispozitive cu cipuri A15+.
La dezvoltarea în SwiftUI pentru integrarea Vision se utilizează protocolul Representable, care îmbracă AVCaptureSession și VNImageRequestHandler în UIViewRepresentable. Camera este afișată prin PreviewView, fiecare cadru este transmis la VisionRequestHandler prin AVCaptureVideoDataOutputSampleBufferDelegate. Această abordare arhitecturală permite păstrarea reactivității SwiftUI și obținerea rezultatelor analizei Vision ca proprietăți @Published pentru actualizarea imediată a interfeței.
Vision este utilizat într-o gamă largă de aplicații iOS: de la scanere de documente la aplicații de realitate augmentată. Să analizăm trei scenarii caracteristice.
VNDetectDocumentSegmentationRequest (disponibil din iOS 17+) detectează automat limitele documentului în imagine, corectează perspectiva și returnează o imagine îndreptată. În combinație cu VNRecognizeTextRequest se obține un scaner OCR complet, capabil să recunoască facturi, cărți de vizită și pagini de cărți. Conform Apple, segmentarea documentului durează 30–80 ms pe un dispozitiv cu cip A15.
VNTrackObjectRequest urmărește deplasarea obiectului selectat între cadrele fluxului video în timp real. Dezvoltatorul specifică bounding box-ul obiectului pe primul cadru, iar Vision calculează automat noua sa poziție pe cadrele următoare. Urmărirea este utilizată în aplicații de analiză video, jocuri AR și sisteme de supraveghere. Acuratețea urmăririi pe cipuri A16 este de 95% la viteza de mișcare a obiectului de până la 30 de pixeli pe cadru.
VNDetectRectanglesRequest găsește zone dreptunghiulare în imagine: ecrane, foi de hârtie, panouri, documente. API-ul returnează coordonatele colțurilor cu corecție de perspectivă. Combinând dreptunghiurile cu VNDetectContoursRequest, se poate extrage conturul exact al obiectului — util pentru aplicații de realitate augmentată și editoare grafice. VNDetectContoursRequest returnează un tablou de puncte de control ale conturului care pot fi transformate în UIBezierPath pentru desenare.
Întrebări frecvente
iOS 11+ pentru API-uri de bază, iOS 13+ pentru recunoașterea textului (VNRecognizeTextRequest), iOS 17+ pentru segmentarea documentelor. Vision este disponibil și pe macOS 10.13+ și iPadOS 13+.
Da, Vision procesează fluxul video prin VNSequenceRequestHandler și AVFoundation. Framework-ul suportă până la 60 FPS pe dispozitive cu cipuri A14+ utilizând cereri rapide.
Vision — framework nativ Apple cu optimizare automată pentru ANE și GPU. OpenCV — bibliotecă cross-platform cu capabilități mai largi, dar care necesită optimizare manuală și fără suport pentru Neural Engine.
Prin VNCoreMLRequest: creați un model Core ML, inițializați VNCoreMLModel, transmiteți-l către VNCoreMLRequest și rulați-l prin VNImageRequestHandler. Xcode va genera automat o clasă Swift pentru model.
Indirect — VNDetectFaceLandmarksRequest determină poziția punctelor cheie ale feței, iar VNDetectFaceExpressionsRequest (iOS 17+) evaluează zâmbetul și clipitul prin ochii închiși.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și