Vision — een computer vision framework van Apple, ingebouwd in iOS, macOS en iPadOS, dat kant-en-klare API's biedt voor het analyseren van afbeeldingen, video en realtime gegevens. Het omvat gezichtsdetectie, tekstherkenning, barcodes, objectcontouren en bewegingsregistratie — allemaal op het apparaat zonder gegevens naar een server te sturen. Volgens Apple Vision Documentation (2026) verwerkt het framework tot 60 frames per seconde op apparaten met een A14-chip en nieuwer.
Belangrijkste punten
Vision — is een hoogwaardig computer vision framework, geïntroduceerd door Apple op WWDC 2017. Het biedt ontwikkelaars een uniforme interface voor het uitvoeren van verschillende taken op het gebied van afbeeldings- en videoanalyse zonder zich te hoeven verdiepen in de wiskunde van computer vision of optimalisatie voor een specifieke neuroprocessor. Vision maakt automatisch gebruik van de Apple Neural Engine op apparaten met A12+ chips.
In tegenstelling tot laagwaardige bibliotheken zoals OpenCV, Vision abstraheert de complexiteit: de ontwikkelaar maakt een VNRequest-object aan, configureert parameters en start de verwerking via VNImageRequestHandler. Het framework beslist zelf op welke rekeneenheid de taak wordt uitgevoerd — CPU, GPU of ANE — en retourneert een gestructureerd resultaat. Volgens Apple (WWDC 2025) wordt Vision gebruikt in 40% van de App Store-applicaties die met afbeeldingen werken.
Vision bevat API's voor het detecteren van gezichten en hun oriëntatiepunten (tot 68 punten), tekstherkenning (OCR) met ondersteuning voor 30+ talen, het scannen van QR- en EAN-barcodes, het volgen van objecten tussen frames, het detecteren van rechthoeken en contouren, beeldclassificatie via Core ML, bewegings- en optische stroombeoordeling, en persoonsdetectie in afbeeldingen met segmentatie. Elke bewerking wordt vertegenwoordigd door een aparte subklasse van VNRequest.
Vision is gebouwd op de architectuur Request → Handler → Results, waarbij elke aanvraag een specifieke taak is: vind gezichten, herken tekst, volg een object. Laten we de meest gevraagde API's bekijken.
VNRequest — een abstracte basisklasse waarvan alle specifieke Vision-aanvragen overerven. Elke aanvraag bevat een completionHandler, configuratieparameters en regionOfInterest voor het verwerken van een deel van de afbeelding. Na het maken wordt de aanvraag doorgegeven aan VNImageRequestHandler (voor statische afbeeldingen) of VNSequenceRequestHandler (voor videostreams). Resultaten worden geretourneerd als een reeks observaties — subklassen van VNObservation.
VNDetectFaceRectanglesRequest vindt alle gezichten in een afbeelding en retourneert hun kaders. VNDetectFaceLandmarksRequest bepaalt aanvullend 68 belangrijke oriëntatiepunten: de contouren van ogen, wenkbrauwen, neus, lippen en kaak. VNDetectFaceCaptureQualityRequest beoordeelt de kwaliteit van een gezichtsopname — van 0 tot 1 — nuttig voor biometrie. Volgens Apple bereikt de nauwkeurigheid van gezichtsdetectie op apparaten met Neural Engine 99% bij een frontale hoek.
VNRecognizeTextRequest — API voor optische tekenherkenning (OCR) op afbeeldingen. Ondersteunt gedrukte tekst in Latijns, Cyrillisch, Chinees, Japans, Koreaans en andere talen. Resultaat — een reeks VNRecognizedTextObservation, elk met een tekstreeks, bounding box en betrouwbaarheidsniveau. Twee modi zijn beschikbaar: snel (Fast) voor documentscannen en nauwkeurig (Accurate) voor complexe lettertypen.
Om Vision te gebruiken, volstaat het om het framework te importeren, een VNRequest-object te maken en het door te geven aan VNImageRequestHandler. Laten we een voorbeeld bekijken van tekstherkenning op een afbeelding.
De code maakt een VNRecognizeTextRequest met nauwkeurige herkenningsmodus, voert het uit op de afbeelding en toont de herkende tekst in de console. Dit eenvoudige voorbeeld demonstreert de minimale integratie van Vision in een Swift-project met VNImageRequestHandler in een paar regels code.
import Vision
// 1. Aanmaken van tekstherkenningsverzoek
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("Tekst: \(topCandidate?.string ?? "")")
}
}
// 2. Inschakelen van nauwkeurige modus
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. Starten van verwerking
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
De Swift-code configureert VNRecognizeTextRequest met nauwkeurig herkenningsniveau en ingeschakelde taalcorrectie. VNImageRequestHandler laadt de afbeelding van een URL en voert de aanvraag uit. De resultaten bevatten herkende tekstreeksen met bounding boxes en betrouwbaarheidsniveau voor elke token. De reeks VNRecognizedTextObservation kan gemakkelijk op het scherm worden weergegeven.
Voor realtime videoverwerking wordt VNSequenceRequestHandler gebruikt in plaats van VNImageRequestHandler. Het ontvangt een reeks afbeeldingen (frames) en voert dezelfde aanvraag sequentieel uit, waarbij de status tussen frames behouden blijft — dit is nodig voor object tracking. VNSequenceRequestHandler beheert automatisch het geheugen: oude observaties worden verwijderd wanneer het object het frame verlaat. De realtime prestaties zijn afhankelijk van de complexiteit van de aanvraag: gezichtsdetectie werkt op 60 FPS, tekstherkenning op 15–30 FPS op apparaten met een A16-chip.
Vision en Core Image — twee Apple-frameworks voor het werken met afbeeldingen, maar ze lossen fundamenteel verschillende taken op. Core Image is een framework voor het filteren en transformeren van afbeeldingen (toepassen van filters, kleurcorrectie, vervaging). Vision is een framework voor het begrijpen van de inhoud van een afbeelding: wat erop staat.
| Kenmerk | Vision | Core Image |
|---|---|---|
| Taak | Analyse en herkenning | Filtering en verwerking |
| Gezichtsdetectie | Ja, met oriëntatiepunten | Alleen CIDetector |
| Tekstherkenning | Ja (OCR) | Nee |
| Filters | Nee | 200+ filters |
| Core ML-integratie | Ja (VNCoreMLRequest) | Nee |
| Object tracking | Ja (VNTrackObjectRequest) | Nee |
| Prestaties | Geoptimaliseerd voor ANE | GPU (Metal) |
Gebruik Vision wanneer u wilt begrijpen wat er op een afbeelding staat: gezichten, tekst, QR-codes, objecten. Gebruik Core Image wanneer u een afbeelding wilt wijzigen: een filter toepassen, kleuren aanpassen, bijsnijden. Vaak worden deze twee frameworks gecombineerd: eerst verbetert Core Image de beeldkwaliteit, vervolgens herkent Vision de tekst erop.
In de praktijk worden Vision en Core Image samen gebruikt in documentscanapplicaties. Core Image verhoogt automatisch het contrast en verwijdert schaduwen (CIFilter met CIPhotoEffectNoir), en Vision herkent tekst op de verbeterde afbeelding. Volgens Apple (WWDC 2025) neemt de OCR-nauwkeurigheid met 15–20% toe na voorverwerking van de afbeelding door Core Image in vergelijking met een ruw camerabeeld.
Een ander belangrijk scenario voor gezamenlijk gebruik — realtime gezichtsanalyse voor augmented reality-applicaties. Vision detecteert het gezicht en bepaalt 68 oriëntatiepunten, en Core Image past filters toe op de gedetecteerde gebieden. ARKit gebruikt Vision voor gezichtstracking en Core Image voor het renderen van effecten, wat een totale vertraging van minder dan 16 ms oplevert op apparaten met A15+ chips.
Bij ontwikkeling in SwiftUI voor Vision-integratie wordt het Representable-protocol gebruikt, dat AVCaptureSession en VNImageRequestHandler in UIViewRepresentable verpakt. De camera wordt weergegeven via PreviewView, elk frame wordt doorgegeven aan VisionRequestHandler via AVCaptureVideoDataOutputSampleBufferDelegate. Deze architecturale benadering behoudt de reactiviteit van SwiftUI en levert Vision-analyresultaten op als @Published-eigenschappen voor onmiddellijke interface-updates.
Vision wordt gebruikt in een breed scala aan iOS-applicaties: van documentscanners tot augmented reality-applicaties. Laten we drie karakteristieke scenario's bekijken.
VNDetectDocumentSegmentationRequest (beschikbaar vanaf iOS 17+) detecteert automatisch de grenzen van een document in een afbeelding, corrigeert het perspectief en retourneert een rechtgetrokken afbeelding. In combinatie met VNRecognizeTextRequest ontstaat een volledige OCR-scanner die facturen, visitekaartjes en boekpagina's kan herkennen. Volgens Apple duurt documentsegmentatie 30–80 ms op een apparaat met een A15-chip.
VNTrackObjectRequest volgt de verplaatsing van een geselecteerd object tussen frames van een videostream in realtime. De ontwikkelaar specificeert de bounding box van het object op het eerste frame en Vision berekent automatisch de nieuwe positie op volgende frames. Tracking wordt toegepast in videoanalyse-applicaties, AR-games en bewakingssystemen. De trackingnauwkeurigheid op A16-chips is 95% bij een bewegingssnelheid van het object tot 30 pixels per frame.
VNDetectRectanglesRequest vindt rechthoekige gebieden in een afbeelding: schermen, vellen papier, borden, documenten. De API retourneert hoekcoördinaten met perspectiefcorrectie. Door rechthoeken te combineren met VNDetectContoursRequest kan de exacte contour van een object worden geëxtraheerd — nuttig voor augmented reality-applicaties en grafische editors. VNDetectContoursRequest retourneert een reeks controlepunten van de contour die kunnen worden omgezet in UIBezierPath om te tekenen.
Veelgestelde vragen
iOS 11+ voor basis-API's, iOS 13+ voor tekstherkenning (VNRecognizeTextRequest), iOS 17+ voor documentsegmentatie. Vision is ook beschikbaar op macOS 10.13+ en iPadOS 13+.
Ja, Vision verwerkt videostreams via VNSequenceRequestHandler en AVFoundation. Het framework ondersteunt tot 60 FPS op apparaten met A14+ chips bij gebruik van snelle aanvragen.
Vision — native Apple-framework met automatische optimalisatie voor ANE en GPU. OpenCV — een cross-platform bibliotheek met bredere mogelijkheden, maar vereist handmatige optimalisatie en heeft geen ondersteuning voor Neural Engine.
Via VNCoreMLRequest: maak een Core ML-model, initialiseer VNCoreMLModel, geef het door aan VNCoreMLRequest en voer het uit via VNImageRequestHandler. Xcode genereert automatisch een Swift-klasse voor het model.
Indirect — VNDetectFaceLandmarksRequest bepaalt de positie van belangrijke gezichtspunten, en VNDetectFaceExpressionsRequest (iOS 17+) beoordeelt glimlachen en knipogen via gesloten ogen.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook