天天看點

Tesseract-OCR 那些事

      從官網下載下傳Tesseract-OCR 并安裝之後。直接識别中文的話,效果其實并不理想 。

需要設定如下參數:

api.SetVariable("chop_enable","T");
	api.SetVariable("use_new_state_cost","F");
	api.SetVariable("segment_segcost_rating","F");
	api.SetVariable("enable_new_segsearch","0");
	api.SetVariable("language_model_ngram_on","0");
	api.SetVariable("textord_force_make_prop_words","F");
           

至于參數的詳細意思 可以參考 此連結。

       這樣一來後,會發現對宋體識别非常的好 ,幾乎可以到9成以上(反正我試驗是這樣的)。但是對于一些全角的标點符号識别還是不太好。

而且如果需要對其他字型提供支援的話,就需要去訓練我們的中文庫了。

     大緻步驟如下:

1.用工具生成 tif 和box 檔案(我推薦使用jTessBoxEditor 【這是個jar檔案 ,確定你系統安裝了java之後 在cmd裡面可以按如下方式啟動程式

】,完了後需要用qt-box-editor 去檢查生成的box檔案并修正)。

并手動建立一個font_properties檔案(内容 比如song 0 0 0 0 0),其實就是描述你目前要訓練的字型的屬性。詳情可以參考這裡。

2.CMD 進到訓練目錄 ,也就是上面生成的tif檔案,box檔案以及font_properties檔案所在的目錄。

2.執行 tesseract chi_sim.song.exp0.tif chi_sim.song.exp0 box.train    (說明  chi_sim.song.exp0.tif  是在步驟1生成的tif檔案名稱 依次是代表簡體中文,宋體,exp0應該類似分壓縮卷的意思 我試驗的隻有一個 是以我這邊沒有exp1  當然官網有介紹 合并exp1 ,exp2.。。是怎麼做的 )

3.執行     unicharset_extractor chi_sim.song.exp0.box

4.執行  cntraining chi_sim.song.exp0.tr

5.執行    mftraining -F font_properties -U unicharset chi_sim.song.exp0.tr

6.将後面生成的五個檔案 字首加上 chi_sim.     注意有末尾有dot

7.combine_tessdata chi_sim.   注意有末尾有dot

如果一切順利 就可以看到目錄下面生成了類似chi_sim.traineddata 的東西  并且大小不為0kb的話 。就成功了。

将其替換原來的庫檔案  。

繼續閱讀