大众印象中的AR增强现实(Augmented Reality)是通过计算机视觉增强技术,识别并跟踪特定图案,在识别图案上附加二维或者三维影像,来达到增强现实显示的目的。 随着SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)技术的成熟和引入AR,增强现实技术发生了根本性的变化,SLAM算法已经成为了AR的核心技术。 传统的AR是通过计算目标物体的特征点和透视角度,通过视觉增强算法推算摄像机与被识别物体之间的相对位置和夹角,AR增强显示系统是围绕着被识别物体来构建的。 而SLAM将世界坐标的概念引入AR,让AR应用可以以人为中心,构建虚拟和现实融合的统一世界坐标(微软称之为MR,混合现实)。
采用SLAM技术的AR应用通过深度相机扫描周边环境,构建出现实世界的特征点云。SLAM核心算法简单来说:即通过已知的三点排列图案在不同角度下拍摄的透视画面,可以反向推算出拍摄者位置。通过大量点云信息和三角排列计算,可以推算出摄像机在已知点云世界中的移动。 当然,实际应用的AR,还会借助移动设备的重力感应和惯性陀螺仪来辅助定位,帮助实时推算摄像机移动位置) Apple iOS ARKit具有扫描点云和世界坐标定位功能,能将周围真实世界点云扫描并存储下来,用户在第二次进入同一场所时,可以重新匹配点云,重新获得世界坐标原点,这样,程序可以将上一次的AR虚拟场景重新还原到现实世界坐标中。
用户也可以将扫描的世界坐标和点云信息发送给其他用户,当多个用户进入同一场所时,可以共享同一世界坐标系,可以在多人应用中进行交互互动。
UE4中实现ARKit世界坐标保存和恢复
1. 保存世界坐标和点云信息
调用SetARWorldOriginLocationAndRotation标记AR世界坐标原点,调用SaveARWorld保存点云信息(点云坐标已经按照设置的坐标原点重新归整)
2. 加载世界坐标和点云信息
WorldConfig为ARSessionConfig
3. 匹配世界坐标和点云信息
GetARWorldMappingStatus返回Mapped时,标识AR世界坐标匹配成功。
|