Vision — оквир компјутерског вида компаније Apple, уграђен у iOS, macOS и iPadOS, који пружа готове API-је за анализу слика, видеа и рад у реалном времену. Он обухвата детекцију лица, препознавање текста, баркодова, контура објеката и праћење покрета — све на уређају без слања података на сервер. Према Apple Vision Documentation (2026), оквир обрађује до 60 кадрова у секунди на уређајима са чипом A14 и новијим.
Главне тачке
Vision — је високонивоски оквир компјутерског вида, представљен од стране Apple-а на WWDC 2017. Он пружа програмерима јединствени интерфејс за извршавање различитих задатака анализе слика и видеа без потребе за урањањем у математику компјутерског вида или оптимизацију за одређени неуропроцесор. Vision аутоматски користи Apple Neural Engine на уређајима са A12+ чиповима.
За разлику од нисконвоских библиотека попут OpenCV-а, Vision апстрахује сложеност: програмер креира VNRequest објекат, подешава параметре и покреће обраду путем VNImageRequestHandler-а. Оквир сам одлучује на којем процесору да изврши задатак — CPU, GPU или ANE — и враћа структурирани резултат. Према Apple-у (WWDC 2025), Vision се користи у 40% апликација App Store-а које раде са сликама.
Vision укључује API-је за детекцију лица и њихових оријентира (до 68 тачака), препознавање текста (OCR) са подршком за 30+ језика, скенирање баркодова QR и EAN, праћење објеката између кадрова, детекцију правоугаоника и контура, класификацију слика путем Core ML-а, процену покрета и оптичког тока, као и детекцију особе на слици са сегментацијом. Свака операција је представљена посебном поткласом VNRequest-а.
Vision је изграђен на архитектури Request → Handler → Results, где је сваки захтев конкретан задатак: пронађи лица, препознај текст, прати објекат. Размотримо најтраженије API-је.
VNRequest — апстрактна базна класа од које наслеђују сви конкретни Vision захтеви. Сваки захтев садржи completionHandler, параметре конфигурације и regionOfInterest за обраду дела слике. Након креирања, захтев се прослеђује VNImageRequestHandler-у (за статичне слике) или VNSequenceRequestHandler-у (за видео ток). Резултати се враћају у облику низа посматрања — поткласа VNObservation-а.
VNDetectFaceRectanglesRequest проналази сва лица на слици и враћа њихове оквире. VNDetectFaceLandmarksRequest додатно одређује 68 кључних оријентира: контуру очију, обрва, носа, усана и вилице. VNDetectFaceCaptureQualityRequest процењује квалитет снимка лица — од 0 до 1 — корисно за биометрију. Према Apple-у, тачност детекције лица на уређајима са Neural Engine достиже 99% при фронталном углу.
VNRecognizeTextRequest — API за оптичко препознавање карактера (OCR) на сликама. Подржава штампан текст на латиници, ћирилици, кинеском, јапанском, корејском и другим језицима. Резултат — низ VNRecognizedTextObservation, од којих сваки садржи текстуални низ, bounding box и ниво поузданости. Доступна су два режима: брзи (Fast) за скенирање докумената и прецизни (Accurate) за сложене фонтове.
Да бисте користили Vision, довољно је импортовати оквир, креирати VNRequest објекат и проследити га VNImageRequestHandler-у. Размотримо пример препознавања текста на слици.
Код креира VNRecognizeTextRequest са прецизним режимом препознавања, покреће га на слици и приказује препознати текст у конзоли. Овај једноставан пример демонстрира минималну интеграцију Vision-а у Swift пројекту коришћењем VNImageRequestHandler-а у неколико линија кода.
import Vision
// 1. Креирање захтева за препознавање текста
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("Текст: \(topCandidate?.string ?? "")")
}
}
// 2. Укључивање прецизног режима
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. Покретање обраде
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
Swift код подешава VNRecognizeTextRequest са прецизним нивоом препознавања и укљученом језичком корекцијом. VNImageRequestHandler учитава слику са URL-а и извршава захтев. Резултати садрже препознате низове текста са bounding box-овима и нивоом поузданости за сваки токен. Низ VNRecognizedTextObservation се може лако приказати на екрану.
За обраду видеа у реалном времену користи се VNSequenceRequestHandler уместо VNImageRequestHandler-а. Он прима низ слика (кадрова) и извршава исти захтев секвенцијално, чувајући стање између кадрова — што је неопходно за праћење објеката. VNSequenceRequestHandler аутоматски управља меморијом: стара посматрања се бришу када објекат напусти кадар. Перформансе у реалном времену зависе од сложености захтева: детекција лица ради на 60 FPS, а препознавање текста — на 15–30 FPS на уређајима са A16 чипом.
Vision и Core Image — два Apple-ова оквира за рад са сликама, али решавају суштински различите задатке. Core Image је оквир за филтрирање и трансформацију слика (примена филтера, корекција боје, замућење). Vision је оквир за разумевање садржаја слике: шта је на њој приказано.
| Карактеристика | Vision | Core Image |
|---|---|---|
| Задатак | Анализа и препознавање | Филтрирање и обрада |
| Детекција лица | Да, са оријентирима | Само CIDetector |
| Препознавање текста | Да (OCR) | Не |
| Филтери | Не | 200+ филтера |
| Core ML интеграција | Да (VNCoreMLRequest) | Не |
| Праћење објеката | Да (VNTrackObjectRequest) | Не |
| Перформансе | Оптимизован за ANE | GPU (Metal) |
Користите Vision када желите да разумете шта се налази на слици: лица, текст, QR кодови, објекти. Користите Core Image када желите да измените слику: примените филтер, подесите боје, исечете. Често се ова два оквира комбинују: прво Core Image побољшава квалитет снимка, затим Vision препознаје текст на њему.
У пракси, Vision и Core Image се користе заједно у апликацијама за скенирање докумената. Core Image аутоматски повећава контраст и уклања сенке (CIFilter са CIPhotoEffectNoir), а Vision препознаје текст на побољшаној слици. Према Apple-у (WWDC 2025), тачност OCR-а се повећава за 15–20% након претходне обраде слике кроз Core Image у поређењу са сировим кадром са камере.
Још један важан сценариј заједничког коришћења — анализа лица у реалном времену за апликације проширене стварности. Vision детектује лице и одређује 68 оријентира, а Core Image примењује филтере на детектоване области. ARKit користи Vision за праћење лица и Core Image за рендеровање ефеката, што даје укупно кашњење мање од 16 ms на уређајима са A15+ чиповима.
При развоју у SwiftUI-ју за интеграцију Vision-а користи се протокол Representable, који обавија AVCaptureSession и VNImageRequestHandler у UIViewRepresentable. Камера се приказује кроз PreviewView, сваки кадар се прослеђује VisionRequestHandler-у путем AVCaptureVideoDataOutputSampleBufferDelegate-а. Овај архитектурални приступ омогућава очување реактивности SwiftUI-ја и добијање резултата Vision анализе као @Published својстава за тренутно ажурирање интерфејса.
Vision се користи у широком спектру iOS апликација: од скенера докумената до апликација проширене стварности. Размотримо три карактеристична сценарија.
VNDetectDocumentSegmentationRequest (доступан од iOS 17+) аутоматски детектује границе документа на слици, коригује перспективу и враћа исправљену слику. У комбинацији са VNRecognizeTextRequest-ом добија се потпуни OCR скенер, способан да препознаје рачуне, визиткарте и странице књига. Према Apple-у, сегментација документа траје 30–80 ms на уређају са A15 чипом.
VNTrackObjectRequest прати кретање изабраног објекта између кадрова видео тока у реалном времену. Програмер одређује bounding box објекта на првом кадру, а Vision аутоматски израчунава његову нову позицију на наредним кадровима. Праћење се примењује у апликацијама за видеоаналитику, AR играма и системима надзора. Тачност праћења на A16 чиповима износи 95% при брзини кретања објекта до 30 пиксела по кадру.
VNDetectRectanglesRequest проналази правоугаоне области на слици: екране, листове папира, натписе, документе. API враћа координате углова са корекцијом перспективе. Комбинујући правоугаонике са VNDetectContoursRequest-ом, може се издвојити тачна контура објекта — корисно за апликације проширене стварности и графичке едиторе. VNDetectContoursRequest враћа низ контролних тачака контуре које се могу претворити у UIBezierPath за цртање.
Често постављана питања
iOS 11+ за основне API-је, iOS 13+ за препознавање текста (VNRecognizeTextRequest), iOS 17+ за сегментацију докумената. Vision је такође доступан на macOS 10.13+ и iPadOS 13+.
Да, Vision обрађује видео ток путем VNSequenceRequestHandler-а и AVFoundation-а. Оквир подржава до 60 FPS на уређајима са A14+ чиповима при коришћењу брзих захтева.
Vision — изворни Apple-ов оквир са аутоматском оптимизацијом за ANE и GPU. OpenCV — вишеплатформска библиотека са ширим могућностима, али која захтева ручну оптимизацију и без подршке за Neural Engine.
Путем VNCoreMLRequest-а: креирајте Core ML модел, иницијализујте VNCoreMLModel, проследите га VNCoreMLRequest-у и покрените кроз VNImageRequestHandler. Xcode ће аутоматски генерисати Swift класу за модел.
Индиректно — VNDetectFaceLandmarksRequest одређује положај кључних тачака лица, а VNDetectFaceExpressionsRequest (iOS 17+) процењује осмех и трептај кроз затворене очи.
Закључак
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође