Vision: co to je, framework počítačového vidění a práce na iOS

Autor: IT Sectr Publikováno: 2026-03-26 Doba čtení: 8 min

Vision — framework počítačového vidění od Apple, zabudovaný do iOS, macOS a iPadOS, poskytující hotová API pro analýzu obrázků, videa a reálného času. Zahrnuje detekci obličejů, rozpoznávání textu, čárových kódů, obrysů objektů a sledování pohybu — vše na zařízení bez odesílání dat na server. Podle Apple Vision Documentation (2026) framework zpracovává až 60 snímků za sekundu na zařízeních s čipem A14 a novějším.

Hlavní body

  • Vision — framework Apple pro počítačové vidění na zařízení s API pro detekci obličejů, textu a objektů
  • VNRequest — základní třída pro všechny operace: detekci, klasifikaci, sledování a rozpoznávání
  • Rozpoznávání textu podporuje latinku, cyrilici, čínštinu a více než 30 jazyků
  • Detekce obličejů určuje až 68 klíčových orientačních bodů s hodnocením emocí a otáčením hlavy
  • Integrace s Core ML umožňuje spouštění vlastních modelů pomocí VNCoreMLRequest

Co je Vision?

Vision — je framework počítačového vidění na vysoké úrovni, představený Apple na WWDC 2017. Poskytuje vývojářům jednotné rozhraní pro provádění různých úloh analýzy obrázků a videa bez nutnosti ponořit se do matematiky počítačového vidění nebo optimalizace pro konkrétní neuroprocesor. Vision automaticky využívá Apple Neural Engine na zařízeních s čipy A12+.

Na rozdíl od nízkoúrovňových knihoven jako OpenCV, Vision abstrahuje složitost: vývojář vytvoří objekt VNRequest, nakonfiguruje parametry a spustí zpracování přes VNImageRequestHandler. Framework sám rozhodne, na které výpočetní jednotce úlohu provede — CPU, GPU nebo ANE — a vrátí strukturovaný výsledek. Podle Apple (WWDC 2025) se Vision používá ve 40% aplikací App Store pracujících s obrázky.

Hlavní možnosti

Vision zahrnuje API pro detekci obličejů a jejich orientačních bodů (až 68 bodů), rozpoznávání textu (OCR) s podporou 30+ jazyků, skenování QR a EAN čárových kódů, sledování objektů mezi snímky, detekci obdélníků a obrysů, klasifikaci obrázků přes Core ML, hodnocení pohybu a optického toku, a detekci osoby v obraze se segmentací. Každá operace je reprezentována samostatnou podtřídou VNRequest.

Klíčová API Vision

Vision je postaven na architektuře Request → Handler → Results, kde každý požadavek je konkrétní úkol: najdi obličeje, rozpoznej text, sleduj objekt. Podívejme se na nejžádanější API.

VNRequest — základ všech operací

VNRequest — abstraktní základní třída, od které dědí všechny konkrétní požadavky Vision. Každý požadavek obsahuje completionHandler, konfigurační parametry a regionOfInterest pro zpracování části obrázku. Po vytvoření je požadavek předán VNImageRequestHandler (pro statické obrázky) nebo VNSequenceRequestHandler (pro video stream). Výsledky jsou vráceny jako pole pozorování — podtříd VNObservation.

Detekce obličejů a obrysů

VNDetectFaceRectanglesRequest najde všechny obličeje v obrázku a vrátí jejich rámečky. VNDetectFaceLandmarksRequest navíc určuje 68 klíčových orientačních bodů: obrys očí, obočí, nosu, rtů a čelisti. VNDetectFaceCaptureQualityRequest hodnotí kvalitu snímku obličeje — od 0 do 1 — užitečné pro biometrii. Podle Apple dosahuje přesnost detekce obličejů na zařízeních s Neural Engine 99% při frontálním úhlu.

Rozpoznávání textu

VNRecognizeTextRequest — API pro optické rozpoznávání znaků (OCR) na obrázcích. Podporuje tištěný text v latině, cyrilici, čínštině, japonštině, korejštině a dalších jazycích. Výsledek — pole VNRecognizedTextObservation, každé obsahuje textový řetězec, bounding box a úroveň spolehlivosti. K dispozici jsou dva režimy: rychlý (Fast) pro skenování dokumentů a přesný (Accurate) pro složitá písma.

  • VNDetectFaceRectanglesRequest — vyhledávání obličejů s vrácením rámečků
  • VNDetectFaceLandmarksRequest — 68 klíčových bodů obličeje
  • VNRecognizeTextRequest — OCR s podporou 30+ jazyků
  • VNDetectBarcodesRequest — skenování QR, EAN, PDF417
  • VNCoreMLRequest — spouštění vlastních modelů Core ML

Integrace Vision do iOS

Pro použití Vision stačí importovat framework, vytvořit objekt VNRequest a předat ho VNImageRequestHandler. Podívejme se na příklad rozpoznávání textu na obrázku.

Příklad kódu ve Swift

Kód vytvoří VNRecognizeTextRequest s přesným režimem rozpoznávání, spustí ho na obrázku a zobrazí rozpoznaný text v konzoli. Tento jednoduchý příklad demonstruje minimální integraci Vision do projektu Swift pomocí VNImageRequestHandler v několika řádcích kódu.

swift
import Vision

// 1. Vytvoření požadavku na rozpoznávání textu
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. Zapnutí přesného režimu
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true

// 3. Spuštění zpracování
let handler = VNImageRequestHandler(
    url: imageURL, options: [:]
)
try? handler.perform([request])

Swift kód konfiguruje VNRecognizeTextRequest s přesnou úrovní rozpoznávání a zapnutou jazykovou korekcí. VNImageRequestHandler načte obrázek z URL a provede požadavek. Výsledky obsahují rozpoznané textové řetězce s bounding boxy a úrovní spolehlivosti pro každý token. Pole VNRecognizedTextObservation lze pohodlně zobrazit na obrazovce.

Pro zpracování videa v reálném čase se používá VNSequenceRequestHandler místo VNImageRequestHandler. Přijímá pole obrázků (snímků) a provádí stejný požadavek sekvenčně, přičemž uchovává stav mezi snímky — to je nezbytné pro sledování objektů. VNSequenceRequestHandler automaticky spravuje paměť: stará pozorování jsou odstraněna, když objekt opustí snímek. Výkon v reálném čase závisí na složitosti požadavku: detekce obličejů pracuje na 60 FPS, rozpoznávání textu na 15–30 FPS na zařízeních s čipem A16.

Vision vs Core Image

Vision a Core Image — dva frameworky Apple pro práci s obrázky, ale řeší zásadně odlišné úkoly. Core Image je framework pro filtrování a transformaci obrázků (aplikace filtrů, korekce barev, rozostření). Vision je framework pro porozumění obsahu obrázku: co je na něm zobrazeno.

VlastnostVisionCore Image
ÚkolAnalýza a rozpoznáváníFiltrování a zpracování
Detekce obličejůAno, s orientačními bodyPouze CIDetector
Rozpoznávání textuAno (OCR)Ne
FiltryNe200+ filtrů
Core ML integraceAno (VNCoreMLRequest)Ne
Sledování objektůAno (VNTrackObjectRequest)Ne
VýkonOptimalizován pro ANEGPU (Metal)

Používejte Vision, když chcete porozumět tomu, co je na obrázku: obličeje, text, QR kódy, objekty. Používejte Core Image, když chcete obrázek změnit: aplikovat filtr, upravit barvy, oříznout. Často se tyto dva frameworky kombinují: nejprve Core Image zlepší kvalitu snímku, poté Vision rozpozná text na něm.

V praxi se Vision a Core Image používají společně v aplikacích pro skenování dokumentů. Core Image automaticky zvyšuje kontrast a odstraňuje stíny (CIFilter s CIPhotoEffectNoir) a Vision rozpoznává text na vylepšeném obrázku. Podle Apple (WWDC 2025) se přesnost OCR zvyšuje o 15–20% po předzpracování obrázku přes Core Image ve srovnání se surovým snímkem z kamery.

Další důležitý scénář společného použití — analýza obličeje v reálném čase pro aplikace rozšířené reality. Vision detekuje obličej a určuje 68 orientačních bodů a Core Image aplikuje filtry na detekované oblasti. ARKit používá Vision pro sledování obličeje a Core Image pro vykreslování efektů, což dává celkové zpoždění méně než 16 ms na zařízeních s čipy A15+.

Při vývoji ve SwiftUI pro integraci Vision se používá protokol Representable, který obaluje AVCaptureSession a VNImageRequestHandler do UIViewRepresentable. Kamera se zobrazuje přes PreviewView, každý snímek je předán VisionRequestHandler přes AVCaptureVideoDataOutputSampleBufferDelegate. Tento architektonický přístup zachovává reaktivitu SwiftUI a získává výsledky analýzy Vision jako @Published vlastnosti pro okamžitou aktualizaci rozhraní.

Příklady použití Vision

Vision se používá v širokém spektru iOS aplikací: od skenerů dokumentů po aplikace rozšířené reality. Podívejme se na tři charakteristické scénáře.

Skenování dokumentů

VNDetectDocumentSegmentationRequest (dostupný od iOS 17+) automaticky detekuje hranice dokumentu v obrázku, koriguje perspektivu a vrací narovnaný obrázek. V kombinaci s VNRecognizeTextRequest vzniká plnohodnotný OCR skener schopný rozpoznávat účtenky, vizitky a stránky knih. Podle Apple trvá segmentace dokumentu 30–80 ms na zařízení s čipem A15.

Sledování objektů ve videu

VNTrackObjectRequest sleduje pohyb vybraného objektu mezi snímky video streamu v reálném čase. Vývojář určí bounding box objektu na prvním snímku a Vision automaticky vypočítá jeho novou polohu na následujících snímcích. Sledování se používá v aplikacích pro videoanalytiku, AR hrách a sledovacích systémech. Přesnost sledování na čipech A16 je 95% při rychlosti pohybu objektu do 30 pixelů na snímek.

Detekce obrysů a obdélníků

VNDetectRectanglesRequest najde obdélníkové oblasti v obrázku: obrazovky, listy papíru, cedule, dokumenty. API vrací souřadnice rohů s korekcí perspektivy. Kombinací obdélníků s VNDetectContoursRequest lze extrahovat přesný obrys objektu — užitečné pro aplikace rozšířené reality a grafické editory. VNDetectContoursRequest vrací pole řídicích bodů obrysu, které lze převést na UIBezierPath pro kreslení.

Často kladené otázky

Od jakých verzí iOS je Vision dostupný?

iOS 11+ pro základní API, iOS 13+ pro rozpoznávání textu (VNRecognizeTextRequest), iOS 17+ pro segmentaci dokumentů. Vision je také dostupný na macOS 10.13+ a iPadOS 13+.

Může Vision pracovat s videem v reálném čase?

Ano, Vision zpracovává video stream přes VNSequenceRequestHandler a AVFoundation. Framework podporuje až 60 FPS na zařízeních s čipy A14+ při použití rychlých požadavků.

Čím se Vision liší od OpenCV?

Vision — nativní framework Apple s automatickou optimalizací pro ANE a GPU. OpenCV — multiplatformní knihovna s širšími možnostmi, ale vyžadující ruční optimalizaci a bez podpory Neural Engine.

Jak přidat vlastní ML model do Vision?

Přes VNCoreMLRequest: vytvořte model Core ML, inicializujte VNCoreMLModel, předejte ho VNCoreMLRequest a spusťte přes VNImageRequestHandler. Xcode automaticky vygeneruje Swift třídu pro model.

Podporuje Vision rozpoznávání emocí?

Nepřímo — VNDetectFaceLandmarksRequest určuje polohu klíčových bodů obličeje a VNDetectFaceExpressionsRequest (iOS 17+) hodnotí úsměv a mrkání přes zavřené oči.

Shrnutí

  • Vision — framework Apple pro počítačové vidění na zařízení s jednotnou architekturou VNRequest → VNHandler → VNObservation
  • Detekce obličejů určuje až 68 klíčových orientačních bodů s hodnocením kvality a otáčením hlavy
  • Rozpoznávání textu (OCR) podporuje 30+ jazyků ve dvou režimech: rychlém a přesném
  • Skenování čárových kódů pracuje s QR, EAN-13, Code 128, PDF417 a Aztec
  • Integrace Core ML přes VNCoreMLRequest umožňuje spouštění vlastních modelů
  • Sledování objektů mezi snímky video streamu pracuje v reálném čase až do 60 FPS
  • Vision a Core Image se vzájemně doplňují: rozpoznávání + filtrování obrázků

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také