Ich bin kürzlich auf Tesseract und OpenCV gestoßen . Es sieht so aus, als ob Tesseract eine vollwertige OCR-Engine ist und OpenCV als Framework zum Erstellen einer OCR-Anwendung / eines OCR-Dienstes verwendet werden kann.
Ich habe versucht, Tesseract für einige meiner Bilder zu verwenden, und die Genauigkeit scheint anständig zu sein. Später stieß ich auf ein sehr einfaches Tutorial zur Verwendung von OpenCV zur Durchführung von OCR mit Python und war beeindruckt. In wenigen Minuten war ich mit dem Training des Systems fertig und seine Genauigkeit war gut. Dieser Ansatz bedeutet natürlich, dass ich mein System mithilfe eines großen Trainingssatzes umfassend trainieren muss.
Meine spezifischen Fragen sind folgende:
- Wie wählt man zwischen Tesseract und OpenCV, um eine benutzerdefinierte OCR-App zu erstellen?
- Für Tesseract stehen Trainingsdatensätze für verschiedene Sprachen zur Verfügung. Hat OpenCV etwas Ähnliches, damit ich nicht von Grund auf neu anfangen muss, um OCR zu erreichen?
- Welches ist besser für eine kommerzielle Anwendung?
Irgendwelche Vorschläge?
OCR accuracy tests
und Sie finden einige Diagramme. Und wenn es um mobile Apps geht, verwenden die meisten von ihnen Tesseract. Wenn Sie sich jedoch die Mühe machen, einige davon herunterzuladen, werden Sie feststellen, dass die Ergebnisse etwas anders sind als die Versprechen. Normalerweise erstellen sie eine Videodemo in einer sorgfältig kontrollierten Umgebung und veröffentlichen sie auf Youtube. In freier Wildbahn erhalten Sie jedoch lustige Ergebnisse, wenn Sie eine Seite / ein Rezept / eine Karte / was auch immer scannen.Antworten:
Tesseract ist eine OCR-Engine. Es wird von Google speziell verwendet, bearbeitet und finanziert, um Text aus Bildern zu lesen, eine grundlegende Dokumentensegmentierung durchzuführen und bestimmte Bildeingaben (ein einzelnes Wort, eine Zeile, ein Absatz, eine Seite, begrenzte Wörterbücher usw.) zu bearbeiten.
OpenCV hingegen ist eine Computer-Vision-Bibliothek, die Funktionen enthält, mit denen Sie einige Funktionen extrahieren und Daten klassifizieren können. Sie können einen einfachen Buchstabensegmentierer und -klassifizierer erstellen, der eine grundlegende OCR ausführt, aber es ist keine sehr gute OCR-Engine (ich habe zuvor eine in Python erstellt. Sie ist wirklich ungenau für Eingaben, die von Ihren Trainingsdaten abweichen).
Wenn Sie ein grundlegendes Verständnis dafür erhalten möchten, wie schwierig OCR ist, versuchen Sie es mit OpenCV. Tesseract ist für echte OCR.
quelle
0
als8
(insgesamt 20,00 USD) erkannt . Ich gebe zu, dass diese Ziffer selbst für mich schwer zu entziffern war, aber ich war mir nicht sicher, was ich sonst noch tun kann, um Tesseract an diese Situationen anzupassen oder vielleicht eine Lernkomponente einzuführen, wenn ich eine aktive Benutzerbasis haben werde.Ich bin der Autor des von Ihnen erwähnten Tutorials zur Ziffernerkennung, und ich würde sagen, das ist kein Ersatz für Tesseract.
Tesseract ist eine wirklich gute OCR-Engine, möglicherweise die beste OpenSource-OCR-Engine.
Das von Ihnen erwähnte Tutorial ist nur ein Versuch, 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 dann die Tesseract-Engine anzuwenden.
quelle
Die beiden können sich ergänzen. Wenn Sie das Papier auf OpenCV lesen: https://github.com/tesseract-ocr/docs/blob/master/tesseracticdar2007.pdf
Es wird Folgendes hervorgehoben: "Da HP eine unabhängig entwickelte Technologie zur Analyse des Seitenlayouts hatte, die in Produkten verwendet wurde (und daher nicht für Open Source freigegeben wurde), benötigte Tesseract nie eine eigene Analyse des Seitenlayouts. Tesseract geht daher davon aus, dass die Eingabe ein Binärbild 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 Tesseract-APIs für die Konvertierung von Bild in Text.
quelle
OpenCV ist eine Bibliothek für Lebensläufe , mit der Bilder im Allgemeinen analysiert und verarbeitet werden. Tesseract ist eine Bibliothek für OCR , eine spezielle Teilmenge des Lebenslaufs, die sich dem Extrahieren von Text aus Bildern widmet.
Von OpenCV.org
Von Tesseract Github :
quelle