Yardım Kaggle üzerinde TensorFlow ile Büyük Bariyer Resifi korumak Meydan Üyelik

Optik karakter tanıma (OCR)

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. Bu bir kombinasyonunu kullanır metin algılama modeli ve bir metin tanıma modeli metin karakterleri tanımak için bir OCR boru hattı gibi.

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 platformu kullanıyorsa veya zaten aşina değilseniz TensorFlow Lite API'ler , aralarından modelleri indirebilirsiniz TF Hub .

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 besleriz (metin tanımadan önce ayrıca Maksimal Olmayan Bastırma, perspektif dönüştürme vb. yapmamız gerekir). Bizim durumumuzda, her iki model de TensorFlow Hub'dandır ve FP16 nicelenmiş modellerdir.

Performans karşılaştırmaları

Performans kriter numaraları açıklanan aracıyla oluşturulan burada .

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 tespit modeli bir 4-d kabul float32 girdi olarak (1, 320, 320, 3) tensör.

Metin tanıma modeli 4-d kabul float32 girdi olarak (1, 31, 200, 1) tensör.

çıktılar

Metin tespit modeli döner bir 4-d float32 sınırlayıcı kutusu gibi şekil tensör (1, 80, 80, 5) ve bir 4-d float32 tespit puan olarak şekil (1,80, 80, 5) tensör.

Metin tanıma modeli 2-B döner float32 alfabe listesi '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' eşleme endeksleri olarak (48 1), şekil tensör

sınırlamalar

  • Geçerli metin tanıma modeli yani sadece İngilizce destekleniyor İngilizce harf ve rakamlardan, sentetik veriler kullanılarak eğitilmiştir.

  • 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 nasıl OCR yapılacağını göstermek için 3 Google ürün logosu seçtik. Eğer hazır bir kullanımlı üretim dereceli OCR ürün için arıyorsanız, size düşünmelisiniz tarihinde ML Kit . Altında TFLite kullanan ML Kit, ç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