[英]Image cleaning before OCR application
我在过去的几个小时里一直在试验PyTesser,这是一个非常好的工具。 我注意到有关PyTesser准确性的一些事情:
显然Pytesser并不关心字体尺寸或图像拉伸。 虽然有很多关于图像处理和OCR的理论需要阅读,但是在应用PyTesser或其他库之前,是否有任何标准的图像清理程序(除了擦除图标和图像),而不管语言是什么?
...........
哇,这篇文章现在已经很老了。 在过去的几天里,我再次开始研究OCR。 这次我扔掉了PyTesser并使用了Tesseract引擎和ImageMagik。 直截了当地说,这就是我发现的:
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 Engine毫无疑问是市场上最好的开源OCR引擎。 此处不需要事先清洁图像。 需要注意的是,它不适用于包含大量嵌入图像的文件,而且我没有找到一种方法来训练Tesseract忽略它们。 此外,图像中的文本布局和格式也有很大的不同。 它只适用于带有文本的图像。 希望这有帮助。
不确定你的意图是否用于商业用途,但是如果你在一堆像图像上执行OCR,这会产生奇迹。
http://www.fmwconcepts.com/imagemagick/textcleaner/index.php
原版的
在使用给定参数进行预处理之后。
事实证明, tesseract
wiki有一篇文章以我能想象的最佳方式回答这个问题:
关于“提高[OCR]输出质量”的插图指南。
问题“提高tesseract OCR准确度的图像处理”也可能是有意义的。
(初步答案,仅供记录)
我没有使用PyTesser
,但我已经用tesseract
做了一些实验(版本: 3.02.02
)。
如果在彩色图像上调用tesseract,则它首先应用全局Otsu方法对其进行二值化,然后在二进制(黑白)图像上运行实际字符识别。
图片来自: http : //scikit-image.org/docs/dev/auto_examples/plot_local_otsu.html
可以看出,“全球大津”可能并不总能产生理想的结果。
为了更好地理解tesseract'看到'是将Otsu的方法应用于您的图像,然后查看生成的图像。
总之:提高识别率的最直接的方法是自己对图像进行二值化(最有可能通过反复试验找到好的阈值) ,然后将这些二值化图像传递给tesseract
。
有人非常友好地发布了tesseract的api文档 ,因此可以验证以前有关处理管道的语句: ProcessPage - > GetThresholdedImage - > ThresholdToPix - > OtsuThresholdRectToPix
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.