iPhone x上的Apple ARKit不准确

时间:2018-01-23 21:44:22

标签: arkit iphone-x

我为Stanley Black& Decker工作,使用ARKit进行高精度测量。我一直在测试iPhone7 +和iPad Pro(自7月以来广泛使用),AR和现实世界之间的准确度相当不错(例如,在40英寸以内的几英寸内)。然而,对于iPhone X,精确度是偏离 - 超过40英尺一英尺或更多。事实上,iPhone X似乎错误地将所有内容缩小了3%到8%太小(例如45'真实显示为42'2“AR)。有没有其他人看到模型之间的差异?

更新:非常好。 (如你所提到的)有几层抽象。在基础是视觉惯性测微 - 使用(随机)特征点“云”,陀螺仪,加速度计建立世界起源。下一层是hz平面检测(平面锚)。似乎每帧(60fps)ARKit基于VIO重新计算(重新估计)世界原点。这会引起背景抖动(通常为±1mm /轴)。如果要素点云太小或变化太快,则世界原点检测变得难以估计,或者不确定,原点连续性丢失。

但还有另一个条件,原点和平面锚没有改变,但POV瞬间(在16ms内)跳跃0.5到2.5米。因此,ARKit错误地认为POV已经移动 - 也就是iPhone身体跳跃。与iPhone DID移动的电梯有点相反,但是特征点云没有。

未知的是飞机锚点是否“反馈”到世界原点(或POV)估计中。我不这么认为。如果一个或多个飞机在视野(fustrum),那么不应该有滑动 - 但是有。所以看起来世界起源只是由VIO和特征点云决定的,因此,平面锚点可以相对于原点和抖动移动,而且它们会发生。

在最初的问题上,我并排使用iPhone7和iPhoneX,两者都检测到同一(单)平面(在地板上)。但是当我从起点慢慢移动时,iPhone7的位置(通过scnHit或Pov)非常准确(4米是4米)。虽然iPhoneX似乎低估了这个位置(4米显示为3.5米)

1 个答案:

答案 0 :(得分:0)

是的模型在ARKit中移动更长的距离。

ARKit通过映射环境并将虚拟坐标置于顶部来工作。因此,当您首先启动ARKit应用程序时,它会搜索并为现实世界创建锚点,以便找到足够的特征点。随着我们四处移动,这些锚点被添加到不同的现实世界对象或地方。并且它尝试匹配已经找到的地点与创建的锚点并相应地定位虚拟世界(3D坐标)。

您知道是否找不到足够的特征点模型从其位置移位,因为它在实际和虚拟定位之间混淆。当在这些情况下添加锚点时,我们将为此锚点移动虚拟世界的原点。

当AR会话开始时,原点位于表格的一个角落,并且您将模型放置在表格的中心。现在,当您移动到表的下一端并且模型转移到表的边缘时,因为它找不到足够的特征点。当模特处于边缘时,它突然发现了新锚。现在发生的事情是它有两个用于表格两端的锚点。如果将相机移动到表格的第一端,则它与第一个锚点匹配,模型放在表格的中心。如果您将相机移动到下一端,它会与第二个锚点匹配,并将模型移动到表格的边缘。

这种机会随着距离的增加而增加。