1. 摘要我们提出了一种新颖的光流表示它将光流分解为由相机运动引起的静态光流场和由场景中物体运动引起的另一个动态光流场。基于这种表示我们提出了一种动态 SLAM称为 DeFlowSLAM它利用图像中的静态和动态像素来求解相机位姿而不是像其他动态 SLAM 系统那样仅仅使用静态背景像素。我们提出了一个动态更新模块以自监督的方式训练我们的 DeFlowSLAM其中稠密的集束调整层接收估计的静态光流场和由动态掩码控制的权重并输出优化的静态光流场的残差、相机位姿和逆深度。静态和动态光流场是通过将当前图像映射 (warp) 到相邻图像来估计的并且可以通过将两个场相加来获得最终的光流场。大量实验表明DeFlowSLAM 在静态和动态场景中表现出与最先进的 DROID-SLAM 相当的性能同时在高动态环境中的性能明显优于 DROID-SLAM因此它可以很好地推广到静态和动态场景。代码和数据可在项目网页上找到注目前尚未上传代码DeFlowSLAM: Self-Supervised Scene Motion Decomposition for Dynamic Dense SLAM2. 主要贡献我们提出了一种新颖的双光流场景运动表示将光流分解为静态光流场和动态光流场从而具备了处理动态物体的能力。我们构建了一个动态密集 SLAMDeFlowSLAM它在动态场景中优于最先进的方法。我们提出了一种自监督的训练方法而不是 DROID-SLAM 中的强监督学习。3. 算法结构注本工作整体结构基于 DROID-SLAM因此此处省略DROID-SLAM相关的算法结构解析主要着重于介绍新增的算法模块。将光流分解为静态背景的光流和动态物理的光流两部分相比于 DROID-SLAM 对光流不加区分DeFlowSLAM 同时估计静态光流和动态光流以及动态光流所对应的二值聚合掩码0和1分别代表动态和静态光流。在估计相机位姿时仅使用静态光流。下图展示了一个例子如果场景中有动态物体直接使用静态光流匹配像素会导致错误的结果因而导致根据光度一致性构建的误差项无效。使用网络预测的聚合掩码我们可以在几何光度损失中过滤掉这些无效像素例如下图中的粉红色掩码。3.1. 整体系统框图基于以上的光流表征DeFlowSLAM 以图像序列为输入提取特征构建4D图像关联体积(correlation volume)将其与初始静态光流、完整光流静态光流与动态光流之和、动态掩码一起输入入动态更新模块迭代优化位姿残差、逆深度、静态光流和动态光流最后输出估计。3.2. 动态更新模块与 DROID-SLAM 中直接作用于光流修正项的更新模块不同我们的动态更新模块分别作用于分解后的静态光流和动态光流。静态光流的处理方式与 DROID-SLAM 类似而对于动态光流在每次迭代时通过动态光流的卷积层直接输出获得同时我们将其与静态光流相加以获得完整的光流并输入到光流特征编码器中用于下一次迭代优化。每次迭代都会更新隐藏状态并额外产生一个位姿增量、深度增量、动态掩码增量和动态光流。位姿更新需要在SE3流形上操作而深度、静态光流和动态掩码直接相加即可。通过多次迭代以上变量将逐步收敛至最佳值以表征正确的三维重建结果。在训练初始化阶段动态掩码和动态光流被初始化为0。对于ConvGRU模块相比于DROID-SLAM输出静态光流修正项和对应的关联置度DeFlowSLAM又输出了两个新的项分别为更新后的动态光流和动态掩码的增量。其他部分包括DBA层与DROID-SLAM基本一样不再赘述。3.3. 训练与DROID-SLAM是supervised learning不同DeFlowSLAM可以采用self-supervised learning或者semi-supervised learning两种模式来训练网络具体区别见下。3.3.1. 几何光度误差项为了实现自监督学习DeFlowSLAM采用了Digging into self-supervised monocular depth estimation论文中的方法。基本方法为给定预测的位姿和深度值我们可以找到图像 i 中的像素在图像j中的对应点坐标再利用双线性采样对图像 j 进行采样得到一个采样后的图像。然后再用原始图像与其一起构建几何光度误差项。我们引入 L1 损失和 SSIM损失来构造我们的几何光度损失并设置 α 0.85。在此基础上引入上文中提到的动态掩码因此最终构建的误差项为其中 N 表示动态掩码值为 1即静态光流的像素个数。3.3.2. 光流光度误差项与几何光度误差项类似利用完整的光流可以将图像j映射到图像i并以此构建误差项3.3.3. 动态掩码误差项这里分为两种情况如果数据集提供了GT的动态掩码则可以采用简单的交叉熵来构建误差如果数据集不提供GT的动态掩码则可以通过自监督的方式获得。由于我们可以通过两种方式基于位姿和深度的投影基于光流的映射找到图像i的像素与图像 j 的像素之间的对应关系因此可以使用两者之间的差异来构建人工的动态掩码其中 μ 设置为 0.5。用此掩码来替代GT因而可以构建损失项为3.4. 最终的误差项根据以上公式当使用self-supervised learning时构建的完整误差项如下其中。当使用semi-supervised learning时将Lart_mask改为Lgt_mask即可。4. 主要结果DeFlowSLAM 可以泛化到新的数据集。我们展示了来自 ETH3D、TUM RGB-D、ScanNet 和 Virtual KITTI2 的结果。我们将 DeFlowSLAM 与 DROID-SLAM 的置信度进行可视化。我们的方法可以利用动态物体对应的像素来帮助求解相机位姿。颜色越深意味着置信度的权重越大。DeFlowSLAM 还利用有关路边停放车辆的更多信息。