我已经成功地将tesseract整合到我的
Android应用程序中,它读取了我拍摄的图像,但精度非常低.但大多数时候,我没有得到正确的文本捕获后,因为感兴趣的区域的一些文本也被捕获.
我想要阅读的所有文本都是矩形区域的文字,准确地说,并没有捕捉矩形的边缘.我已经做了一些研究,并发布在stackoverflow这两次,但仍然没有得到一个快乐的结果!
以下是我做过的2篇文章:
Extracting information from captured image in android
我不确定是否使用tesseract或使用openCV
解决方法
包括其他人的许多链接和答案,我认为退后一步很好,并注意到光学字符识别(OCR)实际上有两个基本步骤:
>文本检测:这是您的问题的标题和焦点,它涉及本地化包含文本的图像中的区域.
>文本识别:这是实际识别发生的地方,检测到的本地化图像区域逐个分割,并分类.这也是Tesseract这样的工具.
现在,还应用OCR的两个一般设置:
>控制:这些是从扫描仪或类似的自然界中拍摄的图像,其中目标是文档,像透视图,比例尺,字体,方向,背景一致性等都很温顺.
>不受控制/场景:这些是更自然和野外照片,例如从相机拍摄的那些,您正在尝试识别街道标志,商店名称等.
Tesseract as-is最适用于“受控”设置.而且一般来说,对于现场OCR,特别是“重新训练”Tesseract不会直接改进检测,但可能会提高识别率.
如果您正在寻求改进场景文本检测,请参阅此work;如果您正在查看改进的场景文本识别,请参阅此work.由于您询问有关检测,检测参考使用最大稳定的极值区域(MSER),其具有大量的实施资源,例如.见here.
此外,还有一个专门针对Android的文本检测项目:
https://github.com/dreamdragon/text-detection
许多人注意到,请记住,承认仍然是一个开放的研究挑战.