Optische Zeichenerkennung (OCR)

Optische Zeichenerkennung (OCR) ist der Prozess der Erkennung von Zeichen aus Bildern mithilfe von Computer Vision und maschinellen Lerntechniken. Diese Referenz-App demonstriert die Verwendung von TensorFlow Lite für OCR. Es verwendet eine Kombination aus Texterkennungsmodell und ein Texterkennungsmodell als OCR - Pipeline Textzeichen zu erkennen.

Loslegen

Wenn Sie neu bei TensorFlow Lite sind und mit Android arbeiten, empfehlen wir Ihnen, die folgende Beispielanwendung zu erkunden, die Ihnen den Einstieg erleichtern kann.

Android-Beispiel

Wenn Sie eine andere Plattform als Android verwenden, oder Sie sind bereits vertraut mit der TensorFlow Lite - APIs können Sie die Modelle von Download TF Hub .

Wie es funktioniert

OCR-Aufgaben werden oft in 2 Phasen unterteilt. Zuerst verwenden wir ein Texterkennungsmodell, um die Begrenzungsrahmen um mögliche Texte zu erkennen. Zweitens speisen wir verarbeitete Begrenzungsrahmen in ein Texterkennungsmodell ein, um spezifische Zeichen innerhalb der Begrenzungsrahmen zu bestimmen (wir müssen auch nicht-maximale Unterdrückung, perspektivische Transformation usw. vor der Texterkennung durchführen). In unserem Fall stammen beide Modelle von TensorFlow Hub und es handelt sich um FP16-quantisierte Modelle.

Leistungsbenchmarks

Performance - Benchmark - Nummern werden mit dem Werkzeug erzeugt beschrieben hier .

Modellname Modellgröße Gerät Zentralprozessor GPU
Texterkennung 45,9 MB Pixel 4 (Android 10) 181,93 ms* 89,77 ms*
Texterkennung 16,8 MB Pixel 4 (Android 10) 338,33 ms* N / A**

* 4 Threads verwendet.

** Dieses Modell konnte keinen GPU-Delegaten verwenden, da wir TensorFlow-Operationen benötigen, um es auszuführen

Eingänge

Das Texterkennungsmodell akzeptiert einen 4-D float32 Tensor (1, 320, 320, 3) als Eingabe.

Das Texterkennungsmodell akzeptiert einen 4-D float32 Tensor (1, 31, 200, 1) als Eingabe.

Ausgänge

Das Texterkennungsmodell liefert eine 4-D float32 Tensor der Form (1, 80, 80, 5) als Bounding - Box und ein 4-D float32 Tensor der Form (1,80, 80, 5) als Detektions Score.

Das Texterkennungsmodell liefert ein 2-D float32 Tensor der Form (1, 48) als die Abbildungsindizes zum Alphabet Liste ‚0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ‘

Einschränkungen

  • Das aktuelle Texterkennungsmodell wird mit englischen Buchstaben und Zahlen synthetische Daten abgerichtet, so dass nur Englisch unterstützt wird.

  • Die Modelle sind nicht allgemein genug für OCR in freier Wildbahn (z. B. zufällige Bilder, die von einer Smartphone-Kamera bei schlechten Lichtverhältnissen aufgenommen wurden).

Daher haben wir drei Google-Produktlogos ausgewählt, um zu demonstrieren, wie OCR mit TensorFlow Lite durchgeführt wird. Wenn Sie ein ready-to-use Produktionsqualität OCR Produkt suchen, sollten Sie Google ML Kit . ML Kit, das darunter TFLite verwendet, sollte für die meisten OCR-Anwendungsfälle ausreichen, aber es gibt einige Fälle, in denen Sie möglicherweise Ihre eigene OCR-Lösung mit TFLite erstellen möchten. Einige Beispiele sind:

  • Sie haben Ihre eigenen TFLite-Modelle zur Texterkennung/-erkennung, die Sie verwenden möchten
  • Sie haben spezielle geschäftliche Anforderungen (z. B. Erkennen von Texten, die auf dem Kopf stehen) und müssen die OCR-Pipeline anpassen
  • Sie möchten Sprachen unterstützen, die nicht von ML Kit abgedeckt werden
  • Auf Ihren Zielbenutzergeräten sind nicht unbedingt Google Play-Dienste installiert

Verweise