使用 iPhone 摄像头识别特定位置的文本
Posted
技术标签:
【中文标题】使用 iPhone 摄像头识别特定位置的文本【英文标题】:Recognise text in certain position using the Iphone camera 【发布时间】:2011-08-12 14:37:40 【问题描述】:我想开发一个应用程序,它应该能够识别计算机打印卡(位于卡的固定位置)中的一些数字,然后将它们发送到网络服务。
我知道我应该使用 OCR,但我不确定哪种产品能满足我的需求。如果您能向我推荐市场上的任何 api 或产品(开源不是必须的,但会非常受欢迎 :) 可以在这个项目中帮助我,那就太好了。
除此之外,我还有另一个技术问题:您会在设备中实现 OCR 识别,还是使用网络服务来实现并调用它来传递图片?两种模式的优缺点是什么?
【问题讨论】:
【参考方案1】:如果您需要在图像上定位特定字段的解决方案,那么它不仅仅是 OCR,而是数据捕获任务。有几种方法可以解决它:根据 OCR 输出编写您的现场检测解决方案,就像其他答案中建议的那样,或者使用专门为此设计并提供用于定义布局结构的可视化工具的工具包。
第一种方式需要更多的编程,但在许可方面更便宜。您不仅可以选择商业的,还可以选择像 Tesseract 这样的开源 OCR 库,这些库可能并不完美,但经过一些调整和字体训练就足以胜任许多任务。
在处理低质量图像(手机摄像头拍摄的图像将占很大一部分)时,您的现场定位解决方案必须注意图像的某些部分未被识别或错误识别但仍然能够找到您想要的字段。您可能还想交叉检查几个识别变体以提供合理的组合。
这不是微不足道的,需要一些时间才能使其可靠地工作。但仍然可行,前提是您没有非常复杂的文档并且只有一种布局并且非常可预测。一旦你拥有了代码,它就可以在服务器和手机上运行。
如果您正在寻找稍微复杂一点的文档和各种布局变体,那么在纯代码中实现此逻辑可能会变得非常困难。在这种情况下,最好寻找更先进的数据捕获技术。市面上有很多 Data Captrue 产品,但我只知道一种以 API 形式提供的产品:http://www.abbyy.com/flexicapture_engine/
它有两个组成部分。一种是创建和调试文档描述的可视化工具。您只需在文档上描述字段位置的逻辑,其余的由技术负责:对不同的变体进行投票,注意接收中的错误等等。您可以定义多个替代文档结构和规则来检查一个值是否与文档布局中的另一个值相对应。这些规则也会影响选择最佳识别变体。
第二个组件实际上是 API。您只需将其插入您的应用程序并加载文档模板描述。在移动识别场景中,它只能用作服务器后端处理,因为它太强大和太重,无法适应移动。然而,好的一面是您不必将它移植到每个移动操作系统,它使用全功能 OCR 技术,而不是适合移动资源的受限技术。该工具包确实包含一些先进的图像处理技术,可以更好地处理手机拍摄的图像。
免责声明:我为 ABBYY 工作。
【讨论】:
以上是关于使用 iPhone 摄像头识别特定位置的文本的主要内容,如果未能解决你的问题,请参考以下文章
Home Assistant系列 -- 接入手机摄像头做实时监控和人脸识别