Vision: nedir, bilgisayarlı görü çerçevesi ve iOS'ta çalışma

Yazar: IT Sectr Yayınlanma: 2026-03-26 Okuma süresi: 8 dk

Vision — Apple tarafından iOS, macOS ve iPadOS'a entegre edilmiş, görüntü, video ve gerçek zamanlı analiz için hazır API'ler sunan bir bilgisayarlı görü çerçevesidir. Yüz algılama, metin tanıma, barkodlar, nesne konturları ve hareket takibi gibi işlemleri kapsar — tümü cihaz üzerinde, verileri sunucuya göndermeden gerçekleşir. Apple Vision Documentation (2026)'ya göre, çerçeve A14 ve daha yeni çiplere sahip cihazlarda saniyede 60 kareye kadar işleme yapabilir.

Önemli Noktalar

  • Vision — yüz, metin ve nesne algılama için API'ler sunan Apple'ın cihaz içi bilgisayarlı görü çerçevesidir
  • VNRequest — algılama, sınıflandırma, takip ve tanıma gibi tüm işlemler için temel sınıftır
  • Metin tanıma Latin, Kiril, Çince ve 30'dan fazla dili destekler
  • Yüz algılama duygu değerlendirmesi ve baş dönüşü ile 68 anahtar noktaya kadar belirler
  • Core ML ile entegrasyon VNCoreMLRequest aracılığıyla özel modeller çalıştırmaya olanak tanır

Vision Nedir?

Vision, Apple tarafından WWDC 2017'de tanıtılan üst düzey bir bilgisayarlı görü çerçevesidir. Geliştiricilere, bilgisayarlı görü matematiğine veya belirli bir nöral işlemci için optimizasyona girmeden görüntü ve video analizi görevlerini gerçekleştirmek için birleşik bir arayüz sağlar. Vision, A12+ çipli cihazlarda Apple Neural Engine'i otomatik olarak kullanır.

OpenCV gibi düşük seviyeli kütüphanelerin aksine, Vision karmaşıklığı soyutlar: geliştirici bir VNRequest nesnesi oluşturur, parametreleri yapılandırır ve işlemeyi VNImageRequestHandler aracılığıyla başlatır. Çerçeve, görevi hangi işlemcide (CPU, GPU veya ANE) gerçekleştireceğine kendisi karar verir ve yapılandırılmış bir sonuç döndürür. Apple'a göre (WWDC 2025), Vision, görüntülerle çalışan App Store uygulamalarının %40'ında kullanılmaktadır.

Temel Özellikler

Vision, yüzleri ve işaret noktalarını (68 noktaya kadar) algılama, 30+ dil desteğiyle metin tanıma (OCR), QR ve EAN barkod tarama, nesneleri kareler arasında takip etme, dikdörtgen ve kontur algılama, Core ML aracılığıyla görüntü sınıflandırma, hareket ve optik akış değerlendirmesi ve segmentasyonla görüntüde insan algılama API'lerini içerir. Her işlem, VNRequest'in ayrı bir alt sınıfı ile temsil edilir.

Vision Temel API'leri

Vision, Request → Handler → Results mimarisi üzerine kurulmuştur; her istek belirli bir görevi temsil eder: yüz bulma, metin tanıma, nesne takibi. En çok kullanılan API'leri inceleyelim.

VNRequest — Tüm İşlemlerin Temeli

VNRequest, tüm Vision isteklerinin miras aldığı soyut temel sınıftır. Her istek, completionHandler, yapılandırma parametreleri ve görüntünün bir kısmını işlemek için regionOfInterest içerir. İstek oluşturulduktan sonra VNImageRequestHandler'a (statik görüntüler için) veya VNSequenceRequestHandler'a (video akışı için) iletilir. Sonuçlar, VNObservation alt sınıflarından oluşan bir dizi olarak döndürülür.

Yüz ve Kontur Algılama

VNDetectFaceRectanglesRequest, görüntüdeki tüm yüzleri bulur ve sınırlayıcı kutularını döndürür. VNDetectFaceLandmarksRequest, ek olarak 68 anahtar noktayı belirler: göz, kaş, burun, dudak ve çene konturu. VNDetectFaceCaptureQualityRequest, yüz çekim kalitesini 0 ile 1 arasında değerlendirir — biyometri için kullanışlıdır. Apple'a göre, Neural Engine'li cihazlarda yüz algılama doğruluğu önden bakışta %99'a ulaşır.

Metin Tanıma

VNRecognizeTextRequest, görüntülerde optik karakter tanıma (OCR) için API'dir. Latin, Kiril, Çince, Japonca, Korece ve diğer dillerde basılı metni destekler. Sonuç — her biri metin dizesi, bounding box ve güven seviyesi içeren VNRecognizedTextObservation dizisidir. İki mod mevcuttur: belge tarama için hızlı (Fast) ve karmaşık yazı tipleri için hassas (Accurate).

  • VNDetectFaceRectanglesRequest — sınırlayıcı kutularla yüz arama
  • VNDetectFaceLandmarksRequest — 68 yüz anahtar noktası
  • VNRecognizeTextRequest — 30+ dil desteğiyle OCR
  • VNDetectBarcodesRequest — QR, EAN, PDF417 tarama
  • VNCoreMLRequest — özel Core ML modelleri çalıştırma

Vision'ı iOS'a Entegre Etme

Vision'ı kullanmak için çerçeveyi içe aktarmak, bir VNRequest nesnesi oluşturmak ve VNImageRequestHandler'a iletmek yeterlidir. Bir görüntüde metin tanıma örneğini inceleyelim.

Swift ile Örnek Kod

Kod, hassas tanıma moduyla bir VNRecognizeTextRequest oluşturur, bunu bir görüntüde çalıştırır ve tanınan metni konsola yazdırır. Bu basit örnek, Swift projesinde VNImageRequestHandler kullanarak Vision'un minimum entegrasyonunu birkaç satır kodla gösterir.

swift
import Vision

// 1. Metin tanıma isteği oluşturma
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("Metin: \(topCandidate?.string ?? "")")
    }
}

// 2. Hassas modu etkinleştirme
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true

// 3. İşlemi başlatma
let handler = VNImageRequestHandler(
    url: imageURL, options: [:]
)
try? handler.perform([request])

Swift kodu, VNRecognizeTextRequest'i hassas tanıma seviyesi ve etkin dil düzeltmesiyle yapılandırır. VNImageRequestHandler, görüntüyü URL'den yükler ve isteği çalıştırır. Sonuçlar, her belirteç için bounding boxes ve güven puanıyla birlikte tanınan metin dizelerini içerir. VNRecognizedTextObservation dizisi ekranda görüntülenmeye uygundur.

Gerçek zamanlı video işleme için VNSequenceRequestHandler kullanılır. Bir dizi görüntüyü (kareleri) alır ve aynı isteği sırayla çalıştırarak kareler arasında durumu korur — bu nesne takibi için gereklidir. VNSequenceRequestHandler belleği otomatik olarak yönetir: nesne kareden çıktığında eski gözlemler silinir. Gerçek zamanlı performans, isteğin karmaşıklığına bağlıdır: yüz algılama 60 FPS'de çalışırken, metin tanıma A16 çipli cihazlarda 15–30 FPS'de çalışır.

Vision vs Core Image

Vision ve Core Image, Apple'ın görüntülerle çalışmak için iki çerçevesidir, ancak temelde farklı görevleri çözerler. Core Image, görüntüleri filtreleme ve dönüştürme (filtre uygulama, renk düzeltme, bulanıklaştırma) için bir çerçevedir. Vision, görüntünün içeriğini anlama (görüntüde ne olduğu) için bir çerçevedir.

ÖzellikVisionCore Image
GörevAnaliz ve tanımaFiltreleme ve işleme
Yüz algılamaEvet, işaret noktalarıylaSadece CIDetector
Metin tanımaEvet (OCR)Hayır
FiltrelerHayır200+ filtre
Core ML entegrasyonuEvet (VNCoreMLRequest)Hayır
Nesne takibiEvet (VNTrackObjectRequest)Hayır
PerformansANE için optimize edilmişGPU (Metal)

Vision'ı, görüntüde ne olduğunu anlamanız gerektiğinde kullanın: yüzler, metin, QR kodlar, nesneler. Core Image'ı, görüntüyü değiştirmeniz gerektiğinde kullanın: filtre uygulama, renk ayarlama, kırpma. Genellikle bu iki çerçeve birleştirilir: önce Core Image çekim kalitesini iyileştirir, ardından Vision üzerindeki metni tanır.

Pratikte Vision ve Core Image, belge tarama uygulamalarında birlikte kullanılır. Core Image, CIFilter ve CIPhotoEffectNoir ile kontrastı otomatik olarak artırır ve gölgeleri kaldırır; Vision ise iyileştirilmiş görüntüde metni tanır. Apple'a göre (WWDC 2025), Core Image aracılığıyla ön işleme yapıldığında OCR doğruluğu, kameradan alınan ham kareye kıyasla %15–20 artar.

Bir diğer önemli birlikte kullanım senaryosu, artırılmış gerçeklik uygulamaları için gerçek zamanlı yüz analizidir. Vision yüzü algılar ve 68 işaret noktasını belirler; Core Image ise algılanan alanlara filtreler uygular. ARKit, yüz takibi için Vision'ı ve efekt oluşturma için Core Image'ı kullanır; bu, A15+ çipli cihazlarda toplam 16 ms'nin altında gecikme sağlar.

SwiftUI'de Vision entegrasyonu için, AVCaptureSession ve VNImageRequestHandler'ı bir UIViewRepresentable içine saran Representable protokolü kullanılır. Kamera PreviewView aracılığıyla görüntülenir, her kare AVCaptureVideoDataOutputSampleBufferDelegate aracılığıyla VisionRequestHandler'a iletilir. Bu mimari yaklaşım, SwiftUI'nin reaktivitesini korurken Vision analiz sonuçlarını arayüzü hemen güncellemek için @Published özellikler olarak almayı sağlar.

Vision Kullanım Örnekleri

Vision, belge tarayıcılardan artırılmış gerçeklik uygulamalarına kadar geniş bir iOS uygulama yelpazesinde kullanılır. Üç karakteristik senaryoyu inceleyelim.

Belge Tarama

VNDetectDocumentSegmentationRequest (iOS 17+ ile kullanılabilir), görüntüdeki belge sınırlarını otomatik olarak algılar, perspektifi düzeltir ve düzleştirilmiş görüntüyü döndürür. VNRecognizeTextRequest ile birleştirildiğinde, faturaları, kartvizitleri ve kitap sayfalarını tanıyabilen tam teşekküllü bir OCR tarayıcı elde edilir. Apple'a göre, belge segmentasyonu A15 çipli bir cihazda 30–80 ms sürer.

Videoda Nesne Takibi

VNTrackObjectRequest, seçilen bir nesnenin video akışındaki kareler arasında gerçek zamanlı hareketini izler. Geliştirici, ilk karede nesnenin bounding box'ını belirtir ve Vision sonraki karelerde yeni konumunu otomatik olarak hesaplar. Takip, video analitiği uygulamalarında, AR oyunlarında ve gözetim sistemlerinde kullanılır. A16 çiplerinde takip doğruluğu, kare başına 30 piksele kadar nesne hızında %95'tir.

Kontur ve Dikdörtgen Algılama

VNDetectRectanglesRequest, görüntüdeki dikdörtgen alanları bulur: ekranlar, kağıtlar, tabelalar, belgeler. API, perspektif düzeltmeli köşe koordinatlarını döndürür. Dikdörtgenleri VNDetectContoursRequest ile birleştirerek nesnenin tam konturu çıkarılabilir — artırılmış gerçeklik uygulamaları ve grafik düzenleyiciler için kullanışlıdır. VNDetectContoursRequest, çizim için UIBezierPath'e dönüştürülebilen bir kontrol noktaları dizisi döndürür.

Sıkça Sorulan Sorular

Vision hangi iOS sürümlerinden itibaren kullanılabilir?

iOS 11+ temel API'ler için, iOS 13+ metin tanıma (VNRecognizeTextRequest) için, iOS 17+ belge segmentasyonu için. Vision ayrıca macOS 10.13+ ve iPadOS 13+'da da kullanılabilir.

Vision gerçek zamanlı video ile çalışabilir mi?

Evet, Vision, VNSequenceRequestHandler ve AVFoundation aracılığıyla video akışını işler. Çerçeve, hızlı istekler kullanıldığında A14+ çipli cihazlarda 60 FPS'ye kadar destekler.

Vision OpenCV'den nasıl farklıdır?

Vision, ANE ve GPU için otomatik optimizasyonlu yerel bir Apple çerçevesidir. OpenCV, daha geniş yeteneklere sahip platformlar arası bir kütüphanedir ancak manuel optimizasyon gerektirir ve Neural Engine desteği yoktur.

Vision'a özel bir ML modeli nasıl eklenir?

VNCoreMLRequest aracılığıyla: bir Core ML modeli oluşturun, VNCoreMLModel'i başlatın, VNCoreMLRequest'e iletin ve VNImageRequestHandler aracılığıyla çalıştırın. Xcode, model için otomatik olarak bir Swift sınıfı oluşturacaktır.

Vision duygu tanımayı destekliyor mu?

Dolaylı olarak — VNDetectFaceLandmarksRequest yüzün anahtar noktalarının konumunu belirler; VNDetectFaceExpressionsRequest (iOS 17+) ise gülümseme ve göz kırpmayı değerlendirir.

Özet

  • Vision — VNRequest → VNHandler → VNObservation tek mimarisiyle Apple'ın cihaz içi bilgisayarlı görü çerçevesidir
  • Yüz algılama kalite değerlendirmesi ve baş dönüşü ile 68 anahtar noktaya kadar belirler
  • Metin tanıma (OCR) hızlı ve hassas olmak üzere iki modda 30+ dili destekler
  • Barkod tarama QR, EAN-13, Code 128, PDF417 ve Aztec ile çalışır
  • Core ML entegrasyonu VNCoreMLRequest aracılığıyla özel modeller çalıştırmaya olanak tanır
  • Nesne takibi video akışı kareleri arasında gerçek zamanlı olarak 60 FPS'ye kadar çalışır
  • Vision ve Core Image birbirini tamamlar: tanıma + görüntü filtreleme

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun