论文阅读:Digging Into Self-Supervised Monocular Depth Estimation(ICCV 2019)

摘要

因为像素级深度数据的ground truth难以获取,监督学习条件十分受限,所以基于自监督学习或者无监督学习(使用内在几何,通常是多视图几何关系)的图像深度估计越来越受到重视和研究。自监督单目训练研究通常探索增加模型复杂度,损失函数和图像生成模型来帮助缩小与全监督模型的差距。已有研究表明仅使用双目图像对或者单目图像来训练单目深度估计模型是可行的,在使用单目图像训练深度估计时,同时还要训练时间序列图像对之间的位姿估计模型。使用双目数据训练会使相机位姿估计成为一次性的离线标定,但可能引起相关的遮挡和纹理复制伪影问题。

 

在网络模型测试的时候。输入一张彩色的图像,输出像素级的深度图像

 

本文主要贡献

1) 一种先进的外观匹配损失,解决当使用单目监督时出现的像素遮挡问题。

2)一种先进且简单的auto-masking方法来忽略在单目训练中没有相对运动的像素点 

3)在输入分辨率下执行所有图像采样的多尺度外观匹配损失,这可以导致深度伪影的减少

 

方法

1.自监督训练:

在训练时,最小化光度重投影误差。将每个源视图I_{t^{​{}'}},目标图像I{_{t}},相对位姿表达为T_{t->t{}'}。通过最小化光度重投影误差L_{p},来预测稠密深度图D_{t}

pe是一个光度重建误差;proj ( ) 是在2D坐标系下,在I_{t^{​{}'}}上投影深度D_{t}下的结果,\left \langle \right \rangle 是采样操作。为了表示简单,我们假设所有视图提前计算的内参K是相同的。我们使用双线性采样法来采样源图像,这是局部可微分的,并且我们使用L1和SSIM来作为我们的光度误差函数pe:

此处\partial = 0.85 

我们使用了边缘感知平滑:

此处平均值归一化的逆深度以阻止估计深度的收缩。

在双目训练中,我们的源图I_{t^{​{}'}}是双目对中I{_{t}}的第二个视角,这个是知道相对位姿的。单目序列的相对位姿是未知的,需要使用投影函数proj 再训练一个位姿估计网络来预测相对位姿T_{t->t{}'} 。在训练中,我们最小化L_{p},来同时解决相机位姿和深度的问题。

在单目训练中,我们用I{_{t}}时间序列上相邻的两帧作为源帧,i.e.  I_{t'} \euro \left \{ I_{t-1}, I_{t+1} \right \}。在混合训练中(MS),I_{t^{​{}'}} 包含了时间序列上相邻帧和双目相对视图。

2.提高自监督深度估计:

已经存在的单目方法产生的深度比最好的全监督模型质量要低。为了缩小差距,我们提出了几个改进,在不添加额外的需要训练的模型组件下,能够显著地提高预测出的深度的质量。

1)Per-Pixel Minimum Reprojection Loss

使用平均重投影误差的方法,可能会导致在目标图像中可见但在一些源图像中不可见的像素的问题(图3c)。如果网络对这样一个像素预测出了正确的深度,对应的彩色源图上有遮挡,那么就像未匹配目标一样包含了一个高的光度误差惩罚。这样的问题像素主要来自两个类别:

一是 由于图像边界处移动,导致视线外的像素

二是 遮挡的像素

通过在重投影损失中掩蔽这些像素,可以减少视线外像素的影响,但无法处理 去除遮挡(disocclusion), 平均重投影可能导致模糊的深度不连续。为了解决上述的问题,我们做了改进,在所有的源图上对每个像素 我们使用最小化光度损失来替代平均光度误差:

使用最小重投影损失可以显著地减少图像边界处的伪影,提高遮挡边界处的尖锐度,得到更高的准确度。

如下图例子所示:

MS training(单双目图像混合训练)中, 双目图相对中,L图中的标注圆形区域在R图中有遮挡,会引起大的光度误差,但在L图的 前一帧 -1 上,没有遮挡存在,光度误差很小,通过上面的等式4,取以上两个光度误差中最小的,就可以获得很好的效果。

,

2)Auto-Masking Stationary Pixels

自监督单目训练通常在相机是移动的,场景是静止的假设下进行。当假设被破坏时,例如相机是固定的或者在场景中有一个对象在运动,性能就会受到很大的影响。在测试的时候,预测出的深度图中,这个问题表现为无限深度的 ‘孔’ ,因为通常在训练中观察到的对象在移动。图2所示:

由此提出了第二个贡献:一种简单的自动掩蔽(auto-masking)的方法,它能过滤掉在序列中,从一帧到下一帧外观不变的像素。 这样做的效果是让网络忽略与相机移动速度相同的物体,甚至在相机停止移动时忽略单目视频中的整个帧。

和其他已有的工作一样,在loss中, 对每个像素采用了掩模(mask) \mu,有选择的对像素进行加权,但是这些工作相比,我们的掩模(mask)是二进制的,\mu \in \left \{ 0,1 \right \},且在网络做前向时自动计算,而不是从物体运动中学习或估计得到。我们观察到,

序列中,在相邻帧中保持相同的像素通常表示一个静止的相机,一个物体相对于相机做等效的移动(相对静止),或者一个低纹理区域。因此我们将 \mu 设置为只包含像素损失,其中warp之后的图像I_{t{}' - t}的重投影误差低于原始的未经过warp源图的重投影误差。

这里,[ ]是艾弗森括号(Iverson bracket),若括号中的条件满足则为1,不满足则为0 。当相机和另一个物体都以相似的速度运动时,\mu防止图像中保持静止的像素污染损失,同样地,当相机处于静止时,\mu可以滤掉图像中的所有像素(图五)

我们的实验表明(图五),这种简单而便宜的损失修正带来了显著地提高。

3)Multi-scale Estimation

由于双线性采样器的梯度局部性,为了防止训练对象陷入局部极小,已有的模型采用多尺度深度预测和图像重建。这里,总的损失是decoder中各个尺度上单个损失的组合。我们观察到,如果在每个docoder layer的分辨率下计算图像的光度误差,会有在中间更低分辨率深度图上的大的低纹理区域创造 ‘ 孔 ’的趋势,以及纹理复制伪影(texture-copy artifacts)(深度图中的细节错误的从彩色图像中转移)。在低纹理区域中低分辨率下光度误差不明确,深度上的孔可能会出现,这使得深度网络的任务更加复杂,可以自由地预测不正确的深度。

受双目重建技术的启发,我们提出了一个对多尺度规则的改进,解耦 视差图像和彩色图像的分辨率来计算重投影误差。我们首先上采样低分辨率深度图(从中间层)到输入图像分辨率,然后在这个高输入分辨率下重投影,重采样,并计算pe误差(光度重建误差)图三d所示。这个过程类似于匹配补丁,因为低分辨率下的视差值将负责在高分辨率图像中warp 一个完整的像素 ‘ 补丁 ’。这样有效的约束了深度图在各个尺度上朝着同一个目标工作,即尽可能准确的重建高分辨率输入目标图像。

4)Final Training Loss

我们将每个像素的平滑度和掩蔽光度损失合并为 ,并对每个像素,尺度,和bacth做了平均。

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值