安装tesseract 5(安装4.1或5的原因在于,4.1开始支持LSTM模型下的user-patterns)
安装必要依赖库,git clone最新代码 cd tesseract ./autogen.sh ./configure make sudo make install sudo ldconfig make training sudo make training-instal |
如何训练:https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00
user-patterns
目前不起作用,在4.1和5.0均无法按我们的要求输出
在/usr/local/share/tessdata添加TMH_eng.user-patterns
内容为:
\A\A\A\d\d\d\d\d\d\d\d\d\n-\d
A代表大写字母,d代表数字,n代表字母+数字
在/usr/local/share/tessdata/configs中,添加bazaar文件,内容为:
load_system_dawg F
load_freq_dawg F
user_patterns_suffix user-patterns
当tesseract进行ocr识别并使用bazaar配置时,user-patterns具有一定的修正作用
psm的选择
目前对psm进行了所有值测试,只有psm=6时,输出的ocr结果最符合我们要求。
rescale图像
将图像rescale(2,2.5,3倍),让每行文字的像素点达到30左右。
# 采用PIL库rescale image = Image.open(x) new_size = tuple((int(SCALE_RATIO*x) for x in image.size)) new_image = image.resize(new_size, Image.ANTIALIAS) new_image.save(new_folder / (new_name+".tif")) |
识别率提升有限。
no rescale时,识别率为39%
当为3倍时,识别率为41%
计算更快
设置OMP_THREAD_LIMIT,提升并行处理能力
目前测试无效
医院采集的错误图像能否有助于训练自己
TODO:
需要标注图像,费人工。
融合模型
支持多模型,排在前面的模型权重高。
使用如:-l TMH_eng+eng
计算时间和模型数量成正比
生成fast模型
模型分为best和fast两种, best为double精度,fast为integer精度
如果已经有best模型,可以使用combine_tessdata -c xx_best.traineddata,即可将xx_best.traineddata改为fast模型(记得先备份再操作,因为是直接替换)。