无痛上手,MindSpore高阶API全新升级,比Keras、Fastai简单易用( 二 )

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