3D-MPA: Multi Proposal Aggregation for 3D Semantic Instance Segmentation

Abstract
- 提出了一种三维点云实例分割方法——3D-MPA。
- 给定一个输入点云,提出一个object-centric的方法,其中每个点都为其object center投票。
- 从预测object centers抽取object proposals。然后,从投票给同一个object center的grouped point features中学习proposal features。
- 图卷积网络引入了interproposal关系,除了提供低级的点特征外,还提供高级的特征学习。每个 proposal包括一个语义标签、一组关联点(在这些点上定义了前景-背景掩码)、一个 objectness score和aggregation features。
- 以前的工作通常对proposal执行非最大抑制(non- maximum-suppression, NMS),以获得最终的目标检测或语义实例。但是,NMS会丢弃可能正确的预测。相反,3D-MPA保持所有proposals,并基于 learned aggregation features将它们分组在一起。
- 在ScanNetV2和S3DIS数据集上, grouping proposals在3D目标检测和语义实例分割等任务上优于NMS,并优于以前的先进方法。
(一)Introduction
创新:
不再使用非最大化抑制来拒绝proposals,而是为每个proposals学习更高层次的特征,使用这些特征将proposals聚在一起,最终检测到目标。
- 思想:生成的proposals数量比3D扫描中原始输入点的数量小几个数量级,这使得分组计算非常高效。同时,每个object可以接收多个proposals,这是因为所有大小的object都以相同的方式处理,从而简化了proposals的生成,并且网络可以很容易地tolerate outlier proposals。
算法步骤:
- 使用一个sparse volumetric feature backbone中的per-point voting scheme生成object-centric proposals。
- 将proposals解释为proposal graph的节点,然后将其馈入图卷积神经网络,以实现相邻proposal特征之间的高级交互。
- 除了proposal 损失外,在proposal 之间通过proxy loss来训练网络,类似于度量学习(metric learning)中的affinity scores。由于proposals,数量相对较少,可以有效地训练网络和cluster proposals。
- 最后,每个节点会预测一个语义类,一个 object foreground mask,一个objectness score以及用于将节点分组在一起的附加特征。
贡献:
- 一种基于dense object center prediction的3D实例分割新方法,该方法利用了从sparse volumetric backbone中学习到的语义特征。
- 为了从object proposals中获取最终的object detections和语义实例,将基于共同学习的proposal features的multi proposal aggregation替换了常用的NMS,并报告了比NMS明显提高的分数。
- 使用图卷积网络,除了较低级别的点特征外,还可以显式地对相邻proposal 之间的高阶交互进行建模。
(二)Related Work
~~
(三)Method

3.1. Proposal Generation
- 给定一个大小为 N × I N×I N×I的点云,由 N N N个点和 I I I维输入特征(例如位置、颜色和法线)组成。
- 网络的第一部分生成固定 K K K数量的object proposals。
- 每个proposal是由(1)位置 y i ∈ R 3 y_i∈R^3 yi∈R3,(2)proposal features vector g i ∈ R D g_i∈ R^D gi∈RD,(3)与proposal相关联的一组点集 s i s_i si等三个部分组成的元组 ( y i , g i , s i ) (y_i,g_i,s_i) (yi,gi,si).
- 为了生成proposals,,需要强大的点特征来编码语义上下文和底层场景的几何形状。
- 应用一个sparse volumetric network作为feature backbone,生成per-point features { f i ∈ R F } i = 1 N \left \{f_{i}\in R^{F}\right \}_{i=1}^{N} { fi∈RF}i=1N。
- 利用per-point semantic classification的标准交叉熵损失 L s e m . p t L_{sem.pt} Lsem.pt,使用语义标签监督feature backbone,将语义上下文编码到点特征中。
- 遵循<<Deep Hough Voting for 3D Object Detection in Point Clouds>>以对象为中心的方法,点投票给他们所属对象的中心。与其不同的是,只有来自objects的点才能预测中心。(这是可能的,因为论文预测语义类,在训练和测试时可以区分前景(物体)和背景(墙壁、地板等)之间的点,这会使中心预测更精确,因为来自背景点的noisy predictions被忽略了。)
- 这是作为回归损失实现的,它预测点位置 x i ∈ R 3 x_i∈R^3 xi∈R3与其对应的ground truth bounding-box center c i ∗ ∈ R 3 c_i^* ∈R^3 ci∗∈R3之间的每点相对3D偏移量 △ x i ∈ R 3 \triangle x_i\in R^{3} △xi∈R3。将per-point center regression loss为:
L c e n t . p t = 1 M ∥ x i + △ x i ∥ H ⋅ 1 ( x i ) − − − − − − − − − − − − − − − − − ( 1 ) L_{cent.pt}=\frac{1}{M}\left \|x_{i} +\triangle x_{i}\right \|_{H}\cdot1(x_{i})-----------------(1) Lcent.pt=M1∥xi+△xi∥H⋅1(xi)−−−−−−−−−−−−−−−−−(1)
(I): ||·||是Huber-loss(或smooth L1-loss)
(II): (·)是一个二元函数,表示一个点 x i x_i xi是否属于一个对象。
(III): M是一个归一化因子,等于object上的总点数。
- feature backbone有两个heads(图2): 一个语义head(执行点的语义分类)和一个中心head(回归每个点的对象中心)。使用组合损失 L p o i n t L_{point} Lpoint联合监督它们,其中λ是设置为0.1的加权因子。
L p o i n t = λ ⋅ L s e m . p t + L c e n t . p t − − − − − − − − − − − − − − − − − − − − ( 2 ) L_{point}=\lambda\cdot L_{sem.pt}+L_{cent.pt}--------------------(2) Lpoint=λ⋅Lsem.pt+Lcent.pt−−−−−