Optik karakter tanıma (OCR)

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Optik karakter tanıma (OCR), bilgisayarla görme ve makine öğrenimi tekniklerini kullanarak görüntülerden karakterleri tanıma sürecidir. Bu referans uygulaması, OCR yapmak için TensorFlow Lite'ın nasıl kullanılacağını gösterir. Metin karakterlerini tanımak için OCR ardışık düzeni olarak metin algılama modeli ve metin tanıma modelinin bir kombinasyonunu kullanır.

Başlamak

TensorFlow Lite'ta yeniyseniz ve Android ile çalışıyorsanız, başlamanıza yardımcı olabilecek aşağıdaki örnek uygulamayı keşfetmenizi öneririz.

Android örneği

Android dışında bir platform kullanıyorsanız veya TensorFlow Lite API'lerine zaten aşina iseniz, modelleri TF Hub'dan indirebilirsiniz.

Nasıl çalışır

OCR görevleri genellikle 2 aşamaya ayrılır. İlk olarak, olası metinlerin etrafındaki sınırlayıcı kutuları algılamak için bir metin algılama modeli kullanıyoruz. İkinci olarak, sınırlayıcı kutuların içindeki belirli karakterleri belirlemek için işlenmiş sınırlayıcı kutuları bir metin tanıma modeline besliyoruz (metin tanımadan önce ayrıca Maksimal Olmayan Bastırma, perspektif dönüştürme vb. yapmamız gerekiyor). Bizim durumumuzda, her iki model de TensorFlow Hub'dandır ve FP16 nicelenmiş modellerdir.

Performans karşılaştırmaları

Performans kıyaslama numaraları burada açıklanan araçla oluşturulur.

Model adı Model boyutu Cihaz İşlemci GPU
Metin Algılama 45.9 Mb Piksel 4 (Android 10) 181.93 ms* 89,77 ms*
Metin Tanıma 16.8 Mb Piksel 4 (Android 10) 338,33 ms* Yok**

* 4 iplik kullanılmıştır.

** çalıştırmak için TensorFlow operasyonlarına ihtiyacımız olduğundan, bu model GPU temsilcisini kullanamadı

girişler

Metin algılama modeli, girdi olarak (1, 320, 320, 3) bir 4-D float32 kabul eder.

Metin tanıma modeli, girdi olarak (1, 31, 200, 1) 4 boyutlu bir float32 kabul eder.

çıktılar

Metin algılama modeli, sınırlayıcı kutu olarak 4-D float32 şekil Tensörü (1, 80, 80, 5) ve algılama puanı olarak 4-D float32 şekil Tensörü (1,80, 80, 5) döndürür.

Metin tanıma modeli, '0123456789abcdefghijklmnopqrstuvwxyz' alfabe listesine eşleme indeksleri olarak 2 boyutlu bir float32 şekil tensörü (1, 48) döndürür.

sınırlamalar

  • Geçerli metin tanıma modeli , İngilizce harfler ve sayılar içeren sentetik veriler kullanılarak eğitilir, bu nedenle yalnızca İngilizce desteklenir.

  • Modeller, vahşi ortamda OCR için yeterince genel değil (örneğin, düşük aydınlatma koşullarında bir akıllı telefon kamerası tarafından çekilen rastgele görüntüler).

Bu nedenle, yalnızca TensorFlow Lite ile OCR'nin nasıl yapıldığını göstermek için 3 Google ürün logosu seçtik. Kullanıma hazır, üretim sınıfı bir OCR ürünü arıyorsanız, Google ML Kit'i düşünmelisiniz. Altında TFLite kullanan ML Kiti, çoğu OCR kullanım durumu için yeterli olmalıdır, ancak TFLite ile kendi OCR çözümünüzü oluşturmak isteyebileceğiniz bazı durumlar vardır. Bazı örnekler:

  • Kullanmak istediğiniz kendi metin algılama/tanıma TFLite modelleriniz var
  • Özel iş gereksinimleriniz var (ör. ters çevrilmiş metinleri tanımak) ve OCR ardışık düzenini özelleştirmeniz gerekiyor
  • ML Kit kapsamında olmayan dilleri desteklemek istiyorsunuz
  • Hedef kullanıcı cihazlarınızda mutlaka Google Play hizmetlerinin yüklü olması gerekmez

Referanslar