论文笔记:Joint 3D Layout and Depth Prediction from a Single Indoor Panorama Image(ECCV 2020)

本文利用布局深度图(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=1nln(ei+1)
其中, e i = ∥ d i − g i ∥ 1 e_{i}=\left\|d_{i}-g_{i}\right\|_{1} ei=digi1 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=1n(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=1n1njd,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=1npilog(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)ii=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×PaPcPaPb×PaPcPiΩ}
这样就得到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=1Nniprednigt1

除了添加 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=VpredVgtVpredVgt
其中, 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+W2 1icornerscipredcigt22

其中, 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=N1i=1N1(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 =N1i=1Ndigi/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=N1i=1Ndigi2/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=N1i=1Ndigi2


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)=N1i=1Nlogdiloggi2
其中, 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布局的优化不需要额外的约束,而且精细的深度估计保留了布局组件的平面性。在具有挑战性的室内数据集上的实验结果表明,该联合学习方法在单幅全景图像上的布局预测和深度估计性能均有显著提高,优于现有的方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于软件测试使用机器学习的缺陷预测:回顾与展望 软件测试是软件开发过程中非常重要的一环,而缺陷预测则是测试过程中的关键任务。近年来,机器学习技术的发展为缺陷预测提供了新的可能性。 在这篇文章中,我们对使用机器学习进行软件测试的缺陷预测进行了回顾和展望。首先,我们总结了过去几年来在这一领域取得的重要研究成果。这些研究包括贝叶斯网络、决策树、支持向量机等不同的机器学习算法,在不同的数据集和软件项目上的应用。通过分析这些研究,我们发现机器学习可以在缺陷预测中取得很好的效果,能够提高测试的效率和准确率。 接着,我们对未来的研究方向进行了展望。我们认为,未来的研究可以集中在以下几个方面:首先,进一步改进机器学习算法的性能,使其更适用于不同类型的软件项目和不同的数据集。其次,探索更多的特征选择和特征提取方法,以提高预测模型的准确性。第三,结合其他的软件测试技术,如静态分析和动态分析,进一步提高缺陷预测的效果。最后,对机器学习算法在实际软件测试项目中的应用进行深入研究,以解决实际应用中的挑战和问题。 总之,使用机器学习进行软件测试的缺陷预测已经取得了一些重要的研究成果,但仍有很多挑战和问题需要解决。通过将机器学习算法与其他软件测试技术相结合,进一步提高预测模型的性能,我们可以期待在未来实现更准确和高效的缺陷预测。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值