环境:Ubuntu14.04 + tesseract-ocr4.0.0beta.1 + leptonica-1.75.2
1,安装所需要库
sudo apt-get install libpng12-dev
sudo apt-get install libjpeg62-dev
sudo apt-get install libtiff4-dev
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install automake
./configure
sudo make -j4
sudo make install
3,下载tesseract-ocr并安装
./autogen.sh
./configure
sudo make -j4
sudo make install
sudo ldconfig
4,安装语言文件
将文件解压放在tessdata文件目录下,默认位置在/usr/local/share/tessdata/
5,运行
这时tesseract-ocr就已经可以运行了
tesseract test.jpg result -l chi_sim
注意:确保tessdata文件目录有用户操作权限,识别语言文件需要与tesseract版本一致
6,编译训练工具
先安装需要的包
sudo apt-get install libicu-dev
sudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev
进入源码traning子目录
cd traning/
sudo make install
7,训练前准备
以训练中文为例,安装sim_sun宋体字体,安装在/usr/share/fonts/winFonts
8,开始训练
a.新建training_text.txt,写入要识别的中文字
b.新建text2image.sh
#!/bin/bash
text2image -text=training_text.txt -outputbase=sim.sun.exp0 -font=simsun -fonts_dir=/usr/share/fonts/winFonts
c.新建traning.sh
#!/bin/bash
tesseract sim.sun.exp0.tif sim.sun.exp0 box.train.stderr
unicharset_extractor sim.sun.exp0.box
d.新建make.sh
#!/bin/bash
shapeclustering -F font_properties -U unicharset sim.sun.exp0.tr
mftraining -F font_properties -U unicharset -O sim.unicharset sim.sun.exp0.tr
cntraining sim.sun.exp0.tr
e.新建combine.sh
#!/bin/bash
mv shapetable sim.sun.shapetable
mv normproto sim.sun.normproto
mv inttemp sim.sun.inttemp
mv pffmtable sim.sun.pffmtable
combine_tessdata sim. #可以多字体识别,只需要将之前的sun替换成其它字体名,最后执行合并命令。
f.新建cmd.sh
#!/bin/bash
./text2image.sh
./traning.sh
./make.sh
./combine.sh
运行
cmd.sh一键生成
sim.traineddata,然后拷贝到
tessdata目录下,重命名为
sim_sun.traineddata
9,优化运行,使用刚训练的数据识别文字
#!/bin/bash
convert -compress none -depth 8 -alpha off test.jpg test.tif
tesseract test.tif out -l sim_sun -psm 7
10、提高训练文件的识别率
尽量将文字单独成行,最后再加入文字段落,标点符号和文字需要打混,生僻字出现5+,常用字出现10+,识别目标字20+