Tesseract-OCR文字识别

时间:2021-12-12 08:13:48

放在前面:本文主要参考了这篇知乎专栏-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。

我尝试使用best时报错了。。先把链接放着吧。

3. 训练

Tesseract 4.0 使用了LSTM,估计训练完后效果不错。可以先参考上面的原文章操作,这里先不写了等后面尝试了再来写。

小建议

  • 使用PNG格式而不是JPEG格式,
  • 如果先检测后分割两步走,注意分割后的切片可能很小,需要放缩到300dpi以上
  • 如果效果不满意,可以考虑试试深度学习模型,先放个推文,后面时间在总结一下
  • 再放一个介绍文本检测识别数据集的博客

(完)