ARCore 运动跟踪

 

       ARCore最主要的三大功能:运动跟踪、环境理解、光估计。本博客主要介绍运动跟踪,ARCore官网对于运动跟踪的解是:当您的手机在现实世界中移动时,ARCore 会通过一个名为并行测距与映射(或COM)的过程来理解手机对于周围世界的位置。ARCore 会捕获的摄像头图像中的视觉差异特征(称为特征点),并使用这些点来计算位置变化。这些视觉信息将与设备IMU的惯性测量结果结合,一起用于估测摄像头随着时间推移而相对于周围世界的姿态(位置和方向)。通过将渲染3D内容的虚拟摄像头的姿态与ARCore提供的设备摄像头的姿态对齐,开发者能够从正确的透视角度渲染虚拟内容。渲染的虚拟图像可以叠加到从设备摄像头获取的图像上,让虚拟内容看起来就像现实世界的一部分一样。

      下面将深入解读ARCore的运动跟踪的官方文档。运动跟踪解决了用户在现实世界中在哪里的问题。ARCore使用视觉惯性测距系统(Visual Inertial Odometry,简称VIO)的算法来实现运动跟踪。VIO在硬件上需要传感器的融合,包括相机和六轴陀螺仪。相机产生图片,六轴陀螺仪产生加速度和角速度。VIO将从设备的摄像机中识别图像特征与内部运动传感器结合起来,以跟踪设备的相对位置和方向。通过跟踪方位和位置,即可以获取到设备在6自由度范围内的位置,即通常所说的设备/物体的姿态。在三维物体的6自由度中,运动整体上可以分为运动和旋转两类:平移可分为(前后,左右,上下),旋转也可以分为(俯仰,偏航,翻滚)。对于6自由度中姿态的数学表示就是矩阵,物体平移和旋转都可以用矩阵来表示。理解了六个自由度后,我们就可以理解,摄像机在虚拟空间中运动的方式。如果摄像机向前平移,代表着六个自由度中的先后,或者摄像机拍摄天空,代表着设备的仰视。这都可以通过六轴陀螺仪,跟踪到设备的运动方式。另一个需要理解的是物体在摄像机屏幕上的投影过程,摄像机的主要任务是将3D虚拟物体投影成2D图像,然后显示在设备上。

       运动跟踪总的来说,就是通过定位用户(实际是定位用户的手机设别)的位置和方向,通过摄像机的投影矩阵将虚拟设备投影到用户手机屏幕上,如果用户运动了,可以通过VIO跟新用户的位置与方向信息,更新投影矩阵,这样就可以把虚拟物体固定在空间中的某个点,从而达到以假乱真的视觉体验。

       

你可能感兴趣的:(AR)