【发布时间】:2018-01-23 21:44:22
【问题描述】:
我在 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 瞬间(在 16 毫秒内)跳跃了 0.5 到 2.5 米米。所以 ARKit 错误地认为 POV 已经移动了——也就是 iPhone 物理跳了。与 iPhone DID 移动但特征点云没有移动的电梯有点相反。
未知的是平面锚是否“反馈”到世界原点(或 POV)估计中。我不这么认为。如果一架或多架飞机在视野中(fustrum),那么不应该有滑点——但确实存在。所以看起来世界原点仅由 VIO 和特征点云确定,因此,平面锚点可以相对于原点移动,并且抖动,它们确实如此。
在最初的问题上,我并排使用 iPhone7 和 iPhoneX,两者都检测到相同的(单个)平面(在地板上)。但是当我从起点慢慢移动时,iPhone7 的位置(通过 scnHit 或 Pov)非常准确(4m 是 4m)。而 iPhoneX 似乎低估了这个位置(4m 显示为 3.5m)
【问题讨论】: