2012-01-28 38 views
3

我正在努力讓林肯字體在Tesseract中工作,即使經歷了wildly complicated training process之後,我也得到了糟糕的結果。向Tesseract OCR引擎添加Blackletter字體支持

這是字體的樣子,所以是的,這是一個有點棘手:

Lincoln sample

我精心製作訓練圖像,然後用,爲了使文件箱。 The training image is here (25MB!)。圖像是300 DPI,並有垂直和水平很好的代表性字符。

我爲訓練圖像製作了一個盒子文件,它工作正常。我已使用a box file editor驗證它是正確的。

我把這個盒子文件/ tif文件,並用它來創建訓練數據。我也採用了Tesseract提供的30 or so other sample images/fonts

我創建了unicharset文件。

我創建了一個font_properties文件。在網站上沒有關於何時應該使用fraktur的指導。所以,我已經試過了兩個這樣(fraktur對林肯):

eng.lincoln.box 0 0 0 0 1 

而且這種方式(fraktur關閉):

eng.lincoln.box 0 0 0 0 0 

最後,我有和沒有字典試過這種文件。當我使用字典文件時,它們是我的搜索引擎Sphinx的wordmap,它們有大約15K個常用字和大約20K個不常用字。

在所有情況下,當我嘗試OCR第一對夫婦this file (3MB)時,質量很差。而不思:

United States Court of Appeals 
for the Federal Circuit 

我得到:

OniteiJ %tates C0urt of QppeaIs 
for the jfeI1eraICircuit 

爲什麼?

回答

1

我認爲你需要更多的樣本(字母)和更好的訓練圖像(乾淨的背景,灰度,300 DPI等)。首先嚐試僅使用一種字體(例如,林肯)進行訓練。您可以使用jTessBoxEditor工具來生成訓練圖像並編輯盒子文件。

一旦您掌握了培訓流程,您可以將其他字體添加到您的培訓中。您可以通過在訓練圖像本身上執行OCR來測試生成的語言數據的成功 - 識別率應該很高。

在font_properties字體名稱應該是這樣的:

林肯0 0 0 0 1

+1

最終,我做出更大的訓練文件,並一遍又一遍地重複訓練過程,直到它的工作。謝謝您的幫助。 – mlissner 2012-02-13 08:04:25

1

我不是Tesseract專家,但我已經評估幾乎所有可用的OCR引擎,我的評論是基於多年來分析OCR錯誤的經驗。

只是想知道爲什麼你的圖像在背景中有斑點而不是純白色背景。我不知道Tesseract或培訓工具如何工作,但背景可能會導致一些問題。

只是閱讀樣本頁面很困難,需要大量的注意力。像F和I這樣的字符與U和N非常相似。與許多OCR引擎一樣,Tesseract將使用許多不同的技術來識別字符,並且在筆劃和曲線方面,許多這些字符之間沒有太大的區別在字體中使用。

這些字符,尤其是大寫字符會混淆許多不同的匹配算法,僅僅因爲它們與標準拉丁/羅馬字符類型非常不同。這顯示了你的結果即通過。所有大寫字母都有OCR錯誤。