Vision: nədir, kompüter görmə freymvorku və iOS-da işləməsi

Müəllif: IT Sectr Dərc olunub: 2026-03-26 Oxuma vaxtı: 8 dəq

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 — üz, mətn və obyekt aşkarlanması üçün API-lər ilə Apple-ın cihazdaxili kompüter görmə freymvorku
  • VNRequest — bütün əməliyyatlar üçün əsas sinif: aşkarlama, təsnifat, izləmə və tanıma
  • Mətn tanınması latın, kiril, çin və 30-dan çox dili dəstəkləyir
  • Üz aşkarlanması emosiya qiymətləndirməsi və baş fırlanması ilə 68 əsas istinad nöqtəsini təyin edir
  • Core ML ilə inteqrasiya VNCoreMLRequest vasitəsilə fərdi modelləri işə salmağa imkan verir

Vision nədir?

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.

Əsas imkanlar

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-un əsas API-ləri

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 əməliyyatların əsası

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.

Üz və kontur aşkarlanması

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.

Mətn tanınması

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

  • VNDetectFaceRectanglesRequest — çərçivələrlə üz axtarışı
  • VNDetectFaceLandmarksRequest — üzün 68 əsas nöqtəsi
  • VNRecognizeTextRequest — 30+ dil dəstəyi ilə OCR
  • VNDetectBarcodesRequest — QR, EAN, PDF417 skan edilməsi
  • VNCoreMLRequest — fərdi Core ML modellərinin işə salınması

Vision-ın iOS-a inteqrasiyası

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.

Swift-də kod nümunəsi

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.

swift
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 vs Core Image

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ətVisionCore Image
VəzifəAnaliz və tanımaFiltrlə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ərXeyr200+ filtr
Core ML inteqrasiyasıBəli (VNCoreMLRequest)Xeyr
Obyekt izləməBəli (VNTrackObjectRequest)Xeyr
PerformansANE üçün optimallaşdırılıbGPU (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 istifadə nümunələri

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.

Sənədlərin skan edilməsi

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.

Video-da obyekt izləmə

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.

Kontur və düzbucaqlı aşkarlanması

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

Vision iOS-un hansı versiyalarından mövcuddur?

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.

Vision real vaxtda video ilə işləyə bilərmi?

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 OpenCV-dən nə ilə fərqlənir?

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

Vision-a fərdi ML modelini necə əlavə etmək olar?

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.

Vision emosiya tanınmasını dəstəkləyirmi?

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ə

  • Vision — vahid VNRequest → VNHandler → VNObservation arxitekturası ilə Apple-ın cihazdaxili kompüter görmə freymvorku
  • Üz aşkarlanması keyfiyyət qiymətləndirməsi və baş fırlanması ilə 68 əsas istinad nöqtəsini təyin edir
  • Mətn tanınması (OCR) iki rejimdə 30+ dili dəstəkləyir: sürətli və dəqiq
  • Barkod skan edilməsi QR, EAN-13, Code 128, PDF417 və Aztec ilə işləyir
  • Core ML ilə inteqrasiya VNCoreMLRequest vasitəsilə fərdi modelləri işə salmağa imkan verir
  • Obyekt izləmə video axınının kadrları arasında real vaxtda 60 FPS-ə qədər işləyir
  • Vision və Core Image bir-birini tamamlayır: tanıma + şəkil filtrləmə

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.

Layihəni müzakirə et

Həm də oxuyun