本文利用布局深度图(layout depth map)将深度估计和布局预测相结合。在2个任务上都取得了进步。
Introduction
布局预测:利用边、角、2D的透视图(比如天花板视图),或者假设房间布局时矩形,或者假设Manhattan布局。
深度估计:利用法线、平面???、语义线索。
但是,上面方法只考虑了几何假设,而忽略了布局和深度信息的互补特征。
本文利用中间层:layout depth map(只包含墙、天花板、地板),移除了房间内物体,上图c。
互补性:对于布局预测,深度信息的使用减少杂乱和遮挡。对于深度估计:布局信息减少了模糊性,并插入了布局的平面信息(墙、天花板、地板)。
单独的 布局预测 遇到的问题:杂乱的物体会严重影响 布局深度 结构的预测;从二维边缘和角映射估计三维布局是一个不适定问题。因此,在优化中执行2D到3D转换时,额外的约束是必不可少的。
本文布局预测方法的好处:本文的方法是利用更多的结构信息来估计深度图,以减少遮挡对布局深度图的影响;该方法对二维到三维的转换不需要额外的约束条件;估计的布局深度图可以用来进一步细化了 深度估计。
单独的 深度估计 遇到的问题:平滑的表面,在三维重建过程后变得崎岖不整。
本文深度估计方法的好处:布局深度图 保留了房间布局组件的平面特性,对这些错误具有鲁棒性。
https://blog.csdn.net/u014546828/article/details/109386535
主要贡献:
- 提出了一种新的神经网络结构,它能从单一的室内全景图像中联合学习布局预测和深度估计。结果表明,布局和深度估计任务是高度相关的,联合学习提高了这两个任务的性能。
- 利用layout depth map作为中间层,提高了布局预测性能并改进了深度估计。
- 提出的方法在布局预测和深度估计方面都优于目前最先进的方法。
Related Work
Panorama Images:
全景图包含更多信息,但是等距投影带来了失真,很多方法使用球面卷积抵消失真。本文在输入层使用rectangular filter banks的标准卷积应对不同程度的失真。
Layout Prediction:
早期:布局恢复作为最优化问题,利用dynamic Bayesian network,迭代利用已有参数生成3D的box布局
近期:基于NN,单独布局预测,本文使用场景的预测深度(图b)和语义内容来预测布局深度图layout depth map(图c),作为中间层来恢复输入全景图的三维布局
Depth Estimation:
基于深度学习,Eige系列,CRFs、以及无监督方法
Method
利用初步的深度预测和语义分割结果预测布局深度图,再将布局深度图应该在初步的深度预测上来改善深度估计。
Input and Pre-processing
预处理和PanoContext一样,确保墙与墙的边线时垂直于地面,这些步骤就是使得pitch和roll为0。网络输入和layoutnet一样,将全景图和Manhattan线的特征图一起输入。
Coarse Depth and Semantics
输入:全景图(3)+Manhattan线特征图(3)一共6通道
encoder:ResNet-18,为了减少全景图扭曲的影响,在ResNet-18之前加了block
decode:深度估计和语义分割共享encoder,但是深度估计和语义分割的decoder不共享权重,分别训练最小化深度估loss和语义分割loss,decoder使用卷积(3x3)+均值上采样和跳跃连接。
输出:粗深度图(1)和语义分割图(1),分辨率和输入一致
Loss Function:
深度估计损失由3部分组成:深度、梯度、法向量
L coarse-depth = l depth + λ l gradient + μ l normal L_{\text{coarse-depth}}=l_{\text {depth}}+\lambda l_{\text {gradient}}+\mu l_{\text {normal}} Lcoarse-depth=ldepth+λlgradient+μlnormal
深度:
l
d
e
p
t
h
=
1
n
∑
i
=
1
n
ln
(
e
i
+
1
)
l_{d e p t h}=\frac{1}{n} \sum_{i=1}^{n} \ln \left(e_{i}+1\right)
ldepth=n1i=1∑nln(ei+1)
其中,
e
i
=
∥
d
i
−
g
i
∥
1
e_{i}=\left\|d_{i}-g_{i}\right\|_{1}
ei=∥di−gi∥1,
d
i
d_{i}
di 和
g
i
g_{i}
gi代表预测值和真实值。
梯度:
l
gradient
=
1
n
∑
i
=
1
n
(
ln
(
∣
∇
x
(
e
i
)
∣
+
1
)
+
ln
(
∣
∇
y
(
e
i
)
∣
+
1
)
)
l_{\text {gradient}}=\frac{1}{n} \sum_{i=1}^{n}\left(\ln \left(\left|\nabla_{x}\left(e_{i}\right)\right|+1\right)+\ln \left(\left|\nabla_{y}\left(e_{i}\right)\right|+1\right)\right)
lgradient=n1i=1∑n(ln(∣∇x(ei)∣+1)+ln(∣∇y(ei)∣+1))
其中,
∇
x
(
e
i
)
\nabla_{x}\left(e_{i}\right)
∇x(ei)表示
e
i
e_i
ei的关于
x
x
x和
y
y
y的偏导数。
法向量:
l
normal
=
1
n
∑
j
=
1
n
(
1
−
⟨
n
j
d
,
n
j
g
⟩
⟨
n
j
d
,
n
j
d
⟩
⟨
n
j
g
,
n
j
g
⟩
)
l_{\text {normal}}=\frac{1}{n} \sum_{j=1}^{n}\left(1-\frac{\left\langle n_{j}^{d}, n_{j}^{g}\right\rangle}{\sqrt{\left\langle n_{j}^{d}, n_{j}^{d}\right\rangle} \sqrt{\left\langle n_{j}^{g}, n_{j}^{g}\right\rangle}}\right)
lnormal=n1j=1∑n⎝⎛1−⟨njd,njd⟩⟨njg,njg⟩⟨njd,njg⟩⎠⎞
其中 n i d ≡ [ − ∇ x ( d i ) , − ∇ ( d i ) , 1 ] ⊤ n_{i}^{d} \equiv\left[-\nabla_{x}\left(d_{i}\right),-\nabla\left(d_{i}\right), 1\right]^{\top} nid≡[−∇x(di),−∇(di),1]⊤ 和 n i g ≡ [ − ∇ x ( g i ) , − ∇ ( g i ) , 1 ] ⊤ n_{i}^{g} \equiv\left[-\nabla_{x}\left(g_{i}\right),-\nabla\left(g_{i}\right), 1\right]^{\top} nig≡[−∇x(gi),−∇(gi),1]⊤ 表示预测和真实的表面法向量。
更详细的损失函数说明参考这篇笔记:论文笔记:Revisiting Single Image Depth Estimation: Toward Higher Resolution Maps with …(WACV2019)
语义分割采用交叉熵损失
L
semantic
=
−
∑
i
=
1
n
p
i
log
(
p
^
i
)
L_{\text {semantic}}=-\sum_{i=1}^{n} p_{i} \log \left(\hat{p}_{i}\right)
Lsemantic=−i=1∑npilog(p^i)
其中
p
p
p 和
p
^
\hat{p}
p^表示真实和预测的语义标签。
Layout Prediction
布局预测的输入布局深度图,下面是预测布局深度图的结构
输入:全景图(3)+Manhattan线特征图(3)+粗深度图(1)+语义分割图(1)一共8通道
encoder:resnet18
decoder:使用卷积(3x3)+最近邻上采样和跳跃连接。
输出:布局深度图(1),分辨率和输入一致
Loss Function:
使用虚拟法向量(virtual normal (VN))作为约束,使得深度图具有平面特性(planar nature)
计算VN步骤:
预测布局深度图转化为点云,在点云上随机采样N组点,每组点有3个不共线的点组成:
Ω
=
{
P
i
=
(
P
a
,
P
b
,
P
c
)
i
∣
i
=
0
,
…
,
N
}
\Omega=\left\{P_{i}=\left(P_{a}, P_{b}, P_{c}\right)_{i} \mid i=0, \ldots, N\right\}
Ω={Pi=(Pa,Pb,Pc)i∣i=0,…,N},不共线用约束
C
C
C表示:
C
=
{
α
≥
∠
(
P
a
P
b
‾
,
P
a
P
c
→
)
≤
β
,
α
≥
∠
(
P
b
P
c
‾
,
P
b
P
a
‾
)
≤
β
∣
P
i
∈
Ω
}
C=\left\{\alpha \geq \angle\left(\overline{P_{a} P_{b}}, \overrightarrow{P_{a} P_{c}}\right) \leq \beta, \alpha \geq \angle\left(\overline{P_{b} P_{c}}, \overline{P_{b} P_{a}}\right) \leq \beta \mid P_{i} \in \Omega\right\}
C={α≥∠(PaPb,PaPc)≤β,α≥∠(PbPc,PbPa)≤β∣Pi∈Ω}
其中,
α
=
15
0
∘
,
β
=
3
0
∘
\alpha=150^{\circ}, \beta=30^{\circ}
α=150∘,β=30∘
约束 C C C表示为: C = { α ≥ ∠ ( P a P b ‾ , P a P c → ) ≥ β , α ≥ ∠ ( P b P c ‾ , P b P a → ) ≥ β ∣ P i ∈ Ω } C=\left\{\alpha \geq \angle\left(\overline{P_{a} P_{b}}, \overrightarrow{P_{a} P_{c}}\right) \geq \beta, \alpha \geq \angle\left(\overline{P_{b} P_{c}}, \overrightarrow{P_{b} P_{a}}\right) \geq \beta \mid P_{i} \in \Omega\right\} C={α≥∠(PaPb,PaPc)≥β,α≥∠(PbPc,PbPa)≥β∣Pi∈Ω}应该更合理
利用叉乘计算平面法向量:
N
=
{
n
i
=
P
a
P
b
‾
×
P
a
P
c
‾
∥
P
a
P
b
‾
×
P
a
P
c
∥
‾
∣
P
i
∈
Ω
}
N=\left\{\boldsymbol{n}_{i}=\frac{\overline{P_{a} P_{b}} \times \overline{P_{a} P_{c}}}{\| \overline{P_{a} P_{b}} \times \overline{P_{a} P_{c} \|}} \mid P_{i} \in \Omega\right\}
N={ni=∥PaPb×PaPc∥PaPb×PaPc∣Pi∈Ω}
这样就得到N个平面对应的虚拟法向量,再与真实平面对应的法向量计算L1损失:
l
v
n
=
1
N
∑
i
=
1
N
∥
n
i
p
r
e
d
−
n
i
g
t
∥
1
l_{v n}=\frac{1}{N} \sum_{i=1}^{N}\left\|\boldsymbol{n}_{\boldsymbol{i}}^{p r e d}-\boldsymbol{n}_{\boldsymbol{i}}^{g t}\right\|_{1}
lvn=N1i=1∑N∥∥∥nipred−nigt∥∥∥1
除了添加
l
v
n
l_{v n}
lvn外,其他与Coarse Depth and Semantics提到一样:
L
layout-depth
=
l
depth
+
λ
l
gradient
+
μ
l
normal
+
l
vn
L_{\text {layout-depth}}=l_{\text {depth}}+\lambda l_{\text {gradient}}+\mu l_{\text {normal}}+l_{\text {vn}}
Llayout-depth=ldepth+λlgradient+μlnormal+lvn
上面损失同时考虑了局部表面法线约束和全局虚拟法线约束两种约束条件下的布局深度损失。这确保了估计的布局深度地图准确地保留了场景布局的几何结构
3D Layout Optimization:
对平面图的边(从上往下看的地板与墙的边界)进行回归分析,在3D空间进行水平和垂直聚类。然后,通过使用直线、轴对齐、墙-地板边界来恢复平面图。
Depth Refinement
输入:粗深度图(1)+语义分割图(1)+布局深度图(1)
组合一个以语义指导的注意图(attention map)其包含粗深度图和布局深度图,对于房间结构性的组件(墙,地板,天花板)网络更侧重布局深度图,对于室内物体(家具)网络更侧重粗深度图
encoder和decoder结构和Coarse Depth and Semantics一样。
loss和Layout Prediction类似。
Training Details
首先训练联合学习粗深度图估计和语义分割。
固定上面2个网络权重训练布局深度图预测。
固定上面3个网络权重训练深度细化模块。
最后联合对整个网络进行端到端训练。
Experiments
Dataset:
Stanford 2D–3D:1413张大空间的室内场景(办公室、教室、走廊),其中571张标注了
PanoContext:514张室内环境(卧室、客厅)
Evaluation Metrics:
布局评估部分:
3D IoU:
3
D
I
o
U
=
V
p
r
e
d
∩
V
g
t
V
p
r
e
d
∪
V
g
t
3 D I o U=\frac{V_{p r e d} \cap V_{g t}}{V_{p r e d} \cup V_{g t}}
3DIoU=Vpred∪VgtVpred∩Vgt
其中,
V
pred
V_{\text {pred}}
Vpred 和
V
g
t
V_{g t}
Vgt表示预测和真实的3D布局体积
Corner error (CE):
C
E
=
1
H
2
+
W
2
∑
i
∈
corners
∥
c
i
pred
−
c
i
g
t
∥
2
2
C E=\frac{1}{\sqrt{H^{2}+W^{2}}} \sum_{i \in \text {corners}}\left\|c_{i}^{\text {pred}}-c_{i}^{g t}\right\|_{2}^{2}
CE=H2+W21i∈corners∑∥∥∥cipred−cigt∥∥∥22
其中, H H H和 W W W表示图片高宽, c pred c^{\text {pred}} cpred 和 c g t c^{g t} cgt表示预测和真实的墙角位置(墙角是个点)
Pixel error (PE):
P
E
=
1
∣
N
∣
∑
i
=
1
N
1
(
s
i
p
r
e
d
≠
s
i
g
t
)
P E=\frac{1}{|N|} \sum_{i=1}^{N} \mathbb{1}\left(s_{i}^{p r e d} \neq s_{i}^{g t}\right)
PE=∣N∣1i=1∑N1(sipred=sigt)
其中, s pred s^{\text {pred}} spred 和 s g t s^{g t} sgt表示预测和真实的语义标签(墙、天花板、地板), 1 ( . ) \mathbb{1}(.) 1(.)是指标函数,当语义标签对应时值为1
深度估计评估部分:
Absolute Relative Difference:
A
b
s
Rel
=
1
∣
N
∣
∑
i
=
1
N
∥
d
i
−
g
i
∥
/
g
i
A b s \text { Rel }=\frac{1}{|N|} \sum_{i=1}^{N}\left\|d_{i}-g_{i}\right\| / g_{i}
Abs Rel =∣N∣1i=1∑N∥di−gi∥/gi
Squared Relative Difference:
S
q
R
e
l
=
1
∣
N
∣
∑
i
=
1
N
∥
d
i
−
g
i
∥
2
/
g
i
S q R e l=\frac{1}{|N|} \sum_{i=1}^{N}\left\|d_{i}-g_{i}\right\|^{2} / g_{i}
SqRel=∣N∣1i=1∑N∥di−gi∥2/gi
RMSE (linear):
R
M
S
=
1
∣
N
∣
∑
i
=
1
N
∥
d
i
−
g
i
∥
2
R M S=\sqrt{\frac{1}{|N|} \sum_{i=1}^{N}\left\|d_{i}-g_{i}\right\|^{2}}
RMS=∣N∣1i=1∑N∥di−gi∥2
RMSE (log):
R
M
S
(
log
)
=
1
∣
N
∣
∑
i
=
1
N
∥
log
d
i
−
log
g
i
∥
2
R M S(\log )=\sqrt{\frac{1}{|N|} \sum_{i=1}^{N}\left\|\log d_{i}-\log g_{i}\right\|^{2}}
RMS(log)=∣N∣1i=1∑N∥logdi−loggi∥2
其中,
d
i
d_i
di和
g
i
g_i
gi表示预测和真实的深度值
Layout Prediction
Stanford 2D–3D有深度和语义标签,网络在其上初始训练。
在PanoContext 和 Stanford 2D–3D 混合的数据集上训练(PanoContext没有深度和语义标签,如何训练?),并单独测试。
Stanford 2D–3D:第2列显示本文方法对遮挡鲁棒性更好,第3列显示语义分割确保被门遮挡的墙角可以被估计出来,第4列显示失败案例。
PanoContext:类似
Non-cuboid Layout:
depth estimation:
第1和第2图显示本文方法在窗户和远处预测深度具有连续性,因为加入了布局深度
第3和第4图显示本文利用语义指导的细化(semantic-guided refinemen)更好保留了细节
法向量显示本文方法预测的深度在泡面更光滑。
Conclusion
提出了一种从单个室内全景图像中联合学习布局和深度的方法。通过利用布局深度图作为中间表示,3D布局的优化不需要额外的约束,而且精细的深度估计保留了布局组件的平面性。在具有挑战性的室内数据集上的实验结果表明,该联合学习方法在单幅全景图像上的布局预测和深度估计性能均有显著提高,优于现有的方法