2012-03-14 53 views
1

我一直在开发一个使用tesseract OCR(光学字符识别)的android应用程序,并想知道是否有改进小文本结果的方法。在Android上改善Tesseract结果

我试着重新编译标准字典与我自己的频繁和正常的单词列表(使用wordlist2dawg),并没有看到任何改善(我甚至不知道它是否帮助!)。我也听说有可能改变tesseract使用字典单词的阈值,但我不知道如何做到这一点。

如果有人有一个想法,我可以如何改善结果tesseract给我我真的很感激它!

回答

3

我所知道的一些选项,可以帮助你:

  1. 添加图片边框和文字之间的额外空间。如果图像中的文本位于边缘,Tesseract将会非常糟糕。
  2. 复制您的图像。例如,如果您对单词'foobar'执行OCR,请复制图像并将'foobar foobar foobar foobar foobar'发送到tesseract,结果会更好。
  3. Google用于tesseract的字体训练和图像二值化。

请记住,内置摄像头在移动设备大多是生产低质量的图像(所迷离,降噪,偏斜等)OCR本身是一种资源comsuming过程,如果你增加一个有价值的图像预处理到,低端和中端移动设备(可能拥有Android)可能会面临意外缓慢的性能下降,甚至资源缺乏。这对免费/学习项目来说没问题,但是如果你正在计划一个商业应用 - 考虑使用更好的SDK。

看看这个问题的细节:OCR for android

+1

所有的好建议。另一个建议是在实际的OCR之前“修复”小文本问题。图像可以在x和y方向上按比例增加或拉伸2倍或3倍,以生成更大图像,并且文字更大,这样许多OCR引擎可以更好地读取图像。它需要使用一些图像库来创建新的像素,而不是在图像头中覆盖dpi,但这是相对简单的预处理过程。 – 2012-03-15 17:29:22