Tesseract-OCR
使用 jTessBoxEditor
训练字库
1. 安装 jTessBoxEditor
2. 环境变量配置
此处省略,自行百度吧
制作训练样本
- 运行jTessBoxEditor工具,点击Tools
- 点击Merge TIFF。
- 文件类型选择All Image Files,选择样本图片,点击打开.
- 文件名输入num.font.exp0.tif,文件类型选择TIFF,点击保存。
- 点击确定。
- 生成Box File文件。打开cmd命令行,以管理员身份运行
执行命令
tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox
生成的box文件为num.font.exp0.box,box文件为Tesseract识别出的字符及其坐标。
$\color{#FF0000}{注:Make Box File 文件名有一定的格式,不能随便乱取名字,命令格式为:}$tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。
- 将上一步生成的.box和.tif样本文件放在同一目录。
- 运行jTessBoxEditor工具,点击Box Editor。
- 点击Open。
- 选择之前生成的num.font.exp0.tif,点击打开。
- 这里必须修改识别错误的字符,否则做出来的traineddata文件也是错的。可以在下面的界面中修改并保存,也可以直接在traineddata文件中修改。
定义字体特征文件。创建一个名称为font_properties的字体特征文件。font_properties不含有BOM头,文件内容格式如下:
<fontname> <italic> <bold> <fixed> <serif> <fraktur>
其中fontname为字体名称,必须与[lang].[fontname].exp[num].box中的名称保持一致。\<italic> 、\<bold> 、\<fixed> 、\<serif>、 \<fraktur>的取值为1或0,表示字体是否具有这些属性。
这里在样本图片所在目录下创建一个名称为font_properties的文件,用记事本打开,输入以下下内容:
font 0 0 0 0 0
这里全取值为0,表示字体不是粗体、斜体等等。
生成语言文件。在样本图片所在目录下创建一个批处理文件,输入如下内容:
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.
- 执行批处理文件, num.traineddata便是最终生成的语言文件,将生成的num.traineddata拷贝到程序的样本文件夹里,就可以使用了。
版权属于:virgo's blog(除特别注明外)
本文链接:https://blog.scqloud.cn/archives/12.html
转载时须注明出处及本声明