2014-12-27 7 views
11

Ich arbeite an der OCR-Erkennung von gedrucktem Text. Insbesondere konzentriere ich mich auf den Vorverarbeitungsschritt, um die Ergebnisse der Tesseract-Maschine zu verbessern. Ich habe bereits gute Ergebnisse mit adaptiven Schwellenwertbildung, Rauschunterdrückung, Text-Schräglage, etc ... erreicht. Aber Tesseract scheint immer noch zu versagen, wenn andere kommerzielle Produkte anständige Ergebnisse liefern.Tesseract OCR-Ergebnisse mit unscharfem Text verbessern

Ich habe das folgende Testbild verwendet und hier sind die Ergebnisse mit Tesseract 3.04 im Vergleich zu zwei kommerziellen OCR-Apis erhalten. Alle 3 Dienste wurden mit demselben Binärbild versehen, das etwas unscharfen Text enthält.

Text image used to compared the 3 OCR products

Tesseract

Careers in Technology Consulting 

Networking Lunch 
21 m 2014, 11:00 - 14:30 

Definingthecorporatellstmtegy, Wammmwdngdeal, creating 
uniquebwinessisighnwilgbigdam-doesflismflxemmyouafioy? 

Findoutmoreabanhowitfeektomkasatedlflogymbyjoiningour 

for further mm please visit mAeloittexom/weers 

ABBYY Fine Reader Online

Careers in Technology Consulting 
Networking Lunch 
21 November 2014,1140-14:30 
Defining the corporate IT strategy, planning a multHnKon <Mar outsourcing deal, creating unique business insights using big data-doesthis sound Ifce something you enjoy? 
Find out more about hour it feels to work as a technology consultant by joining our exclusive networking lunch, 
For further information please visit wrwMuleloittexom/carcert 

Online OCR

Jetzt frage ich mich, ob die große Lücke zwischen Tesseract und den anderen beiden Produkten auf eine andere Engine zurückzuführen ist (sicher, dass ABBYY seine eigene Engine verwendet, nicht sicher über OCR Web Service) oder es andere Vorverarbeitungsschritte gibt kann vor dem Ausführen von Tesseract durchgeführt werden. Hast du irgendwelche Vorschläge?

+0

Wie wäre es mit dem Auschecken eines kostenlosen Posts und der Annahme einer Antwort? – Claudio

+0

Wie wäre es mit dem Auschecken eines kostenlosen Posts und der Annahme einer Antwort? – Claudio

Antwort

2

Hier ein Vorschlag für "magische" OCR-Vorverarbeitung. Um das Prinzip der vorgeschlagenen Vorverarbeitung Idee zu erklären, lassen Sie uns einen Auszug aus dem Textbild versehen betrachten, auf dem alle getesteten OCRs fehlgeschlagen:

original image

und anwenden, um es einige „Vorverarbeitung-Weisheit“ . Zunächst wird die übliche Thresholding:

thresholded image

und dann einige „Magie“ durch vertikale Linien durch Mund-Elemente Schießen, max erfassen. 2 Pixel hoch „Bars“, und sie an ihren Rändern Schneiden zusammen mit dem Wort-Element nach unten in seine untere Linie schneiden:

after extracting "i"s

nun von der Aufnahme Linien durch die Wort-Elemente in diesem Bild aus vertikalen Umschalten auf horizontal diejenigen, um sehr breite „Bars“ zu erkennen und vertikal in der Mitte ihrer Breite geschnitten:

after splitting grown-together characters

dieser jede OCR-Engine helfen sollte bessere Ergebnisse auf diesem Bild zu liefern. Ich kann mir vorstellen, dass einige kommerzielle OCR-Engines diesen Ansatz bereits nutzen, um eine bessere Erkennung als die getesteten zu bieten.

In diesem Zusammenhang sei noch eine freie OCR-Engine in den Ubuntu-Repositories erwähnt (vergleichbar mit tesseract). Wenn man sie gegeneinander testet, kann man sich noch mehr wundern, wie es dazu kommt, dass sie unterschiedliche Ergebnisse liefern und dann in ihren Quellcode schauen, um zu wissen :) und aus dieser Erfahrung etwas über die kommerziellen abzuleiten.

sudo apt-get install cuneiform gocr ocrad