我试图使用Tessaract从收据和账单中提取数据,我使用的是tesseract 3.02版本。
我只使用英文数据,但输出精度仍为60%左右。
是否有任何训练有素的数据,我只是在tessdata文件夹中替换
答案 0 :(得分:29)
这是作为“典型示例文件”提供的图像:
看着它我会清楚地说:“算了吧,尼克!你无法训练Tesseract从这种类型的图像中识别出100%的文字!”
然而, 您可以使用 iPhone 3GS (这是用于示例图片的设备)训练自己制作更好的照片 从这种类型的收据。以下是一些提示:
那就是说,类似下面的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
它产生以下输出:
您甚至可以在上面的命令中添加-threshold 30%
之类的内容作为最后一个命令行选项来获取此内容:
(您应该对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实验