首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tesseract训练数据

Tesseract训练数据
EN

Stack Overflow用户
提问于 2012-08-27 01:14:08
回答 4查看 24.1K关注 0票数 25

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

我只使用英文数据,输出的准确率仍然是60%左右。

是否有任何经过训练的数据可供替换到tessdata文件夹中

EN

回答 4

Stack Overflow用户

发布于 2012-08-30 03:28:26

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

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

然而,你可以训练自己用你的iPhone 3GS (这是用于示例图片的设备)从这样的收据中制作更好的照片。以下是一些小贴士:

  • 不要使用深色背景。用白色代替。
  • 不要让收据纸碎了。把它弄直。
  • 不要把收据松散地放在凹凸不平的地下。把它固定在一个平面上:
    • 要么把它放在一张白纸上,然后在上面放一个玻璃压板。
    • 或者用胶水把它平整地粘在一张白纸上,没有任何弯曲的边缘或胶水。

  • 不要使用像640x480像素这样的低分辨率(如示例图片所示)。使用更高的像素,例如1280x960像素instead.
  • Don't使用标准曝光。将相机设置为使用极高的对比度。您希望字母是黑色的,白色背景是真正的白色(您不需要在picture...)
  • Try中使用灰度,这样10-12pt字体的任何字符都使用大约24-30像素的高度(也就是说,在100%缩放的情况下,使图像大约为300dpi)。

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

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

它会产生以下输出:

您甚至可以将类似-threshold 30% 的内容作为最后一个命令行选项添加到上面的命令中,以获得以下结果:

(您应该使用30%值的一些变体来调整结果...我没有时间做这个。)

票数 30
EN

Stack Overflow用户

发布于 2013-05-08 18:28:21

使用tesseract从收据中获取准确的信息并非不可能。除了Tesseract之外,你还需要添加图像过滤器和其他一些工具,如OpenCV,NumPy ImageMagick。在2013年PyCon大会上,弗兰克·查斯塔诺尔做了一次演讲,描述了他的公司是如何做到这一点的。

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

票数 12
EN

Stack Overflow用户

发布于 2015-01-10 05:27:14

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

有一个用于OpenCV的BST实现,它在https://stackoverflow.com/a/22127181/3475075上工作得很好

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12132204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档