Tesseract Trained数据

时间:2012-08-26 17:14:08

标签: tesseract

我试图使用Tessaract从收据和账单中提取数据,我使用的是tesseract 3.02版本。

我只使用英文数据,但输出精度仍为60%左右。

是否有任何训练有素的数据,我只是在tessdata文件夹中替换

4 个答案:

答案 0 :(得分:29)

这是作为“典型示例文件”提供的图像:

typical example file

看着它我会清楚地说:“算了吧,尼克!你无法训练Tesseract从这种类型的图像中识别出100%的文字!”

然而, 您可以使用 iPhone 3GS (这是用于示例图片的设备)训练自己制作更好的照片 从这种类型的收据。以下是一些提示:

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

那就是说,类似下面的ImageMagick命令可能会在某种程度上提高Tesseract的识别率:

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%值的一些变化进行一些调整以调整结果...我没有时间进行此操作。)

答案 1 :(得分:12)

使用tesseract无法从收据中获取准确的信息。您需要添加图像过滤器和一些其他工具,如OpenCV,NumPy ImageMagick和Tesseract。在Franck Chastagnol的PyCon 2013上有一个演讲,他描述了他的公司是如何做到的。

这是链接: http://pyvideo.org/video/1702/building-an-image-processing-pipeline-with-python

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

我需要完全相同的东西,我尝试了一些图像优化来改善输出

你可以在这里找到我的tessaract实验

https://github.com/aryansbtloe/ExperimentWithTesseract