用于iPhone代码的图像识别库/ API

时间:2011-04-04 11:45:41

标签: iphone ipad image-processing image-recognition

我需要制作一个具有以下功能的iOS应用程序:

  • 使用相机拍摄图像。
  • 识别该图像:是否与样本图像匹配?

是否有任何在线API(来自Google,Yahoo,...)?例如,我是否可以上传图片并获取图片网址,并在该请求之后使用网址将新图片与现有图片进行比较?

8 个答案:

答案 0 :(得分:17)

OpenCV库(for iPhone)包含许多算法。您可以简单地比较图像的颜色直方图,或使用更复杂的东西。你的意思是哪种匹配?寻找重复或计算图像相似度的措施?

如果你想匹配一些简单的模板来查找对象,那么试试Viola&琼斯算法和所谓的哈尔级联。例如,OpenCV已经训练了XML​​文件中的模板集合,用于检测面部。 OpenCV包含用于训练的实用程序,因此您可以为其他类型的对象生成级联

答案 1 :(得分:14)

您还可以查看Moodstocks,它们提供了出色的API和iOS SDK,可在几分钟内在您的应用中实现图像识别。

答案 2 :(得分:14)

只是为了扩展名单:

答案 3 :(得分:10)

尝试以下两个API:

答案 4 :(得分:3)

我找到了IQEngines,效果很好。

答案 5 :(得分:3)

随着深度神经网络的出现,整个图像识别领域发生了变化。但是你需要一台强大的机器来训练你自己的神经网络。您也可以使用vize.it - 这是一个易于使用的在线应用程序,可让您使用http API定义任务并对图像进行分类。

免责声明:我是人工智能的博士生,是vize.it团队的成员。

答案 6 :(得分:1)

Pastec开源(LGPL)替代已提及的服务。

它简单的HTTP API允许在索引中轻松添加,删除和搜索匹配的图像。它基于OpenCV并使用ORB描述符,该描述符是无专利的。

答案 7 :(得分:1)

我调查了Moodstocks,他似乎已经完善了一个带有每月付费服务的图像识别系统。他们有一个很棒的系统(我已经测试过它供我自己使用而且非常棒)但是对我来说它非常昂贵,这就是我不使用它的原因。在我写这篇文章时,"高达100,000"图像服务约为12,000美元/年。对于我的项目,我需要匹配近400万张图像。 YIKES。

因此,经过数月的研究和研究,我得出的结论是,如果您要与1000多张图像进行比较或更多(在我的情况下为100万+) ,您需要对设备进行图像比较 off 。用户移动设备没有空间,速度和能力来执行大量计算来完成这类工作。

这真正意味着您需要在高性能计算机上设置图像识别服务器并将其公开给您的应用。在应用程序上,让用户拍摄对象的照片(或者您可以从相机视频中抓取帧),将其发送到您的服务器进行比较,然后在找到匹配时将结果报告给应用程序。 / p>

例如,您可以使用Accord.NETEmguCV这样的框架来制作在Windows服务器上运行的C#桌面应用程序或服务。

亚马逊iOS应用程序用于图像识别的功能我猜测它们似乎是实时定位SURF点并在扫描时将数据发送到服务器而不是整个图像。我的猜测是他们在设备上使用OpenCV来做到这一点。但他们仍然使用服务器软件发回匹配的产品SKU。

这是一篇很棒的博客文章,由一个想要在.NET中进行图像匹配的人发布,他会逐步完成每一步,包括它是如何工作的,如何操作,然后在示例应用程序中提供所有代码。惊人的帖子:https://sbrakl.wordpress.com/2015/01/30/love-affair-with-cbir-part-3/comment-page-1/

从我能够学到的是,LoCATe算法在大量图像中表现最佳和最快,但也需要数小时,数天和数周(取决于您拥有的图像数量)为搜索创建大量索引。我认为,在图像匹配方面,我发现创建可靠索引的速度与查询匹配的速度有关。