首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:实时光学字符识别(类似于iTunes兑换礼品卡)

问iOS:实时光学字符识别(类似于iTunes兑换礼品卡)
EN

Stack Overflow用户
提问于 2013-10-01 02:38:57
回答 5查看 24K关注 0票数 28

当您使用设备摄像头兑换礼品卡时,是否有一种方法可以完成类似于iTunes和App Store应用程序所做的事情,即实时识别实时摄像头摘要上的一小串字符?

​

​

我知道在iOS 7中现在有一个AVMetadataMachineReadableCodeObject类,它只表示条形码。我更感兴趣的是检测和读取短字符串的内容。是否可以使用公开可用的API方法,或者您可能知道的其他第三方SDK?

还有一段视频展示了这个过程:

https://www.youtube.com/watch?v=c7swRRLlYEo

最好的

EN

回答 5

Stack Overflow用户

发布于 2014-11-26 11:23:19

我正在做一个项目,做一些类似于你提到的相机与苹果应用商店的赎回。

处理实时视频的一个很好的起点是a project I found on GitHub。这是使用AVFoundation框架并实现AVCaptureVideoDataOutputSampleBufferDelegate方法。

一旦您有了图像流(视频),您就可以使用OpenCV来处理视频。在通过Tesseract运行图像之前,您需要确定要OCR的图像区域。您必须尝试过滤,但使用OpenCV所采取的主要步骤如下:

使用cv::cv CV_RGBA2GRAY);

  • Threshold (,
  • ,inputMat,outputMat,cv
  • )将图像转换为黑白图像以消除不必要的元素。您指定要消除的阈值,然后将其他所有内容设置为黑色(或white).
  • Determine形成框边界的线条(或您正在处理的任何内容)。您可以创建一个“边界框”,如果您已经排除了除所需区域之外的所有区域,或者使用HoughLines算法(或概率版本,HoughLinesP)。使用此功能,您可以确定线条交点以查找边角,并使用边角将所需区域变形以在光学字符识别之前将其拉直为适当的矩形(如果此步骤在您的应用程序中是必需的)。
  • 使用Tesseract OCR库处理图像部分以获得结果文本。可以在OpenCV中为字母创建训练文件,这样就可以在没有Tesseract的情况下阅读文本。这可能会更快,但也可能会有更多的工作。在App Store的案例中,他们做了类似的事情来显示覆盖在原始图像上的阅读文本。这增加了酷的因素,所以它只取决于你需要什么。

其他一些提示:

  • 我用"Instant OpenCV“这本书快速入门。来自OpenCV.org/downloads.html
  • I的iOS的pretty helpful.
  • Download OpenCV发现自适应阈值非常有用,你可以通过搜索"OpenCV adaptiveThreshold“来阅读所有关于它的信息。此外,如果您的图像在明暗元素之间很少,则可以使用Otsu's Binarization。这会根据灰度图像的直方图自动确定阈值。
票数 16
EN

Stack Overflow用户

发布于 2018-06-21 01:55:26

这个问答帖子似乎一直是iOS上OCR主题的热门搜索命中之一,但已经相当过时了,所以我想我应该发布一些额外的资源,这些资源可能对我在撰写本文时发现的有用:

愿景框架

https://developer.apple.com/documentation/vision

从CoreML11开始,你现在可以使用包含的基于iOS的视觉框架来检测矩形或文本。我发现我不再需要在操作系统中包含这些功能的情况下使用OpenCV。但是,请注意,文本检测与文本识别或光学字符识别不同,因此您仍然需要另一个库,如Tesseract (或您自己的CoreML模型)来将检测到的图像部分转换为实际文本。

SwiftOCR

https://github.com/garnele007/SwiftOCR

如果你只是对识别字母数字代码感兴趣,这个OCR库声称比Tesseract有显著的速度、内存消耗和准确性改进(我自己还没有尝试过)。

ML套件

https://firebase.google.com/products/ml-kit/

谷歌已经发布了ML Kit,作为其Firebase开发工具套件的一部分,在撰写本文时处于beta版本。与苹果的CoreML类似,它是一个机器学习框架,可以使用你自己训练的模型,但也有用于常见图像处理任务的预训练模型,如视觉框架。与Vision Framework不同的是,它还包括一个用于在设备上识别拉丁字符的模型。目前,这个库的使用对于设备上的功能是免费的,使用Google的云/SAAS API产品是收费的。我选择在我的项目中使用它,因为识别的速度和准确性似乎都很好,而且我还将创建一个具有相同功能的Android应用程序,因此拥有一个单一的跨平台解决方案对我来说是理想的。

ABBYY实时识别SDK

https://rtrsdk.com/

这个用于iOS和Android的商业软件开发工具包可以免费下载,用于评估和有限的商业用途(在撰写本文时,最多可下载5000个)。进一步的商业使用需要扩展许可。由于定价不透明,我没有对此次发行进行评估。

票数 11
EN

Stack Overflow用户

发布于 2013-10-01 02:52:57

“实时”只是一组图像。您甚至不需要考虑处理所有这些数据,只需大致表示设备的运动(或相机位置的变化)即可。iOS SDK中没有内置任何东西来做你想做的事情,但你可以使用第三方OCR库(如Tesseract)来处理你从相机中抓取的图像。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19101391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档