Tesseract-OCR文字识别
Posted jasonljy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tesseract-OCR文字识别相关的知识,希望对你有一定的参考价值。
放在前面:本文主要参考了这篇知乎专栏-Gemfield
时间有限,长话短说,主要是放一些资源,方便查找。
1.预处理
对于中文识别来说,不做预处理简直惨不忍睹。主要手段为
- binarize and de-noise image;
- 高斯模糊之类的blur算法;
- 缩放图像(fix text size,e.g. 12 pt should be ok);
- 锐化(Sharpening effect);
- fix DPI (if needed) 300 DPI is minimum;
- try to fix illumination of image (e.g. no dark part of image);
- contrast, brightness... it tends to work best when there is just black & white, i.e. no greyscale;
- 去掉图片中无关的线条;
- 高对比度;
详细的官方教程
再放一个有人制作的相关工具textcleaner ,这里有一小段介绍
2. 识别中文
下载中文语言包,简体中文的代号为chi_sim,每种语言在新时代的tesseract都应该有3种语言包:fast版、best版、raw版。fast版是考量了速度,并对准确度做了一定的妥协,apt安装的时候下载的语言包模型正是fast版。raw版是混合了新时代的LSTM模型和旧时代的模型,因此当使用raw版的时候,在命令行上可以指定 --oem 2。
- fast版chi_sim.traineddata
- best版chi_sim.traineddata
- raw版chi_sim.traineddata
我尝试使用best时报错了。。先把链接放着吧。
3. 训练
Tesseract 4.0 使用了LSTM,估计训练完后效果不错。可以先参考上面的原文章操作,这里先不写了等后面尝试了再来写。
小建议
- 使用PNG格式而不是JPEG格式,
- 如果先检测后分割两步走,注意分割后的切片可能很小,需要放缩到300dpi以上
- 如果效果不满意,可以考虑试试深度学习模型,先放个推文,后面时间在总结一下
- 再放一个介绍文本检测识别数据集的博客
(完)
以上是关于Tesseract-OCR文字识别的主要内容,如果未能解决你的问题,请参考以下文章
ffmpeg Tesseract-OCR 识别文字滤镜 中文识别输出文本
Python+pytesseract+Tesseract-OCR图片文字识别(只适合新手)