苹果视觉图像识别技术

10

和其他开发者一样,我深入研究了苹果的新ARKit技术,发现它很好用。但是为了一个特定的项目,我希望能够识别场景中的(真实)图像,以便在其上投射某些东西(就像Vuforia使用其目标图像一样),或者将其用于触发应用程序中的事件。

在我研究如何实现这一点时,我偶然发现了苹果的Vision和CoreML框架。这看起来很有前途,尽管我还没有完全理解它们。

据我所知,我应该能够通过使用Vision框架查找矩形,并将其馈送到一个简单的CoreML模型中,该模型仅将其与我在模型中预定义的目标图像进行比较。然后它应该能够输出它找到了哪个目标图像。

虽然这在我脑海中听起来不错,但我还没有找到完成此操作的方法。我该如何创建这样的模型?这种方式是否可能?


有趣,我昨天还在想那是怎么工作的。谢谢你的提问! - LinusGeffarth
3个回答

3

几周前我在Github上发现了这个项目: AR Kit矩形检测

我认为这正是你所需要的...


是的,这很好,谢谢。 然而,这只是我所寻找的基础,因为该应用程序能够检测矩形,但无法区分矩形上的不同图像。我认为可以使用CoreML实现,但我不确定如何去做。 - Marc Van Deuren
我正在寻找完全相同的东西。你已经找到解决方案了吗?我在考虑训练一个模型。在ARKit和CoreML识别图像后,找到矩形,你就得到想要的东西了。但是,为了一个图像训练一个CoreML模型太过浪费了,我认为... - KNV
很遗憾,我也在思考同样的问题,但还没有找到答案。对于我目前正在开发的项目,我尝试结合ARToolkit和ARKit(前者仅用于图像识别)。虽然这在Unity中是可行的,但我还没有完成这个过程。然而,如果你想本地实现它,我不确定你是否能够做到。我知道Vuforia计划在明年初发布Vuforia Fusion,它将把其图像识别功能与ARKit和/或甚至ARCore结合起来。 - Marc Van Deuren
我正在尝试做同样的事情。之前在考虑使用AWS Rekognition来处理图片,但是我仍需要一种本地的方法来知道是否已经处理了人脸。 - davidmerrick

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>

所以,只要有正确的配置和自动获取ARSession中的ARImageAnchor的能力,您就可以将任何几何形状连接到该锚点。
附言:如果您想知道如何在ARKit应用程序中实现图像检测功能,请查看此帖this post

0

从ARKit 1.5开始(将于2018年春季随IOS 11.3一起发布),似乎直接在ARKit之上实现了一个功能来解决这个问题。

ARKit将完全支持图像识别。 一旦识别出图像,就可以将3D坐标作为锚点检索,因此可以将内容放置在其上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接