Apple Vision图像识别

时间:2017-09-11 08:56:01

标签: ios arkit coreml apple-vision

与其他许多开发人员一样,我已经投身Apple的新ARKit技术。太棒了。 然而,对于一个特定的项目,我希望能够识别场景中的(真实的)图像,或者在其上投影某些内容(就像Vuforia对其目标图像所做的那样),或者使用它来触发事件。我的申请。

在我关于如何实现这一目标的研究中,我偶然发现了Apple的Vision和CoreML框架。这似乎很有希望,虽然我还没有能够把它包围起来。

据我了解,我应该能够通过使用Vision框架找到矩形并将它们输入到CoreML模型中来完成我想要的工作,CoreML模型只是将它与我​​在模型中预定义的目标图像进行比较。然后它应该能够吐出它找到的目标图像。

虽然这听起来不错,但我还没有办法做到这一点。我将如何创建这样的模型,甚至可能呢?

3 个答案:

答案 0 :(得分:3)

我几周前在Github上发现了这个项目: AR Kit Rectangle Detection

我认为这正是你要找的......

答案 1 :(得分:0)

从ARKit 1.5开始(2018年春季推出IOS 11.3),一个功能似乎直接在ARKit上实现,解决了这个问题。

ARKit将全力支持图像识别。 识别出图像后,可以将3d坐标检索为锚点,因此可以将内容放置在它们上面。

答案 2 :(得分:0)

Vision的图像检测能力是从iOS 11.3+开始在ARKit中实现的,因此从那时起,ARKit具有ARImageAnchor子类,该子类扩展了ARAnchor父类并符合{{1 }}协议。

ARTrackable

// Classes hierarchy and Protocol conformance... ObjectiveC.NSObject: NSObjectProtocol ↳ ARKit.ARAnchor: ARAnchorCopying ↳ ARKit.ARImageAnchor: ARTrackable 类具有一个ARWorldTrackingConfiguration实例属性,实际上是ARKit尝试在用户环境中检测到的图像集。

detectionImages

open var detectionImages: Set<ARReferenceImage>! 类还具有一个ARImageTrackingConfiguration实例属性,该属性也是一个集合,它具有相同的目的– ARKit尝试在用户环境中检测并跟踪

trackingImages

因此,具有正确的配置和自动在ARSession中获得open var trackingImages: Set<ARReferenceImage> 的能力,您可以将任何几何图形绑定到该锚点。

PS 。如果您想了解如何在ARKit应用中实现图像检测功能,请查看 this post