tesseract-ocr训练方法
1、生成box文件:组织训练集,并生成对应的box标注文件。
./tesseract {image_path} {output_path} -l chi_sim makebox
tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox
生成的box文件为num.font.exp0.box,box文件为Tesseract识别出的字符及其坐标。
注:Make Box File 文件名有一定的格式,不能随便乱取名字,命令格式为:
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。
-l chi_sim 选择中文简体, 需要在jTessBoxEditor/tesseract-ocr/tessdata文件夹下放入下载好的中文字库chi_sim.traineddata
如果上述命令省略-l chi_sim 表示默认使用引文字符集
使用jTessBoxEditor gui 修正字体
定义字符配置文件
在目标文件夹内生成一个名为font_properties的文本文件,内容为: font 00000
【语法】: <fontname> <italic> <bold> <fixed> <serif> <frakture>
fontname为字体名称,italic为斜体,bold为黑体字,fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用
2、合并box文件:将多个box文件进行合并。
cat *.box > font.box
3、生成训练集:通过box文件生成对应的训练集。
./tesseract {image_path} {output_path} nobatch box.train
4、生成字符集:通过训练集计算生成字符集文件。
unicharset_extractor train/ampersand.box train/A.box ...train/Y.box
5、生成向量文件:通过字符集和训练集生成向量文件。
mftraining -F font_properties -U unicharset -O output unicharset
6、生成分类器文件:通过向量文件生成分类器文件。
cntraining output/ampersand.tr output/A.tr ... output/Y.tr
7、生成Tesseract字库:将向量文件和分类器文件合并,生成Tesseract OCR引擎所需的字库文件。
combine_tessdata output/{fontname}.traineddata
将生成的traineddata放入tessdata中
最后将num.trainddata复制到Tesseract-OCR中tessdata文件夹即可。
测试:
tesseract test.png output_2 -l num
总结批命令:
rem 执行改批处理前先要目录下创建font_properties文件
echo Run Tesseract for Training..
tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train
echo Compute the Character Set..
unicharset_extractor.exe num.font.exp0.box
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
echo Clustering..
cntraining.exe num.font.exp0.tr
echo Rename Files..
rename normproto num.normproto
rename inttemp num.inttemp
rename pffmtable num.pffmtable
rename shapetable num.shapetable
echo Create Tessdata..
combine_tessdata.exe num.
echo. & pause
参考:
更多推荐
所有评论(0)