有没有办法完成类似于iTunes和App Store应用程序在您使用设备相机兑换礼品卡时所做的事情,在实时相机Feed之上实时识别短字符串?
我知道在iOS 7中现在有AVMetadataMachineReadableCodeObject
类,AFAIK只代表条形码。我更感兴趣的是检测和读取短字符串的内容。这可能是使用公开的API方法,或者您可能知道的其他第三方SDK吗?
还有一个关于该过程的视频:
https://www.youtube.com/watch?v=c7swRRLlYEo
最佳,
答案 0 :(得分:15)
我正在开发一个与Apple应用商店类似的项目,就像你提到的那样用相机兑换。
处理实时视频的一个很好的起点是a project I found on GitHub。这是使用AVFoundation框架并实现AVCaptureVideoDataOutputSampleBufferDelegate方法。
获得图像流(视频)后,您可以使用OpenCV处理视频。在通过Tesseract运行之前,您需要确定要OCR的图像区域。您必须使用过滤,但您使用OpenCV采取的主要步骤是:
其他一些提示:
答案 1 :(得分:8)
此问与答线程似乎一直是iOS上OCR主题的热门搜索命中之一,但已经过时了,所以我想我会发布一些我认为可能有用的其他资源截至撰写本文时:
视觉框架
https://developer.apple.com/documentation/vision
从iOS 11开始,您现在可以使用随附的基于CoreML的Vision框架进行矩形或文本检测之类的操作。我发现我不再需要将OpenCV与操作系统中包含的这些功能一起使用。但是,请注意,文本 detection 与文本 recognition 或OCR不同,因此您仍然需要另一个库,例如Tesseract(或可能是您自己的CoreML模型)来翻译检测到的文本。图片的一部分变成实际的文字。
SwiftOCR
https://github.com/garnele007/SwiftOCR
如果您只想识别字母数字代码,则此OCR库声称与Tesseract相比具有显着的速度,内存消耗和准确性改进(我自己还没有尝试过)。
机器学习套件
https://firebase.google.com/products/ml-kit/
在撰写本文时,Google已将ML Kit作为其Firebase开发人员工具套件的一部分发布了beta版。与Apple的CoreML相似,它是一种机器学习框架,可以使用您自己训练有素的模型,但也具有针对常见图像处理任务(如Vision Framework)的预先训练模型。 与视觉框架不同,该还包括用于拉丁字符的设备上文本识别的模型。目前,此库免费用于设备上功能,并且免费使用Google提供的cloud / SAAS API产品。我选择在项目中使用此功能,因为识别的速度和准确性似乎都不错,而且我还将创建一个具有相同功能的Android应用,因此拥有一个跨平台解决方案对我来说是理想的选择。
ABBYY实时识别SDK
https://rtrsdk.com/
这个免费的iOS和Android商业SDK可以免费下载以进行评估和有限的商业用途(撰写本文时,最多5000个单位)。进一步的商业使用需要扩展许可。由于定价不透明,我没有对它进行评估。
答案 2 :(得分:4)
'实时'只是一组图像。您甚至不需要考虑处理所有这些,只是足以广泛地表示设备的运动(或摄像机位置的变化)。 iOS SDK没有内置任何功能,但您可以使用第三方OCR库(如Tesseract)处理从相机中获取的图像。
答案 3 :(得分:4)
我会调查Tesseract。它是一个开源OCR库,可以获取图像数据并对其进行处理。您可以添加不同的正则表达式,也只查找特定字符。它并不完美,但从我的经验来看,它的效果非常好。它也可以作为CocoaPod安装,如果您进入那种事情。
如果您想要实时捕捉它,您可以使用GPUImage来捕捉实时Feed中的图像,并对传入的图像进行处理,以通过使用不同的过滤器或缩小尺寸来加速Tesseract传入图像的质量。
答案 4 :(得分:4)
有一个类似于github的项目:https://github.com/Devxhkl/RealtimeOCR