16

如果 Apple 的 ARKit 像 Vuforia 一样支持 3D 对象跟踪(甚至图像跟踪),我找不到任何信息。我不想在世界任何地方放置 3D 模型。相反,我想检测一个特定的 3D 对象并将 AR 对象放置在该对象的前面和顶部。

简单的例子:我想在现实世界中追踪一辆特定的玩具车,并在 AR 场景中添加一个扰流板。

有人可以向我提供可能与否的信息吗?

4

3 回答 3

30

iOS 12 更新:在“ARKit 2”(iOS 12 或更高版本上的 ARKit)中...

  • 图像检测扩展到图像跟踪,因此多达四个图像不仅被检测一次,而且每帧都会“实时”更新,即使它们相对于世界空间移动。因此,您可以将可识别的 2D 图像附加到您的玩具上,并让虚拟 AR 内容跟随玩具在屏幕上四处走动。

  • 还有对象检测——在您的开发过程中,您可以使用一个 ARKit 应用程序来扫描真实世界的 3D 对象并生成“参考对象”文件。然后,您可以将该文件发送到您的应用程序中,并使用它来识别用户环境中的该对象。这可能适合您的“玩具车”案例……但请注意,3D 对象识别功能是检测,而不是跟踪:ARKit 不会在玩具车移动时跟随它。

有关详细信息,请参阅关于 ARKit 2 的 WWDC18 演讲


iOS 11.3 更新:在“ARKit 1.5”(iOS 11.3 或更高版本上的 ARKit)中,ARKit 中有一个新的图像检测功能。如果您有已知图像(例如海报或扑克牌等),您可以将其包含在您的 Xcode 项目中和/或从其他地方加载它作为 anARReferenceImage并将其放入会话配置的detectionImages数组中。然后,当 ARKit 在用户环境中找到这些图像时,它会为您提供ARImageAnchor告诉您它们在哪里的对象。

请注意,这与您从其他一些工具包中看到的“基于标记的 AR”不太一样——ARKit 只找到一次参考图像,它不会告诉您它是如何随时间移动的。所以它有利于“触发”AR内容体验(比如那些你将手机指向商店里的星球大战海报然后角色走出的宣传片),但不适用于虚拟角色保持依恋的AR棋盘游戏到游戏棋子。


否则...

可以访问每个捕获的 ARFrame 中的相机图像,因此如果您有其他软件可以帮助完成此类任务,您可以将它们与 ARKit 结合使用。例如,Vision 框架(也是 iOS 11 中的新功能)为此类任务提供了多个构建块——您可以检测条形码并找到它们的四个角,并在手动识别图像中的感兴趣区域后,跟踪其在帧之间的移动.

于 2017-06-30T03:40:44.973 回答
3

注意:这绝对是一个 hack,但它为 ARKit Unity 添加了持久图像跟踪。同样的想法也可以应用于 Native lib。

下载 ARKit 1.5 beta https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/branch/spring2018_update

在 ARSessionNative.mm 中,添加以下代码块:

extern "C" void SessionRemoveAllAnchors(void* nativeSession) {
    UnityARSession* session = (__bridge UnityARSession*)nativeSession;
    for (ARAnchor* a in session->_session.currentFrame.anchors)
    {
        [session->_session removeAnchor:a];
        return;
    }
}

在 UnityARSessionNativeInterface.cs 中,在 SessionRemoveUserAnchor 下添加以下代码:

private static extern void SessionRemoveAllAnchors (IntPtr nativeSession);

这在 RemoveUserAnchor 下:

public void RemoveAllAnchors() {
        #if !UNITY_EDITOR

        SessionRemoveAllAnchors(m_NativeARSession);
        #endif
    }

然后从更新或协程调用它:

UnityARSessionNativeInterface.GetARSessionNativeInterface().RemoveAllAnchors ();

当锚点被移除时,图像可以再次被识别。它不是超级流畅,但它绝对有效。

希望你发现这很有用!如果您需要进一步的帮助,请告诉我。

于 2018-03-04T22:36:54.020 回答
3

ARKit 2.0iOS 12 不仅支持Camera Tracking功能,还支持:

  • 3D 物体追踪
  • 人脸追踪
  • 图像追踪
  • 图像检测
  • 3D 物体扫描

ARKit 3.0iOS 13 支持更复杂的功能:

  • 人物遮挡(RGBAZ 实时合成)
  • 身体追踪(又名动作捕捉)
  • 多面跟踪(最多 3 个面)
  • 同时前后摄像头跟踪
  • 协作会议
于 2018-09-01T11:04:16.067 回答