wake-up-neo.com

Wie wähle ich zwischen Tesseract und OpenCV?

Ich bin kürzlich auf Tesseract und OpenCV gestoßen. Es sieht so aus, als sei Tesseract eine vollwertige OCR-Engine, und OpenCV kann als Framework zum Erstellen einer OCR-Anwendung/eines OCR-Dienstes verwendet werden. 

Ich habe versucht, Tesseract für einige meiner Bilder zu verwenden, und seine Genauigkeit scheint anständig zu sein. Später stieß ich auf ein sehr einfaches Tutorial zur Verwendung von OpenCV, um OCR mit Python auszuführen, und war beeindruckt. In wenigen Minuten war ich mit dem Training fertig und die Genauigkeit war gut. Wenn Sie diesen Ansatz wählen, muss ich mein System natürlich mit einem großen Trainingsset umfassend trainieren. 

Meine spezifischen Fragen lauten wie folgt:

  • Wie kann man zwischen Tesseract und der Verwendung von OpenCV wählen, um eine benutzerdefinierte OCR-App zu erstellen?
  • Es gibt Schulungsdatensätze für Tesseract für verschiedene Sprachen. Hat OpenCV etwas Ähnliches, damit ich nicht erst anfangen muss, um OCR zu erreichen?
  • Welches ist besser für eine kommerzielle Bewerbung?

Irgendwelche Vorschläge?

Note: Ich bin 24 Stunden alt im Bereich Computer Vision, aber ich bin bereit, Zeit und Mühe zu investieren, um die Voraussetzungen zu lernen.

78
Legend
  • Tesseract ist eine OCR-Engine. Es wird von Google verwendet, bearbeitet und finanziert, und zwar speziell zum Lesen von Text aus Bildern, zum Durchführen einer einfachen Dokumentensegmentierung und zur Bearbeitung bestimmter Bildeingaben (einzelne Wörter, Zeilen, Absätze, Seiten, eingeschränkte Wörterbücher usw.).

  • OpenCV hingegen ist eine Bibliothek für die Bildverarbeitung, die Funktionen enthält, mit denen Sie bestimmte Funktionen extrahieren und Daten klassifizieren können. Sie können einen einfachen Buchstaben-Segmentierer und -Klassifizierer erstellen, der grundlegende OCR-Funktionen ausführt, aber es ist keine sehr gute OCR-Engine (ich habe in Python zuvor schon von Grund auf eine erstellt. Die Eingabe ist wirklich ungenau und weicht von Ihren Trainingsdaten ab).

Wenn Sie wissen möchten, wie schwer OCR ist, versuchen Sie es mit OpenCV. Tesseract ist für real OCR.

68
Blender

Ich bin der Autor dieses Tutorials zur Erkennung von Ziffern, das Sie erwähnt haben, und ich würde sagen, dass dies kein Ersatz für tesseract ist.

Tesseract ist eine wirklich gute OCR-Engine, möglicherweise die beste OpenSource-OCR-Engine.

Das von Ihnen erwähnte Tutorial ist nur ein Versuch, um die einfachste Arbeitsweise von OCR zu verstehen.

Wenn Sie also nach einer OCR-App suchen, würde ich Ihnen empfehlen, OpenCV für die Vorverarbeitung des Bildes zu verwenden und anschließend die Tesseract-Engine anzuwenden.

60
Abid Rahman K

Die beiden können sich ergänzen. Wenn Sie das Dokument auf OpenCV http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf lesen

Es hebt hervor, dass "Tesseract seit der unabhängigen Entwicklung der Seitenlayout-Analysetechnologie, die in Produkten verwendet wurde (und daher nicht für Open Source freigegeben wurde), keine eigene Seitenlayout-Analyse benötigte. Tesseract geht daher davon aus, dass seine Eingabe ein binäres Bild mit ist optionale polygonale Textbereiche definiert. "

Diese Art von Aufgabe kann von OpenCV ausgeführt und das resultierende Bild an Tesseract übergeben werden. Ein Beispiel für diesen Codetyp finden Sie im Git-Repo: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples Die Beispiele verwenden dazu die Tesseract-APIs Umwandlung von Bild in Text.

7
user2957542

OpenCV ist eine Bibliothek für CV , die allgemein zur Analyse und Verarbeitung von Bildern verwendet wird. Tesseract ist eine Bibliothek für OCR , eine spezialisierte Teilmenge des Lebenslaufs, die sich zum Extrahieren von Text aus Bildern eignet.

Von OpenCV.org

..... zum Erkennen und Erkennen von Gesichtern, zum Erkennen von Objekten, zum Klassifizieren menschlicher Aktionen in Videos, zum Verfolgen von Kamerabewegungen, zum Verfolgen von sich bewegenden Objekten, zum Extrahieren von 3D-Modellen von Objekten, zum Erzeugen von 3D-Punktwolken aus Stereokameras, zum Zusammenfügen von Bildern zu einem Hoch Bild einer ganzen Szene auflösen, ähnliche Bilder aus einer Bilddatenbank finden, rote Augen von Bildern entfernen, die mit Blitz aufgenommen wurden, Augenbewegungen folgen, Landschaft erkennen und Markierungen festlegen, um sie mit Augmented Reality zu überlagern

Von Tesseract Github :

..... kann direkt verwendet werden oder (für Programmierer) mithilfe einer API, um typisierten, handgeschriebenen oder gedruckten Text aus Bildern zu extrahieren. Es unterstützt eine Vielzahl von Sprachen.

1
Aniruddha Varma