IndoorNet: Generating Indoor Layouts from a Single Panorama Image(2020 Advanced Computing Technologies and Applications)
pdf下载
本文以全景图和曼哈顿线共同作为输入,构建一个端到端的模型。输出2个预测,分别是墙角和上下墙线。
Related Work
从图片恢复布局有以下区分:
- 图片数量
- 透视或全景图
- 房间形状(4个墙角的矩形、多余4个墙角的复杂形状)
- 几何学的使用
最近开始使用FCNN取代传统使用几何方法。
RoomNet首次实现透视图恢复房间结构功能。
PanoContext输入是全景图,裁剪为多个透视图然后预测多个布局?
LayoutNet结合了深度学习和几何知识来预测房间布局。
本文方法更快、尺寸更小。单一的encoder– decoder结构同时预测2个map。
和PanoContext、LayoutNet对比,实际上没有很大改进和前2篇(DuLa-Ne、HorizonNet)相差很多,且只能预测4个墙角布局。下面只有对一些基础内容做笔记。
Approach
输入:全景图+Manhattan线(实际上还是一张图)
输出:墙角、边界
优化恢复3D结构
Calculating the Manhattan Lines:
首先将全景图像划分为多个重叠的透视图像。接下来,选择长线并将线段弯曲回全景图。然后利用霍夫变换计算所有可能的消失方向,最后每条线段通过投票选择三个相互垂直的消失方向。这种线的表示及其三维方向是一个有用的特性。
Network Architecture:
常规的FCN结构:
FCN Encoder: 7层卷积,
3
×
3
3 \times 3
3×3卷积核,最大池化(下采样因子2),第一次卷积32通道,最后一层2048通道。
由于论文没给出每步,个人推测,后面可以看LayoutNet结构,一个是一样
input:
(
3
+
3
)
×
512
×
1024
(3+3) \times 512 \times 1024
(3+3)×512×1024
cov1:
32
×
256
×
512
32 \times 256 \times 512
32×256×512
cov2:
64
×
128
×
256
64 \times 128 \times 256
64×128×256
…
cov7:
2048
×
4
×
8
2048 \times 4 \times 8
2048×4×8
FCN Decoder: 借鉴U-net结构,使用了跳跃连接使得信息可以传递到底层。和LayoutNet不同的是,一个Decoder就输出了2个map,所以参数就更。这就是本文创新之处。输出3通道边界概率图 P b P_b Pb和1通道墙角概率图 P c P_c Pc。
Loss Function:
L
(
P
b
,
P
c
)
=
−
∑
y
ˉ
b
∈
P
b
[
y
b
⋅
log
σ
(
y
b
‾
)
+
(
1
−
y
b
)
⋅
log
(
1
−
σ
(
y
b
‾
)
)
]
−
∑
y
c
‾
∈
P
c
[
y
c
⋅
log
σ
(
y
c
‾
)
+
(
1
−
y
c
)
⋅
log
(
1
−
σ
(
y
c
‾
)
)
]
\begin{aligned} L\left(P_{b}, P_{c}\right)=-& \sum_{\bar{y}_{b} \in P_{b}}\left[y_{b} \cdot \log \sigma\left(\overline{y_{b}}\right)+\left(1-y_{b}\right) \cdot \log \left(1-\sigma\left(\overline{y_{b}}\right)\right)\right] \\ &-\sum_{\overline{y_{c}} \in P_{c}}\left[y_{c} \cdot \log \sigma\left(\overline{y_{c}}\right)+\left(1-y_{c}\right) \cdot \log \left(1-\sigma\left(\overline{y_{c}}\right)\right)\right] \end{aligned}
L(Pb,Pc)=−yˉb∈Pb∑[yb⋅logσ(yb)+(1−yb)⋅log(1−σ(yb))]−yc∈Pc∑[yc⋅logσ(yc)+(1−yc)⋅log(1−σ(yc))]
使用交叉熵,取代L2。
Gradient Descent Optimizer
在LayoutNet中有使用3D layout regressor得到3D参数 d = { s w , s l , s h , t x , t z , r θ } d=\left\{s_{w}, s_{l}, s_{h}, t_{x}, t_{z}, r_{\theta}\right\} d={sw,sl,sh,tx,tz,rθ}。然后采用Floor-Plan Reconstruction from Panoramic Images里的方法来求布局,然后迭代墙求最优布局。 本文则是用了更简单方法Gradient Descent Optimizer,得到参数d后,假设形状是矩形的房间,所以沿着立方体的边界采样,把这些采样点重新投影会全景图,再计算和真实边界的L2距离。该方法一定程度提升了准确度。
Experiments
在Panocontext数据集上训练和参测试
在Panocontext和Stanford 2D-3D数据集上训练,各种测试
模型尺寸对比,更深的网络没有带来更高准确度(overfitting!)
Manhattan线一定程度上给CNN提供了几何信息,从而提高准确度
Conclusion
本文值得探讨地方:
- 输入全景图加上Manhattan线可以提升准确度(虽然提取Manhattan线费时间,但是实际上全景图是需要做Manhattan垂直预处理)
- 本文提到Gradient Descent Optimizer,但是并没看明白怎么回事。