首页 文章

“真实世界物体”,表面,AR锚点之间有什么区别?

提问于
浏览
2

我正在寻找这个问题的技术答案:

ARkit中“真实世界对象”,表面,AR锚点之间有什么区别?

我相信,至于我可以说:1)ARkit提供3种不同的方法来搜索“真实世界的物体”,表面,AR锚 .

我理解要查看在视图中显示的SceneKit / SpriteKit内容,您需要使用不同的hitTest方法 .

我只是无法理解什么是“真实世界的对象”是vs surface vs AR anchor?

我最好的猜测是:

现实世界的对象: - 我不知道?表面: - featurePoints - estimatedHorizontalPlane -estimatedVerticalPlane AR锚点:ARImageAnchor ARFaceAnchor ARPlaneAnchor

我想你明白了...... ARKit中的“现实世界”是什么?

任何帮助都会很棒 . 文档似乎真正强调“实际对象或表面”之间的区别 .

谢谢Smartdog我们都通过分享我们所知道的东西来学习

1 回答

  • 3

    我的直觉是,无论谁写了Apple的文档,都会使事情变得模棱两可,因为a)你可以将这些方法用于多种命中测试,而b)ARKit并不真正知道它在看什么 .

    如果对任何与平面相关的类型( existingPlaneestimatedHorizontalPlane 等)进行命中测试,那么您正在寻找真实的平面 . 或者更确切地说,您正在寻找ARKit“认为”看起来像平面水平(或垂直,在iOS 11.3及更高版本)表面的东西 . 那些可能会或可能不会在任何特定时刻准确地反映现实世界的形状,但它们是ARKit的最佳猜测 . 您搜索的与平面相关的哪种类型决定了您是否获得了现有的 ARAnchor .

    (注意假阴性比假阳性更常见 . 例如,您可能在ARKit尚未映射桌面角落的位置找不到命中结果,但您不太可能找到没有相应的平面命中结果现实世界的平面 . )

    如果你进行了 featurePoint 命中测试,那么你正在测试ARKit用户环境的稀疏 Map . 如果您打开 ARSCNView 中的 showFeaturePoints 选项,您可以看到此 Map - 在每个视频帧中,它会发现数十到数百个视点非常有趣的点(从特定算法的角度来看,“有趣”)它可以关联帧之间的2D位置,并使用视差来估计它们与相机的距离和3D空间中的位置 . (反过来,这可以告知ARKit关于设备本身在3D空间中的位置的想法 . )

    因为“特征点”可以是摄像机图像中的任何小的高对比度区域,所以它并不真正与任何特定类型的现实世界相关联 . 如果你正在看一张带有漂亮木纹图案的 table ,你会在桌面上看到很多特征点 . 如果你正在看一张带有盆栽植物的 table ,你会在桌面上看到一些点,一些在锅上,一些在叶子上...没有足够的点(或CV算法) )真的可以直观地了解植物的形状 . 但足够的是,如果用户点击其中一个点,你的应用程序可以放置一些3D对象,它可能令人信服地看起来坚持植物 .

    因此,从最普遍的意义上说,ARKit命中测试是在“现实世界”(如ARKit所感知的)中寻找某种“物体”,但除非你在寻找飞机(表面),否则不可能真的如此更具体地说明“对象”可能是什么 .

相关问题