2015-09-29 62 views
1

我試圖改進OpenSource OCR軟件的結果。我正在使用tessaract,因爲我發現它仍然比gocr產生更好的結果,但是質量差的輸入會帶來很大的問題。於是,我就prepocess用各種工具在圖像我在互聯網上找到:如何提高OCR結果

  • unpaper
  • 弗雷德的ImageMagick的腳本:TEXTCLEANER使用GIMP

  • 手冊冊,但我沒能得到這個不好的測試文件的好結果:(真的只是爲了測試,我不需要這個文件的內容) http://9gag.com/gag/aBrG8w2/employee-handbook

    這個在線伺服器這個測試文檔的冰塊效果出奇的好: http://www.onlineocr.net/

    我想知道是否有可能使用智能預處理來獲得與tesseract類似的結果。與商業版本相比,OpenSource OCR引擎是否真的如此糟糕?即使谷歌使用tesseract掃描文件,所以我期待更多...

  • 回答

    0

    Tesseract的識別精度比最好的商業精度(Abbyy FineReader)低一點,但它更靈活,因爲它的性質。 這種靈活性有時需要一些預處理,因爲Tesseract無法管理每種情況。 其實谷歌使用它是因爲Google是它的主要贊助商!

    您可以做的第一件事就是嘗試擴展文本以獲得至少20個像素寬的字符或更多。由於Tesseract將角色邊界的主要部分作爲特徵使用,因此與其他算法相比,它需要具有更大的字符大小。

    您可以嘗試的另一件事,總是指您提到的測試文檔,是使用自適應閾值方法對您的圖像進行二值化處理(這裏您可以找到關於https://dsp.stackexchange.com/a/2504的一些信息),因爲照明中存在一些變化。 Tesseract在內部對圖像進行二值化處理,但這可能是這種情況,當它不能這樣做時(它與此處的示例Improving the quality of the output with Tesseract類似,您可以在其中找到其他一些有用的信息)

    +0

    提高分辨率提高的結果。 我玩了自適應閾值,它解決了不均勻的照明問題,但是有白色區域的問題。我從Fred的ImageMagick腳本中找到了2colreshresh,以提供更好的結果。 我的當前命令如下所示: convert aBrG8w2_700b.jpg -resize 1600 -contrast -contrast -contrast + dither -colors 2 -colorspace gray -contrast-stretch 10%test.png && tesseract test.png test && cat test。 txt 好得多,但仍然不是真正可用的。有沒有人有更好的方法? –

    +0

    與區域有關的問題是因爲當使用自適應閾值進行遊戲時,通常意味着將圖像分成小塊,而不是單獨對每一個進行二進制化。因此,在某些塊(如您所談論的白色區域)中將不會出現前景(文本)和背景,並且在這種情況下二值化失敗。 我不知道你使用的算法有多靈活,但是一個解決方案可以從每個塊的閾值中減去一個常數,這樣即使沒有文本存在,閾值也會低於白色背景。 – giubacchio

    +0

    無論如何,即使您使用的閾值算法不靈活,刪除這些工件也不是什麼大問題。一種方法可能是查看每個blob的幾何屬性。 – giubacchio

    0

    我懷疑谷歌仍然在Google文檔中使用Tesseract 。作爲一款優秀且免費OCR解決方案:

    我與你的測試文檔測試的免費OCR API在http://ocr.a9t9.com/ocrapi,結果非常好:幾乎一樣好ABBYY,約等於onlineocr.net,當然更好比Tesseract。

    結果覆蓋:http://imgur.com/dUEL0G0

    (此API使用免費的Microsoft OCR庫中)