Vision — az Apple számítógépes látás keretrendszere, amely iOS, macOS és iPadOS rendszerekbe épül, és kész API-kat nyújt képek, videók és valós idejű adatok elemzéséhez. Lefedi az arcfelismerést, szövegfelismerést, vonalkódokat, objektumkontúrokat és mozgáskövetést — mindezt az eszközön, adatok szerverre küldése nélkül. Az Apple Vision Documentation (2026) szerint a keretrendszer akár 60 képkockát is feldolgoz másodpercenként A14 és újabb chippel rendelkező eszközökön.
Főbb pontok
Vision — egy magas szintű számítógépes látás keretrendszer, amelyet az Apple a WWDC 2017-en mutatott be. Egységes felületet biztosít a fejlesztőknek különböző kép- és videoelemzési feladatok elvégzéséhez anélkül, hogy el kellene mélyülniük a számítógépes látás matematikájában vagy egy adott neuroprocesszorra történő optimalizálásban. A Vision automatikusan használja az Apple Neural Engine-t az A12+ chippel rendelkező eszközökön.
Az olyan alacsony szintű könyvtárakkal ellentétben, mint az OpenCV, a Vision elvonatkoztatja a komplexitást: a fejlesztő létrehoz egy VNRequest objektumot, beállítja a paramétereket és elindítja a feldolgozást a VNImageRequestHandler-en keresztül. A keretrendszer maga dönti el, hogy melyik számítási egységen hajtsa végre a feladatot — CPU, GPU vagy ANE — és strukturált eredményt ad vissza. Az Apple (WWDC 2025) szerint a Vision-t az App Store képekkel dolgozó alkalmazásainak 40%-ában használják.
Vision API-kat tartalmaz arcok és azok tájékozódási pontjainak észleléséhez (akár 68 pontig), szövegfelismeréshez (OCR) 30+ nyelv támogatásával, QR és EAN vonalkódok szkenneléséhez, objektumok követéséhez képkockák között, téglalapok és kontúrok észleléséhez, képek osztályozásához Core ML-en keresztül, mozgás és optikai áramlás becsléséhez, valamint személyek észleléséhez a képen szegmentálással. Minden műveletet a VNRequest egy külön alosztálya képvisel.
Vision a Request → Handler → Results architektúrára épül, ahol minden kérés egy konkrét feladat: arcok keresése, szöveg felismerése, objektum követése. Tekintsük át a legkeresettebb API-kat.
VNRequest — egy absztrakt alaposztály, amelyből az összes konkrét Vision kérés származik. Minden kérés tartalmaz completionHandler-t, konfigurációs paramétereket és regionOfInterest-et a kép egy részének feldolgozásához. A kérés létrehozása után a VNImageRequestHandler (statikus képekhez) vagy a VNSequenceRequestHandler (video streamhez) kapja meg. Az eredmények megfigyelések tömbjeként — a VNObservation alosztályaiként — kerülnek visszaadásra.
VNDetectFaceRectanglesRequest megtalálja az összes arcot a képen, és visszaadja azok kereteit. VNDetectFaceLandmarksRequest ezen felül 68 kulcsfontosságú tájékozódási pontot határoz meg: a szemek, szemöldökök, orr, ajkak és állkapocs kontúrját. VNDetectFaceCaptureQualityRequest értékeli az arckép minőségét 0-tól 1-ig — hasznos a biometriához. Az Apple szerint az arcfelismerés pontossága Neural Engine-nel rendelkező eszközökön eléri a 99%-ot frontális szögben.
VNRecognizeTextRequest — API optikai karakterfelismeréshez (OCR) képeken. Támogatja a nyomtatott szöveget latin, cirill, kínai, japán, koreai és más nyelveken. Eredmény — VNRecognizedTextObservation tömb, amelyek mindegyike tartalmaz egy szövegsort, bounding box-ot és megbízhatósági szintet. Két mód áll rendelkezésre: gyors (Fast) dokumentumok szkenneléséhez és pontos (Accurate) összetett betűtípusokhoz.
A Vision használatához elég importálni a keretrendszert, létrehozni egy VNRequest objektumot és átadni a VNImageRequestHandler-nek. Tekintsünk egy példát a szövegfelismerésre egy képen.
A kód létrehoz egy VNRecognizeTextRequest-et pontos felismerési móddal, futtatja a képen, és kiírja a felismert szöveget a konzolba. Ez az egyszerű példa bemutatja a Vision minimális integrációját egy Swift projektben a VNImageRequestHandler használatával néhány sornyi kódban.
import Vision
// 1. Szövegfelismerési kérés létrehozása
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("Szöveg: \(topCandidate?.string ?? "")")
}
}
// 2. Pontos mód bekapcsolása
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. Feldolgozás elindítása
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
A Swift kód beállítja a VNRecognizeTextRequest-et pontos felismerési szinttel és bekapcsolt nyelvi korrekcióval. A VNImageRequestHandler betölti a képet URL-ről és végrehajtja a kérést. Az eredmények felismert szövegsorokat tartalmaznak bounding box-okkal és megbízhatósági szinttel minden tokenhez. A VNRecognizedTextObservation tömb kényelmesen megjeleníthető a képernyőn.
Valós idejű videofeldolgozáshoz a VNImageRequestHandler helyett VNSequenceRequestHandler-t használunk. Ez képek (képkockák) tömbjét fogadja, és ugyanazt a kérést szekvenciálisan hajtja végre, megtartva az állapotot a képkockák között — ez szükséges az objektumok követéséhez. A VNSequenceRequestHandler automatikusan kezeli a memóriát: a régi megfigyelések törlődnek, amikor az objektum elhagyja a képkockát. A valós idejű teljesítmény a kérés összetettségétől függ: az arcfelismerés 60 FPS-en, a szövegfelismerés pedig 15–30 FPS-en működik A16 chippel rendelkező eszközökön.
Vision és Core Image — két Apple keretrendszer képekkel való munkához, de alapvetően különböző feladatokat oldanak meg. A Core Image egy keretrendszer képek szűréséhez és transzformálásához (szűrők alkalmazása, színkorrekció, elmosás). A Vision egy keretrendszer a kép tartalmának megértéséhez: mi van rajta.
| Jellemző | Vision | Core Image |
|---|---|---|
| Feladat | Elemzés és felismerés | Szűrés és feldolgozás |
| Arcfelismerés | Igen, tájékozódási pontokkal | Csak CIDetector |
| Szövegfelismerés | Igen (OCR) | Nem |
| Szűrők | Nem | 200+ szűrő |
| Core ML integráció | Igen (VNCoreMLRequest) | Nem |
| Objektumkövetés | Igen (VNTrackObjectRequest) | Nem |
| Teljesítmény | ANE-re optimalizált | GPU (Metal) |
Használja a Vision-t, amikor meg akarja érteni, mi van a képen: arcok, szöveg, QR-kódok, objektumok. Használja a Core Image-t, amikor módosítani akarja a képet: szűrő alkalmazása, színek beállítása, vágás. Gyakran ezt a két keretrendszert kombinálják: először a Core Image javítja a kép minőségét, majd a Vision felismeri rajta a szöveget.
A gyakorlatban a Vision és a Core Image együtt használatos dokumentum szkennelő alkalmazásokban. A Core Image automatikusan növeli a kontrasztot és eltávolítja az árnyékokat (CIFilter a CIPhotoEffectNoir segítségével), a Vision pedig felismeri a szöveget a javított képen. Az Apple (WWDC 2025) szerint az OCR pontossága 15–20%-kal nő a kép Core Image-en keresztüli előfeldolgozása után a kamera nyers képkockájához képest.
Egy másik fontos együttes használati forgatókönyv — valós idejű arcelemzés kiterjesztett valóság alkalmazásokhoz. A Vision észleli az arcot és meghatározza a 68 tájékozódási pontot, a Core Image pedig szűrőket alkalmaz az észlelt területekre. Az ARKit a Vision-t használja arc követésére és a Core Image-t az effektusok renderelésére, ami összesen 16 ms alatti késleltetést eredményez az A15+ chippel rendelkező eszközökön.
A SwiftUI fejlesztés során a Vision integrációjához a Representable protokollt használjuk, amely az AVCaptureSession-t és a VNImageRequestHandler-t UIViewRepresentable-be csomagolja. A kamera a PreviewView-n keresztül jelenik meg, minden képkocka az AVCaptureVideoDataOutputSampleBufferDelegate-en keresztül kerül a VisionRequestHandler-be. Ez az architekturális megközelítés megőrzi a SwiftUI reaktivitását, és a Vision elemzés eredményeit @Published tulajdonságokként adja a felület azonnali frissítéséhez.
Vision széles körben használatos iOS alkalmazásokban: a dokumentum szkennelőktől a kiterjesztett valóság alkalmazásokig. Tekintsünk három jellemző forgatókönyvet.
VNDetectDocumentSegmentationRequest (iOS 17+-tól elérhető) automatikusan észleli a dokumentum határait a képen, korrigálja a perspektívát és visszaadja a kiegyenesített képet. VNRecognizeTextRequest-tel kombinálva teljes értékű OCR szkennert kapunk, amely képes számlák, névjegykártyák és könyvoldalak felismerésére. Az Apple szerint a dokumentum szegmentálása 30–80 ms-ot vesz igénybe egy A15 chippel rendelkező eszközön.
VNTrackObjectRequest valós időben követi a kiválasztott objektum mozgását a video stream képkockái között. A fejlesztő megadja az objektum bounding box-át az első képkockán, és a Vision automatikusan kiszámítja annak új pozícióját a következő képkockákon. Követés videoanalitikai alkalmazásokban, AR játékokban és megfigyelőrendszerekben használatos. A követés pontossága A16 chipeken 95% az objektum képkockánkénti 30 pixel sebességéig.
VNDetectRectanglesRequest téglalap alakú területeket talál a képen: képernyőket, papírlapokat, táblákat, dokumentumokat. Az API visszaadja a sarkok koordinátáit perspektíva korrekcióval. A téglalapokat VNDetectContoursRequest-tel kombinálva kinyerhető az objektum pontos kontúrja — hasznos kiterjesztett valóság alkalmazásokhoz és grafikus szerkesztőkhöz. A VNDetectContoursRequest visszaadja a kontúr vezérlőpontjainak tömbjét, amely UIBezierPath-té alakítható rajzoláshoz.
Gyakran ismételt kérdések
iOS 11+ alap API-okhoz, iOS 13+ szövegfelismeréshez (VNRecognizeTextRequest), iOS 17+ dokumentum szegmentáláshoz. A Vision macOS 10.13+ és iPadOS 13+ rendszereken is elérhető.
Igen, a Vision a VNSequenceRequestHandler-en és AVFoundation-on keresztül dolgozza fel a video streamet. A keretrendszer akár 60 FPS-t is támogat az A14+ chippel rendelkező eszközökön gyors kérések használatával.
Vision — natív Apple keretrendszer automatikus optimalizálással ANE-re és GPU-ra. OpenCV — többplatformos könyvtár szélesebb képességekkel, de kézi optimalizálást igényel és nincs Neural Engine támogatása.
VNCoreMLRequest-en keresztül: hozzon létre egy Core ML modellt, inicializálja a VNCoreMLModel-t, adja át a VNCoreMLRequest-nek és futtassa a VNImageRequestHandler-en keresztül. Az Xcode automatikusan generál egy Swift osztályt a modellhez.
Közvetve — a VNDetectFaceLandmarksRequest meghatározza az arc kulcspontjainak helyzetét, a VNDetectFaceExpressionsRequest (iOS 17+) pedig a mosolyt és a pislogást értékeli a becsukott szemeken keresztül.
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is