我正在尝试使用 Tessaract 从收据和账单中提取数据,我正在使用 tesseract 3.02 版本。
我只使用英文数据,输出准确率仍然在 60% 左右。
是否有任何可用的训练数据,我只是在 tessdata 文件夹中替换
我正在尝试使用 Tessaract 从收据和账单中提取数据,我正在使用 tesseract 3.02 版本。
我只使用英文数据,输出准确率仍然在 60% 左右。
是否有任何可用的训练数据,我只是在 tessdata 文件夹中替换
这是作为“典型示例文件”提供的图像 nicky:
看着它,我会明确地说:“算了吧,nicky!你不能训练 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%
调整结果......我没有时间这样做。)
使用 tesseract 从收据中获取准确信息并非不可能。您将需要在 Tesseract 旁边添加图像过滤器和一些其他工具,例如 OpenCV、NumPy ImageMagick。Franck Chastagnol 在 PyCon 2013 上做了一个演讲,他描述了他的公司是如何做到的。
这是链接: http: //pyvideo.org/video/1702/building-an-image-processing-pipeline-with-python
在使用 Tesseract 对文本进行 OCR 之前,您可以获得更清晰的后处理图像。尝试使用背景表面阈值 (BST) 技术,而不是其他简单的阈值方法。您可以在此处找到有关该主题的白皮书。
有一个适用于 OpenCV 的 BST 实现,效果很好https://stackoverflow.com/a/22127181/3475075
我需要完全相同的东西,我尝试了一些图像优化来改善输出
你可以在这里找到我对 tessaract 的实验