Vision: ce este, framework de viziune computerizată și funcționarea pe iOS

Autor: IT Sectr Publicat: 2026-03-26 Timp de citire: 8 min

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 — framework Apple pentru viziune computerizată pe dispozitiv cu API-uri pentru detectarea fețelor, textului și obiectelor
  • VNRequest — clasa de bază pentru toate operațiile: detectare, clasificare, urmărire și recunoaștere
  • Recunoașterea textului suportă latină, chirilică, chineză și peste 30 de limbi
  • Detectarea fețelor determină până la 68 de puncte cheie de reper cu evaluarea emoțiilor și rotația capului
  • Integrarea cu Core ML permite rularea modelelor personalizate prin VNCoreMLRequest

Ce este Vision?

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.

Capabilități principale

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.

API-uri cheie Vision

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 — baza tuturor operațiilor

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.

Detectarea fețelor și contururilor

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.

Recunoașterea textului

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.

  • VNDetectFaceRectanglesRequest — căutarea fețelor cu returnarea cadrelor
  • VNDetectFaceLandmarksRequest — 68 de puncte cheie ale feței
  • VNRecognizeTextRequest — OCR cu suport pentru 30+ limbi
  • VNDetectBarcodesRequest — scanare QR, EAN, PDF417
  • VNCoreMLRequest — rularea modelelor Core ML personalizate

Integrarea Vision în iOS

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.

Exemplu de cod în Swift

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.

swift
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 vs Core Image

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ăVisionCore Image
SarcinăAnaliză și recunoaștereFiltrare și procesare
Detectarea fețelorDa, cu puncte de reperDoar CIDetector
Recunoașterea textuluiDa (OCR)Nu
FiltreNu200+ filtre
Integrare Core MLDa (VNCoreMLRequest)Nu
Urmărirea obiectelorDa (VNTrackObjectRequest)Nu
PerformanțăOptimizat pentru ANEGPU (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.

Exemple de utilizare Vision

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.

Scanarea documentelor

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.

Urmărirea obiectelor în video

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.

Detectarea contururilor și dreptunghiurilor

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

De la ce versiuni iOS este disponibil Vision?

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+.

Poate Vision să lucreze cu video în timp real?

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.

Cu ce se deosebește Vision de OpenCV?

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.

Cum se adaugă un model ML personalizat în Vision?

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.

Suportă Vision recunoașterea emoțiilor?

Indirect — VNDetectFaceLandmarksRequest determină poziția punctelor cheie ale feței, iar VNDetectFaceExpressionsRequest (iOS 17+) evaluează zâmbetul și clipitul prin ochii închiși.

Concluzii

  • Vision — framework Apple pentru viziune computerizată pe dispozitiv cu arhitectură unificată VNRequest → VNHandler → VNObservation
  • Detectarea fețelor determină până la 68 de puncte cheie de reper cu evaluarea calității și rotația capului
  • Recunoașterea textului (OCR) suportă 30+ limbi în două moduri: rapid și precis
  • Scanarea codurilor de bare funcționează cu QR, EAN-13, Code 128, PDF417 și Aztec
  • Integrarea cu Core ML prin VNCoreMLRequest permite rularea modelelor personalizate
  • Urmărirea obiectelor între cadrele fluxului video funcționează în timp real până la 60 FPS
  • Vision și Core Image se completează reciproc: recunoaștere + filtrare a imaginilor

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.

Discutați proiectul

Citiți și