Vision: шта је то, оквир компјутерског вида и рад на iOS-у

Аутор: IT Sectr Објављено: 2026-03-26 Време читања: 8 мин

Vision — оквир компјутерског вида компаније Apple, уграђен у iOS, macOS и iPadOS, који пружа готове API-је за анализу слика, видеа и рад у реалном времену. Он обухвата детекцију лица, препознавање текста, баркодова, контура објеката и праћење покрета — све на уређају без слања података на сервер. Према Apple Vision Documentation (2026), оквир обрађује до 60 кадрова у секунди на уређајима са чипом A14 и новијим.

Главне тачке

  • Vision — Apple-ов оквир за компјутерски вид на уређају са API-јима за детекцију лица, текста и објеката
  • VNRequest — базна класа за све операције: детекцију, класификацију, праћење и препознавање
  • Препознавање текста подржава латиницу, ћирилицу, кинески и преко 30 језика
  • Детекција лица одређује до 68 кључних оријентира са проценом емоција и ротацијом главе
  • Интеграција са Core ML омогућава покретање прилагођених модела путем VNCoreMLRequest-а

Шта је Vision?

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

Кључни API-ји Vision-а

Vision је изграђен на архитектури Request → Handler → Results, где је сваки захтев конкретан задатак: пронађи лица, препознај текст, прати објекат. Размотримо најтраженије API-је.

VNRequest — основа свих операција

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) за сложене фонтове.

  • VNDetectFaceRectanglesRequest — претрага лица са враћањем оквира
  • VNDetectFaceLandmarksRequest — 68 кључних тачака лица
  • VNRecognizeTextRequest — OCR са подршком за 30+ језика
  • VNDetectBarcodesRequest — скенирање QR, EAN, PDF417
  • VNCoreMLRequest — покретање прилагођених Core ML модела

Интеграција Vision-а у iOS

Да бисте користили Vision, довољно је импортовати оквир, креирати VNRequest објекат и проследити га VNImageRequestHandler-у. Размотримо пример препознавања текста на слици.

Пример кода у Swift-у

Код креира VNRecognizeTextRequest са прецизним режимом препознавања, покреће га на слици и приказује препознати текст у конзоли. Овај једноставан пример демонстрира минималну интеграцију Vision-а у Swift пројекту коришћењем VNImageRequestHandler-а у неколико линија кода.

swift
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

Vision и Core Image — два Apple-ова оквира за рад са сликама, али решавају суштински различите задатке. Core Image је оквир за филтрирање и трансформацију слика (примена филтера, корекција боје, замућење). Vision је оквир за разумевање садржаја слике: шта је на њој приказано.

КарактеристикаVisionCore Image
ЗадатакАнализа и препознавањеФилтрирање и обрада
Детекција лицаДа, са оријентиримаСамо CIDetector
Препознавање текстаДа (OCR)Не
ФилтериНе200+ филтера
Core ML интеграцијаДа (VNCoreMLRequest)Не
Праћење објекатаДа (VNTrackObjectRequest)Не
ПерформансеОптимизован за ANEGPU (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-а

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-а је доступан Vision?

iOS 11+ за основне API-је, iOS 13+ за препознавање текста (VNRecognizeTextRequest), iOS 17+ за сегментацију докумената. Vision је такође доступан на macOS 10.13+ и iPadOS 13+.

Може ли Vision радити са видеом у реалном времену?

Да, Vision обрађује видео ток путем VNSequenceRequestHandler-а и AVFoundation-а. Оквир подржава до 60 FPS на уређајима са A14+ чиповима при коришћењу брзих захтева.

По чему се Vision разликује од OpenCV-а?

Vision — изворни Apple-ов оквир са аутоматском оптимизацијом за ANE и GPU. OpenCV — вишеплатформска библиотека са ширим могућностима, али која захтева ручну оптимизацију и без подршке за Neural Engine.

Како додати прилагођени ML модел у Vision?

Путем VNCoreMLRequest-а: креирајте Core ML модел, иницијализујте VNCoreMLModel, проследите га VNCoreMLRequest-у и покрените кроз VNImageRequestHandler. Xcode ће аутоматски генерисати Swift класу за модел.

Да ли Vision подржава препознавање емоција?

Индиректно — VNDetectFaceLandmarksRequest одређује положај кључних тачака лица, а VNDetectFaceExpressionsRequest (iOS 17+) процењује осмех и трептај кроз затворене очи.

Закључак

  • Vision — Apple-ов оквир за компјутерски вид на уређају са јединственом архитектуром VNRequest → VNHandler → VNObservation
  • Детекција лица одређује до 68 кључних оријентира са проценом квалитета и ротацијом главе
  • Препознавање текста (OCR) подржава 30+ језика у два режима: брзом и прецизном
  • Скенирање баркодова ради са QR, EAN-13, Code 128, PDF417 и Aztec
  • Интеграција са Core ML путем VNCoreMLRequest-а омогућава покретање прилагођених модела
  • Праћење објеката између кадрова видео тока ради у реалном времену до 60 FPS
  • Vision и Core Image се допуњују: препознавање + филтрирање слика

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође