2012-08-26 232 views
21

我试图使用Tessaract从收据和账单中提取数据,我正在使用tesseract 3.02版本。Tesseract训练数据

上午只使用英文数据,仍然输出精度约为60%。

是否有可用的任何训练有素的数据,我只需更换tessdata文件夹

+0

是的,我有我最新版本,不过输出是不好的。 – nicky

+1

如果您不提供至少一个(链接到)典型示例文件,则无法告诉您如何提高准确性。 –

+0

这是图像 – nicky

回答

29

这是一个“典型的示例文件”提供的图像尼基在:

typical example file

看着它,我会明确地说:“忘记它,尼克!你无法训练Tesseract识别这种类型的图像100%的文本!”

然而,你可以训练自己做出更好的照片的iPhone 3GS(这就是它被用于例如图像的装置)从这种类型的收据。以下是一些提示:

  • 请勿使用深色背景。改用白色。
  • 不要让收据纸破碎。理顺它。
  • 请勿将收据松散地放在不平坦的地下。将其固定在一个平坦的表面上:
    • 将它放在一张白纸上,并在上面放上玻璃台板。
    • 或者使用一些胶水将其平放在白色的纸上,没有任何弯曲的边缘或角落。
  • 不要使用像640x480像素的低分辨率(如示例图片所示)。使用更高的像,而不是1280x960像素。
  • 请勿使用标准曝光。将相机设置为使用极高对比度。你希望字母是黑色的,白色的背景是真正的白色(你不需要图片中的灰色...)
  • 试着让它使任何10-12磅字体的字符都使用about高度为24-30像素(即,使图像在100%变焦时大约为300 dpi)。

也就是说,像下面的ImageMagick命令将可能有一定程度的增加正方体的识别率:

convert        \ 
    http://i.stack.imgur.com/q3Ad4.jpg \ 
    -colorspace gray     \ 
    -rotate 90       \ 
    -crop 260x540+110+75 +repage  \ 
    -scale 166%       \ 
    -normalize       \ 
    -colors 32       \ 
    out1 .png 

它产生以下输出:

ImageMagick optimization for OCR

你甚至可以添加如-threshold 30%作为最后的命令行选项到上面的命令得到这个:

enter image description here

(你应该打几分有一些变化的30%值来调整结果...我没有这个时间。)

2

在使用Tesseract对文本进行OCR之前,您可以获得更清晰的后处理图像。尝试使用背景表面阈值(BST)技术,而不是其他简单的阈值方法。你可以找到关于here的白皮书。

有是非常有效的BST的OpenCV实现https://stackoverflow.com/a/22127181/3475075