我已经成功地将 tesseract 集成到我的 android 应用程序中,它可以读取我捕获的任何图像,但准确性非常低。但大多数情况下,我在捕获后没有得到正确的文本,因为感兴趣区域周围的一些文本也被捕获了。
我只想准确地阅读矩形区域中的所有文本,而无需捕获矩形的边缘。我已经做了一些研究并在stackoverflow上发布了两次,但仍然没有得到满意的结果!
以下是我发的 2 个帖子:
我不确定是继续使用 tesseract 还是使用 openCV
我已经成功地将 tesseract 集成到我的 android 应用程序中,它可以读取我捕获的任何图像,但准确性非常低。但大多数情况下,我在捕获后没有得到正确的文本,因为感兴趣区域周围的一些文本也被捕获了。
我只想准确地阅读矩形区域中的所有文本,而无需捕获矩形的边缘。我已经做了一些研究并在stackoverflow上发布了两次,但仍然没有得到满意的结果!
以下是我发的 2 个帖子:
我不确定是继续使用 tesseract 还是使用 openCV
包括许多其他人的链接和答案,我认为退后一步并注意光学字符识别(OCR)实际上有两个基本步骤:
现在,还有两个应用 OCR 的常规设置:
Tesseract as-is 最适用于“受控”设置。总的来说,特别是对于场景 OCR,“重新训练”Tesseract不会直接改善检测,但可能会改善识别。
如果您希望改进场景文本检测,请参阅此工作;如果您正在考虑改进场景文本识别,请参阅这项工作。由于您询问了检测,因此检测参考使用最大稳定极值区域 (MSER),它具有大量的实现资源,例如,请参见此处。
这里还有一个专门针对 Android 的文本检测项目:
https ://github.com/dreamdragon/text-detection
正如许多人所指出的,请记住,认可仍然是一项开放的研究挑战。
改善 OCR 输出的解决方案是
要么使用更多的训练数据来更好地训练它
使用一些线性过滤器过滤它的输入(灰度,高对比度,模糊)
在聊天中,我们发布了许多描述 OCRing 中使用的过滤技术的链接,但没有发布示例代码。
发布的一些链接是
使用非对称过滤器进行文本增强<-- 这篇论文很容易在 google 上找到,应该完整阅读,因为它非常清楚地说明和演示了在 OCR 处理图像之前的必要步骤。