Frequency-Aware Self-Supervised Monocular Depth Estimation——论文笔记
Posted m_buddy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Frequency-Aware Self-Supervised Monocular Depth Estimation——论文笔记相关的知识,希望对你有一定的参考价值。
参考代码:freq-aware-depth
1. 概述
介绍:在自监督深度估计算法中采用光度重构误差作为约束函数,但是这个约束函数却是存在不足的,也就是损失的大小在某些区域不能真实反应深度预测的误差大小,如图像中的高频区域,从而给整体算法Loss带来歧义(深度估计误差于光度重构误差的比例不正相关)。对于这个问题文章提出了两种策略去缓解高频区域处不确定性带来的歧义:1)Ambiguity-Masking:通过感知图像中的高频信息分布(图像梯度变化),给光度重构误差增加一个权重因子,从而缓解高频信息处Loss的不确定性。2)Auto-Blur:在图像梯度的指引下设计一个低通的高斯滤波器,用于平滑图像中的边缘区域,使得损失更能真实反馈重构的质量。
在自监督深度估计中,对图像中物体的边缘细节放大,并与对应的Loss分布可视化得到下图:
在上图(b)中可以看到loss倾向于在边缘区域产生更大的损失,这也表达了边缘处的损失并不能很好反应实际深度预测的质量。将图像中目标对应边缘进行放大得到图(c),可以看到由于分辨率的问题,其在边缘位置处的一些像素并不是能很准确进行区域划分,这也就导致了对应高频区域上loss存在歧义。这篇文章也对此提出了两点对应的策略用于缓解该问题。
2. 方法设计
2.1 整体pipeline
文章的整体pipeline见下图所示:
从上图可以看出文章在原本自监督深度估计方法的基础上,增加Ambiguity-Masking用于缓解高频区域loss歧义带来的影响,增加Auto-Blur缓解图像高频区域带来的损失跳变和歧义。
这里令网络
t
t
t时刻估计出的深度为
D
t
D_t
Dt,到时刻
t
+
n
t+n
t+n的位姿关系为
T
t
→
t
+
n
T_t\\rightarrow t+n
Tt→t+n,对应的相机内参为
K
K
K,则图像的冲投影采样描述为:
⊗
=
p
r
o
j
(
D
t
,
T
t
→
t
+
n
,
K
)
\\otimes=proj(D_t,T_t\\rightarrow t+n,K)
⊗=proj(Dt,Tt→t+n,K)
对于图像在X和Y方向上梯度描述为:
∇
u
±
(
i
,
j
)
=
I
(
i
,
j
)
−
I
(
i
±
1
,
j
)
\\nabla_u\\pm(i,j)=I(i,j)-I(i\\pm1,j)
∇u±(i,j)=I(i,j)−I(i±1,j)
∇
v
±
(
i
,
j
)
=
I
(
i
,
j
)
−
I
(
i
,
j
±
1
)
\\nabla_v\\pm(i,j)=I(i,j)-I(i,j\\pm1)
∇v±(i,j)=I(i,j)−I(i,j±1)
在Auto_Blur中使用两个方向的梯度:
∇
±
(
i
,
j
)
=
∣
∣
∇
u
±
(
i
,
j
)
,
∇
v
±
(
i
,
j
)
∣
∣
2
\\nabla_\\pm(i,j)=||\\nabla_u\\pm(i,j),\\nabla_v\\pm(i,j)||_2
∇±(i,j)=∣∣∇u±(i,j),∇v±(i,j)∣∣2
在Ambiguity-Masking中使用合成梯度:
∇
(
i
,
j
)
=
∣
∣
∇
u
+
(
i
,
j
)
−
∇
u
−
(
i
,
j
)
2
,
∇
v
+
(
i
,
j
)
−
∇
v
−
(
i
,
j
)
2
∣
∣
2
\\nabla(i,j)=||\\frac\\nabla_u+(i,j)-\\nabla_u-(i,j)2,\\frac\\nabla_v+(i,j)-\\nabla_v-(i,j)2||_2
∇(i,j)=∣∣2∇u+(i,j)−∇u−(i,j),2∇v+(i,j)−∇v−(i,j)∣∣2
2.2 Ambiguity-Masking
记使用的梯度为
F
t
\\mathcalF_t
Ft,使用二值掩膜
u
u
u表示在水平和垂直方向上梯度相反的高频区域:
u
=
[
∇
u
+
⋅
∇
u
−
<
0
∨
∇
v
+
⋅
∇
v
−
<
0
]
,
[
⋅
]
i
s
I
v
e
r
s
o
n
b
r
a
c
k
e
t
u=[\\nabla_u+\\cdot\\nabla_u-\\lt0\\ \\vee\\ \\nabla_v+\\cdot\\nabla_v-\\lt0], [\\cdot] is\\ Iverson\\ bracket
u=[∇u+⋅∇u−<0 ∨ ∇v+⋅∇v−<0],[⋅]is Iverson bracket
之后得到在时刻
t
t
t下的不确定性图:
A
t
=
u
⊙
F
t
\\mathcalA_t=u\\odot\\mathcalF_t
At=u⊙Ft
对于在时刻
t
+
n
t+n
t+n重构得到的图像其不确性图经过采样之后描述为:
A
ˉ
t
+
n
=
⟨
A
t
+
n
,
⊗
t
+
n
⟩
\\bar\\mathcalA_t+n=\\langle\\mathcalA_t+n,\\otimes_t+n\\rangle
Aˉt+n=⟨At+n,⊗t+n⟩
最后将上述两者取最大值得到最后的不确定性图:
A
t
m
a
x
=
m
a
x
(
A
ˉ
t
+
n
,
A
t
)
\\mathcalA^max_t=max(\\bar\\mathcalA_t+n,\\mathcalA_t)
Atmax=max(Aˉt+n,At)
之后得到于光度重构误差加权的权重二值mask:
A
t
p
e
=
[
A
t
m
a
x
<
δ
]
\\mathcalA^pe_t=[\\mathcalA^max_t\\lt\\delta]
Atpe=[Atmax<δ]
其中,
δ
=
0.3
\\delta=0.3
δ=0.3。同时可以使用下面指数的形式计算权重:
A
t
p
e
=
e
−
γ
A
t
m
a
x
,
γ
=
3
\\mathcalA^pe_t=e^-\\gamma\\mathcalA^max_t,\\ \\gamma=3
Atpe=e−γAtmax, γ=3
2.3 Auto_Blur
记使用的梯度也为
F
t
\\mathcalF_t
Ft,则定义高频掩膜(阈值
λ
=
0.2
\\lambda=0.2
λ=0.2):
M
i
s
−
h
f
−
p
i
x
e
l
(
p
)
=
[
F
t
(
p
)
>
λ
]
\\mathcalM_is-hf-pixel(p)=[\\mathcalF_t(p)\\gt\\lambda]
Mis−hf−pixel(p)=[Ft(p)>λ]
依据上述高频掩膜定义,在大小
以上是关于Frequency-Aware Self-Supervised Monocular Depth Estimation——论文笔记的主要内容,如果未能解决你的问题,请参考以下文章