【发布时间】:2013-11-07 12:21:33
【问题描述】:
过去几个小时我一直在试验 PyTesser,它是一个非常好的工具。关于 PyTesser 的准确性,我注意到以下几点:
- 带有图标、图像和文本的文件 - 5-10% 准确度
- 仅包含文本的文件(已删除图像和图标) - 50-60% 准确度
- 文件拉伸(这是最好的部分) - 拉伸文件 在 2) 以上 x 或 y 轴上将精度提高了 10-20%
显然,Pytesser 不负责字体尺寸或图像拉伸。尽管有很多关于图像处理和 OCR 的理论需要阅读,但在应用 PyTesser 或其他库之前,是否有任何标准的图像清理程序(除了擦除图标和图像)需要完成,而与语言无关?
...........
哇,这篇文章现在已经很老了。最近几天,我再次开始了对 OCR 的研究。这次我放弃了 PyTesser 并使用了带有 ImageMagik 的 Tesseract 引擎。直截了当,这就是我发现的:
1) You can increase the resolution with ImageMagic(There are a bunch of simple shell commands you can use)
2) After increasing the resolution, the accuracy went up by 80-90%.
因此,Tesseract 引擎无疑是市场上最好的开源 OCR 引擎。这里不需要事先进行图像清理。需要注意的是,它不适用于具有大量嵌入图像的文件,我无法找到一种方法来训练 Tesseract 忽略它们。图像中的文本布局和格式也有很大的不同。它适用于只有文本的图像。希望这会有所帮助。
【问题讨论】:
-
一般来说,对于任何 OCR 系统,要识别的图像应该是: 1) 几何校正; 2)去噪; 3) 光线和对比度校正; 4) 分辨率修正
-
打败我。一般来说,当我看到这些问题时,我会问“你面临什么样的问题?”我可以将数百种去噪算法应用于任意图像,但是否让它们自适应,以及我们面临的噪声类型是更大的问题。与高斯噪声等有用的情况相反,对具有脉冲/椒盐噪声的图片应用模糊过滤器弊大于利。
-
几年前我使用 PyTesser 我注意到了同样的事情。很高兴看到不是我。关于您的问题,它肯定取决于库和包。如您所见,尽管如此,不同的软件包可能会或可能不会做这些事情,您需要进行实验并做出这些发现。一般来说,在执行此类任务之前进行清洁会非常有帮助。不幸的是,这部分是鸡/蛋问题。如果您可以完美清洁,那么您就不需要 OCR,因为您必须已经知道所有东西在哪里。即便如此,一般清洁还是有帮助的。
-
就像 Dogbert 所说的,没有什么能比得上“图像清理的标准程序”。世界上没有算法能猜出你想要摆脱什么以及想要增强什么。
标签: python image-processing ocr