ARCore环境理解

         ARCore会通过检测特征点和平面来不断改进对现实环境的理解。ARCore可以查找看起来位于常见水平或垂直平面上的成簇特征点(例如桌子或墙),并让这些平面在app中显示的也是平面。ARCore也可以确定每个平面的边界,并让在app中也认为是平面。你可以使用理解的这些信息将虚拟物体置于平坦的表面上。由于ARCore使用特征点来检测平面,因此可能无法正确检测像白墙一样没有纹理的平坦表面。

        ARCore对于环境理解的一个重要设置,就是点云。先来了解特征点,特征点是指ARCore通过VIO检测捕获的摄像头图像中的视觉差异特征点,这些视觉差异点是从图像中明暗、颜色、灰度差异比较大的点中挑选出来的,ARCore会实时跟踪更新这些特征点,一部分特征点会被删除,同时也会不断的加入新的特征点,通过算法获取比较稳定的特征点,这些特征点在机器视觉中就可以被解析成特定的位置信息,通过特征点即可计算其位置变化情况。这些特征点信息与设备IMU的惯性测量结果结合,不仅可以跟踪用户(手机设别)随时间推移而相对于周围世界的姿态,同时ARCore还会通过检测到的特征点和平面来不断改变它对现实世界的环境理解,ARCore也是通过特征点来检测平面的。众多的特征点即可构成特征点云,简称点云。

       ARCore的平面检测,在ARCore unity sdk包下的Common/Prefabs 文件夹下有平面检测的预置体(即编写好的模型)DetectedPlaneVisualizer (平面检测的可视化工具),内置Detected Plane Visualizer脚本附加到模型上,用于实现平面检测的功能。

发布了3 篇原创文章 · 获赞 0 · 访问量 56

猜你喜欢

转载自blog.csdn.net/weixin_42039413/article/details/97624309