我能否使用ARKit同时跟踪超过4个图像?

3
开箱即用,ARKit 一次最多只能跟踪 4 张图像(你可以"跟踪"多个标记,但同一时间只有 4 个可以生效)。关于此问题,请参考这个问题。 不过,我想知道是否有可能绕过此限制。比如说在计时器上添加和删除锚点,获取位置信息然后无需使用 ARKit 显示相应的模型等。我的 Swift 知识相当有限,所以尚未进行实验。有任何建议或指引,将会非常有帮助。
相比之下,Android 的 ARCore 根据文档最多可以支持 20 个。我也亲自测试过 Web 库在 iPhone 上跟踪超过 4 个标记。我还相信我曾在某个地方读到过某个 Nintendo DS 的变种能够跟踪多达 4 个以上的标记。由于硬件限制,这是不可行的。
1个回答

4

ARKit 5.0

今天的答案是肯定的,你可以。苹果公司在2021年WWDC上宣布,开发人员现在可以在ARKit 5.0中同时检测多达100张图片让我们来看看。

ARKit 4.0

在ARKit 4.0中没有解决方案可以同时跟踪超过四张图片,使用会话的ARImageTrackingConfiguration()中的ARImageAnchor子类。我必须说,尽管在ARKit 4.0中场景中跟踪的图像总数可以达到100张,但这种限制仍然存在。

如果您选择跳转到定义选项,可以在ARConfiguration类中阅读评论。

enter image description here

我相信这个功能被苹果软件工程师有意限制了。 ARImageAnchor 子类继承自 ARAnchor 父类并符合 ARTrackable 协议,因此它不仅可以跟踪静态图像,还可以跟踪移动图像(例如汽车车身上的标志)。因此,如果您跟踪超过4个图像,这将是高度CPU / GPU密集型操作(最臭名昭着的耗电量),因为您的设备必须检测和跟踪多个不同的对象。
我认为在新的ARKit 4.0版本中,可能会同时跟踪多于4个图像,并且可以在相当强大的5纳米设备上运行,例如即将在今年秋天推出的iPhone 12。
因此,苹果软件工程师为了实现强大的AR体验而牺牲了应用程序的功能性。 P.S. ARCore和ARKit不能进行比较,因为这些框架在内部的工作方式不同,尽管它们具有相似的基本原则,如世界跟踪、场景理解和渲染阶段。除此之外,我应该说ARCore的功能比ARKit更加简单,这使得ARCore对CPU计算更加“轻量级”(尽管我知道最后一句话听起来很主观)。

我想在2020年底,你可以用5纳米的设备追踪4张以上的图像。能否详细说明一下这一点?同时,我完全理解性能和电池消耗会很严重,但令人沮丧的是Apple正在剥夺开发者的选择权。 - iicaptain
1
搭载A14芯片组的设备将比现有设备更加强大。对于苹果来说,如果用户的AR体验只持续几分钟而不是至少一小时,这将非常令人沮丧。还有,别忘了-过热会影响电池寿命。 - Andy Jazz

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