IPhone: iOS Metin Algılama Özellikleri Nasıl Kullanılır

iOS 11'deki Vision, aynı anda gerçekleşen uygulama ile metin karakterlerini tanıyabilen bir uygulama oluşturmak için ihtiyacınız olan her şeye sahiptir. Teknik bir kodlama bilgisine ihtiyacınız yok - özellikte gezinmek oldukça basit. Dahası, uygulama sorunsuzdur.

Vizyon Çerçevesi

Vizyon çerçevesi, bilgisayar ayrıntılarını içeren herhangi bir görevi kolayca gerçekleştirmenizi sağlar. Yapı, yüz ve yüz dönüm noktası algılama, barkod tanıma, görüntü kaydı, genel özellik izleme ve metin algılama gerçekleştirir. Vision ayrıca sınıflandırma veya nesne algılama gibi görevler için özel Core ML modellerini kullanmanıza da olanak tanır.

VN DetectTextRectanglesRequest

NS VN DetectTextRectanglesRequest bir görüntüdeki görünür metnin bölgelerini bulan bir görüntü analizi isteğidir; özellik, metin karakterlerini kaynak ve boyut ile dikdörtgen bir sınırlayıcı kutu olarak döndürür.

Swift kullanmaya alışkınsanız ve bir süredir programlama yapıyorsanız, muhtemelen görüntü ve AVFoundation gibi diğer özellikler olduğunda Vision'ın kullanımının ne olduğunu merak ediyorsunuzdur. Eh, Vision daha doğru ve daha basittir. Bu özellik ayrıca çeşitli platformlarda da mevcuttur. Ancak Vision'ı kullanmak daha fazla işlem gücü ve işlem süresi gerektirebilir.

Metin algılama için Vision'ı kullanmak için Xcode 9'a ve iOS 11 çalıştıran bir cihaza ihtiyacınız olacak.

Avcapture ile Kamera Oluşturma

İlk önce, bir kamera oluşturmanız gerekir. AVCapture; bu, gerçek zamanlı veya çevrimdışı yakalama gerçekleştirmek için bir nesne AVcapturesession başlatılarak yapılır. Bundan sonra, cihaz bağlantısına oturumu yapın.

Uygulamanızın kullanıcı arayüzünü oluşturmaktan size zaman kazandırmak için bir başlangıç ​​projesine sahip olmayı düşünün, başlangıçta bu size Vizyon çerçevesini öğrenmeye odaklanmanız için zaman verecektir.

  1. Başlangıç ​​projenizi açın. Film şeridindeki görünümler sizin için hazır ve ayarlanmış olmalıdır.
  2. Üzerinde ViewController.swift, işlevler ve çıkışlar içeren kod bölümünü arayın.
  3. Çıkışın altında-Resim Görünümü, diçin bir oturum bildirmek AV yakalama oturumu – bu, canlı bir akışa dayalı olarak eylemlerin gerçekleştirilmesini istediğinizde kullanılır.
  4. Yı kur AV yakalama oturumu ve AVortam türü sürekli çalışmasını sağlamak için kamera çekimini gerçekleştireceğiniz için videoya
  5. Çıkış ve giriş cihazını tanımlayın
  6. Giriş, kameranın göreceği şeydir ve çıkış, KCVPixelFormatType_32GRA'nın ayarlanmış bir tür biçimindeki videodur.
  7. Son olarak, bir ekleyin alt katman videoları içeren Resim görünümü ve oturumu başlatın. İşlev olarak bilinir Viewdidload'da. Ayrıca katmanın çerçevesini de ayarlamanız gerekir.

içindeki işlevi çağırın görünümWillAppear yöntem.

Sınırlar henüz kesinleşmediğinden, görünümDidLayoutAlt Görünümler ( ) bağlı katmanları güncelleme yöntemi.

iOS 10'un piyasaya sürülmesinden sonra, Info.plist'e ek bir giriş gereklidir, bu kamerayı kullanmak için bir neden sağlar. Ayrıca Gizlilik-Kamera Kullanım Açıklamasını da ayarlamalısınız.

Metin Algılama; Vizyon Çerçevesi Nasıl Çalışır?

Uygulamada Vision'ı uygulamak için üç adım vardır.

  1. İşleyiciler – bu, istek çağrıldıktan sonra çerçevenin bir şeyler yapmasını istediğiniz zamandır.
  2. Gözlemler – tek bir istekle başlayarak sağladığınız verilerle yapmak istediğiniz şey budur
  3. İstekler – Bu, Detect çerçevesini istediğinizde

İdeal olarak, şu şekilde bir metin isteği oluşturursunuz: VNdetectmetindikdörtgenleristeği. Bu bir çeşit VNrequest Bu, metnin etrafındaki sınırlar. Çerçeve uygulamayı tamamladıktan sonra, aramaya devam edersiniz. dettexthandler işlev. Ayrıca tam olarak tanınan çerçeveyi bilmek isteyeceksiniz, Rapor karakter kutuları=Doğru.

Bundan sonra, tüm sonuçları içeren gözlemleri tanımlayın. VNdetectmetindikdörtgenleristeği, Çıkış kamerasına Vision eklemeyi unutmayın. Vision, üst düzey API'ler sunduğundan, onunla çalışmak güvenlidir.

İşlev, Cmörnek arabelleği var ve PutOut Avcaptureoutput. Daha sonra bir değişken oluşturmaya devam etmelisiniz. İstek seçenekleri 1 Sözlük Türü olarak VNimageseçenek. NS VNmage seçenek, kameradan gelen özellikleri ve verileri içeren bir yapı türüdür. daha sonra oluşturmalısınız VNimagerequesthandler ve metin isteğini yürütün.

Algılanan Metnin Çevresine Kenar Çizme

Çerçeveye, biri algıladığı her harf için diğeri her kelime için olmak üzere iki kutu çizerek başlayabilirsiniz. Tablolar, talebinizin bulacağı tüm karakter kutularının birleşimidir.

  • Kutuları konumlandırmanıza yardımcı olması için görüşünüzdeki noktaları tanımlayın.
  • Bundan sonra, bir oluştur CALayer; kullanmak VNdikdörtgengözlem kısıtlamalarınızı tanımlamak, kutunun ana hatlarını çizme sürecini kolaylaştırmak için.

Artık tüm fonksiyonlarınızı ortaya koydunuz.

Noktalarınızı birleştirmek için kodunuzu eşzamansız olarak çalıştırarak başlayın. Ardından, sonuçlarınızda bir bölgenin olup olmadığını kontrol etmelisiniz. VNTextObservation.

Artık alan içinde bir kutu çizecek olan işlevinizi arayabilirsiniz. Bölgede karakter kutuları olup olmadığını kontrol edin ve ardından her harfin etrafına bir kutu getiren servisi arayın.

Bundan sonra bir değişken oluşturun İstek Seçenekleri. Artık bir VNImageRequestİşleyicisi nesne ve oluşturduğunuz metin isteğini gerçekleştirin.

Son olarak, son adım, canlı akışla vizyon kodunuzu çalıştırmaktır. Video çıkışını almanız ve dönüştürmeniz gerekecek. Cmörnek arabelleği.

Ek İpuçları

  1. Her zaman görüntüyü kırpmaya çalışın ve yalnızca ihtiyacınız olan bölümü işleyin. Bu işlem süresini ve bellek ayak izini azaltacaktır
  2. Sayısal olmayan karakterlerle uğraşırken dil düzeltmeyi açın, ardından sayısal bir karakterle uğraşırken kapatın
  3. Doğruluğu onaylamak ve kullanıcıya yanlış değer göstermeyi ortadan kaldırmak için tanınan sayı dizilerinin doğrulamasını dahil edin.
  4. Görüntü kalitesi metin tanımada önemli bir rol oynadığından, belge kamerası denetleyicisi metin tanıma için en iyi yardımcıdır.
  5. Performansı artırmak için minimum bir metin yüksekliği ayarlamayı düşünün.

Vision ile metin tanıma için ihtiyacınız olan her şeye sahipsiniz. Vision'ın kullanımı kolay olduğundan ve uygulanması kısa sürdüğünden, onu kullanmak neredeyse Legolarla oynamakla eşdeğerdir. Uygulamanızı farklı nesneler, yazı tipleri, ışıklandırma ve boyutlar üzerinde test etmeyi deneyin. Vision'ı Core ML ile birleştirerek de kendinizi etkileyebilirsiniz.