一、基本信息
标题:Digging into self-supervised monocular depth estimation
时间:2019
出版源:ICCV
论文领域:深度学习、深度预测、三维重建
引用格式:Godard C, Mac Aodha O, Firman M, et al. Digging into self-supervised monocular depth estimation[C]//Proceedings of the IEEE International Conference on Computer Vision. 2019: 3828-3838.
二、研究背景
- 监督深度预测
数据难以获取,尽管可以使用弱监督(知道尺寸、稀疏有序深度、监督外观匹配项、未配对的合成深度数据),所有这些仍然需要附加深度或其他注释
SfM可以使用单目产生深度值来进行训练,通常SfM作为预处理,与训练学习分离
本文提出模型,可以从SfM结果中剔除噪声,提高预测精度 - 自监督深度预测
利用图像重建作为监控信号训练深度估计模型。
使用立体配对(双目),利用视差
使用单目序列帧,然后类似使用特征匹配,构建SfM计算深度作为训练数据。时间帧提供训练信号。本文提出方法使得单目训练可以达到双目性能 - 基于外观的损失
自监督通常依赖于对帧间物体表面的外观和材料属性,与简单的两两像素差相比,包含基于局部结构的外观损失显著提高了深度估计性能,将其与反向损失相结合,以鼓励真实的合成图像。
三、创新点
自监督训练
自监督深度估计通过训练网络从另一幅图像的角度预测目标图像的出现。
光度重投影误差
L
p
L_p
Lp:
L
p
=
∑
t
′
p
e
(
I
t
,
I
t
′
→
t
)
L_{p}=\sum_{t^{\prime}} p e\left(I_{t}, I_{t^{\prime} \rightarrow t}\right)
Lp=t′∑pe(It,It′→t)
确定
I
t
′
→
t
I_{t^{\prime} \rightarrow t}
It′→t:
I
t
′
→
t
=
I
t
′
⟨
proj
(
D
t
,
T
t
→
t
′
,
K
)
⟩
I_{t^{\prime} \rightarrow t}=I_{t^{\prime}}\left\langle\operatorname{proj}\left(D_{t}, T_{t \rightarrow t^{\prime}}, K\right)\right\rangle
It′→t=It′⟨proj(Dt,Tt→t′,K)⟩
其中pe比如像素空间中的L1(曼哈顿)距离和SSIM,具体:
p
e
(
I
a
,
I
b
)
=
α
2
(
1
−
SSIM
(
I
a
,
I
b
)
)
+
(
1
−
α
)
∥
I
a
−
I
b
∥
1
p e\left(I_{a}, I_{b}\right)=\frac{\alpha}{2}\left(1-\operatorname{SSIM}\left(I_{a}, I_{b}\right)\right)+(1-\alpha)\left\|I_{a}-I_{b}\right\|_{1}
pe(Ia,Ib)=2α(1−SSIM(Ia,Ib))+(1−α)∥Ia−Ib∥1
作者取
α
=
0.85
\alpha=0.85
α=0.85
L
s
L_s
Ls:
L
s
=
∣
∂
x
d
t
∗
∣
e
−
∣
∂
x
I
t
∣
+
∣
∂
y
d
t
∗
∣
e
−
∣
∂
y
I
t
L_{s}=\left|\partial_{x} d_{t}^{*}\right| e^{-\left|\partial_{x} I_{t}\right|}+\left|\partial_{y} d_{t}^{*}\right| e^{-| \partial_{y} I_{t}}
Ls=∣∂xdt∗∣e−∣∂xIt∣+∣∂ydt∗∣e−∣∂yIt
其中
d
t
∗
=
d
t
/
d
t
‾
d_{t}^{*}=d_{t} / \overline{d_{t}}
dt∗=dt/dt
在立体配对中,源图像
I
t
′
I_{t^{'}}
It′是配对中
I
t
I_t
It第二幅图像,且知道位姿。但是在单目序列中不知道位姿。通过训练第二个位姿网络,在
p
r
o
j
proj
proj中去预测相关位姿
T
t
→
t
′
T_{t \rightarrow t^{\prime}}
Tt→t′,在训练期间通过最小化
L
p
L_p
Lp同时解决了位置和深度。单目中通过相邻序列取配对帧,即
I
t
I_t
It和
I
t
′
∈
{
I
t
−
1
,
I
t
+
1
}
I_{t^{\prime}} \in\left\{I_{t-1}, I_{t+1}\right\}
It′∈{It−1,It+1}。
在混合训练(MS)中,
I
t
′
I_{t^{\prime}}
It′包括了序列相邻帧(单目)和立体配对帧(多目)
改进自监督深度预测
每像素最小重投影损失(Per-Pixel Minimum Reprojection Loss)
如上图,在
I
t
−
I
I_{t-I}
It−I中门的右上角被树遮挡,导致较高的误差。
不使用平均投影,而是使用:
L
p
=
min
t
′
p
e
(
I
t
,
I
t
′
→
t
)
L_{p}=\min _{t^{\prime}} p e\left(I_{t}, I_{t^{\prime} \rightarrow t}\right)
Lp=t′minpe(It,It′→t)
提高精度
固定像素自动掩膜
训练时我们是假设相机动场景不动。但是假如场景也动,比如运动的测,性能就会受到很大影响。这个问题在预测的的时候表现为无限远。
因此提出:一种简单的自动屏蔽方法,过滤掉序列中不会改变外观的像素。(这样做的效果是让网络忽略与摄像机以相同速度移动的物体,甚至当摄像机停止移动时忽略单眼视频中的整个帧)
观察到,在序列中相邻帧之间保持相同的像素通常表示一个静态相机。
提出掩膜
μ
\mu
μ:
μ
=
[
min
t
′
p
e
(
I
t
,
I
t
′
→
t
)
<
min
t
′
p
e
(
I
t
,
I
t
′
)
]
\mu=\left[\min _{t^{\prime}} p e\left(I_{t}, I_{t^{\prime} \rightarrow t}\right)<\min _{t^{\prime}} p e\left(I_{t}, I_{t^{\prime}}\right)\right]
μ=[t′minpe(It,It′→t)<t′minpe(It,It′)]
其中
I
t
′
→
t
I_{t^{\prime} \rightarrow t}
It′→t是异常图像的重投影错误低于原图的部分,以及
I
t
′
I_{t^{'}}
It′非是真的图。
比如上图,黑色部分是要背过滤掉的,相对相机禁止不动。
多分辨率预测Multi-scale Estimation
由于双线性采样器[21]具有梯度局部性,为了防止训练目标陷入局部极小点,现有的模型采用多尺度深度预测和图像重建。
我们观察到,在低分辨率的中间深度图中,这有在大的低纹理区域中创建洞的趋势
受立体重建技术的启发,我们提出了一个改进的多尺度公式,其中我们解耦的分辨率的视差图像和彩色图像用于计算重投影误差。
我们不是在模糊的低分辨率图像上计算光度误差,而是首先对低分辨率深度地图(从中间层)采样到输入图像的分辨率,然后重新投影、重新采样,并在这个较高的输入分辨率下计算误差pe(图3 (d))。这个过程类似于匹配patch,因为低分辨率的视差值会导致高分辨率图像中像素的整个“patch”发生扭曲。这有效地限制了每个尺度下的深度图,使其朝着相同的目标工作,即尽可能精确地重建高分辨率输入目标图像。
最终训练损失
L = μ L p + λ L s L=\mu L_{p}+\lambda L_{s} L=μLp+λLs
附加考虑
深度预测网络基于U_Net结构,使用ELU非线性激活函数
D
=
1
/
(
a
σ
+
b
)
D=1 /(a \sigma+b)
D=1/(aσ+b)。
在解码器中,我们使用反射填充来代替零填充,当样本落在图像边界之外时,返回源图像中最近边界像素的值。我们发现,这大大减少了在现有方法中发现的边界伪影。
姿态网络由ResNet18构成,输入一对图片,输出6自由度
四、实验结果
(1)与现有的像素平均相比,我们的重投影损失有助于遮挡像素
(2)我们的自动掩蔽改进了结果,特别是在静态摄像机的场景训练时
(3)我们的多尺度外观匹配损失提高了准确性。我们在KITTI 2015立体数据集[13]上评估了名为Monodepth2的模型,以便与之前发布的单眼方法进行比较。
五、结论与思考
我们已经提出了一个通用模型的自我监督单眼深度估计,实现了最先进的深度预测。我们引入了三个贡献:
(i)计算每个像素的最小重投影损失来处理单眼视频中帧间有遮挡
(ii)自动掩蔽损失,忽略混乱,固定像素
(iii)全分辨率多尺度采样方法
模型对比:
优化方法对比:
、
预测结果: