如若转载,请标明出处及链接!学而时习之,原创乐乎!
1.Tesseract-OCR
光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。
1.1Mac下安装Tesseract-OCR
使用brew安装流程
brew install libtiff
brew install libpng
brew install leptonica
brew install tesseract
验证tesseract-ocr安装成功:tesseract -v
(tesseract安装目录:/usr/local/Cellar/tesseract/3.05.01)
遇到问题:
后续为了能够在特殊需求下训练自身的样本字体,需要使用jTessBoxEditor做训练,其中一个步骤就是要使用unicharset_extractor提取字符集文件,但是提示unicharset_extractor: command not found错误原因是因为安装tesseract时候没有安装训练工具集tesseract training tools。
解决方案:
卸载原先tesseract:brew uninstall tesseract
安装tesseract:brew install --with-training-tools tesseract 提示tesseract:XQuartz is required to install this formula. X11Requirment unsatiffied!因此先安装brew cask install xquartz
1.2Mac下安装Tesseract-OCR语言包配置
首先进入GitHub官方网址:https://github.com/tesseract-ocr/tessdata下载语言包,只需要下载eng(英文)、chi_sim(中文简体)、chi_tra(中文繁体)即可。
下载完语言包后,需要将语言包放置在tesseract的tessdata目录下:示例若语言包放置在Download目录下,使用命令cd命令进入Download目录下,cp chi_sim.traineddata '/usr/local/Cellar/tesseract/3.05.01/share/tessdata'
2.验证Tesseract-OCR
如果在Download目录下有待OCR图片1.jpg 使用命令tesseract 1.jpg output -l chi_sim 解析:-l表示language output是输出到文件txt的名字。
删除文件使用rm output.txt
2.1Vim查看
命令vim output 打开文本,查看OCR识别效果。最后退出:按ESC,然后输入:,输入q退出。
3.训练Tesseract-OCR
对于特定需求的任务开发,tesseract-OCR识别中文的能力有限,因此需要自己定义字体训练:
3.1准备训练样本集
图片灰度化处理:convert src.jpg dest.jpg 也可使用openCV转换
图片转换成tif格式:另存为即可
合并训练样本图片:mac下打开下载的jTessBoxEditor/jTessBoxEditor.jar 菜单Tools->Merge Tiff,按住shift选择多个文件,将合并的文件命名为“lang.fontname.exp[num].tif”其中lang为语言名称,fontname为字体名称,num为序号,例子:baidu.xbu.exp6.tif
生成box文件:tesseract baidu.xbu.exp6.tif baidu.xbu.exp6 -l chi_sim batch.nochop makebox (生成的baidu.xbu.exp6.box记录它识别的每个字及其对应位置坐标)
矫正识别效果:打开jTessBoxEditor工具,open打开baidu.xbu.exp6.tif切换Box Editor,记得保存
生成font_properties(提供输出识别文字的设置字体样式信息): echo 字体名称xbu 0 0 0 0 0 >font_properties
生成训练文件:tesseract baidu.xbu.exp6.tif baidu.xbu.exp6 -l chi_sim nobatch box.train
生成字符集文件:unicharset_extractor baidu.xbu.exp6.box
生成shape: shapeclustering -F font_properties -U unicharset baidu.xbu.exp6.tr
集合字符特征文件:mftraining-F font_properties -U unicharset -O unicharset baidu.xbu.exp6.tr
正常化:cntraining baidu.xbu.exp6.tr
合并训练文件:
cp normproto xbu.normproto
cp inttemp xbu.inttemp
cp pffmtable xbu.pffmtable
cp unicharset xbu.unicharset
cp shapetable xbu.shapetable
combine_tessdata xbu.
新增语言:
brew list tesseract
cp xbu.traineddata /usr/local/Cellar/tesseract/x.x.x/share/tessdata/
语言包合并请参考http://blog.youkuaiyun.com/why200981317/article/details/48265621