我有一些關於 Tesseract 的問題
情境
我目前正在研究一種來自東德 (GDR) 的 80 年代開發的舊密碼演算法。我用 C# 實作了該演算法。現在我有大約 30 頁的測試案例需要檢查。因為我不想手動輸入每個二進位/十六進位字串,所以我想使用 Tesseract(或任何可用的免費軟體)對其進行 OCR。
問題
我很難獲得令人滿意的結果。下面更詳細地解釋。
目前狀態
(抱歉,我不能直接發布圖片)該文件如下所示: 頁面的一部分/詳細字母
天真的方法
使用預設設定(我使用德語對於相關部分來說應該無關緊要)我得到了悲慘的結果。
tesseract -l deu input.tiff output pdf
結果看起來像這
尤其是零會帶來麻煩。單字、字母和個數的辨識效果更好一些。
我嘗試過的(預處理)
- 旋轉頁面
- 增加對比度
- 二值化影像
- 腐蝕/膨脹影像以填充字母之間的小間隙
最終結果看起來像這。據我所知,OCR 應該會讓事情變得更好一點。
我嘗試過的(超立方體設定)
我的設定檔如下所示:
load_system_dawg F
load_freq_dawg F
language_model_penalty_non_dict_word 0
language_model_penalty_non_freq_dict_word 0
tessedit_create_pdf T
tessedit_char_whitelist 0123456789ABCDEF
我基本上告訴 Tesseract 不要嘗試從字母中產生有用的單詞,而只允許十六進位字串所需的字元。
如你看到的這裡這會帶來稍微好一點的結果,但並非在所有情況下都是如此。最後一行中的一些零的檢測效果明顯較好。在 F 之間沒有發生任何有用的事情。
神經網路與經典 OCR (--oem 0/1) 的設定略有不同。經典演算法將許多 0 檢測為 9(從不檢測為 0),但更加一致(但不好)
問題
我可以進一步做些什麼來改善結果?我知道我可以另外訓練神經網絡,但就我所讀到的內容而言,這需要一些努力,我想避免這些努力(為自己構建 Tesseract、讓 ML 東西發揮作用、製作標記的測試數據等)。
還要別的嗎?
感謝您的協助。