Tesseract-OCR 字符识别---样本训练
Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文)。Tesseract最初由HP公司开发,后来由Google维护,目前发布在Googel Project上。地址为http://code.google.com/p/tesseract-ocr/。
使用默认的语言库识别
1.安装Tesseract
从http://code.google.com/p/tesseract-ocr/downloads/list下载Tesseract,目前版本为Tesseract3.02。因为只是测试使用,这里直接下载winodws下的安装文件tesseract-ocr-setup-3.02.02.exe。安装成功后会在相应磁盘上生成一个Tesseract-OCR目录。通过目录下的tesseract.exe程序就可以对图像字符进行识别了。
2.准备一副待识别的图像,这里用画图工具随便写了一串数字,保存为number.jpg,如下图所示:
3. 打开命令行,定位到Tesseract-OCR目录,输入命令:
tesseract.exe number.jpg result -l eng
其中result表示输出结果文件txt名称,eng表示用以识别的语言文件为英文。
3. 打开Tesseract-OCR目录下的result.txt文件,看到识别的结果为7542315857,有3个字符识别错误,识别率还不是很高,那有没有什么方法来提供识别率呢?Tesseract提供了一套训练样本的方法,用以生成自己所需的识别语言库。下面介绍一下具体训练样本的方法。
训练样本
关于如何训练样本,Tesseract-OCR官网有详细的介绍http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3。这里通过一个简单的例子来介绍一下如何进行样本训练。
1.下载工具jTessBoxEditor.http://sourceforge.net/projects/vietocr/files/jTessBoxEditor/,这个工具是用来训练样本用的,由于该工具是用JAVA开发的,需要安装JAVA虚拟机才能运行。
2. 获取样本图像。用画图工具绘制了5张0-9的文样本图像(当然样本越多越好),如下图所示:
3.合并样本图像。运行jTessBoxEditor工具,在点击菜单栏中Tools--->Merge TIFF。在弹出的对话框中选择样本图像(按Shift选择多张),合并成num.font.exp0.tif文件。4.生成Box File文件。打开命令行,执行命令:
tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox
生成的BOX文件为num.font.exp0.box,BOX文件为Tessercat识别出的文字和其坐标。
注:Make Box File的命令格式为:
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。
5.文字校正。运行jTessBoxEditor工具,打开num.font.exp0.tif文件(必须将上一步生成的.box和.tif样本文件放在同一目录),如下图所示。可以看出有些字符识别的不正确,可以通过该工具手动对每张图片中识别错误的字符进行校正。校正完成后保存即可。
6.定义字体特征文件。Tesseract-OCR3.01以上的版本在训练之前需要创建一个名称为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,表示字体不是粗体、斜体等等。
7.生成语言文件。在样本图片所在目录下创建一个批处理文件,输入如下内容。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.
将批处理通过命令行执行。执行后的结果如下:
需确认打印结果中的Offset 1、3、4、5、13这些项不是-1。这样,一个新的语言文件就生成了。
num.traineddata便是最终生成的语言文件,将生成的num.traineddata拷贝到Tesseract-OCR-->tessdata目录下。可以用它来进行字符识别了。
使用训练后的语言库识别
用训练后的语言库识别number.jpg文件,打开命令行,定位到Tesseract-OCR目录,输入命令:
tesseract.exe number.jpg result -l eng
识别结果如如图所示,可以看到识别率提高了不少。通过自定义训练样本,可以进行图形验证码、车牌号码识别等。感兴趣的朋友可以研究研究。
分享到:
相关推荐
python图片中文识别引擎Tesseract-OCR,支持英文中文的识别,语言库丰富可选择性安装需要的语言,解压之后直接点击安装下一步即可。安装完成之后设置pytesseract.py中的tesseract_cmd为'C:/Program Files (x86)/...
tesseract-ocr的语言库识别库文件,下载解压后放到tesseract-ocr安装目录下的tessdata 目录,存放的是语言字库文件,和在命令行界面中可能用到的参数所对应的文件. 这个安装程序默认包含了英文字库。
tesseract-ocr 验证码识别 32位 最新版 4.1 tesseract-ocr 验证码识别 32位 最新版 4.1 tesseract-ocr 验证码识别 32位 最新版 4.1 tesseract-ocr 验证码识别 32位 最新版 4.1
tesseract-ocr 光学字符识别安装程序 3.02.02版本
用于Tesseract-OCR 字体库训练工具,亲测可用 教程请访问https://blog.csdn.net/qq_29099209/article/details/81633538
本资源提供Python文字识别之tesseract-ocr安装包和中文语言包chi_sim.traineddata免费下载。 tesseract-ocr:tesseract-ocr-w64-setup-v5.1.0.20220510.exe; 中文语言包:chi_sim.traineddata
tesseract-ocr-setup-3.01-1谷歌开源ocr技术
tesseract-ocr的简体中文语言训练数据,来自google官网,可以用于中文的图片验证码识别,对于比较标准的字体还是有不错的识别率的
tesseract-ocr-setup-3.05.01dev-20170510.exe 用于OCR识别
tesseractocr中的中文训练库,解压到Tesseract-OCR\tessdata目录
java文字识别程序的关键是寻找一个可以调用的OCR引擎。tesseract-ocr就是一个这样的OCR引擎,在1985年到1995年由HP实验室开发,现在在Google。tesseract-ocr 3.0发布,支持中文。
http://blog.csdn.net/firehood_/article/details/8433077 本人参考这篇博客练习样本训练,整理了这些材料,材料中包括以下这些tesseract-ocr-setup-3.01-1.rar:tesseract-ocr-setup-3.01-1.exe安装包、...
tesseract-ocr3.02.02(包含简体中文语言包) 使用方法:解压缩文件,在dos环境下运行tesseract.exe; 识别英文,请输入命令 tesseract test1.png test1 -l eng;(test1.png为要识别的图片,test1为输出图片,格式为...
qt画旋转矩形、halcon区域抠图、tesseract-ocr文字识别,
tesseract-ocr 3.02的中文字体库
tesseract-ocr安装包和中文语言包.rar
tesseract-ocr-setup-3.05.02-20180621,tesseract稳定版本
tesseract-ocr-w64-setup-v5.0.0.20211201