Das Unternehmen, an dem ich arbeite, erwägt, seine aktuelle OCR-Engine (Nuances OmniPage) auf eine Open-Source-Alternative wie Tesseract umzustellen.
In der Hoffnung, einige Leistungsbenchmarks (Ausführungsgeschwindigkeit und Genauigkeit) zu bekommen, um beide zu vergleichen, habe ich ein sehr einfaches Programm bekommen, um nur eine Vorstellung davon zu bekommen, wie gut die Tesseract 3.2 C API funktionieren würde.
Meine ersten Beobachtungen (einige von ihnen sind vielleicht aus, fühlen Sie sich frei, meine Interpretationen in den Kommentaren zu korrigieren):
style
-Element hinzufügt, das die left
, right
, width
, height
und position
Attribute des HTML-Tags, diese Einschränkung ist also gering. Wenn es nur um die anderen Faktoren geht, könnte die Migration wahrscheinlich ohne zu viel Problem durchgeführt werden. Diese Leistungseinschränkung ist jedoch ein Mörder.
Dann dachte ich mir: Wie konnte Tesseract im Vergleich zu seinen kommerziellen Äquivalenten so schlecht arbeiten? Google würde sicherlich nach Leistung streben.
Also, ich bin mir fast sicher, dass das Problem von mir kommt. Ich benutze die API entweder nicht richtig, ich ändere nicht die Einstellungen, die ich sollte oder etwas anderes, das ich gerade vermisse.
Hier ist der Abschnitt meines Testprogramms zu Tesseract:
%Vor%Ich habe versucht mit verschiedenen Seitensegmentierungsmodi und ohne die Erstellung des Hocr-Formats aktiviert zu haben, nur um genauso enttäuscht zu sein wie zuvor. Ich habe auch versucht, einige Vorverarbeitungsskripte auf das Bild anzuwenden, um zu sehen, ob es ein wenig für die Erkennung helfen würde, aber ohne Erfolg. Ich habe es mit nur einem Wörterbuch zu Testzwecken versucht, aber es hatte keine großen Auswirkungen auf die Performance. Ich hatte die gleichen Leistungsprobleme mit mehrseitigen TIF-Dateien und Einzelseiten-TIF-Bildern und versuchte noch keine anderen Formate.
Das schnelle Profiling der Anwendung mit VerySleepy zeigte, dass die meiste Ausführungszeit für new
s und delete
s für Begrenzungsrahmen ausgegeben wurde.
Ich würde wirklich gerne zu einer Open-Source-Bibliothek anstatt zu einem kommerziellen Produkt wechseln, daher würde ich es begrüßen, wenn mir jemand helfen könnte, eine bessere Leistung mit der API zu erzielen. Wenn ich keine dramatischen Verbesserungen erzielen kann, um Leistungsergebnisse zu erhalten, die denen der aktuellen Engine ähneln, wird die Migration nicht stattfinden.
Vielen Dank für Ihre wertvolle Zeit.
Hier ist ein Bild von meinem Testset:
Ich glaube nicht, dass Sie etwas dagegen tun können. Das ist richtig, Tessect ist unglaublich langsam im Vergleich zu kommerziellen Motoren wie OmniPage oder ABBYY. Jeder Vergleichstest zeigt das. Diese Unternehmen machen OCR, um ihren Lebensunterhalt zu verdienen, und legen großen Wert auf Geschwindigkeit, Genauigkeit und andere Faktoren.
Tags und Links c++ ocr tesseract performance