本文主要參考官方文檔編寫實踐而成
識別庫訓練與應用步驟
通過jtessboxeditor生成.tiff圖片合集
打開jTessBoxEditor->Tools->Merge Tiff,選擇要識別的.tiff文件,生成圖片集保存爲totol.tiff
-生成Box 文件
- 打開命令行定位到剛纔totol.tiff文件的目錄下。
我的文件是保存在D:\img下面
- 運行tessract如下命令生成box文件
//tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
tesseract eng.totol.exp0.tif eng.totol.exp0 batch.nochop makebox
運行完以後img目錄下面將生成一個eng.totol.exp0.box文件 - 打開jTessBoxEditor->Box Editor->open選擇之前生成的totol.tiff文件,修正識別結果並保存
生成tr文件
運行命令
tesseract eng.totol.exp0.tif eng.totol.exp0 box.train
img目錄下面生成了eng.totol.exp0.tr、eng.totol.exp0.txt兩個文件
計算訓練庫的字符集
運行命令
unicharset_extractor eng.totol.exp0.box
img目錄下面生成了 unicharset文件
字符屬性文件font_properties
- 新建一個文件font_properties不要拓展名,保存後打開編輯輸入
totol 0 0 0 0 0
聚類
- 運行命令生成shapetable文件
shapeclustering -F font_properties -U unicharset eng.totol.exp0.tr
- 運行命令生成eng.unicharset、inttemp、pffmtable、normproto文件
mftraining -F font_properties -U unicharset -O eng.unicharset eng.totol.exp0.tr
cntraining eng.totol.exp0.tr
數據字典
- 這img文件下新建一個words_list文件輸入你的文字庫
格式一個字符一行,我這裏識別小寫字母和數字
1
2
3
4
5
6
7
8
9
0
a
.... - 運行命令生成eng.word-dawg文件
wordlist2dawg words_list eng.word-dawg eng.unicharset
編寫unicharambigs文件
unicharambigs文件是用來糾正識別錯誤的具體含義參照官方文檔
v1
1 m 2 r n 0
合成eng.traineddata文件
- 將hapetable, normproto, inttemp, pffmtable、(unicharambigs)加上lang.前綴(例子是eng.)
- 運行命令生成traineddata文件
combine_tessdata eng.
應用
將eng.traineddata文件複製到tessdata 目錄下