什么是进行基本数字识别的最佳方法?

5

我想使用简单的OCR在Android上检测基本的0到9英文数字。我已经寻找了适用于Android的OCR,但对于我的主要目的来说过于复杂,是否有更简单的方法只在Android上检测数字?


1
你需要从手机摄像头中对它们进行OCR吗? - Nikolay
2个回答

5

一种简单的替代方法是将数字预定义为位图,并使用归一化交叉相关来查找它们。

这种方法有很多缺点:

  • 对不同字体没有健壮性
  • 对数字的比例没有健壮性
  • ...

但也许这正是你开始所需要的。


3
如果您想从手机相机执行OCR,预定义位图将很难使用:照片将以不同的比例拍摄,它们将包含噪声,它们将被扭曲等等,因此准确度可能会受到影响。
如果您正在开发Android应用程序,您很可能正在使用Java。不幸的是,没有原生的开源Java OCR SDK。有一些Java API封装了本地接口的调用,例如,对于最流行的开源OCR引擎之一Tesseract(http://groups.google.com/group/tesseract-ocr/),有一些Java包装器,如tesjeract(http://code.google.com/p/tesjeract/)或Tess4J(http://tess4j.sf.net/)。这可能适合您,但设置起来相当困难,并且需要您在图像预处理和字体训练方面进行开发。

另一个解决方案可能是使用云服务。它需要终端用户应用程序具有互联网连接,但它不受编程语言选择和资源限制的影响。看一下ABBYY最近推出的基于云的OCR SDKABBYY Cloud OCR SDK,它目前处于测试阶段,因此完全免费使用,并且有现成的Android代码示例可供使用。它内置了图像预处理功能,无需训练,直接开箱即用 - 只需发送图像并接收OCR数据。此外,它还具有字段级别的识别功能,可以节省设备处理资源。我在ABBYY工作,如果有必要,我可以为您提供有关我们产品的其他信息。


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