相对深度-Single-Image Depth Perception in the Wild
原论文链接: Single-Image Depth Perception in the Wild
最近在看相对深度有关内容,个人认为利用相对深度的损失来计算绝对深度是本文一个比较新奇的点。
本博客仅为个人理解,推荐阅读原文!
论文贡献1: 构建了DIW数据集
因为阅读时关注点在于如何利用相对深度来训练绝对深度,所以这里看得比较简略。
大概内容是作者在网络相簿上收集图片,并对图片进行标注。标注的内容为一对点之间的相对深度。
在如何对点进行采样方面,作者使用了两种方式,一种是全图上的随机采样,另一种在同一水平线上进行采样,采样的点关于图像纵向的中心轴对称。两种方式采样出的点对各占总点对的一半。
下图中的unconstrained pairs和symmetric pairs分别为上述的两种方式采样出的点对。
论文贡献2: 利用相对深度进行训练预测真实深度
网络总体结构
作者使用了沙漏(hourglass)网络的变体。该网络主要也为卷积神经网络,具体结构见图2。总体结构中的卷积层A到G都为Inception Module的变体,具体参数见图2中的Table1。而卷积层H为一个3*3卷积核的卷积层。
损失函数
作者利用相对深度训练绝对深度的损失函数为
L
(
I
,
R
,
z
)
=
∑
k
=
1
K
ψ
k
(
I
,
i
k
,
j
k
,
r
k
,
z
)
\begin{align}L(I,R,z) = \sum_{k=1}^{K} \psi _{k}(I,i_{k},j_{k},r_{k},z) \end{align}
L(I,R,z)=k=1∑Kψk(I,ik,jk,rk,z)
其中,
I
I
I为一幅训练图像,
z
z
z为
I
I
I对应的深度图,
K
K
K为
I
I
I中具有标注信息点对的数量,
R
R
R具体的内容为
(
i
k
,
j
k
,
r
k
)
,
k
=
1
,
.
.
.
,
K
{(i_{k},j_{k},r_{k})}, k=1,...,K
(ik,jk,rk),k=1,...,K,其中
i
k
i_{k}
ik表示图像
I
I
I第k个点对中的第一个点,
j
k
j_{k}
jk表示图像
I
I
I第k个点对中的第二个点,
r
k
r_{k}
rk表示
i
k
i_{k}
ik和
j
k
j_{k}
jk之间的相对深度关系。
r
k
=
+
1
r_{k}=+1
rk=+1表示
j
k
j_{k}
jk更近,
r
k
=
−
1
r_{k}=-1
rk=−1表示
j
k
j_{k}
jk更远,
r
k
=
0
r_{k}=0
rk=0表示
i
k
i_{k}
ik与
j
k
j_{k}
jk距离相同。
ψ
k
(
I
,
i
k
,
j
k
,
r
k
,
z
)
\psi _{k}(I,i_{k},j_{k},r_{k},z)
ψk(I,ik,jk,rk,z)的具体计算方式如下所示,目的是为了在二者相对深度相同时减小二者之间的差距,在二者相对深度不同时增大二者的差距。
ψ
k
(
I
,
i
k
,
j
k
,
r
,
z
)
=
{
l
o
g
(
1
+
e
x
p
(
−
z
i
k
+
z
j
k
)
)
,
r
k
=
+
1
l
o
g
(
1
+
e
x
p
(
z
i
k
−
z
j
k
)
)
,
r
k
=
−
1
(
z
i
k
−
z
j
k
)
2
,
r
k
=
0
\begin{align} \psi_{k}(I,i_{k},j_{k},r,z) = \left\{\begin{matrix} log(1+exp(-z_{i_{k}}+z_{j_{k}})),&r_{k}= +1\\ log(1+exp(z_{i_{k}}-z_{j_{k}})),&r_{k}= -1\\ (z_{i_{k}}-z_{j_{k}})^{2},&r_{k}= 0 \end{matrix}\right. \end{align}
ψk(I,ik,jk,r,z)=⎩
⎨
⎧log(1+exp(−zik+zjk)),log(1+exp(zik−zjk)),(zik−zjk)2,rk=+1rk=−1rk=0