CVPR 2020——OccuSeg: Occupancy-aware 3D Instance Segmentation

Abstract

  • 定义“3D occupancy size”,即每个实例所占用的体素数。
  • 在此基础上,提出了一种基于occupancy-aware的三维实例分割方案OccuSeg。
  • 论文的多任务学习产生了 occupancy signal和embedding representations,在这两个representations中,对空间和特征嵌入的训练随着它们在scale-aware上的不同而不同。
  • 论文的聚类方案得益于预测的occupancy size 和聚类occupancy size 之间的可靠比较,这有助于正确地对hard samples进行聚类,避免过度分割。
  • 该方法在保持高效率的同时,在3个真实数据集(即ScanNetV2、S3DIS和SceneNN)上实现了最先进的性能。

(一)Introduction

  • 以三维几何模型为输入,逐点预测实例级语义信息.
  • 如图1所示。鉴于三维度量空间比基于2D图像的投影观察提供了更可靠的感知,特别引入了“3D occupancy signal”,表示每个实例所占用的体素的数量。
  • 这样的occupancy signal代表了每个3D实例的内在和基本属性,显示了处理三维设置下尺度、位置、纹理、光照和遮挡的模糊性的强大潜力。
  • 将新的occupancy signal编码到传统的三维实例分割管道中,即:学习阶段,聚类阶段。
  • 在occupancy-aware方法中,学习和聚类阶段都充分利用了occupancy signal的特征,从而在公共数据集上实现了竞争性能。

具体步骤:

  1. 学习阶段以彩色3D场景为输入,利用空间稀疏卷积方法为每个体素提取一个混合向量。它不仅学习了经典的嵌入方法,如空间嵌入(图1(d))和特征嵌入(图1(e)),还产生了occupancy signal(图1(f)),这意味着object-level volume。
  2. 为了充分利用语义信息和几何信息,特征和空间嵌入被明确地以不同的目标进行监督,并进一步通过对特征和空间嵌入距离的协方差估计进行组合。
  3. 在聚类阶段,使用基于图的分割算法<< Efficient
    graph-based image segmentation.>>,根据几何和外观约束将三维输入点云分组为超体素。
  4. 然后,将嵌入相似特征的超体素合并到同一实例中,利用自适应阈值评估嵌入距离与occupancy size的相似性。
  5. 借助预测的occupancy size和聚类occupancy size之间的可靠比较,论文的聚类方法使得hard samples 被正确地聚类,并消除了部分实例被识别为独立实例的假阳性。

贡献:

  1. 提出了一种基于occupancy-aware 的三维实例分割方案OccuSeg。它在三个公共数据集上实现了最先进的性能:ScanNetV2、S3DIS和SceneNN,在所有指标上都以显著的优势排名第一,同时保持高效率.
  2. 提出了一种新的occupancy signal,它可以预测每个实例中被占用的体素数量。将特征与空间嵌入相结合,共同学习occupancy signal,用于指导三维实例分割的聚类阶段。

(二)Related Work

~~

(三)Methods

目标:

  • 将一个体素化的3D彩色场景作为输入,并为每个体素生成一个3D对象实例标签,其中属于同一对象的体素共享一个惟一的实例标签。

现有方法不足:

  • 目前很少明确地利用了不同于2D图像观测的3D模型的固有特性:在没有遮挡或尺度模糊的情况下重建度量空间中的环境。

发现:

  • 如图2,同一实例在三维空间中,其在二维图像上的观测结果可能会有很大差异。每个实例占用的像素/体素数(表示occupancy)在二维图像上是不可预测的,但可以从重建的三维模型中得到可靠的预测。

论文idea:

在occupancy signal的基础上,提出了一种occupancy-aware的三维实例分割方案。虽然它遵循经典的学习再聚类过程,但是学习阶段和聚类阶段都不同于现有的方法。

网络流程:

  1. 首先将输入的三维场景在2cm分辨率下进行体素化,
  2. 然后送入三维卷积神经网络(UNet)进行特征提取。
  3. 将学习到的特征转发给task-specific heads,学习每个输入体素的不同表示,包括语义分割,目的是分配类标签,特征和空间嵌入,以及 occupancy regression(第3.1节)。
  4. 最后,提出了一种graph-based occupancy-aware clustering scheme,该方案利用了预测的occupancy information和前一阶段的feature embedding(第3.2节)。
  5. 所有的3D卷积都是使用子流形稀疏卷积网络实现的,利用了输入3D场景的稀疏性。 该网络的详细信息在附录中提供。

3.1. Multi-task Learning

目的: 同时利用三维场景中固有的occupancy以及语义和空间信息。

提出了一个多任务学习框架来学习第 i i i个输入体素的task-specific representations ,包括:

  1. 语义分割 c i c_i ci,目的是分配类标签;
  2. s i s_i si d i d_i di for 联合特征和空间嵌入,以及相应的 b i b_i bi for 协方差预测,以融合特征和空间信息;
  3. o i o_i oi for occupancy regression。

对网络进行训练,使联合损失函数最小化:
L = L c + L e + L o − − − − − − − − − − ( 2 ) L=L_{c}+L_{e}+L_{o}----------(2) L=Lc+Le+Lo(2)

  • L c L_{c} Lc是一种传统的用于语义分割的交叉熵损失。
  • L e L_{e} Le目的是学习一种综合考虑feature and spatial embedding的嵌入向量,用于实例分割。
  • L o L_{o} Lo用于回归每个体素所属实例的occupancy size。
3.1.1 Embedding Learning

与以往直接将特征和空间嵌入相结合的方法不同,论文将它们分开,并用不同的目标监督它们的学习过程。

  • 虽然空间嵌入是尺度感知的,并且具有明确的物理解释,例如从当前体素到其所属实例的空间中心的偏移向量,
  • 但是特征嵌入存在固有的模糊尺度,因此必须使用附加的代价函数进行正则化。
  • 利用协方差估计进一步正则化了两个嵌入。
  • 用于嵌入 L c L_{c} Lc的学习函数包含三个项的元素列表,即空间项 L s p L_{sp} Lsp、特征项 L s c L_{sc} Lsc和协方差项 L c o v L_{cov} Lcov:
    L e = L s p + L s e + L c o v − − − − − − − − − − ( 2 ) L_{e}=L_{sp}+L_{se}+L_{cov}----------(2) Le=Lsp+Lse+Lcov(2)

Spatial Term.

i i i个体素的空间嵌入 d i d_i di是一个回归到对象中心的3维向量,使用以下空间术语对其进行监督:
L s p = 1 C ∑ c = 1 C 1 N c ∑ i = 1 N c ∥ d i + u i − 1 N c ∑ i = 1 N c u i ∥ − − − − − − − − ( 3 ) L_{sp}=\frac{1}{C}\sum_{c=1}^{C}\frac{1}{N_{c}}\sum_{i=1}^{N_{c}}\left \| d_{i}+u_{i}-\frac{1}{N_{c}}\sum_{i=1}^{N_{c}}u_{i}\right \|--------(3) Lsp=C1c=1CNc1i=1Ncdi+uiNc1i=1Ncui(3)

  • C C C是输入3D场景中实例的数量
  • N C N_C NC是是第c个实例中的体素的数量
  • u i u_i ui是第c个实例中第i个体素的3D位置。

Feature Term.

包含三个项的判别损失函数来学习特征嵌入 s i s_i si
L s c = L v a r + L d i s t + L r e g − − − − − − − − − − ( 4 ) L_{sc}=L_{var}+L_{dist}+L_{reg}----------(4) Lsc=Lvar+Ldist+Lreg(4)

  • L v a r . L_{var.} Lvar.将属于同一实例的特征拉到它们的平均值
  • L d i s t . L_{dist.} Ldist.将实例彼此远离
  • L r e g . L_{reg.} Lreg.是一个正则化的术语, pulling the means towards the origin。
  • L v a r . = 1 C ∑ c = 1 C 1 N c ∑ i = 1 N c [ ∥ μ C − ϵ i ∥ − δ v ] + 2 − − − − − − − − − − − − − − − ( 5 ) L_{var.}=\frac{1}{C}\sum_{c=1}^{C}\frac{1}{N_{c}}\sum_{i=1}^{N_{c}}\left [ \left \| \mu_{C}-\epsilon _{i}\right \|-\delta _{v}\right ]_{+}^{2}---------------(5) Lvar.=C1c=1CNc1i=1Nc[μCϵiδv]+2(5)
  • L d i s t . = 1 C ( C − 1 ) ∑ C A = 1 C ∑ C B = 1 C [ 2 δ d − ∥ μ C A − μ C B ∥ ] + 2 . . . . . . . . C A ≠ C B − − − − − − − − − − ( 6 ) L_{dist.}=\frac{1}{C(C-1)}\sum_{C_{A}=1}^{C}\sum_{C_{B}=1}^{C}\left [2\delta _{d}- \left \| \mu_{C_{A}}-\mu_{C_{B}}\right \|\right ]_{+}^{2} ........ C_{A}\neq C_{B}----------(6) Ldist.=C(C1)1CA=1CCB=1C[2δdμCAμCB]+2........CA=CB(6)
  • L r e g . = 1 C ∑ C = 1 C ∥ μ C ∥ − − − − − − − − − − − − ( 7 ) L_{reg.}=\frac{1}{C}\sum_{C=1}^{C}\left \|\mu _{C} \right \|------------(7) Lreg.=C1C=1CμC(7)
  • U c = 1 N c ∑ i = 1 N c s i U_c=\frac{1}{N_{c}}\sum_{i=1}^{N_{c}}s_{i} Uc=Nc1i=1Ncsi 表示第c个实例的平均特征嵌入。
  • 预定义的阈值 δ v = 0.1 δ_v=0.1 δv=0.1 δ d = 0.5 δ_d=0.5 δd=0.5,以确保实例内嵌入距离小于实例间距离。

Covariance Term.

协方差项旨在为每个实例学习最佳聚类区域。

  • b i = ( σ s i , σ d i ) b_i=\left ( \sigma _{s}^{i},\sigma _{d}^{i}\right ) bi=(σsi,σdi)表示在第c个实例中第i个体素的预测特征/空间协方差。
  • 过对 b i b_i bi求平均值,得到第c个实例的嵌入协方差 ( σ s c , σ d c ) \left ( \sigma _{s}^{c},\sigma _{d}^{c}\right ) (σsc,σdc)
  • 将第 i i i个体素属于第 c c c个实例的概率表示为 p i p_i pi
    p i = e x p ( − ( s i − U c σ s c ) 2 − ( u i + d i − e c σ d c ) 2 ) − − − − − − − − − − − − − − − ( 8 ) p_i=exp\left (-\left ( \frac{s_{i}-U_{c}}{\sigma _{s}^{c}}\right )^{2}- \left ( \frac{u_{i}+d_i-e_{c}}{\sigma _{d}^{c}}\right )^{2}\right )---------------(8) pi=exp((σscsiUc)2(σdcui+diec)2)(8)
    L c o v = − 1 C ∑ c = 1 C 1 N c ∑ i = 1 N c [ y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ] − − − − ( 9 ) L_{cov}=-\frac{1}{C}\sum_{c=1}^{C}\frac{1}{N_{c}}\sum_{i=1}^{N_{c}}\left [ y_{i}log(p_i)+ (1-y_{i})log(1-p_i)\right ]----(9) Lcov=C1c=1CNc1i=1Nc[yilog(pi)+(1yi)log(1pi)](9)
  • e c = 1 N c ∑ k = 0 N c ( μ k + d k ) e_{c}=\frac{1}{N_c}\sum_{k=0}^{N_{c}}\left ( \mu _{k}+d_{k}\right ) ec=Nc1k=0Nc(μk+dk)表示第c个实例的预测空间中心。

由于对于属于第 c c c个实例的体素,预期 p i p_i pi会大于0.5,因此协方差项由二元交叉熵损失表示:
L c o v = 1 C ∑ c = 1 C 1 N c ∑ i = 1 N c ∥ o i − l o g ( N c ) ∥ − − − − − − − − − − − − − − − − − ( 10 ) L_{cov}=\frac{1}{C}\sum_{c=1}^{C}\frac{1}{N_{c}}\sum_{i=1}^{N_{c}}\left \| o_{i}-log(N_{c})\right \|-----------------(10) Lcov=C1c=1CNc1i=1Ncoilog(Nc)(10)

  • 其中 y i = 1 y_i = 1 yi=1表示 i i i属于 c c c,yi = 0,否。
  • N N N表示输入点云中的点数。
3.1.2 Occupancy Regression
  1. 为了利用3D设置下的occupancy information,对于第 c c c个实例中的第 i i i个体素,预测一个positive value o i o_i oi指示当前实例占用的体素数。
  2. 然后, o i o_i oi的平均值将用作当前实例的预计occupancy size。为了获得更可靠的预测,将对数而不是原始值进行回归,并制定以下 occupancy term:
    L o = 1 C ∑ c = 1 C 1 N c ∑ i = 1 N c ∥ o i − l o g ( N c ) ∥ − − − − − − − − − − − − − − ( 10 ) L_{o}=\frac{1}{C}\sum_{c=1}^{C}\frac{1}{N_{c}}\sum_{i=1}^{N_{c}}\left \| o_i-log(N_c)\right \|--------------(10) Lo=C1c=1CNc1i=1Ncoilog(Nc)(10)
    N c N_c Nc是第c个实例中的体素数。
  3. 为了评估occupancy预测策略的可行性,使用相对预测误差 R c R_c Rc来衡量第 c c c个实例的occupancy预测性能:
    R c = ∣ N c − e x p ( 1 N c ∑ i = 1 N c o i ) ∣ N c − − − − − − − − − − − − − − − − − − − − − − − ( 11 ) R_c=\frac{\left | N_c-exp\left ( \frac{1}{N_c}\sum_{i=1}^{N_c}o_i\right )\right |}{N_c}-----------------------(11) Rc=NcNcexp(Nc1i=1Ncoi)(11)

       

图释:

  1. R c R_c Rc的累积分布函数图
  2. 对于ScanNetV2数据集的验证集中超过4000个实例,可以预测到超过68%的实例,相对误差小于0.3.
  3. 说明了occupancy regression对于接下来的聚类阶段的有效性。

3.2. Instance Clustering

引入了一种基于图的 occupancy-aware聚类方案来解决推理过程中的三维实例分割问题。

步骤:

  1. 采用自底向上的策略,使用高效的基于图的分割方案《Efficient graph-based image segmentation》将输入的体素分组为超体素。(超体素表示可以更好地分离不同的实例,由于具有几何连续性或局部凹凸约束,三维空间中的实例边界更容易识别。)
  2. Ω i \Omega _{i} Ωi表示属于超体素 v i v_i vi的所有体素的集合,定义 v i v_i vi的空间嵌入 D i D_i Di为:
    D i = 1 ∣ Ω i ∣ ∑ k ∈ Ω i ( d i + μ i ) − − − − − − − − − − − − − − − − − − − ( 12 ) D_i=\frac{1}{|\Omega _{i}|}\sum_{k\in \Omega _{i}}^{}\left ( d_{i}+\mu _i\right )-------------------(12) Di=Ωi1kΩi(di+μi)(12) ∣ Ω i ∣ |\Omega _{i}| Ωi表示 Ω i \Omega _{i} Ωi的体素数量。
    feature embedding S i S_i Si, occupancy O i O_i Oi v i v_i vi的covariance σ s i \sigma _{s}^{i} σsi σ d i \sigma _{d}^{i} σdi都是基于similar averaging operation对所有属于 v i v_i vi的体素进行计算。
  3. 进一步定义occupancy ratio r i r_i ri 来指导聚类步骤,
    r i = O i ∣ Ω i ∣ − − − − − − − − − − − − − − − − − − − ( 13 ) r_i=\frac{O_i}{\left | \Omega _i\right |}-------------------(13) ri=ΩiOi(13) r i > 1 r_i>1 ri>1 表示有太多的体素在 v i v_i vi用于实例分割,否则 v i v_i vi应该attract更多的体素。
  4. 建立无向图 G = ( V , E , W ) G=\left ( V,E,W\right ) G=(V,E,W),顶点 v i ∈ V v_i∈V viV表示生成的超体素, e i , j = ( v i , v j ) ∈ E e_{i,j}=\left ( v_i,v_j\right )\in E ei,j=(vi,vj)E表示权重为 w i , j ∈ W w_{i,j}\in W wi,jW的成对顶点。
    w i , j = e x p ( − ( ∥ S i − S j ∥ σ s ) 2 − ( ∥ D i − D j ∥ σ d ) 2 ) m a x ( r , 0.5 ) − − − − − − − − − − − − ( 14 ) w_{i,j}=\frac{exp(-\left ( \frac{\left \| S_i-S_j\right \|}{\sigma _{s}}\right )^{2}-\left ( \frac{\left \| D_i-D_j\right \|}{\sigma _{d}}\right )^{2})}{max\left ( r,0.5\right )}------------(14) wi,j=max(r,0.5)exp((σsSiSj)2(σdDiDj)2)(14)
    σ s \sigma _{s} σs σ d \sigma _{d} σd r r r表示合并 v i v_i vi, v j v_j vj的virtual super-voxel的特征协方差、空间协方差和occupancy ratio。
    权重越大表示 v i v_i vi, v j v_j vj属于同一实例的可能性越大。在计算合并权重时,occupancy ratio有助于惩罚实例过分割,鼓励部分实例合并在一起,如图5所示。
  5. 对于 E E E中的所有边,选择权重 w i , j w_{i,j} wi,j最大的边 e i , j e_{i,j} ei,j,如果 w i , j > T 0 w_{i,j}> T_0 wij>T0合并 v i v_i vi, v j v_j vj作为一个新的顶点。合并阈值 T 0 T_0 T0设置为0.5。
  6. 在每次合并操作之后更新图 G G G
  7. 重复此过程,直到所有权重均不大于 T 0 T_0 T0
  8. 最后,如果 G G G中的其余顶点occupancy ratio r r r满足 0.3 < r < 2 0.3 < r < 2 0.3<r<2的约束,则标记为实例,以避免实例分割的 false positives。

3.3. Network Training

  • 使用UNet-like structure,从带有颜色信息的输入点云中提取特征。
  • 为了提高效率,采用了基于块的稀疏卷积策略。
  • 使用Adam optimizer对网络进行训练,初始学习率为1e-3。
  • 对于数据集,ScanNetV2、Stanford3D和SceneNN,使用相同的超参数,320个epoch。

(四)Experiments

  • 硬件设备:笔记本电脑Microsoft Surface Book 2上进行的,该笔记本拥有NVIDIA GTX 1060(移动)GPU和Intel Core i7-8650U CPU。
  • 利用实时三维重建方法FlashFusion进行三维几何输入,在便携式设备上演示了在线三维实例分割。

4.1. Qualitative Evaluation

图6给出了公共数据集验证集上具有代表性的三维实例分割结果.

验证方法对真实场景的鲁棒性,在实时三维重建方法FlashFusion的基础上实现了在线三维实例分割。如图7所示,网络在ScanNetV2上进行了预训练,可以在真实场景中稳健地生成三维实例分割结果。

4.2. Quantitative Evaluation

ScanNetV2.

S3DIS.

SceneNN.

4.3. Complexity Analysis

4.4. Ablation Study

  • w/o_feature 代表没有 feature embedding
  • w/o_spatial 代表没有 spatial feature embedding
  • w/o occupancy 在学习阶段禁用occupancy prediction,在聚类阶段设置Eqn. 14中所有顶点的occupancy ratio r r r= 1

(五)Discussion and Conclusion

  1. OccuSeg,一种基于occupancy-aware的三维场景实例分割方法。
  2. 学习阶段利用特征嵌入和空间嵌入,以及一种新的三维 occupancy signal 来imply三维对象的固有属性。
  3. occupancy signal 进一步指导基于图的聚类阶段正确合并hard 样本,禁止过度分割聚类。
  4. 未来,结合针对部分重建对象的定制设计来改进方法。研究sub-object level的三维实例分割,并进一步提高效率,使高质量的三维实例分割实际应用于AR/VR、游戏和移动机器人的大量应用。

猜你喜欢

转载自blog.csdn.net/Dujing2019/article/details/107728828