使用PHP识别可识别数字

3
我正在尝试从一张图片中提取1-99范围内的数字。我已经尝试了使用PHP的几种OCR方法,但最终我的脚本会失败,因为数字偶尔会向左或向右旋转5%。这使得图片无法被识别。
现在我已经安装了Ocropus http://code.google.com/p/ocropus/ 作为测试。不幸的是,这并不能每次都给我正确的数字。这让我想到我的图片还没有被优化到足够好。
有没有人有一些关于如何优化数字可读性的建议/想法?我也很感激有关如何从图片中找到数字的想法。
2个回答

1

看起来Tesseract / Ocropus在倾斜方面有些混淆,可能是同一行上多个倾斜的数字让Tesseract或Ocropus感到困惑。

您是否将整个图像作为数字网格传递?您是否尝试将每个框(数字)单独作为单独的图像发送到OCR引擎?您可能会发现结果更好。

您是否尝试过其他OCR引擎?您是否需要它是开源的?

我通过一个更便宜的商业OCR引擎运行了该图像,并正确识别了所有数字。因此,另一个选择是快速使用C#或C ++代码包装商业OCR引擎并进行接口交互以提供改进的结果。


我正在逐一传递图像。最终,我编写了一个PHP函数,将图像旋转几度并重新尝试识别过程。这使得该过程成功率达到96%。 - Kristian
如果你直接使用Tesseract,尝试调整图像外围的白色空白边框大小以进行识别。您可能会发现在Tesseract中有一个最佳大小。如果您正在使用Ocropus来区域划分,则它可能不会改变太多。我没有经常使用Tesseract,但我知道其他引擎对字符周围的空格边框大小可能很敏感。 - Andrew Cash
顺便说一句:PHP旋转做得很好。看到4%失败的结果会很有趣。你能否发布一些失败数字的图像以及OCR引擎给出的结果?我们可能能够评论为什么它们会失败。 - Andrew Cash
几年后,也许会有点占用CPU资源,但是如果你将图像向左旋转1度、向右旋转1度,向左旋转2度、向右旋转2度,向左旋转3度、向右旋转3度等等,然后将所有图像输入OCR,并选择具有最多真实字符(字母数字?)的OCR结果,你可能能够在96%的准确率基础上统计性地提高准确性。 - Jordan Arsenault

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接