《Deep Ordinal Regression Network for Monocular Depth Estimation》
目录
0 摘要
单目深度估计是一个不适定问题(ill-posed problem),它在理解三维场景几何方面起着至关重要的作用。最近的方法通过探索来自深度卷积神经网络(DCNNs)的图像级信息和分层特征获得了显著的改进。这些方法将深度估计问题建模为回归问题,通过最小化均方误差来训练回归网络,但其存在收敛速度慢和局部解不理想的问题。此外,现有的深度估计网络采用重复的空间池化操作,导致低分辨率特征图不理想。为了获得高分辨率的深度图,需要使用跳跃连接或多层反卷积网络,这使得网络的训练变得复杂,计算量大大增加。为了消除或至少在很大程度上减少这些问题,作者引入了间隔增加离散化(SID)策略,将深度离散化,并将深度网络学习重构成为有序回归问题。通过使用普通的回归损失训练网络,本文的方法获得了更高的精度和更快的同步收敛。此外,作者采用了多尺度网络结构,避免了不必要的空间池化操作,并行地捕获多尺度信息。所提出的深度有序回归网络(Deep Ordinal Regression Network, DORN)在KITTI、Make3D和NYU Depth v2这三个具有挑战性的基准测试上取得了SOTA的成果。
1 简介
从二维图像中估计深度信息是场景重建和理解任务的关键步骤,例如三维目标识别、分割和检测。本文主要研究的是单幅图像的单目深度估计问题(以下简称MDE)
立体图像或视频序列的深度估计在近年来发展迅速,与之相较而言,MDE的进展则较为缓慢。MDE是一个不适定问题:一幅二维图像可以从无穷多个不同的三维场景中生成。为了克服这种固有的模糊性,典型的方法使用具有统计意义的单目线索或特征,例如透视和纹理信息、物体大小、物体位置和遮挡。
最近,一些工作通过使用基于DCNN的模型显著提高了MDE的性能,证明了深度特征优于手工设计的特征。这些方法通过学习一个DCNN来估计连续的深度图来解决MDE问题。由于该问题是一个标准的回归问题,通常采用对数空间中的均方误差(mean squared error, MSE)或其变体作为损失函数。尽管优化一个回归网络可以获得一个合理的解,但是作者发现其收敛速度会很慢,且最终结果也不尽人意。
此外,现有的深度估计网络通常采用全卷积方式设计的用于图像分类的标准DCNN作为特征提取器。在这些网络中,重复的空间池化会迅速降低特征图(通常步幅为32)的空间分辨率,这对于深度估计而言是不可取的。虽然可以通过多层反卷积网络、多尺度网络或跳跃连接融合更高分辨率的特征图来获得高分辨率的深度图,但这样的处理不仅需要额外的计算和内存成本,而且会使网络结构和训练过程复杂化。
与MDE的现有发展不同,作者提出将连续的深度离散化成若干个区间,将深度网络学习建模为有序回归问题,并给出如何通过DCNNs将有序回归转化为密集预测任务。更具体地说,作者提出使用间隔增加离散化(SID)策略而不是均匀离散化(UD)策略进行离散化,这是因为深度预测的不确定性随着底层真实深度的增加而增加,这表明在预测较大的深度值时,最好允许相对较大的误差,以避免大深度值对训练过程的过度加强的影响。在获得离散深度值之后,作者通过一个有序回归损失来训练网络,该损失考虑了离散深度值的有序性。
为了简化网络训练并节省计算开销,作者引入了一种网络框架,该框架避免了不必要的子采样,并以更简单的方法捕捉多尺度信息,而非跳跃连接。作者首先去除最后一个池化层中的下采样,并应用扩张卷积来获得更大的感受野。接下来,通过应用具有多个扩张率的扩张卷积,从最后一个池化层中提取多尺度信息。最后,作者开发了一种全图像编码器,其以显著低于全连接全图像编码器的内存成本高效地捕获图像级信息。整个网络采用端到端的方式进行训练,无需分阶段训练或迭代求精。
2 相关工作
深度估计 是从二维图像中理解场景的三维结构的关键要素。早期的工作主要集中在从立体图像中估计深度,发展了基于几何的算法,该算法依靠图像和三角测量之间的点对应关系来估计深度。有的研究者通过监督学习从二维图像中的单目线索中学习深度。从那时起,人们提出了各种各样的方法来利用手工表征来使用单目线索。由于手工特征只能捕获局部信息,因此通常基于这些特征构建概率图模型,例如马尔科夫随机场(MRFs),以纳入长程和全局线索。另一种利用全局线索的成功方法是Depth Transfer方法,该方法利用GIST全局场景特征从包含RGBD图像的数据库中搜索并输入与图像“相似”的候选图像。
鉴于深度卷积神经网络在图像理解方面的成功,近年来提出了许多深度估计网络。得益于强大的超深层网络(例如VGG和ResNet)提供的多层次上下文和结构信息,深度估计被提升到了一个新的精度级别。主要障碍是这些深度特征提取器中的重复池化操作会迅速降低特征图(通常步幅为32)的空间分辨率。有的研究者应用多尺度网络,通过独立的网络将估计的深度图从低空间分辨率逐级细化到高空间分辨率。有的研究者采用跳跃连接策略,将较深层的低空间分辨率深度图与较低层的高空间分辨率图进行融合。最近的工作采用多层反卷积网络来恢复有粗到细的深度信息。一些方法不是单纯依赖深度网络,而是加入了条件随机场,进一步提高了估计深度图的质量。为了提高效率,有的研究者提出了神经回归森林方法,该方法允许并行训练“浅层”的CNN。
最近,无监督或半监督学习被引入来学习深度估计网络。这些方法通过重新设计重构损失,利用左视图恢复右视图来估计视差图。此外,还有一些弱监督方法考虑使用成对排序信息来初略地估计和比较深度信息。
有序回归 旨在从有序尺度中学习一个预测标签的规则。大多数文献修改研究较好的分类算法来处理有序回归算法,例如通过开发一种新的SVM来处理多个阈值。另一种方法是将有序回归建模为一组二分类子问题,例如使用一些决策树作为有序回归的二分类器。在计算机视觉中,有序回归已经与DCNNs相结合来解决年龄估计问题。
3 方法
3.1 网络结构
如下图所示,网络由两个部分组成,即密集特征提取器和场景理解模块,并输出给定图像的多通道密集顺序标签。
3.1.1 稠密特征提取器
以往的深度估计网络通常采用最初为图像识别而设计的标准DCNN作为特征提取器。然而,这种最大池化和跨步的重复组合显著地降低了特征图的空间分辨率。此外,为了融合多尺度信息并重建高分辨率深度图,可以采用一些局部补救措施,包括逐级细化、跳跃连接和多层反卷积网络,但这样不仅需要额外的计算和内存开销,并且会使得网络结构和训练过程复杂化。借鉴最近的一些场景解析网络,作者主张在不降低空间分辨率或增加参数量的情况下,去掉DCNN最后几个下采样算子,在后续的卷积层中为filters插入空洞卷积,以扩大filters的视场。
3.1.2 模块化场景理解
场景理解模块由三个并行组件构成,即空间金字塔池化(ASPP)模块、跨通道精简器和全图编码器。ASPP被用于从多个通过扩张卷积操作获得的大感受野中提取特征。扩张率分别为6、12和18。纯1x1卷积分支可以学习复杂的跨通道交互。全图编码器可以捕获全局的上下文信息,从而极大地避免了深度估计中的局部混淆。
尽管之前的方法已经包含了全图编码器,单本文提出的全图编码器包含的参数较少。如上图所示
3.2 间隔递增离散化
为了将深度区间
[
α
,
β
]
[\alpha,\beta]
[α,β]量化为一组具有代表性的离散值,一种常用的方法是均匀离散化(Uniform Discretization, UD)。然而,随着深度值的变大,用于深度估计的信息越不丰富,意味着较大深度值的估计误差一般较大。因此,使用UD策略会对较大的深度值造成过度强化的损失。为此,作者提出使用SID策略进行离散化,如上图所示。该策略在对数空间中对给定的深度区间进行统一离散化,以降低深度值较大区域的训练损失,从而使深度估计网络能够更准确地预测相对较小和中等的深度,并合理地估计较大的深度值。假设一个深度区间
[
α
,
β
]
[\alpha,\beta]
[α,β]需要离散为K个子区间,UD和SID可以分别表示为:
U
D
:
t
i
=
α
+
(
β
−
α
)
∗
i
/
K
,
S
I
D
:
t
i
=
e
l
o
g
(
α
)
+
l
o
g
(
β
/
α
)
∗
i
K
\begin{equation} \begin{split} UD:t_i&=\alpha+(\beta-\alpha)*i/K,\\ SID:t_i&=e^{log(\alpha)+\frac{log(\beta/\alpha)*i}{K}} \end{split} \end{equation}
UD:tiSID:ti=α+(β−α)∗i/K,=elog(α)+Klog(β/α)∗i
式中,
t
i
∈
{
t
0
,
t
1
,
.
.
.
,
t
K
}
t_i\in\{t_0,t_1,...,t_K\}
ti∈{t0,t1,...,tK}为离散化的阈值。在本文中,作者对
α
\alpha
α和
β
\beta
β都加上了一个位移
ξ
\xi
ξ,得到
α
∗
\alpha^*
α∗和
β
∗
\beta^*
β∗,使得
α
∗
=
α
+
ξ
=
1.0
\alpha^*=\alpha+\xi=1.0
α∗=α+ξ=1.0,并在
[
α
∗
,
β
∗
]
[\alpha^*,\beta^*]
[α∗,β∗]上应用SID。
3.3 学习与推理
在获得离散的深度值之后,直接将标准回归问题转换成多类分类问题,并采用softmax回归损失来学习深度估计网络中的参数。然而,典型的多分类损失忽略了离散标签之间的有序信息,而深度值由于形成了一个有序的集合而具有很强的顺序相关性。因此,作者将深度估计问题转化成一个有序回归问题,并开发了一个有序损失来学习网络参数。
令
χ
=
φ
(
I
,
Φ
)
\chi=\varphi(I,\Phi)
χ=φ(I,Φ)表示给定图像
I
I
I的大小为
W
×
H
×
C
W\times H\times C
W×H×C的特征图,其中
Φ
\Phi
Φ为稠密特征提取器和场景理解模块所涉及的参数。大小为
W
×
H
×
2
K
W\times H\times 2K
W×H×2K的
Y
=
ψ
(
χ
,
Θ
)
Y=\psi(\chi,\Theta)
Y=ψ(χ,Θ)表示每个空间位置的有序输出,其中
Θ
=
(
θ
0
,
θ
1
,
.
.
.
,
θ
2
K
−
1
)
\Theta=(\theta_0,\theta_1,...,\theta_{2K-1})
Θ=(θ0,θ1,...,θ2K−1)包含权重向量。
I
(
w
,
h
)
∈
{
0
,
1
,
.
.
.
,
K
−
1
}
I_{(w,h)}\in\{0,1,...,K-1\}
I(w,h)∈{0,1,...,K−1}是SID在空间位置
(
w
,
h
)
(w,h)
(w,h)产生的离散标签。本文的有序损失
L
(
χ
,
Θ
)
L(\chi,\Theta)
L(χ,Θ)定义为像素级别的有序损失
Ψ
(
h
,
w
,
χ
,
Θ
)
\Psi(h,w,\chi,\Theta)
Ψ(h,w,χ,Θ)在整个图像域的平均值:
L
(
χ
,
Θ
)
=
−
1
N
∑
w
=
0
W
−
1
∑
h
=
0
H
−
1
Ψ
(
h
,
w
,
χ
,
Θ
)
,
Ψ
(
h
,
w
,
χ
,
Θ
)
=
∑
k
=
0
l
(
w
,
h
)
−
1
l
o
g
(
P
(
w
,
h
)
k
)
+
∑
k
=
l
(
w
,
h
)
K
−
1
(
1
−
l
o
g
(
P
(
w
,
h
)
k
)
)
,
P
(
w
,
h
)
k
=
P
(
l
^
(
w
,
h
)
>
k
∣
χ
,
Θ
)
,
\begin{equation} \begin{split} \mathcal{L}(\chi,\Theta)&=-\frac{1}{\mathcal{N}}\sum^{W-1}_{w=0}\sum^{H-1}_{h=0}\Psi(h,w,\chi,\Theta),\\ \Psi(h,w,\chi,\Theta)&=\sum^{l_{(w,h)-1}}_{k=0}log(\mathcal{P}^k_{(w,h)})+\sum^{K-1}_{k=l_{(w,h)}}(1-log(\mathcal{P}^k_{(w,h)})),\\ \mathcal{P}^k_{(w,h)}&=P(\hat{l}_{(w,h)}>k|\chi,\Theta), \end{split} \end{equation}
L(χ,Θ)Ψ(h,w,χ,Θ)P(w,h)k=−N1w=0∑W−1h=0∑H−1Ψ(h,w,χ,Θ),=k=0∑l(w,h)−1log(P(w,h)k)+k=l(w,h)∑K−1(1−log(P(w,h)k)),=P(l^(w,h)>k∣χ,Θ),
其中
N
=
W
×
H
\mathcal{N}=W\times H
N=W×H,
l
^
(
w
,
h
)
\hat{l}_{(w,h)}
l^(w,h)为解码得到的离散值估计值。作者选用softmax函数,使用下列式子从
y
(
w
,
h
,
2
k
)
y_{(w,h,2k)}
y(w,h,2k)和
y
(
w
,
h
,
2
k
+
1
)
y_{(w,h,2k+1)}
y(w,h,2k+1)中计算
P
(
w
,
h
)
k
\mathcal{P}^k_{(w,h)}
P(w,h)k:
P
(
w
,
h
)
k
=
e
y
(
w
,
h
,
2
k
+
1
)
e
y
(
w
,
h
,
2
k
)
+
e
y
(
w
,
h
,
2
k
+
1
)
,
\begin{equation} \mathcal{P}^k_{(w,h)}=\frac{e^{y_{(w,h,2k+1)}}}{e^{y_{(w,h,2k)}}+e^{y_{(w,h,2k+1)}}}, \end{equation}
P(w,h)k=ey(w,h,2k)+ey(w,h,2k+1)ey(w,h,2k+1),
其中
y
(
w
,
h
,
i
)
=
θ
i
T
x
(
w
,
h
)
,
x
(
w
,
h
)
∈
χ
y_{(w,h,i)}=\theta^T_ix_{(w,h)},x_{(w,h)}\in\chi
y(w,h,i)=θiTx(w,h),x(w,h)∈χ。最小化
L
(
χ
,
Θ
)
\mathcal{L}(\chi,\Theta)
L(χ,Θ)可以确保离真实标签较远的预测比离真实标签较近的预测产生更大的惩罚。
L
(
χ
,
Θ
)
\mathcal{L}(\chi,\Theta)
L(χ,Θ)的最小化可以通过迭代优化算法来完成,对
θ
i
\theta_i
θi求导,梯度取如下形式:
∂
L
(
χ
,
Θ
)
∂
θ
i
=
−
1
N
∑
w
=
0
W
−
1
∑
h
=
0
H
−
1
∂
Ψ
(
w
,
h
,
χ
,
Θ
)
∂
θ
i
,
∂
Ψ
(
w
,
h
,
χ
,
Θ
)
∂
θ
2
k
+
1
=
−
∂
Ψ
(
w
,
h
,
χ
,
Θ
)
∂
θ
2
k
,
∂
Ψ
(
w
,
h
,
χ
,
Θ
)
∂
θ
2
k
=
x
(
w
,
h
)
η
(
l
(
w
,
h
)
>
k
)
(
P
(
w
,
h
)
k
−
1
)
+
x
(
w
,
h
)
η
(
l
(
w
,
h
)
≤
k
)
P
(
w
,
h
)
k
,
\begin{equation} \begin{split} \frac{\partial\mathcal{L}(\chi,\Theta)}{\partial\theta_i}&=-\frac{1}{\mathcal{N}}\sum^{W-1}_{w=0}\sum^{H-1}_{h=0}\frac{\partial\Psi(w,h,\chi,\Theta)}{\partial\theta_i},\\ \frac{\partial\Psi(w,h,\chi,\Theta)}{\partial\theta_{2k+1}}&=-\frac{\partial\Psi(w,h,\chi,\Theta)}{\partial\theta_{2k}},\\ \frac{\partial\Psi(w,h,\chi,\Theta)}{\partial\theta_{2k}}&=x_{(w,h)}\eta(l_{(w,h)}>k)(\mathcal{P}^k_{(w,h)}-1)+x_{(w,h)}\eta(l_{(w,h)}\leq k)\mathcal{P}^k_{(w,h)},\\ \end{split} \end{equation}
∂θi∂L(χ,Θ)∂θ2k+1∂Ψ(w,h,χ,Θ)∂θ2k∂Ψ(w,h,χ,Θ)=−N1w=0∑W−1h=0∑H−1∂θi∂Ψ(w,h,χ,Θ),=−∂θ2k∂Ψ(w,h,χ,Θ),=x(w,h)η(l(w,h)>k)(P(w,h)k−1)+x(w,h)η(l(w,h)≤k)P(w,h)k,
其中
k
∈
{
0
,
1
,
.
.
.
,
K
−
1
}
k\in\{0,1,...,K-1\}
k∈{0,1,...,K−1},
η
(
⋅
)
\eta(\cdot)
η(⋅)是一个示性函数,满足
η
(
t
r
u
e
)
=
1
,
η
(
f
a
l
s
e
)
=
0
\eta(true)=1,\eta(false)=0
η(true)=1,η(false)=0,我们可以通过反向传播来优化网络。
在推理阶段,在获得图像I的每个位置的顺序标签后,将预测深度值
d
^
(
w
,
h
)
\hat{d}_{(w,h)}
d^(w,h)解码为:
d
^
(
w
,
h
)
=
t
l
^
(
w
,
h
)
+
t
l
^
(
w
,
h
)
+
1
2
−
ξ
,
l
^
(
w
,
h
)
=
∑
k
=
0
K
−
1
η
(
P
(
w
,
h
)
k
>
=
0.5
)
.
\begin{equation} \begin{split} \hat{d}_{(w,h)}&=\frac{t_{\hat{l}_{(w,h)}}+t_{\hat{l}_{(w,h)}+1}}2-\xi,\\ \hat{l}_{(w,h)}&=\sum^{K-1}_{k=0}\eta(\mathcal{P}^k_{(w,h)}>=0.5). \end{split} \end{equation}
d^(w,h)l^(w,h)=2tl^(w,h)+tl^(w,h)+1−ξ,=k=0∑K−1η(P(w,h)k>=0.5).
4 实验
略
本人水平有限,若有有误之处欢迎批评指正。