使用jTessBoxEditorFX进行ocr训练
实际的操作步骤如下。
先把训练用样本图像准备好。
1、打开 jTessBoxEditor ,选择 Tools -> Merge TIFF,打开对话框,选择训练样本所在文件夹,并选中所有要参与训练的样本图片,注意对话框中“文件类型”的选取png
2、之后有打开对话框,输入“chi_my.font.exp0.tif”,格式为tiff。其中chi_my可改为自己定义。
会生成chi_my.font.exp0.tif文件。
3、在命令行下执行
tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l chi_sim batch.nochop makebox
tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l eng batch.nochop makebox
会生成“chi_my.font.exp0.box” 文件。
4、打开 jTessBoxEditor ,点击 Box Editor -> Open,选择chi_my.font.exp0.tif文件。
5、调整识别错误的情况
会是惨绝人寰的过程。尤其是图像,字符比较多的情况。
注意、修改后的保存需点击界面上charater后的标识为设置图标的button后,再点击save按钮。
6、创建字体特征文件
echo font 0 0 0 0 0>font_properties
会生成“font_properties” 文件。文件size显示为0字节。其实里面有‘“font 0 0 0 0 0”’内容。
7、训练
tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l eng -psm 7 nobatch box.train
8、生成字符集文件
unicharset_extractor chi_my.font.exp0.box
生成 “unicharset” 文件。
9、生成shape文件,聚集字符特征文件,字符正常化特征文件等四个文件。
9.1、命令 shapeclustering -F font_properties -U unicharset -O langyp.unicharset langyp.fontyp.exp0.tr
生成 “shapetable”“inttemp”“pffmtable” 文件。
9.2、命令 mftraining -F font_properties -U unicharset -O langyp.unicharset langyp.fontyp.exp0.tr
生成 “pinyin.unicharset” 文件。
9.3、命令 cntraining langyp.fontyp.exp0.tr
生成 “normproto” 文件。
10、更名,合并训练文件
更名
rename normproto langyp.normproto
rename inttemp langyp.inttemp
rename pffmtable langyp.pffmtable
rename unicharset langyp.unicharset
rename shapetable langyp.shapetable
合并训练文件,
combine_tessdata langyp.
生成langyp.traineddata文件。
实际的操作步骤如下。
先把训练用样本图像准备好。
1、打开 jTessBoxEditor ,选择 Tools -> Merge TIFF,打开对话框,选择训练样本所在文件夹,并选中所有要参与训练的样本图片,注意对话框中“文件类型”的选取png
2、之后有打开对话框,输入“chi_my.font.exp0.tif”,格式为tiff。其中chi_my可改为自己定义。
会生成chi_my.font.exp0.tif文件。
3、在命令行下执行
tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l chi_sim batch.nochop makebox
tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l eng batch.nochop makebox
会生成“chi_my.font.exp0.box” 文件。
4、打开 jTessBoxEditor ,点击 Box Editor -> Open,选择chi_my.font.exp0.tif文件。
5、调整识别错误的情况
会是惨绝人寰的过程。尤其是图像,字符比较多的情况。
注意、修改后的保存需点击界面上charater后的标识为设置图标的button后,再点击save按钮。
6、创建字体特征文件
echo font 0 0 0 0 0>font_properties
会生成“font_properties” 文件。文件size显示为0字节。其实里面有‘“font 0 0 0 0 0”’内容。
7、训练
tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l eng -psm 7 nobatch box.train
8、生成字符集文件
unicharset_extractor chi_my.font.exp0.box
生成 “unicharset” 文件。
9、生成shape文件,聚集字符特征文件,字符正常化特征文件等四个文件。
9.1、命令 shapeclustering -F font_properties -U unicharset -O langyp.unicharset langyp.fontyp.exp0.tr
生成 “shapetable”“inttemp”“pffmtable” 文件。
9.2、命令 mftraining -F font_properties -U unicharset -O langyp.unicharset langyp.fontyp.exp0.tr
生成 “pinyin.unicharset” 文件。
9.3、命令 cntraining langyp.fontyp.exp0.tr
生成 “normproto” 文件。
10、更名,合并训练文件
更名
rename normproto langyp.normproto
rename inttemp langyp.inttemp
rename pffmtable langyp.pffmtable
rename unicharset langyp.unicharset
rename shapetable langyp.shapetable
合并训练文件,
combine_tessdata langyp.
生成langyp.traineddata文件。
11、将生成的 “langyp.traineddata” 语言包文件拷贝到tesseract的tessdata 目录下,
就可以用它来进行中文字符识别了。
就可以用它来进行中文字符识别了。
实例:
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>unicharset_extractor pinyin.font.exp0.box
Extracting unicharset from pinyin.font.exp0.box
Wrote unicharset file ./unicharset.
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>unicharset_extractor pinyin.font.exp0.box
Extracting unicharset from pinyin.font.exp0.box
Wrote unicharset file ./unicharset.
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>shapeclustering -F font_properties -U unicharset -O pinyin.unicharset pinyin.font.exp0.tr
Reading pinyin.font.exp0.tr ...
Reading pinyin.font.exp0.tr ...
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>mftraining -F font_properties -U unicharset -O pinyin.unicharset pinyin.font.exp0.tr
Read shape table shapetable of 27 shapes
Read shape table shapetable of 27 shapes
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>cntraining pinyin.font.exp0.tr
Reading pinyin.font.exp0.tr ...
Clustering ...
Reading pinyin.font.exp0.tr ...
Clustering ...
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>combine_tessdata pinyin.
Combining tessdata files
Combining tessdata files