Vision — Apple tərəfindən iOS, macOS və iPadOS-a daxil edilmiş, şəkillərin, videoların və real vaxt məlumatlarının təhlili üçün hazır API-lər təmin edən kompüter görmə freymvorkudur. O, üz aşkarlanması, mətn tanınması, barkodlar, obyekt konturları və hərəkət izləməni əhatə edir — hamısı cihazda, məlumatları serverə göndərmədən. Apple Vision Documentation (2026)-ya görə, freymvork A14 və daha yeni çipli cihazlarda saniyədə 60 kadr emal edir.
Əsas məqamlar
Vision — Apple tərəfindən WWDC 2017-də təqdim edilmiş yüksək səviyyəli kompüter görmə freymvorkudur. O, proqramçılara kompüter görmə riyaziyyatına və ya xüsusi neyroprosessor üçün optimallaşdırmaya ehtiyac olmadan şəkil və video analizi üçün vahid interfeys təmin edir. Vision A12+ çipli cihazlarda Apple Neural Engine-dən avtomatik istifadə edir.
OpenCV kimi aşağı səviyyəli kitabxanalardan fərqli olaraq, Vision mürəkkəbliyi abstraksiya edir: proqramçı VNRequest obyekti yaradır, parametrləri konfiqurasiya edir və VNImageRequestHandler vasitəsilə emalı işə salır. Freymvork tapşırığı hansı hesablayıcıda — CPU, GPU və ya ANE-də yerinə yetirəcəyinə özü qərar verir və strukturlaşdırılmış nəticə qaytarır. Apple (WWDC 2025) məlumatına görə, Vision şəkillərlə işləyən App Store tətbiqlərinin 40%-nda istifadə olunur.
Vision üzlərin və onların istinad nöqtələrinin aşkarlanması (68 nöqtəyə qədər), mətn tanınması (OCR) 30+ dil dəstəyi ilə, QR və EAN barkodlarının skan edilməsi, obyektlərin kadrlar arasında izlənməsi, düzbucaqlıların və konturların aşkarlanması, Core ML vasitəsilə şəkil təsnifatı, hərəkət və optik axının qiymətləndirilməsi, həmçinin seqmentasiya ilə şəkildə insan aşkarlanması üçün API-lər ehtiva edir. Hər əməliyyat VNRequest-in ayrıca alt sinfi ilə təmsil olunur.
Vision Request → Handler → Results arxitekturası üzərində qurulub, burada hər sorğu konkret tapşırıqdır: üzləri tap, mətni tanı, obyekti izlə. Ən çox tələb olunan API-lərə nəzər salaq.
VNRequest — bütün konkret Vision sorğularının miras aldığı abstrakt əsas sinifdir. Hər sorğu completionHandler, konfiqurasiya parametrləri və şəklin hissəsini emal etmək üçün regionOfInterest ehtiva edir. Sorğu yaradıldıqdan sonra VNImageRequestHandler-a (statik şəkillər üçün) və ya VNSequenceRequestHandler-a (video axını üçün) ötürülür. Nəticələr VNObservation alt siniflərinin massivi şəklində qaytarılır.
VNDetectFaceRectanglesRequest şəkildəki bütün üzləri tapır və onların çərçivələrini qaytarır. VNDetectFaceLandmarksRequest əlavə olaraq 68 əsas istinad nöqtəsini təyin edir: göz, qaş, burun, dodaq və çənə konturları. VNDetectFaceCaptureQualityRequest üz şəklinin keyfiyyətini 0-dan 1-ə qədər qiymətləndirir — biometriya üçün faydalıdır. Apple məlumatına görə, Neural Engine-li cihazlarda frontal bucaqda üz aşkarlanmasının dəqiqliyi 99%-ə çatır.
VNRecognizeTextRequest — şəkillərdə optik simvol tanınması (OCR) üçün API. Latın, kiril, çin, yapon, koreya və digər dillərdə çap mətnini dəstəkləyir. Nəticə — hər biri mətn sətri, bounding box və inam səviyyəsi ehtiva edən VNRecognizedTextObservation massivi. İki rejim mövcuddur: sənədləri skan etmək üçün sürətli (Fast) və mürəkkəb şriftlər üçün dəqiq (Accurate).
Vision-dan istifadə etmək üçün freymvorku import etmək, VNRequest obyekti yaratmaq və onu VNImageRequestHandler-ə ötürmək kifayətdir. Şəkildə mətnin tanınması nümunəsinə baxaq.
Kod dəqiq tanıma rejimi ilə VNRecognizeTextRequest yaradır, onu şəkildə işə salır və tanınmış mətni konsola çıxarır. Bu sadə nümunə Swift layihəsində VNImageRequestHandler istifadə edərək Vision-un minimal inteqrasiyasını bir neçə sətir kodla nümayiş etdirir.
import Vision
// 1. Mətn tanıma sorğusunun yaradılması
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("Mətn: \(topCandidate?.string ?? "")")
}
}
// 2. Dəqiq rejimin aktivləşdirilməsi
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. Emalın işə salınması
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
Swift kodu VNRecognizeTextRequest-i dəqiq tanıma səviyyəsi və aktiv dil korreksiyası ilə konfiqurasiya edir. VNImageRequestHandler URL-dən şəkli yükləyir və sorğunu yerinə yetirir. Nəticələr hər token üçün bounding box və inam səviyyəsi ilə tanınmış mətn sətirlərini ehtiva edir. VNRecognizedTextObservation massivi ekranda rahatlıqla göstərilə bilər.
Real vaxtda video emalı üçün VNImageRequestHandler əvəzinə VNSequenceRequestHandler istifadə olunur. O, şəkillər (kadrlar) massivini qəbul edir və eyni sorğunu ardıcıl olaraq yerinə yetirir, kadrlar arasında vəziyyəti saxlayır — bu obyekt izləmə üçün zəruridir. VNSequenceRequestHandler yaddaşı avtomatik idarə edir: obyekt kadrdan çıxdıqda köhnə müşahidələr silinir. Real vaxt performansı sorğunun mürəkkəbliyindən asılıdır: üz aşkarlanması 60 FPS, mətn tanınması isə A16 çipli cihazlarda 15–30 FPS sürətində işləyir.
Vision və Core Image — Apple-ın şəkillərlə işləmək üçün iki freymvorku, lakin onlar prinsipial olaraq fərqli vəzifələri həll edir. Core Image şəkillərin filtrlənməsi və transformasiyası (filtrlərin tətbiqi, rəng korreksiyası, bulanıqlıq) üçün freymvorkdur. Vision şəklin məzmununu anlamaq üçün freymvorkdur: şəkildə nə təsvir olunub.
| Xüsusiyyət | Vision | Core Image |
|---|---|---|
| Vəzifə | Analiz və tanıma | Filtrləmə və emal |
| Üz aşkarlanması | Bəli, istinad nöqtələri ilə | Yalnız CIDetector |
| Mətn tanınması | Bəli (OCR) | Xeyr |
| Filtrlər | Xeyr | 200+ filtr |
| Core ML inteqrasiyası | Bəli (VNCoreMLRequest) | Xeyr |
| Obyekt izləmə | Bəli (VNTrackObjectRequest) | Xeyr |
| Performans | ANE üçün optimallaşdırılıb | GPU (Metal) |
Vision-dan istifadə edin, şəkildə nə olduğunu anlamaq lazımdırsa: üzlər, mətn, QR kodlar, obyektlər. Core Image-dan istifadə edin, şəkli dəyişmək lazımdırsa: filtr tətbiq etmək, rəngləri tənzimləmək, kəsmək. Çox vaxt bu iki freymvork birləşdirilir: əvvəlcə Core Image şəklin keyfiyyətini yaxşılaşdırır, sonra Vision orada mətni tanıyır.
Praktikada Vision və Core Image sənəd skan etmə tətbiqlərində birlikdə istifadə olunur. Core Image avtomatik olaraq kontrastı artırır və kölgələri silir (CIFilter CIPhotoEffectNoir ilə), Vision isə yaxşılaşdırılmış şəkildə mətni tanıyır. Apple (WWDC 2025) məlumatına görə, OCR dəqiqliyi kameradan alınan xam kadrla müqayisədə Core Image vasitəsilə ilkin emaldan sonra 15–20% artır.
Digər vacib birgə istifadə ssenarisi — genişləndirilmiş reallıq tətbiqləri üçün real vaxtda üz analizidir. Vision üzü aşkarlayır və 68 istinad nöqtəsini təyin edir, Core Image isə aşkarlanmış sahələrə filtrlər tətbiq edir. ARKit üz izləmə üçün Vision-dan, effektlərin render edilməsi üçün Core Image-dan istifadə edir ki, bu da A15+ çipli cihazlarda ümumi gecikməni 16 ms-dən aşağı salır.
SwiftUI-də Vision inteqrasiyası üçün AVCaptureSession və VNImageRequestHandler-ı UIViewRepresentable-ə bükən Representable protokolundan istifadə olunur. Kamera PreviewView vasitəsilə göstərilir, hər kadr AVCaptureVideoDataOutputSampleBufferDelegate vasitəsilə VisionRequestHandler-ə ötürülür. Bu arxitektura yanaşması SwiftUI-nin reaktivliyini saxlamağa və Vision analizinin nəticələrini interfeysin dərhal yenilənməsi üçün @Published xassələri kimi əldə etməyə imkan verir.
Vision geniş iOS tətbiqlərində istifadə olunur: sənəd skanerlərindən genişləndirilmiş reallıq tətbiqlərinə qədər. Üç xarakterik ssenariyə baxaq.
VNDetectDocumentSegmentationRequest (iOS 17+-dan mövcuddur) şəkildə sənədin sərhədlərini avtomatik aşkarlayır, perspektivi düzəldir və düzlənmiş şəkil qaytarır. VNRecognizeTextRequest ilə birlikdə hesabları, vizit kartlarını və kitab səhifələrini tanıya bilən tam hüquqlu OCR skaneri əldə edilir. Apple məlumatına görə, sənəd seqmentasiyası A15 çipli cihazda 30–80 ms çəkir.
VNTrackObjectRequest seçilmiş obyektin video axınının kadrları arasında hərəkətini real vaxtda izləyir. Proqramçı ilk kadrda obyektin bounding box-nı təyin edir və Vision avtomatik olaraq onun sonrakı kadrlardakı yeni mövqeyini hesablayır. İzləmə videoanalitika, AR oyunlar və müşahidə sistemləri tətbiqlərində istifadə olunur. A16 çiplərində izləmə dəqiqliyi kadr başına 30 pikselə qədər obyekt sürətində 95% təşkil edir.
VNDetectRectanglesRequest şəkildə düzbucaqlı sahələri tapır: ekranlar, kağız vərəqləri, lövhələr, sənədlər. API perspektiv korreksiyası ilə künc koordinatlarını qaytarır. Düzbucaqlıları VNDetectContoursRequest ilə birləşdirərək obyektin dəqiq konturunu ayırmaq olar — genişləndirilmiş reallıq tətbiqləri və qrafik redaktorlar üçün faydalıdır. VNDetectContoursRequest çəkmək üçün UIBezierPath-ə çevrilə bilən konturun idarəetmə nöqtələri massivini qaytarır.
Tez-tez verilən suallar
iOS 11+ əsas API-lər üçün, iOS 13+ mətn tanınması üçün (VNRecognizeTextRequest), iOS 17+ sənəd seqmentasiyası üçün. Vision həmçinin macOS 10.13+ və iPadOS 13+-da mövcuddur.
Bəli, Vision VNSequenceRequestHandler və AVFoundation vasitəsilə video axınını emal edir. Freymvork sürətli sorğulardan istifadə edərək A14+ çipli cihazlarda 60 FPS-ə qədər dəstəkləyir.
Vision — ANE və GPU üçün avtomatik optimallaşdırma ilə Apple-ın yerli freymvorku. OpenCV — daha geniş imkanları olan, lakin əl ilə optimallaşdırma tələb edən və Neural Engine dəstəyi olmayan çarpaz platforma kitabxanası.
VNCoreMLRequest vasitəsilə: Core ML modeli yaradın, VNCoreMLModel-i işə salın, onu VNCoreMLRequest-ə ötürün və VNImageRequestHandler vasitəsilə işə salın. Xcode model üçün avtomatik Swift sinfi yaradacaq.
Dolayı yolla — VNDetectFaceLandmarksRequest üzün əsas nöqtələrinin mövqeyini təyin edir, VNDetectFaceExpressionsRequest (iOS 17+) isə qapalı gözlər vasitəsilə gülüş və göz qırpmasını qiymətləndirir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun