原文地址:Tiiktak的博客

我们通常使用jTessBoxEditor训练工具进行训练,由于该工具是用Java开发的,所以在安装这个软件之前要保证电脑中有Java环境,这里就不介绍了。

安装jTessBoxEditor

可以在这里下载到最新版安装包

把下载得到的压缩包解压到任意位置,双击其中的train.bat文件,等待一会,弹出窗口就可以开始训练了

制作训练样本

生成tif文件

打开软件,选择Tools->Merge TIFF,文件类型选择ALL Image Files,选择所有要训练的样本图片,打开

之后会又弹出窗口,文件名需要自己设定,注意要按照格式设置:

[lang].[fontname].exp[num].tif

其中lang为语言名称,fontname为字体名称,num为序号。这三项都可以自己定义

这里我们设置为captcha.font.exp0.tif,文件类型TIFF,保存

生成box文件

将之前生成的captcha.font.exp0.tif复制到Tesseract-OCR的安装目录

打开cmd进入安装目录,执行命令

tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox 

将.box文件和.tif文件放在同一文件夹

手动调整

打开jTessBoxEditor工具,点击Box Editor->Open,选择打开之前生成的.box文件

软件中便会显示Tesseract自动标记识别的字符,接下来就需手动调整每一张的字符框和识别结果

全部修改完成后,选择Save保存即可

训练

先新建一个名为font_properties的文件,注意,只是文件,没有后缀!打开后,内容输入

captcha 0 0 0 0 0

这里全取值为0,表示字体不是粗体、斜体等等

之后在命令行分别运行命令:

shapeclustering.exe -F font_properties -U unicharset captcha.font.exp0.tr

mftraining.exe -F font_properties -U unicharset captcha.font.exp0.tr

cntraining.exe captcha.font.exp0.tr

之后给文件 inttemp,normproto,pffmtable,shapetable,unicharset 添加前缀captcha.,也就是我们的字体名

生成语言库

命令

combine_tessdata.exe captcha.

会生成一个captcha.traineddata文件,将其复制到Tesseract-OCR安装目录中的tessdata文件夹即可

使用训练结果

在调用tesseract或pytesseract时,只需添加参数lang=“captcha”(我们的字体名),程序就会自动调用啦