文字识别 OCR 训练样本

2019-11-04  本文已影响0人  飞马_6886

Windows下环境搭建

1.Tesseract-OCR的安装

Tesseract-OCR遵循Apache 2.0 license开源协议。
官方地址:https://github.com/tesseract-ocr/tesseract

下载地址:https://digi.bib.uni-mannheim.de/tesseract/
你也可以查看源码编译安装:https://github.com/tesseract-ocr/tesseract/wiki/Downloads
或者非官方安装包:https://github.com/UB-Mannheim/tesseract/wiki

这里我下载了最新的V5.0.0.20190623版本,一路next ,知道安装完成 ,然后把下图中的目录配置到系统环境变量


Tesseract_OCR.png

安装后要配置系统环境变量(一般会自动配置)

使用命令测试: tesseract tif文件 要生成的文件名路径 -| traineddata文件

示例:

tesseract D:\ma\NDK\训练例子\sa\0id16.tif y -| "D:\Program Files\Tesseract-OCR\tessdata\eng.traineddata"

会在当前目录生成一个文件 y.txt

2.安装 jTessBoxEditor

下载地址:https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/
下载之后解压缩,如图:

jTessBoxEditor.png

在命令行窗口运行jTessBoxEditor.jar 命令: java -jar 文件全路径
出现如下如界面:


jTessBox运行界面.png

准备样本

java -jar jTessBoxEditor .jar 运行后
jTessBoxEditor ->tools->merge tiff, 选择需要训练的 tif 文件


megerTIFF.png

文件名必须是如下格式:[lang].[fontname].exp[num]
lang:语言名(训练生成的示为语言)
fontname:字体名
num:序号(无所谓)
于是可以得到一个命名为 zh.song.exp0.tif 的文件

生成BOX

命令:

tesseract zh.song.exp1.tif zh.song.exp1 batch.nochop makebox

tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num]
batch.nochop makebox
[lang].[fontname].exp[num] 2.2 给我们的结果,
[lang].[fontname].exp[num] 名字与上面的相同,这个是保存 box 文件的名字
batch.nochop makebox

训练

1.在训练的当前目录创建font_properties文件,此文件没有后缀

文件内容为 :
<fontname> <italic> <bold> <fixed> <serif> <fraktur>
例如:

song 0 0 0 0 0

italic:斜体 0/1
bold:黑体 0/1
fixed:默认字体 0/1
serif:衬线字体 0/1
fraktur:德文黑字体 0/1

2.产生字符特征文件:

命令:

tesseract zh.song.exp1.tif zh.song.exp1 box.train

运行此命令后会多出两个文件,如下图:

tesseract box train.png

3.计算字符集:

命令:
unicharset_extractor [lang].[fontname].exp[num].box


计算字符特征.png

运行以上命令后,目录里面会生成 unicharset 文件

4. 聚集字符特征

shapeclustering -F font_properties -U unicharset [lang].[fontname].exp[num].tr
[可以不运行] 生成 shapetable 文件
mftraining -F font_properties -U unicharset -O [lang].unicharset [lang].[fontname].exp[num].tr

mftraining命令.png

5.生成字符形状正常化特征文件

命令格式:cntraining [lang].[fontname].exp[num].tr

生成 normproto 文件
命令:cntraining zh.song.exp1.tr


cntraining命令.png

重命名 shapetable, normproto, inttemp, pffmtable
[lang].shapetable
[lang].normproto
[lang].inttemp
[lang].pffmtable
名称:
zh.shapetable
zh.normproto
zh.inttemp
zh.pffmtable
命令:
ren shapetable zh.shapetable
ren normproto zh.normproto
ren inttemp zh.inttemp
ren pffmtable zh.pffmtable


重命名.png

6.生成 tessdata 文件

运行 combine_tessdata [lang].
得到 *.traineddata 结果

combine_tessdata zh.

得到zh.traineddata.png
经过以上步骤,就可以得到traineddata文件了,在你的项目中可以直接使用了。
上一篇下一篇

猜你喜欢

热点阅读