介绍

任务:语义场景补全

输入:Single-view depth image

输出:体元化的3D场景,包含occupancy和semantic标签

主要贡献:

  • 提出级联上下文金字塔网络CCPNet,能够结合局部几何细节和场景的multi-scale 3D context;
  • 提出一种高效的指导残差精修模块(guided residual refinement module, GRR),它能使用低级别特征和残差连接逐渐地物体结构进行精修;
  • 在语义场景补全任务上取得了SOTA的效果。

CCPNet

image-20190921024504980

给定一个3D场景的single-view depth map,CCPNet的目标是将体素映射到语义标签 $C=\left[c_{0}, c_{1}, \ldots, c_{N+1}\right]$,$N$ 表示语义类别的个数,$c_0$ 表示空体素。CCPNet包含3个部分:

  • 3D Dilated Convolution Encoder (DCE)
  • Cascaded Context Pyramid (CCP)
  • Guided Residual Refinement (GGR)

DCE使用多个扩张卷积来从depth map中提取3D特征;然后,CCP进行global-to-local的上下文信息聚合以改善标注的连贯性;最后,GRR使用低级别的特征来对物体进行精修。

3D Dilated Convolution Network

输入的生成

与《Semantic scene completion from a single depth image》中的做法类似,将depth map使用flipped TSDF进行编码,生成一个 $240 \times 144 \times 240$ 的输入张量。由于轻量级的网络结构,可以使用full-resolution depth map作为输入。

编码器结构

编码器用于提取3D上下文信息。为了降低计算开销,使用带有separated kelnels的3D dilated convolution。

image-20190921031252149

首先将输入的tensor分为几个subvolumes,然后在每个subvolume内使用3D dilated kernel。使用这种卷积的原因有以下两点:

  • 在继承了3D扩张卷积的基础上降低了模型的参数量;
  • 考虑了depth map的特性,即depth value只在相邻的区域上连续。

Cascaded Context Pyramid

由于不同物体大小差别很大,并且人造物体具有很大的类内差异,因此只使用物体的全局上下文信息是不够的,需要引入multi-scale上下文信息。

image-20190921041629375

在3D DCE的最后一个pooling层后面使用不同膨胀率(30、24、18、12、6、1)的3D扩张卷积来提取multi-scale context。使用自级联金字塔结构来聚合multi-scale context:

$$ X_{s a}=\left\{\begin{array}{l}{f\left(\cdots f\left(f\left(X_{1} \oplus X_{2}\right) \oplus X_{3}\right) \oplus \cdots \oplus X_{n}\right)} \\ {d_{1}>d_{2}>d_{3}>\cdots>d_{n}}\end{array}\right. $$

其中 $X_n$ 表示n-scale xontext,$X_{sa}$ 表示最终聚合后的xontext,$d_n$ 表示膨胀率,$\oplus$ 表示对应元素相加,$f$ 表示Basic Residual Block (BRB)。通过这种结构,首先将膨胀率大的large-scale context进行聚合,然后再对膨胀率小的context进行聚合。这种聚合方式与人类的视觉机制一致:large-scale context对理解small-scale context具有指导作用。

Guided Residual Refinement

想要在3D空间中精确地标注出一个物体的结构细节十分困难。因此,CCPNet复用了DCE中的low-level特征,使用GRR对物体进行精修。GRR中使用了Guided Residual Block,其结构如下图所示:

image-20190921042826618

GRB的计算流程如下:

$$ \begin{aligned} \hat{X} &=X \oplus G \\ X_{r f} &=\operatorname{Re} L u(\hat{X} \oplus \hat{X} \operatorname{Tanh}(\hat{X}) \oplus h(\hat{X})) \\ &=\operatorname{Re} L u(\hat{X}(I \oplus \operatorname{Tanh}(\hat{X})) \oplus h(\hat{X})) \\ &=\operatorname{Re} L u\left(\hat{X}_{G} \oplus h(\hat{X})\right) \end{aligned} $$

其中,$X$ 是输入的语义特征,$G$是来自浅层的指导特征,$\oplus$ 表示对应元素相加,$h$ 表示普通残差块中的非线性变换。元素相加操作将特征进行融合,引入tanh的目的是对融合后的特征进行“放大”。

网络训练

使用volxel-wise softmax损失进行训练:

$$ L(p, y)=\sum_{i, j, k} w_{i j k} L_{s m}\left(p_{i j k}, y_{i j k}\right) $$

其中 $w_{i j k} \in\{0,1\}$ 是为了解决数据不平衡问题(空白体素过多)而引入的权重。在训练时,对体素进行采样使得empty voxels : occupied voxels = 2 : 1。

实验

数据集:

  • SUNCG:45622室内场景。训练集包含150K depth image和相应的ground truth volumes,测试集包含470对数据。
  • NYU:1449 depth images,795张用于训练,654张用于测试。

考虑2个任务:场景补全和语义场景补全。

image-20190921045349250

image-20190921045208560

image-20190921045412564

image-20190921045246627

Last modification:September 22nd, 2019 at 09:45 pm
如果觉得我的文章对你有用,请随意赞赏