【问题标题】:Can I track more than 4 images at a time with ARKit?我可以使用 ARKit 一次跟踪 4 张以上的图像吗?
【发布时间】:2023-04-07 01:58:01
【问题描述】:

开箱即用,很明显 ARKit 不允许同时跟踪超过 4 张图像。 (您可以“跟踪”比这更多的标记,但一次只能运行 4 个)。有关详细信息,请参阅this question

但是,我想知道是否有可能的解决方法。比如在计时器上添加和删除锚点或获取位置信息,然后在没有 ARKit 的情况下显示相应的模型等。我对 Swift 的了解相当有限,所以我还没有太多的运气进行实验。任何正确方向的建议或指示都会有所帮助。

相比之下,ARCore for Android 根据documentation 限制为 20 个。我还亲自测试了在 iPhone 上跟踪超过 4 个标记的基于 Web 的库。我还相信我在某处读到过 Nintendo DS 的某些变体能够跟踪超过 4 个标记。由于硬件限制,这不可能不可行。

【问题讨论】:

    标签: swift augmented-reality arkit arcore realitykit


    【解决方案1】:

    ARKit 5.0

    今天的答案是肯定的,你可以。 Apple 已告知开发人员现在可以在 WWDC 2021 上宣布的 ARKit 5.0 中检测多达 100 张图像at a time。让我们来看看吧。

    ARKit 4.0

    ARKit 4.0 中没有解决方法来使用会话的ARImageTrackingConfiguration() 中的ARImageAnchor 子类同时跟踪四个 图像。我应该说,尽管在 ARKit 4.0 中一个场景中跟踪图像的总数可以达到 100 个,但这个限制仍然有效。

    如果您选择Jump to Definition选项,您可以阅读ARConfiguration类中的cmets。

    我相信此功能并非偶尔会受到 Cupertino 软件工程师的限制。 ARImageAnchor 子类继承自 ARAnchor 父类并符合 ARTrackable 协议,因此它不仅可以跟踪静态图像,还可以跟踪运动图像(如汽车车身上的标志)。因此,如果您跟踪超过 4 张图像——这是高度 CPU/GPU 密集型的(最臭名昭著的事情是耗尽手机电池),导致您的设备必须检测和跟踪多个不同的对象。

    我想可以使用更新的 ARKit 4.0 版本同时跟踪超过 4 张图像,该版本可以在相当强大的 5nm devices 上运行,例如 iPhone 12,我们将在今年秋天看到。

    因此,Apple 软件工程师为了获得强大的 AR 体验而牺牲了应用功能。

    附言

    将 ARCore 与 ARKit 进行比较是不正确的,因为这些框架在内部的工作方式不同,即使它们具有相似的基本原理——例如 World Tracking场景理解渲染阶段。而且除此之外,我应该说 ARCore 的功能比 ARKit 更温和,这使得 ARCore 在 CPU 计算上更加“轻量级”(虽然我理解最后一句话听起来很主观)。

    【讨论】:

    • “我想你可以用 5nm 设备跟踪 4+ 图像,似乎在 2020 年末。” - 你能扩展一下吗?此外,我完全理解性能和电池消耗会很糟糕,但令人沮丧的是,Apple 将这种选择从开发人员手中夺走了。
    • 采用 A14 芯片组的设备将比现有设备强大得多。如果用户的 AR 体验至少只持续几分钟而不是一个小时,那么对于 Apple 来说,这将更加令人沮丧。别忘了——过热会损坏电池。
    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 2021-09-02
    • 2012-03-23
    • 2019-01-26
    • 2017-12-02
    • 2023-03-16
    • 1970-01-01
    • 2010-10-25
    相关资源
    最近更新 更多