【paper reading】Learning Shape Priors for Single-View 3D Completion and Reconstruction

【paper reading】Learning Shape Priors for Single-View 3D Completion and Reconstruction

今天这篇是ECCV’ 18上的一篇文章。可以看成是对GAN的一个成功应用,整个工作可能没有太多让人眼前一亮的地方,但是有些实验会比较有意思。

1.简介

这个工作的目的就是从单张图像(可以是深度图也可以是RGB图像)中重建出完整的物体的三维形状。这个问题很明显是一个不可能完成的问题,因为仅从单个视角观察物体,由于遮挡的原因,是绝不可能得到物体完整的真实形状,肯定会存在歧义。

在这篇文章中,作者将这种歧义分为两个等级。

在这里插入图片描述

首先,对于输入图像a,会有很多可能的三维形状都能产生合理的解释。但是上面的b类的解释表面变化剧烈,非常不自然,在真实世界中不大可能存在。而我们预想的是下面c类的这种较为平滑的自然形状,这是第一个等级的歧义。但是这种问题还有另一个等级的歧义,那就是在所有可能的合理形状中,比如下面的c类形状,仍然有很多种形状可以很好的匹配观测图像,这是第二个等级的歧义。

目前的一些基于学习的方法通过对大量监督数据的学习,来应对第一层歧义。但是在第二层歧义中,传统的形状回归网络由于将生成的形状与真实形状的差作为损失函数,当某种观测对应多种合理的结果时,会导致网络输出的是多种可能合理结果的平均值,不能很好的对抗第二类歧义,同时也会导致输出三维形状的细节的丢失。本文方法的目的就是通过整合深度生成模型和对抗学习的形状先验信息同时克服这两种多义性,超越单视图形状补全和重建的极限。生成的三维形状不仅要符合输入数据,也要符合形状先验知识,而符合先验知识的具体实现方法是通过生成对抗网络训练出一个形状的自然度判别器。

2.ShapeHD

在这里插入图片描述

整个方法在本文中成为ShapeHD,分为三个部分。第一个部分是一个深度估计网络,它是一个编码-解码器结构,编码器是直接用ResNet-18来将一个 256 × 256 256\times256 256×256大小的图像编码成512通道的 8 × 8 8\times8 8×8的feature map,解码器是四层的反卷积层,最后从单幅RGB图像中估计出深度、表面法向量以及物体轮廓。

物体轮廓作为遮罩,将遮罩后的深度以及法向图连接成一个4通道的 256 × 256 256\times256 256×256大小的图像,作为输入,输入到下一个部分,也就是一个三维形状补全网络。这个三维形状补全网络同样也是编码-解码器结构,最后的输出是一个 128 × 128 × 128 128\times128\times128 128×128×128大小分辨率下的三维体素形状。

第三个部分是一个判别形状自然度的判别器网络。在整个网络之前,作者预先训练了一个3D GAN。它的生成器从随机采样的矢量合成3D形状,其判别器将生成的形状与真实形状区分开来。经过联合训练后,判别器具有模拟真实形状分布的能力。作者将这个判别器网络单独拿出来,之后用作之前三维形状补全网络的自然度损失。

3.训练

整个训练过程分为两个阶段。第一阶段中,将上述的三个网络单独进行预训练。整个网络是在ShapeNet数据集上进行训练的,将ShapeNet中的模型在随机生成的视角下渲染成RGB图像作为深度估计网络的输入。训练深度估计网络,Loss就是生成的深度,法向与物体轮廓与GT的差异。然后将GT的法向和深度作为输入,训练三维形状补全网络,这时的Loss是预测体素和GT形状体素之间的交叉熵损失 L v o x e l L_{voxel} Lvoxel。由于三维形状是用 128 × 128 × 128 128\times128\times128 128×128×128大小的体素来表示的,维数非常高,为了解决这里生成对抗网络训练阶段的不稳定性问题,作者使用Wasserstein GAN loss来训练3D GAN。
L W G A N = E x ~ ∼ P g [ D ( x ~ ) ] − E x ∼ P r [ D ( x ) ] + λ E x ^ ∼ P x [ ( ∥ ∇ x ^ D ( x ^ ) ∥ 2 − 1 ) 2 ] L_{WGAN}=\mathbb E_{\tilde x\sim P_g}[D(\tilde x)]-\mathbb E_{x\sim P_r}[D(x)]+\lambda\mathbb E_{\hat x\sim P_x}[{(\lVert \nabla_{\hat x}D(\hat x)\rVert_2-1)}^2] LWGAN=Ex~Pg[D(x~)]ExPr[D(x)]+λEx^Px[(x^D(x^)21)2]

这里的D是判别器, P g P_g Pg P r P_r Pr分别是合成形状的分布和真实形状的分布,前两项就是GAN的对抗损失,后一项是对梯度的惩罚项。

第二阶段中,将第一阶段训练得到的自然度判别器的参数固定,将这个判别器的输出作为损失的一部分,在新的损失函数下对三维形状补全网络进行微调。
L = L v o x e l + α L n a t u r a l L=L_{voxel}+\alpha L_{natural} L=Lvoxel+αLnatural
L n a t u r a l = − E x ~ ∼ P c [ D ( x ~ ) ] L_{natural}=-\mathbb E_{\tilde x \sim P_c}[D(\tilde x)] Lnatural=Ex~Pc[D(x~)]
这里的 P c P_c Pc是三维形状补全网络生成形状的分布。

3.实验结果

在实验中,从三维形状补全和三维重构两个方面对算法的性能进行了验证。三维形状补全指的是从深度图中恢复三维物体的形状,三维重构指的是从RGB图中恢复出三维物体的形状。

3.1 三维形状补全实验

首先是三维形状补全方面的实验,这里的输入都是单张深度图,直接通过ShapeHD中训练好的三维形状补全网络回归出形状。

这个是在ShapeNet上基于单视深度图的三维形状补全结果。ShapeHD能从单张深度图中恢复出具有细节的高精度形状,虽然有时重构的形状与GT之间有一定的差别,但是由于自然度损失的存在,依旧可以看出得出的结果起码是合理的,像第三行的飞机,由于机翼尾部多出了一团,最后生成结果将它解释为双翼飞机。
在这里插入图片描述
之后还和3D-EPN以及剔除了自然度损失函数的结果进行对比。相比3D-EPN,ShapeHD得到的结果包含更多的细节。并且对比加入自然度损失前后的结果,可以看到对抗训练得到的自然度损失函数的加入能够消除错误,增加细节,以及平滑物体表面。并且在定量对比上,ShapeHD的IoU分数和CD(倒角距离)分数相比3D-EPN有了很大的进步。
在这里插入图片描述
在这里插入图片描述
之后也在真实的数据上进行了实验,依旧能有不错的效果。主要的一些错误情况就是物体的可变性部分,例如转椅下面的轮子。而且它难以恢复非常薄的结构,像椅背上的花纹,因为损失是通过体素进行计算的,它鼓励网络专注于较厚的形状部分,因为它们在损失函数中携带更多权重。
在这里插入图片描述

3.2 三维重构实验

之后是在三维重构进行的实验对比。这里的输入是单张RGB图像,需要用到整个ShapeHD网络。

这是使用ShapeNet中的物体进行真实感渲染并且人为添加一些背景作为输入图像的实验结果。DRC方法和ShapeHD只需要输入图像,但是AtlasNet除了图像外还需要额外输入物体轮廓。所有的算法都是使用车,椅子和飞机这三类数据进行训练,但测试使用的是其他类别的物体来测试他们的泛化能力,最后的结果中除了rifle类别差的比较远,其他类别中ShapeHD的性能和AtlasNet相近。
在这里插入图片描述
这个是在PASCAL 3D+数据集中的结果,以及与现有的几种方法中效果最好的情况进行对比。
在这里插入图片描述
这个是Pix3D数据集下结果。同样取得了不错的效果,这里的主要错误和之前类似,也是由于物体上可以运动的部件,或者一些镂空以及非常细的部件。
在这里插入图片描述

4. 网络分析

最后作者对网络进行了分析,他对三维形状补全网络的编码器中最后一层的神经元的顶部激活区域进行可视化,可以看到这些神经元都有良好的可解释性,有的神经元检测车灯,有的神经元检测车轮,椅子脚。
在这里插入图片描述
作者也分析了随着加入自然度损失后迭代次数的不断增加最后生成的形状的变化,在加入了自然度损失后,物体的结构越来越合理,同时也向模型中添加了更多的细节。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值