10

与许多其他开发人员一样,我也投入了 Apple 的新 ARKit 技术。这很棒。然而,对于一个特定的项目,我希望能够识别场景中的(现实生活)图像,或者在其上投射一些东西(就像 Vuforia 对其目标图像所做的那样),或者使用它来触发事件我的应用程序。

在我研究如何实现这一点时,我偶然发现了 Apple 的 Vision 和 CoreML 框架。这似乎很有希望,尽管我还没有完全理解它。

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

虽然这在我的脑海中听起来不错,但我还没有找到一种方法来做到这一点。我将如何创建这样的模型,甚至有可能吗?

4

3 回答 3

3

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

我认为这正是您正在寻找的...

于 2017-09-11T15:10:32.917 回答
0

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

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

于 2018-02-06T11:15:40.777 回答
0

Vision检测图像的能力是从 iOS 11.3+ 开始在 ARKit 中实现的,所以从那时起 ARKit 就有ARImageAnchor了扩展ARAnchor父类并符合ARTrackable协议的子类。

// Classes hierarchy and Protocol conformance...

ObjectiveC.NSObject: NSObjectProtocol
        ↳ ARKit.ARAnchor: ARAnchorCopying
                ↳ ARKit.ARImageAnchor: ARTrackable

ARWorldTrackingConfiguration类有一个detectionImages实例属性,它实际上是 ARKit 尝试在用户环境中检测的一组图像。

open var detectionImages: Set<ARReferenceImage>!

并且ARImageTrackingConfiguration类也有一个trackingImages实例属性,它也是一个集合,它具有相同的目的——ARKit 试图在用户的环境中检测和跟踪它。

open var trackingImages: Set<ARReferenceImage>

因此,拥有正确的配置和自动进入ARImageAnchorARSession 的能力,您可以将任何几何体连接到该锚点。

PS如果您想知道如何在您的 ARKit 应用程序中实现图像检测功能,请查看这篇文章

于 2020-03-29T10:32:50.867 回答