与其他许多开发人员一样,我已经投身Apple的新ARKit技术。太棒了。 然而,对于一个特定的项目,我希望能够识别场景中的(真实的)图像,或者在其上投影某些内容(就像Vuforia对其目标图像所做的那样),或者使用它来触发事件。我的申请。
在我关于如何实现这一目标的研究中,我偶然发现了Apple的Vision和CoreML框架。这似乎很有希望,虽然我还没有能够把它包围起来。
据我了解,我应该能够通过使用Vision框架找到矩形并将它们输入到CoreML模型中来完成我想要的工作,CoreML模型只是将它与我在模型中预定义的目标图像进行比较。然后它应该能够吐出它找到的目标图像。
虽然这听起来不错,但我还没有办法做到这一点。我将如何创建这样的模型,甚至可能呢?
答案 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 。