Swift 苹果视觉图像识别

Swift 苹果视觉图像识别,swift,machine-learning,augmented-reality,arkit,apple-vision,Swift,Machine Learning,Augmented Reality,Arkit,Apple Vision,和许多其他开发者一样,我也投身于苹果新的ARKit技术。太棒了。 但是,对于一个特定的项目,我希望能够识别场景中的(真实)图像,或者在其上投射一些东西(就像Vuforia对目标图像所做的那样),或者使用它在我的应用程序中触发事件 在我关于如何实现这一点的研究中,我偶然发现了苹果的Vision和CoreML框架。这似乎是有希望的,尽管我还没有完全理解它 据我所知,我应该能够通过使用Vision框架找到矩形并将其输入CoreML模型,该模型只需将其与我在模型中预定义的目标图像进行比较,就可以准确地完

和许多其他开发者一样,我也投身于苹果新的ARKit技术。太棒了。 但是,对于一个特定的项目,我希望能够识别场景中的(真实)图像,或者在其上投射一些东西(就像Vuforia对目标图像所做的那样),或者使用它在我的应用程序中触发事件

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

据我所知,我应该能够通过使用Vision框架找到矩形并将其输入CoreML模型,该模型只需将其与我在模型中预定义的目标图像进行比较,就可以准确地完成我想要做的事情。然后,它应该能够吐出它找到的目标图像


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

几周前我在Github上发现了这个项目:

我认为这正是您想要的…

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

ARKit将完全支持图像识别。
识别图像后,可以检索3d坐标作为定位点,因此可以将内容放置在其上。

Vision
的图像检测功能从iOS 11.3+开始在ARKit中实现,因此,从那时起,ARKit就拥有了
ARImageAnchor
子类,该子类扩展了
ARAnchor
父类,并符合
ARTrackable
协议

// Classes hierarchy and Protocol conformance...

ObjectiveC.NSObject: NSObjectProtocol
        ↳ ARKit.ARAnchor: ARAnchorCopying
                ↳ ARKit.ARImageAnchor: ARTrackable
arworldctrackingconfiguration
类具有一个
detectionImages
实例属性,该属性实际上是ARKit试图在用户环境中检测的一组图像

因此,有了正确的配置,并且能够在一段时间内自动获取
ARImageAnchor
,您可以将任何几何体系在该锚点上


p.S.如果您想知道如何在ARKit应用程序中实现图像检测功能,请查看

有趣的是,我想知道昨天到底是怎么回事。谢谢你的邀请!是的,这很好,谢谢。然而,这只是我所寻找的基础,因为这个应用程序能够检测一个矩形,但不能区分该矩形上的不同图像。我认为使用CoreML应该是可能的,但是我不确定我将如何去做,我正在寻找完全相同的。你已经找到解决办法了吗?我在考虑训练一个模特。使用CoreML进行ARKit识别图像后,找到矩形,您就得到了所需的内容。但是我认为,仅仅为一个图像训练一个CoreML模型是太多了……不幸的是,对你来说,我也在想同样的事情,但还没有找到答案。对于我目前正在进行的项目,我尝试将ARToolkit和ARKit结合起来(前者仅用于图像识别)。通过团结,这当然是可能的,尽管我还没有完成这个过程。然而,如果你想以本土的方式去做,我不确定你是否能做到。我知道Vuforia计划在明年初的某个时候发布Vuforia融合,它将把它的图像识别能力与ARKit和/或ARCore结合起来,我也在尝试做同样的事情。我正在考虑使用AWS Rekognion处理图像,但我仍然需要一种方法来局部了解人脸是否已被处理。
open var detectionImages: Set<ARReferenceImage>!
open var trackingImages: Set<ARReferenceImage>