论文笔记-Self-supervised Monocular Depth and VO Learning with Scale-consistent Geometric Constraints

  • 论文信息

    • 标题: Self-supervised Monocular Depth and Visual Odometry Learning with Scale-consistent Geometric Constraints
    • 作者:Mingkang Xiong, Zhenghong Zhang, Weilin Zhong, Jinsheng Ji, Jiyuan Liu, Huilin Xiong
    • 机构:上海交通大学
    • 出处:IJCAI 2020
  • 代码链接

    • None
  • 论文主要贡献

    • 提出新的尺度一致的几何约束用于同时考虑深度预测时的深度重建损失和前向后向的相对姿态一致性
    • 提出新的自监督学习框架用用得到更精确的深度估计和尺度一致的视觉里程计估计结果
    • 提出的方法在 KITTI 和 Make3D 数据集上的实验结果说明了模型可以达到 SOTA 的深度估计性能,并且在 KITTI 的视觉里程计数据集上也达到了自监督方法的 SOTA 性能
  • 论文要点翻译

    • 摘要
      • 在没有真实标注数据集的情况下,利用单目视频的自监督基于学习的深度和视觉里程估计最近已经受到了广泛关注,之前的工作通常使用图像的一致性损失作为监督信号,在复杂的真实条件下,由于光照条件变化较大,这个监督信号对于训练来说比较容易导致训练不成功,更重要的是,这个图像一致性损失的深度估计和姿态预测结果有尺度不一致的问题
      • 本文工作中,作者使用鲁棒的集合损失处理这个问题,具体来说,本文首先将两个从相邻帧重建得到的深度图进行尺度上的对齐,然后再利用前向和后向的一致性使其满足尺度一致的几何约束;本文还提出了新的训练框架,实现了提出的训练 loss
      • 在 KITTI 和 Make3D 数据及上的实验结果说明:(1)通过使用提出的约束条件作为监督信号,深度估计模型可以达到自监督方法的 SOTA 性能;(2)使用提出的训练框架可以有效获取一致的全局级的视觉里程计模型
    • 引言
      • 基于图像的深度估计是增强现实、自动驾驶等机器人和计算机视觉领域的关键应用,传统方法主要依靠手工提取特征的方式进行深度估计,随着深度学习的进展,深度值可以利用 DCNN 以监督学习的方式进行估计。然而,典型的方法受到数据的限制,需要大量的真实标注数据,而对于许多户外场景来说,收集标注数据的过程是极具挑战的,因此,在不需要真实标注数据的情况下,自监督深度估计方法通常利用双目立体图像进行深度估计,此外,结合单视图视频序列的模型在深度估计和姿态预测上已经取得了较好的性能。这些自监督方法主要使用场景视角合成的方式,从相邻帧图像合成当前图像帧,以图像重建损失作为监督信号训练网络。之前的工作通常使用图像损失或者基于梯度的损失作为监督信号来判断原图和基于相邻帧的重建图之间的差异,但是这些外观上的损失会因为环境的光照条件等不同而导致模型实用性不足,且模型缺乏相关的约束获取全局一致的视觉里程计结果
      • 本文为了解决这些问题,利用更多的几何信息作为监督信号,训练自监督的深度学习框架用于深度预测和姿态预测,方法的主要输入仍然是单目的视频序列。和之前的方法不同,之前的方法直接使用预测的深度图,本文的方法则是首先利用连续的图像帧获取重建的深度图信息,然后使用一个简单有效的方法强制加上深度的尺度一致性约束。除了深度重建损失,本文同时考虑前向和后向的相对姿态误差,设计本文的几何损失用于获取更精确的结果,通过提出的损失进行深度预测网络和姿态估计网络的联合训练,推理时则是两个任务分别进行
      • 在 KITTI 数据及上的实验结果表明提出的方法能够显著改善深度估计性能
    • 相关工作
      • 深度估计的传统方法:SLAM、SfM、ORB-SLAM等
      • 监督学习方法:典型的 FCN 全卷积方法,特征的层次化混合和深度估计的优化等方法;视觉里程计的估计
      • 自监督方法:利用视角合成作为监督信号,使用单目视频序列结合图像重建损失的监督信号进行自监督的深度和相机姿态预测;三维场景的结构、点云等;自监督的视觉里程计估计
      • 上述的自监督方法表现出单目深度估计和视觉里程计估计可以在没有真实数据的情况下进行有效训练
    • 方法
      • 问题描述
        • 为了从单目视频中无监督地学习深度估计和相机姿态估计,使用图像的重投影误差作为监督信号,给定像素坐标 x = ( x , y ) ⊤ \mathtt{x}=(x,y)^\top x=(x,y) ,其对应的网络输出的估计深度值 d = d ( x ) d=d(\mathtt{x}) d=d(x) ,可以结合这两个信息,重建该像素对应的三维点 X = ( X , Y , Z , 1 ) ⊤ \mathtt{X}=(X,Y,Z,1)^\top X=(X,Y,Z,1) π − 1 ( x , d ( x ) ) = ( ( x − c x ) d f x , ( y − c y ) d f y , d , 1 ) ⊤ \pi^{-1}(\mathtt x,d(\mathtt x))=(\frac{(x-c_x)d}{f_x},\frac{(y-c_y)d}{f_y},d,1)^\top π1(x,d(x))=(fx(xcx)d,fy(ycy)d,d,1) 其中的 f x , f y f_x,f_y fx,fy 表示焦长, c x , c y c_x,c_y cx,cy 表示光心,投影函数可以写为: π ( X ) = ( X f x d + c x , Y f y d + c y ) ⊤ \pi(\mathtt X)=(\frac{\mathtt X f_x }{d}+c_x,\frac{\mathtt Y f_y }{d}+c_y)^\top π(X)=(dXfx+cx,dYfy+cy)
        • 考虑两个连续图像帧 { I t − 1 , I t } \left\{I_{t-1},I_{t}\right\} {It1,It} ,可以使用姿态网络估计的相对姿态 T = T t → t − 1 \mathtt T=\mathtt T_{t \to t-1} T=Ttt1 得到图像的投影转函数 ω ( x , T ) = π ( T π − 1 ( x , d ( x ) ) ) \omega(\mathtt x,\mathtt T)=\pi(\mathtt T \pi^{-1}(\mathtt x,d(\mathtt x))) ω(x,T)=π(Tπ1(x,d(x))),利用该投影转换函数可以合成图像 I t − 1 ( ω ( x i , j , T ) ) I_{t-1}(\omega(\mathtt x^{i,j},\mathtt T)) It1(ω(xi,j,T)) ,此时,图像损失可以写为 L p h = 1 N ∑ i , j ∣ I t − 1 ( ω ( x i , j , T ) − I t ( x i , j ) ) ∣ L_{ph}=\frac{1}{N}\sum_{i,j}|I_{t-1}(\omega(\mathtt x^{i,j},\mathtt T)-I_t(\mathtt x^{i,j}))| Lph=N1i,jIt1(ω(xi,j,T)It(xi,j)),其中的 N 表示有效点的数量
      • 尺度一致的几何约束
        • 除了上述的最小化图像损失,本文将不同图像帧得到的深度图和相机姿态之间的差异作为几何监督信号
        • 尺度一致的深度重建损失
          • 本文使用 { d t − 1 , d t } \{d_{t-1},d_{t}\} {dt1,dt} 表示相邻帧图像得到的估计的深度图,和图像重建损失一样,前一章节说到的重投影函数可以用来重投影得到相邻帧的深度图 d t − 1 ′ = d t − 1 ( ω ( x , T ) ) d_{t-1}^{'}=d_{t-1}(\omega(\mathtt x,\mathtt T)) dt1=dt1(ω(x,T)),因此,除了直接利用深度网络估计得到的深度图 d t d_t dt ,还可以使用转换矩阵 T 得到重建的深度图 d t ′ = [ T π − 1 ( x , d t ( x ) ) ] d d_t^{'}=[T\pi^{-1}(\mathtt x,d_t(x))]_d dt=[Tπ1(x,dt(x))]d,其中的 [ ⋅ ] d [\cdot]_d []d 表示 3D 点中的 d 维元素
          • 仅从单目序列中学习得到的深度具有尺度不一致的问题,换言之,不同图像帧得到的深度可能尺度不一致,因此,为了惩罚合成的深度和重建的深度的不一致信息,此处重新考虑尺度不一致问题
          • 首先,对深度预测值使用均值 { d t − 1 ′ ‾ , d t ′ ‾ } \{\overline{d_{t-1}^{'}},\overline{d_t^{'}}\} {dt1,dt} 进行正则花,然后加上一项惩罚尺度不一致问题,以此保持尺度一致,最终的尺度一致的深度重建损失可以写为 L d = 1 N ∑ i , j ∣ d t − 1 ′ i , j d t − 1 ′ ‾ − d t ′ i , j d t ′ ‾ ∣ + ∣ d t ′ ‾ − d t ′ ‾ ∣ L_d=\frac1N\sum_{i,j}|\frac{d_{t-1}^{'i,j}}{\overline{d_{t-1}^{'}}}-\frac{d_{t}^{'i,j}}{\overline{d_{t}^{'}}}|+|\overline{d_{t}^{'}}-\overline{d_t^{'}}| Ld=N1i,jdt1dt1i,jdtdti,j+dtdt
        • 前向后向的姿态一致性损失
          • 使用向量 r r r t t t 表示相对姿态 T T T 中的旋转和转换项,本文使用左右图的镜像一致性,提出前向后向的姿态约束得到更精确的结果
          • 相对姿态 { T t → t − 1 , T t + 1 → t , T t + 1 → t − 1 } \{T_{t \to t-1},T_{t+1 \to t}, T_{t+1 \to t-1}\} {Ttt1Tt+1tTt+1t1} 可以通过图像帧对 { ( I t , I t − 1 ) , ( I t + 1 , I t ) , ( I t + 1 , I t − 1 ) } \{(I_{t},I_{t-1}),(I_{t+1},I_{t}), (I_{t+1 },I_{t-1})\} {(It,It1)(It+1,It)(It+1,It1)} 进行预测,如果预测自姿态准确,则 T t → t − 1 , T t + 1 → t T_{t \to t-1},T_{t+1 \to t} Ttt1Tt+1t 的积应当等于 T t + 1 → t − 1 T_{t+1 \to t-1} Tt+1t1,简化结果可以将旋转和转换向量用来表示预测的相对姿态,进而将前向后向姿态一致性损失写为 L p o = ∑ m = 1 , − 1 ∥ r t → t − m + r t + m → t − r t + m → t − m ∥ 1 + ∥ t t → t − m + t t + m → t − t t + m → t − m ∥ 1 L_{po}=\sum_{m=1,-1}\|r_{t \to t-m}+r_{t+m \to t}-r_{t+m \to t-m}\|_1+\|t_{t \to t-m}+t_{t+m \to t}-t_{t+m \to t-m}\|_1 Lpo=m=1,1rttm+rt+mtrt+mtm1+tttm+tt+mttt+mtm1
          • 由于获取合成的重建的深度图过程使用了相对姿态,而深度图已经要求尺度一致了,因此此处的姿态预测可以不同考虑尺度一致的问题
        • 最终的尺度一致的几何约束可以写为 L S C = λ d L d + λ p o L p o L_{SC}=\lambda_dL_d+\lambda_{po}L_{po} LSC=λdLd+λpoLpo
      • 完整训练目标
        • 使用 SSIM 约束结构一致性,应对光照条件复杂变化的问题 : L S S I M = 1 − S S I M ( I t − 1 ( ω , T ) , I t ) 2 L_{SSIM}=\frac{1-SSIM(I_{t-1}(\omega,\mathtt T),I_t)}{2} LSSIM=21SSIM(It1(ω,T),It)
        • 使用梯度损失约束深度图的圆滑性: L s m = 1 N ∑ i , j ∣ ∇ d t i , j ∣ e − ∣ ∇ I t i , j ∣ L_{sm}=\frac1N\sum_{i,j}|\nabla d_t^{i,j}|e^{-|\nabla I_t^{i,j}|} Lsm=N1i,jdti,jeIti,j
        • 故最终的基准损失 L b a s e l i n e = λ p h L p h + λ S L S S I M + λ s m L s m L_{baseline}=\lambda_{ph}L_{ph}+\lambda_{S}L_{SSIM}+\lambda_{sm}L_{sm} Lbaseline=λphLph+λSLSSIM+λsmLsm
        • 最终的损失: L t o t a l = L b a s e l i n e + L S C L_{total}=L_{baseline}+L_{SC} Ltotal=Lbaseline+LSC
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值