2014-02-17 50 views
2

我必須從PDF文檔的OCR表。我編寫了簡單的Python + opencv腳本來獲取單個單元格。之後出現新問題。文本反鋸齒,質量不高。 tesseract的識別率非常低。我試圖用自適應閾值預處理圖像,但結果並不好。 我試過ABBYY FineReader的試用版,它確實提供了很好的輸出,但我不想使用非自由軟件。 我不知道一些預處理是否會解決問題,或者是否需要編寫和學習其他OCR系統。關於反鋸齒文本的OCR

http://oi60.tinypic.com/ztzsrq.jpg http://i57.tinypic.com/xmpcm9.png

回答

2

如果您在您的反鋸齒文字樣品仔細觀察,你會發現邊緣中含有大量的紅色和藍色:

enlarged view of antialiased text

這表明抗鋸齒髮生在您的計算機內部,該計算機已使用subpixel rendering優化液晶顯示器的結果。

如果是這樣,應該很容易以更高的分辨率提取文本。例如,你可以使用ImageMagick的300 dpi的分辨率來提取PDF文件中的圖像通過使用如下命令行:

convert -density 300 source.pdf output.png 

你甚至可以嘗試加載PDF中您最喜歡的瀏覽器,並直接複製文本到剪貼板。


附錄:

我想轉換您的示例文本回到它的原始像素,並應用在評論中提到的縮放技術。下面是結果:

原圖:
smart scaled and thresholded image

正如你:
scaled and thresholded image

智能縮放和閾值後:
original image

縮放300%和運用簡單的閾值後,可以看到,有些字母仍然有點畸形,但我認爲讀這個的機會更大與Tesseract。

+0

感謝sugesting子像素渲染,但文本似乎是預渲染。我附加的圖像是使用ImageMagic和-density 300提取的。因此,當我在PDF閱讀器中加載頁面並將其放大時,結果是相似的,這並不奇怪。 – Rifti

+0

@ user3318776昨天我在玩這個問題,想出了一個[圖像縮放技術,考慮到亞像素抗鋸齒](http://ruletheweb.co.uk/blog/2014/02/subpixel-aware-圖像縮放/)。這可能會使Tesseract從這些掃描中提取文本更容易。首先,您必須從PDF文件中提取原始嵌入圖像,但這不應該太困難。 –

+0

謝謝。準確度要好得多。我會嘗試重新訓練tesseract與生成的文本並比較結果。 – Rifti