图像识别学习记录——生成汉字训练库

 

记录一下对这一篇文章的学习过程。https://blog.csdn.net/qq_38190041/article/details/102931415

1、下载  jTessBoxEditorFX。(https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/)

2、制作2个简单的汉字图片。用Photoshop转成16位。

第一个文件,chr1.tif

试试直接识别成什么,输入命令: tesseract chr1.tif outtxt -l chi_sim,得到结果:

我 仇 要 有 充 分

如果没有显示 page1,就说明没有正常执行。比如识别jpg格式的文件:

得到的结果是:

这 秦 非 E 式 发 禹

 

第二个文件,chr2.tif

试一下直接识别,输入命令: tesseract chr1.tif outtxt -l chi_sim,得到结果:

十 五 年 断

 

下面开始生成训练文件。

3、用  jTessBoxEditorFX 把这两个图片合并为一个tif文件。具体按照上一篇的操作。

    生成 chr.font.exp0.tif。要注意文件名格式,[lang].[fontname].exp[num].tif ,lang和fontname、num自己定义。

4、生成box文件。

命令行:tesseract chr.font.exp0.tif chr.font.exp0 -l chi_sim batch.nochop makebox

如果不加参数 -l chi_sim,则生成的box文件中没有汉字,后面用 jTessBoxEditorFX 编辑box文件的时候,在左侧的编辑框中,没有汉字。

5、用  jTessBoxEditorFX ,boxEditor——open,打开 chr.font.exp0.tif 对应图像编辑box文件内容,调整每个汉字及字符对应的图块位置。

前面包含进来了2个图片,所以这里分为2个页面,每个页面都要编辑。

6、定义字体特征文件。

创建一个名称为font_properties的字体特征文件。font_properties不含有BOM头,文件内容格式如下:

 

其中fontname为字体名称,必须与[lang].[fontname].exp[num].box中的名称保持一致。的取值为1或0,表示字体是否具有这些属性。

这里在样本图片所在目录下创建一个名称为font_properties的文件,用记事本打开,输入以下下内容:

font 0 0 0 0 0

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

7、制作批处理文件 dochr.bat

echo Run Tesseract for Training.. 
tesseract.exe chr.font.exp0.tif chr.font.exp0 nobatch box.train 

echo Compute the Character Set.. 
unicharset_extractor.exe chr.font.exp0.box 
mftraining -F font_properties -U unicharset -O chr.unicharset chr.font.exp0.tr 


echo Clustering.. 
cntraining.exe chr.font.exp0.tr 

echo Rename Files.. 
rename normproto chr.normproto 
rename inttemp chr.inttemp 
rename pffmtable chr.pffmtable 
rename shapetable chr.shapetable  

echo Create Tessdata.. 
combine_tessdata.exe chr. 

echo. & pause


8、将生成的“chr.traineddata”语言包文件复制到Tesseract-OCR 安装目录下的tessdata文件夹中

9、测试

tesseract chr2.tif outtxt -l chr

输出:十五年前

 

 

 

你可能感兴趣的:(python学习)