文章图片
文章图片
基于 “检测 + 回归” 的道具挂载检测结果
法向估计
在完成道具挂载检测后 , 在真实环境中插入虚拟物体还需要准确理解世界的三维法向信息 。 在相机坐标系下直接使用 SLAM 输出三维朝向会存在空缺以及由三维点朝向方向不准确的问题 ,所以还需要一个面向移动端的轻量级法向估计解决方案 。
为此 , 技术团队通过用带有激光雷达的 iPhone 离线采集了大量的环境数据(包含室内外不同光照条件下的数据 , 以及渲染生成等方式获取的场景法向数据) , 训练了鲁棒的端上法向估计模型 。 此外 , 团队还进一步利用了手机 IMU 的重力方向对法向的角度进行矫正 , 从而保证挂载物始终能够和重力方向吻合 , 更符合一般的建筑规律 ,来规避深度学习网络在法向预测不够完全准确的情况 。 从下图的结果可以看到 , 在不同变换角度与光照环境条件下 ,虚拟的贴图仍然可以很好的贴合图像法向 , 从而能支持各种虚拟挂载的真实特性 。
文章图片
文章图片
基于法向估计的贴图效果
视觉 SLAM
为了将道具能够持续跟踪在建筑上 , 技术团队构建了一套大场景下的视觉 SLAM 系统 , 在大部分抖音用户手机上均能进行实时鲁棒地跟踪 。 该 SLAM 系统具备如下几个特性:
? 用户无感的快速初始化。 传统的视觉 SLAM 算法依赖严格的初始化 , 需要用户进行充分的运动之后才能使用 AR 特效 , 这大大提升了使用 AR 特效的门槛 。 为了让广大抖音用户都能更容易地玩起 AR 特效 , 该方案基于轻量化的多层级初始化设计研发 , 融合了场景结构先验、多假设的滤波估计和小运动下的全局优化 , 实现了首帧即时的 AR 体验 。
? 覆盖不同的移动端机型 。 由于抖音用户覆盖面非常大 , 尤其是安卓用户机型众多 , 对算法的鲁棒性提出了更高层面的要求 。 视觉 SLAM 系统以视觉为主 , 同时辅助利用了系统的传感器信息来对位姿进行约束 。 由于不同手机的传感器质量参差不齐 , 系统还结合离线标定和在线估计的策略 , 在离线标定通用参数的基础上又实时进行参数优化 , 低成本地覆盖更多的用户机型 。
? 大场景实时跟踪 。 在大场景下 , 纯视觉的 SLAM 系统容易受到远点和动态物体的干扰 , 尤其在长时间直行的情况下相机的估计高度容易产生漂移 。 基于多帧几何分析与语义先验 , 系统对视觉特征进行了分类处理 , 同时将实时全局信息压缩后持续在系统中进行优化 , 减少了长时间运动下的漂移 。
? 网格与平面估计 。 基于 SLAM 系统输出的稀疏点云 , 系统结合 2D 图像信息和 3D 平面估计信息 , 对点云进行单帧的实时网格化息 。 为了解决弱纹理和远景区域几何信息缺失的问题 , 系统还结合了上述的法向估计模型 , 保证了全区域的挂载可用性 。
文章图片
大场景轨迹跟踪和场景三维估计
以 SLAM 初始化为例 , 在用户实际使用道具拍摄时 , 会经常发生由于相机仅有纯旋转或静止不动无法初始化 SLAM 系统或 SLAM 初始化成功但重建的网格质量仍无法满足特效需求的情况 。 为了解决这个问题 , 系统引入了深度估计模型 , 对静止的图像进行相对深度估计并重建出三角网络 。 待 SLAM 初始化成功后 , 再对三角网格进行过渡融合 。 通过这种方式 , 在 SLAM 无法初始化的情况下也可以输出三角网格 , 并结合道具挂载检测与法向估计进行素材挂载 , 在后续使用过程中也能过渡到真实深度场景 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
