CVPR2020 3D点云相关论文思想和方法总结(持续更新)

  • A. 3D目标检测和跟踪
    • 1. A Hierarchical Graph Network for 3D Object Detection on Point Clouds
      • 1.1 创新
      • 1.2 实现细节
      • 1.3 实验结果
    • 2. HVNet: Hybrid Voxel Network for LiDAR Based 3D Object Detection
      • 2.1 创新
      • 2.2 实现细节
      • 2.3 实验结果
    • 3. Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud
      • 3.1 创新
      • 3.2 实现细节
      • 3.3 实验结果
    • 4. What You See is What You Get: Exploiting Visibility for 3D Object Detection
      • 4.1 创新
      • 4.2 实现细节:
    • 5. ImVoteNet: Boosting 3D Object Detection in Point Clouds With Image Votes
      • 5.1 创新
      • 5.2 实现细节
    • 6. P2B: Point-to-Box Network for 3D Object Tracking in Point Clouds
      • 6.1 创新
      • 6.2 具体实现
      • 6.3 实验结果
    • 7. DOPS: Learning to Detect 3D Objects and Predict their 3D Shapes
      • 7.1 创新
      • 7.2 实现细节
    • 8. MLCVNet: Multi-Level Context VoteNet for 3D Object Detection
      • 8.1 创新
      • 8.2 实现细节
    • 9. PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
      • 9.1 创新
      • 9.2 实现细节
  • B. 3D点云分类和语义分割
    • 1. FPConv: Learning Local Flattening for Point Convolution
      • 1.1 创新
      • 1.2 具体实现
      • 1.3 实验结果
    • 2. SpSequenceNet: Semantic Segmentation Network on 4D Point Clouds
      • 2.1 创新
      • 2.2 实现细节
      • 2.3 实验结果
    • 3. Fusion-Aware Point Convolution for Online Semantic 3D Scene Segmentation
      • 3.1 创新
    • 4. Multi-Path Region Mining for Weakly Supervised 3D Semantic Segmentation on Point Clouds
      • 4.1 创新
      • 4.2 实现细节
    • 5. Grid-GCN for Fast and Scalable Point Cloud Learning
      • 5.1 创新
      • 5.2 实现细节
      • 5.3 实验结果
    • 6. RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds
      • 5.1 创新
      • 5.2 实现细节
    • 7. PointAugment: an Auto-Augmentation Framework for Point Cloud Classification
      • 7.1 创新
      • 7.2 实现细节
  • C. 3D实例分割
    • 1. OccuSeg: Occupancy-Aware 3D Instance Segmentation
      • 1.1 创新
      • 1.2 实现细节
      • 1.3 实验结果
    • 2. PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation
      • 2.1 创新
      • 2.2 实现细节
      • 2.3 实验结果
    • 3. 3D-MPA: Multi Proposal Aggregation for 3D Semantic Instance Segmentation
      • 3.1 创新
      • 3.2 实现细节
  • D. 3D点云上采样和补全
    • 1. Cascaded Refinement Network for Point Cloud Completion
      • 1.1 创新
      • 1.2 实现细节
      • 1.3 实验结果
    • 2. Point Cloud Completion by Skip-attention Network with Hierarchical Folding
      • 2.1 创新
      • 2.2 实现细节
      • 2.3 实验结果
  • Reference

A. 3D目标检测和跟踪

1. A Hierarchical Graph Network for 3D Object Detection on Point Clouds

论文链接

1.1 创新

这篇论文主要以VoteNet作为backbone,并在上面提出了一系列改进。由下图可以看出:(1)其将votenet中的PointNet++换成了特征捕捉能力更强的GCN。(2)在up-sample的多层每一层都接上voting模块,整合了多个尺度的特征。(3)在proposal之间也使用GCN来增强特征的学习能力。

1.2 实现细节

(1)本文提出了一个Shape-attentive Graph Convolutions,并且将这个卷积同时用在了down-sampling pathway和up-sampling pathway中。这实际上与2019CVPR的GACNet和PointConv之类没有本质的区别。其具体的公式如下:

其中g是一个MLP,将3维的相对位置输出成一维的接sigmoid的权重。f(xi,xj)=MLP([xi,xj′])f(x_i, x_j) = MLP([x_i, x' _j])f(xi,xj)=MLP([xi,xj]), 其中xj′x'_jxj为相对位置,[⋅,⋅][\cdot, \cdot][,]为拼接操作。

(2)本文提出了一个Proposal Reasoning Module,在proposal之间学习其特征之间的交互。其具体公式如下:

其中HpH_pHp是proposal的特征Hp∈Rn×FHp ∈ R^{n×F}HpRn×F,P记录它们之间的坐标相对位置,ΨΨΨγ\gammaγ都是一维卷积,而⊙⊙是内积操作。其本质是一个注意力机制的模块。

1.3 实验结果

他们不仅使用mAP去衡量,还是用了coefficient of variation for AP (cvAP)去衡量捕捉不同物体的适应能力,具体公式如下:

他们的结果在两个数据集上都比VoteNet要更好。

2. HVNet: Hybrid Voxel Network for LiDAR Based 3D Object Detection

论文链接

2.1 创新

本文先指出之前的3D detection工作的不足,Point-based的方法encode的能力不够,而voxel-based的方法又很难平衡voxel-size(精度)和速度之间的关系。本文提出了一种新的基于点云的三维物体检测的统一网络:混合体素网络(HVNet),通过在点级别上混合尺度体素特征编码器(VFE)得到更好的体素特征编码方法,从而在速度和精度上得到提升。

2.2 实现细节

整个HVNET包括:HVFE特征提取模块2D卷积模块;以及检测模块,用来输出最后的预测结果。下图中第一行是HVNet的整个结构。


HVFE特征提取模块
第二行是混合体素特征提取器的结构,由四部分组成:
a) x-y平面多尺度预体素化;
b) 并行多流的注意力机制体素特征编码层(AVFE)编码多尺度点云特征;
c) 编码特征聚合;
d) 注意力机制体素特征编码输出层(AVFEO)层结合聚合特征和目标尺度信息进行动态特征投影。

AVFEO层用于将不同尺度的特征通过注意力机制映射到固定的尺度去,如上图所示。不同尺度的feature map最后拼接输入给下一个模块。

2D卷积模块
2D 卷积部分,他们利用HVFE layer提出的多尺度的feature map,在特征图上面也进行多尺度的融合。由于点云的稀疏性和特征图的低分辨率性,他们提出了尺度融合金字塔网络(FFPN)来进行进一步的特征融合。多尺度特征首先在主干网络中浅层融合,然后在提出的FFPN网络中进行深度融合。

检测模块
利用不同层的feature map感受野不同的特性,对不同的层设计相应的anchor box进行预测。具体来说,对于不同层的feature map,在detection head部分只会对相对应的尺度的类别进行预测,这样的方式可以有效减少类别间的混淆。

2.3 实验结果

这篇论文提出的方法在KITTI上面达到了不错的水平,尤其是小物体(cyclist),比第二名高了2个点,这也部分说明了他们方法的合理性。

并且作为一个单阶段的模型,其运行速度也很快,如下图所示:

3. Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud

论文链接

3.1 创新

基于点云的3D目标检测具有非常重要的应用价值,尤其是在自动驾驶领域,使用LiDAR传感器获得的3D点云数据刻画了周围环境,3D目标检测能够比单纯使用RBG摄像头提供更多的目标信息(不仅有位置,而且有距离)。

该文作者指出,以往一些使用CNN的方法处理点云数据时往往需要在空间划分Grids,会出现大量的空白矩阵元素,并不适合非密集数据的点云。而近来出现的类似PointNet的方法对点云数据进行分组和采样,取得了不错的结果,但计算代价太大。如下图:

3.2 实现细节

Point-GNN方法主要分三个阶段:

(1)图构建
(2)GNN目标检测
(3)bounding box合并与打分

图构建阶段,根据点云中某一点和以其为中心固定半径距离的近邻构建图,图中每个顶点特征不仅包括其3D位置信息也包括一个固定长度状态值向量(反应其近邻关系)。因为点云中含有大量的点,作者并不是对每一个点都构建进图,而是事先进行了体素下采样,降低了数据处理的规模。

GNN目标检测阶段,对构建的图,使用多层感知机(MLP)进行特征提取和聚合,这个过程重复T次,最后对每个顶点使用MLP进行目标类别的分类和位置的回归。

Bounding box合并与打分,对上一步得到的众多的目标bounding box进行合并(同一个目标可能在多个顶点被检测出来),因为上一步的分类分数不能代表bounding box定位精度,使用重叠bounding box的聚类来改进。算法如下:具体来说,就是通过NMS并不是筛选bbox,而是通过他们的IoUoverlap占体素的占比ooo去加权融合。

3.3 实验结果

4. What You See is What You Get: Exploiting Visibility for 3D Object Detection

论文链接

4.1 创新

1)使⽤Lidar等传感器进⾏信息采集时,总是不可避免地遇到遮挡问题。⽽障碍物之 后的信息是不可⻅的(可能是free space,也可能被物体占据)。
2)和从Mesh上采集到的点云不同,Lidar数据实际上是2.5D的(因为有遮挡)。如果单纯把Lidar采集到的深度信息单纯地看作⼀个全3D的点云,那么⼈们就⽆法从中区分某个空⽩区域到底能否被sensor探测到(即visibility)。如下图。

3) 当前的detection⽅法都没有考虑到Lidar数据中的visibility,都将它看作纯3D的点 云。从⽽丢掉了数据中的visibility信息。

4.2 实现细节:

根据Lidar数据的采集原理(Ray casting):传感器朝着某个⽅向发出激光,激光碰到遮挡物后返回。根据TOF和激光⽅向便可以算出障碍点的xyz坐标。基于这个原理,在激光 出发到碰到障碍物之前的路程上,都是能确定为free space。 因此,作者提出现将空间离散化为voxel grid,然后从sensor的坐标出发,对点云中的每⼀个点进⾏ray casting,并对ray casting路径上的每⼀个voxel进⾏标注(free、occupied、unknow)。

标注完成的voxel grid就是⼀个visibility volume,反映了Lidar数据的可⻅信息,它可以和相应的原始点云结 合,作为⽹络的输⼊参与到⽹络的训练中。特别地,visibility volume可以⼗分容易 地被整合到现有的detection⽹络中。作者⽂章中选择了pointpillar作为backbone。 并提出early fusion和late fusion两种整合⽅式,实验表明,额外加⼊visibility volume可以⼤幅度提⾼现有detection⽹络的性能。

5. ImVoteNet: Boosting 3D Object Detection in Point Clouds With Image Votes

论文链接

5.1 创新

这篇文章探索了如何使用image信息辅助基于voting的3D检测框架。之前的VoteNet依靠voting机制有效增强了点云中的几何信息。这篇文章展示了ImVoteNet如何使用额外的图像,提供geometric,semantic和texture信息于3D voting的过程,详细介绍了如何将2D的geometric信息提升到3D。通过使用基于梯度混合的多模态的训练方法,ImVoteNet极大提升了处理稀疏或不友好分布点云的3D检测性能。

5.2 实现细节

网上写的已经够多了,例子。

6. P2B: Point-to-Box Network for 3D Object Tracking in Point Clouds

论文链接

6.1 创新

利用votenet去改进单目标tracking的效果,比之前的单目标3D工作高了20个点左右,并能保持40FPS。

6.2 具体实现

Pipeline
先通过两个共享权重的PointNet++去获得template seeds和search area seeds,然后计算Point-wise similarity如下:

然后这个similarity再贴到复制后的template seed之后,利用一个PointNet去聚合特征,就得到了search area seeds with target-specific features。

后半部分就是一个votenet的改进版,在进行voting的同时预测每一个vote的seed是前景的概率(即图上的classifying)。最后输出相应最大的bonding box。

6.3 实验结果

在KITTI上达到了不错的结果。在实现时,每一次的search area为上一帧template的附近2m范围。

7. DOPS: Learning to Detect 3D Objects and Predict their 3D Shapes

论文链接

7.1 创新

目前的3D目标检测方法通常只能适用于单个domain场景,即使有一些能迁移到其它场景的方法,也需要调整大量的超参和设置。为了解决这一问题,作者提出了一个能同时应用于室内和室外场景的通用网络——DOPS,该网络不仅能检测出目标的3D bounding boxes,还能预测出目标的shapes,然而并非所有的数据集都会有3D shapes的ground truth,故在3D shapes的预测部分作者用了弱监督的方式将CAD数据集上的shape model迁移学习到了target数据集上,以实现shape的预测。

7.2 实现细节


Pipeline
DOPS的网络框架如图所示,由四个部分组成:首先输入点云通过稀疏卷积的3D U-Net提取特征并预测每个点的目标属性和shape嵌入;然后将每个点的预测通过一个图卷积网络得到进一步的预测;再迭代地最远点采样最高分数boxes得到最终的3D bounding boxes,同时每个点的shape嵌入经过SDF decoder后用Marching Cubes algorithm输出shape的mesh结构。

Per Point 3D Object Prediction
输入点云通过稀疏卷积的3D-UNet提取到特征后再通过两层的稀疏卷积预测得到每个点的3D目标属性:center、size、rotation matrix、semantic logits以及shape embedding。其中rotation matrix为一个3*3的矩阵,由预测的(cosx, sinx, cosy, siny, cosz, sinz)6个参数和公式R = Rx * Ry * Rz计算得到。

Box Prediction Loss
作者将box的预测损失设置为8个顶点的Huber loss,而非通常的中心点、尺寸以及朝向的多loss组合,很好地避免了多loss调超参的问题,增强了网络的通用性。同时作者将那些预测的box和GT box的IOU大于0.7的点设为positive点,其余的点设为negative点,并用softmax loss来优化该分类过程(GT boxes内的点label为正,GT boxes外的点label为负)。

Proposing Boxes
为了得到少数精确的boxes,作者用了迭代地最远点采样最高分数box的方法而非NMS,该方法简单描述如下:

假设迭代选择到第t步时,前t-1步选择的boxes集为B1,t−1B_{1,t-1}B1,t1,那么第t个box按下式选择:
其中sbs_bsb是box b的语义分数。作者认为,该方法和NMS相比能达到目标的高置信度和空间多样性的平衡。

8. MLCVNet: Multi-Level Context VoteNet for 3D Object Detection

论文链接

8.1 创新

这篇论文主要是在Votenet上面增加了三个模块,用来提升performance。这三个模块分别是Patch-patch context (PPC) moduleObject-object context (OOC) module Global-scene context (GSC) module。作者认为这样的设计,就讲patch,object和scene的信息都进行了交互,达到了Multi-Level Context的效果。

8.2 实现细节

PPC Module
就是在M个patch之间加了一个self-attention,作者认为这样可以增加voting到物体中心的效果。

OOC Module
本质上就是K个clusters之间的self-attention,其可以让proposal生成过程中的overlap减少。

GSC Module
它将前面patch级别和cluster级别的特征变成全局特征,然后拼接到输出之前的特征上,相当于引入了全局信息。实验发现这样的设计可以让输出更可靠。

9. PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection

论文链接

9.1 创新

(1) 提出了Voxel Set Abstraction操作,将Sparse Convolution主干网络中多个scale的sparse voxel及其特征投影回原始3D空间,然后将少量的keypoint (从点云中sample而来) 作为球中心,在每个scale上去聚合周围的voxel-wise的特征。这个过程实际上结合了point-based和voxel-based两种点云特征提取的结构,同时将整个场景的multi-scale的信息聚合到了少量的关键点特征中,以便下一步的RoI-pooling。

(2) 提出了Predicted Keypoint Weighting模块,通过从3D标注框中获取的免费点云分割标注,来更加凸显前景关键点的特征,削弱背景关键点的特征。

(3) 提出了更强的点云3D RoI Pooling操作,RoI-grid Pooling: 在每个RoI里面均匀的sample一些grid point,然后将grid point当做球中心,去聚合周围的keypoint的特征。这样做的好处有两个: (1) 球半径灵活,甚至可以包括proposal框外围的关键点,从而获取更多有效特征。(2) 球互相覆盖,每个keypoint可以被多个grid point使用,从而得到更紧密的RoI特征表达。另一方面,这其实也是另一个point (keypoint)与voxel (grid point)特征交互的过程。

通过Voxel-to-keypoint与keypoint-to-grid这两个point-voxel特征交互的过程,显著增强了PV-RCNN的结构多样性,使其可以从点云数据中学习更多样性的特征,来提升最终的3D检测性能。

9.2 实现细节

作者本人有写一篇详细的介绍这里,大牛总结得很好。

B. 3D点云分类和语义分割

1. FPConv: Learning Local Flattening for Point Convolution

论文链接

1.1 创新

利用类似注意力机制的映射,将每个采样点的邻居结点映射到2D平面上再使用2DCNN去进行局部特征聚合。

1.2 具体实现

局部使用PointNet去得到一个局部的全局特征,然后拼接到每个点的坐标上,通过学习一个映射矩阵,映射到2D的网格中,再使用2D CNN去得到一个编码的特征。

1.3 实验结果

其在ScanNet和S3DIS上都达到了不错的效果,其还可以加到SOTA的模型上,进一步提升其效果。

2. SpSequenceNet: Semantic Segmentation Network on 4D Point Clouds

论文链接

2.1 创新

用LIDAR数据的前后帧关系去做语义分割。

2.2 实现细节

论文的Pipeline比较简单,就是通过两帧的数据作为输入,中间使用sparseconv进行网络搭建。两个核心模块是Cross-frame Global Attention (CGA) modulesCross-frame Local Interpolation (CLI) module。前者就是一个attention机制,后者就是在差值的时候用前一帧的特征去3-NN插值。

2.3 实验结果

在SemanticKITTI上结果一般,仅能达到43.1。

3. Fusion-Aware Point Convolution for Online Semantic 3D Scene Segmentation

论文链接

3.1 创新

与上一篇工作一样用到多帧之间的关系,不过是做室内场景的。通过RGB-D为输入,通过Global-local tree去构建graph,然后通过Point convolution去聚合特征。

4. Multi-Path Region Mining for Weakly Supervised 3D Semantic Segmentation on Point Clouds

论文链接

4.1 创新

随着3D传感器的发展,大规模3D数据的获取已经不是什么难事了,相比之下对所获取的3D数据进行point-level的语义标注则要困难许多,比如ScanNet数据集,只需要20个人就能采集到1513个3D scans,但是却需要500多个人来完成point-level的标注工作,为了保证标注的准确性,每个scan还需要2-3个人进行重复确认,标注一个scan要花费16-22分钟,这样下来,建立一个大规模的3D数据集无疑要消耗大量的时间和人力成本,很不经济。故作者提出了一种弱监督的3D语义分割的算法,只需要cloud-level的类别标注就可以达到某些全监督算法的性能,而cloud-level每个scan的平均标注时间只要15秒到3分钟,效率是全监督point-level标注的6-70倍左右。

4.2 实现细节

知乎

5. Grid-GCN for Fast and Scalable Point Cloud Learning

论文链接

5.1 创新

这篇论文的核心贡献主要在于提出了一个structuring的方式来代替传统PointNet++一代最远点采样+KNN的速度问题。至于GCN的部分,其实与之前的工作大同小异。

5.2 实现细节

论文的核心贡献在于这张图,它可以one-shot找好采样点和每个采样点的邻居点,不需要再像传统的方法一样进行FPS+KNN(Ball-query)。其核心思想是先使用网格化将所有点都放到网格中,然后对于每个网格中只保留固定个数的点,然后采样和找邻居都只对这些网格的剩余点进行处理。

文章中提出了两种采样方法:
(1)Random Voxel Sampling (RVS),即随机选择网格,即使这样采样,也会比直接在点云上随机采样更加均匀。
(2)Coverage-Aware Sampling (CAS),即先随机采样,然后通过迭代,每次选出一个挑战的体素,去对比所有的已选体素,看替换了以后覆盖率会不会变高。

文章同时也提出了两种找邻居的方法:
(1) Cube Query:类似pointnet++的ball query但是覆盖率更高
(2) K-Nearest Neighbors


至于GCN部分,其实没有本质的改进,就是在计算边的权重的时候多考虑了一个覆盖率和一个每个体素剩下来的点pool后的特征。

5.3 实验结果

速度确实很快,提出来的新方法在采样点和邻居对于整体点云的覆盖率也更高,但是在数据集上的表现一般。

6. RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

论文链接

5.1 创新

利用随机采样去代替最远点采样,使得网络可以使用特别大的点云进行训练学习,而且速度比较快。

5.2 实现细节


整个Pipeline是比较简单的,LocSE模块比较像2019CVPR的RS-CNN,后面的Attentive Pooling就是一个利用attention去加权特征的方式。值得注意的是在每一层里面LocSE和Attentive Pooling都使用了两次,作者称这样的结构为膨胀结构。也正是因为这样,才能在随机采样的点上达到这么好的encoding能力。

7. PointAugment: an Auto-Augmentation Framework for Point Cloud Classification

论文链接

7.1 创新

这篇论文提出了一个可学习的数据增强方式,可以显著增加以前一些方法的效果(仅限分类)。

7.2 实现细节

Pipeline
具体的Pipeline如下,其实就是设计了一个可以学习的Augmentor去设计更难更有效果的数据增强,去提升Classifier的效果。注意到训练的时候是原始的输入和增强过的输入一起去优化。

Augmentor的设计如右图,每个点的特征通过一个PointNet的结果去得到全局特征,然后通过引入一个噪声去生成3×33\times 33×3旋转矩阵,可以同样用逐个点的特征拼上全局特征和噪声,得到一个N×3N\times 3N×3位移矩阵。最后两个矩阵可以生成最后的数据增强矩阵。

如何训练
作者认为,由Augmentor生成出来的sample P′P'P应该满足以下两个要求:
(1)P′P'P应该要比普通的样本 PPP更难,因此其设计了如下Loss,即让L(P′)≥L(P)L(P')≥ L(P)L(P)L(P)

(2)P′P'P不能失去自己本来的一些特征,即不一样,但不能太不一样(如飞机变成汽车)。因此其引入了一个项ρρρ相当于引入了一个上确界。

因此在训练的时候就像GAN一样,对Augmentor和Classifer轮流训练,其Loss如下:

这里还在训练Classifier的时候提出了要让原始的输入和Augmentor增强后的输入得到的全局特征相互接近。

C. 3D实例分割

1. OccuSeg: Occupancy-Aware 3D Instance Segmentation

论文链接

1.1 创新

基于体素化的3D实例分割网络,会由于对无效的空体素的处理而浪费大量的计算,空间稀疏卷积网络出现可以有效的消除体素化网络的这一缺陷,作者在稀疏卷积的基础上提出了OccuSeg网络,并引入了“3D occupancy size/signal”的概念(表示每个实例所占据的voxels的数量),occupancy signal能够缓解3D点云中目标尺度,位置,纹理和光强等模糊性的诸多问题。

1.2 实现细节

Pipeline
OccuSeg的网络框架如下图所示,主要分为Multi-task Learning和Instance Clustering两个阶段。首先将体素化(voxel size为2cm)的点云scene输入到3D UNet backbone中进行特征提取,然后用三个task head分别产生语义分割的特征和空间嵌入以及occupancy回归的结果,最后进行graph-based以及occupancy-aware的instance clustering过程产生最终的实例分割结果。

Loss
论文联合学习的Loss如下所示:

其中LCL_CLC为语义分割中每个voxel类别标签预测的交叉熵损失,LeL_eLe是实例嵌入(包括空间和特征嵌入)的损失,LoL_oLo是occupancy size的回归损失。

(1)Embedding Learning

作者注意到空间嵌入是scale-aware的而特征嵌入并没有这一特点,故区别于其他直接将空间嵌入和特征嵌入结合在一起的方法,作者将这两者分开考虑,将实例嵌入LeL_eLe定义为:

其中LspL_{sp}Lsp为空间嵌入损失,LseL_{se}Lse为特征嵌入损失,LcovL_{cov}Lcov为用于正则化处理的协方差项。各项的具体表达式如下:


其中C是输入点云的实例数,NcN_cNc是第c个实例中的体素数,did_idi是第i个体素的空间嵌入,μiμ_iμi代表第c个实例中第i体素的位置。这其实是votenet中的voting操作,将每个实例的点靠近每个实例的中心。

其中方差项LvarL_{var}Lvar使得当前点的特征嵌入靠近其所属实例平均的特征嵌入,距离项LdistL_{dist}Ldist使得各个实例之间尽量远离,正则项LregL_{reg}Lreg用于保证嵌入值有界。
其中ucu_cuc代表第c个实例的平均特征嵌入,sis_isi表示第c个实例中第i个体素特征嵌入,阈值δvδ_vδvδdδ_dδd被预定义为0.1和1.5,以确保实例内的嵌入距离小于实例间的距离。

协方差项LcovL_{cov}Lcov旨在学习每个实例最优化的聚类区域,bi=(σsi,σdi)b_i=(\sigma_s^i,\sigma_d^i)bi=(σsi,σdi)代表第c个实例中第i个体素预测特征/空间的协方差,在第c-th实例中平均化bi得到bi=(σsc,σdc)b_i=(\sigma_s^c,\sigma_d^c)bi=(σsc,σdc),然后将i-th体素属于c-th实例的概率定义为:

其中ece_cec表示预测的c-th实例的中心位置,

公式(8)其实将空间embedding和特征embedding都归一化到一个均值为0,方差为1的正太分布上,因此当pi > 0.5时,就认为i-th体素属于c-th实例,故可将协方差项的损失定义为交叉熵损失:

yi = 1表示i属于c,N表示输入点云中点的数目

(2)Occupancy Regression

其中c-th实例中oio_ioi的平均值被视为当前实例的occupancy size的预测值(为了提高鲁棒性,occupancy size的真值和预测值均做了对数表达)

作者还定义了相关预测误差来评估occupancy size预测的性能

Instance Clustering
作者在这里采用graph-based的分割方法,利用bottom-up的策略将输入的voxels分组成super-voxels以实现实例分割,(由于3D空间中实例boundary的几何连续性,这种方法比对应的2D问题处理更有效)。作者在这里使用Graph-Based Image Segmentation这篇的方法去聚类super-voxels。

然后对于每一个super-voxel,其空间嵌入都可以通过其所有的体素去聚合,例如对于某个super-voxel viv_ivi,其空间嵌入为:

其中ΩiΩ_iΩi表示属于viv_ivi的所有voxels的集合,∣Ωi∣|Ω_i|ΩiΩiΩ_iΩi中voxels的数目。viv_ivi的特征嵌入SiS_iSi,occupancy size OiO_iOi,协方差也类似地定义。

定义occupancy ratio ri,来指导instance clustering过程,ri>1r_i > 1ri>1表示vi中的voxel过多,ri<1r_i <1ri<1 表示vi中的voxel过少

根据上述的super-voxel的定义,可以建立一个无向图G=(V,E,W)G = (V, E, W)G=(V,E,W), viєVv_i є VviєV 表示产生的super-voxel, ei,j=(vi;vj)єEe_{i,j} = (vi; vj) є Eei,j=(vi;vj)єE 表示super-voxel顶点对,wi,jєWw_{i,j} є Wwi,jєW表示顶点对之间的权重(viv_ivivjv_jvj之间的相似性),权重越大表示vi和vj越有可能属于同一个实例

其中σsσ_sσsσdσ_dσdrrr分别表示特征协方差,空间协方差和occupancy ratio,在这里r能够起到惩罚over segmentation和merge部分分割的作用

在满足wi,j>T0w_{i,j} > T_0wi,j>T0的条件下(T0T_0T0设置为0.5),对于E中所有的边,选择权重最高的边ei,je_{i,j}ei,j将其顶点merge为一个新的顶点,反复迭代,直至没有边的权重 > T0,这时,G中剩余的顶点在满足0.3<r<20.3 < r < 20.3<r<2的条件下label为实例以消除假阳性。这个步骤类似于条件随机场

1.3 实验结果

该工作在ScanNet的语义分割和实例分割benchmark上都刷到了第一名,并且网络非常地轻巧。

2. PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation

论文链接

2.1 创新

这一篇的创新点主要在Dual-Set Point Grouping上面。其本质思想是通过votenet去移动点到物体的中心,然后对这个移动后的vote和原始点云同时聚类。

2.2 实现细节

Pipeline
整体的网络框架如上图所示,由三个模块组成,即主干网、点云聚类模块和ScoreNet。输入点云经由3D U-Net主干网提取特征后分成两个分支分别预测每个点的语义和相对于实例中心点的offset;然后在点云聚类模块中通过利用每个点的语义、原始坐标和shift坐标(原始点坐标+offset值)进行点的实例分组得到cluster proposals,最后ScoreNet对cluster proposals打分之后进行非极大值抑制得到最终的实例分割结果。

Offset Prediction
其在Offset Prediction Branch中为了解决large-size目标上边缘点回归的offset不精准的问题,提出了中心点朝向loss(cosine相似度):


Clustering
在上一步得到每个点的语义、原始坐标和shift坐标后,用上图的算法对点云进行实例聚类。在该算法中,每个点设置近邻半径r作为空间约束,避免了半径大于r的同语义点被分成一个实例组,而且由于该聚类算法作用在“dual” set(原始坐标集和shift坐标集)上,避免了原始坐标集的聚类可能将邻近实例的同语义点分成一个实例组以及shift坐标集的聚类可能无法正确地将large-size的边缘点正确分组的问题。

ScoreNet

ScoreNet的内部结构如上图所示,为了让ScoreNet输出的分数更好地反映每个cluster proposal的质量,作者定义了soft IOU来对score进行监督:

其中θl\theta_lθlθh\theta_hθh分别设置为0.25和0.75。最后score预测的交叉熵loss为:

2.3 实验结果

ScanNet上层级刷到过第一名

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

论文链接

3.1 创新

这篇论文主要是在votenet上面进行了一系列改进(1)用了更厉害的sparseconv作为backbone而不是pointnet++;(2)用了DGCNN去学习proposal之间的特征,使得bounding box的输出效果更好;(3)使用特定的Loss增加特征或者空间上的近似度,然后使用DBSCAN聚类。

3.2 实现细节


3D-MPA的整个网络框架如上图所示,主要由三个部分组成,proposal generation部分对输入点云中的每个点vote其所属实例的中心点然后根据vote结果产生proposals;proposal consolidation部分利用图卷积网络得到proposals之间higher-level的关系来对提取的proposal features进行refine;object generation部分对前面产生的proposals进行聚类得到最终的目标检测以及语义实例分割结果。

在object generation的过程中,将前面得到的proposals通过MLP产生objectness score,该分数用于表明proposal为positive还是negative,和某个gt中心点距离小于0.3m的设为正,大于0.6m或和两个gt中心点距离相等(避免模糊性)的设为负。对正proposals继续预测其语义类别,aggregation features和二值实例mask,负proposals不做处理。语义类别的loss为交叉熵loss;二值实例mask的loss为focal loss(前背景点数量不平衡);proposal refine过程作者认为NMS可能会错误地将正确的proposal去掉,故作者引入了aggregation features并在其上进行聚类得到最终的实例proposal,由于proposals的数量(K ~ 500)比原始点云中点的数量(N ~ 106)少了几个数量级,故在proposals上聚类并不消耗内存, aggregation features的loss为:

作者尝试了以后发现使用DBSCAN结合第一种Loss的效果最好,其中ci∗c_i^*ci表示GT实例的中心点,ri∗r_i^*ri表示GT实例区域对中心点的半径。

D. 3D点云上采样和补全

1. Cascaded Refinement Network for Point Cloud Completion

论文链接

1.1 创新

这篇工作提出了一个串联的coarse-to-fine的点云上采样网络,并提出了local-patch的对抗学习方法。

1.2 实现细节

(1)这篇论文的pipeline如图所示,先有PointNet(图中的Feature Extraction)提出一个全局的特征,通过两层FC层得到一个粗糙的重建结果(图中的Coarse Reconstruction)。然后原始点云通过最远点下采样(FPS)得到的点与该重建结果在点的个数维度拼接起来,送入Lifting module。

(2)Lifting module的结构如下,主要就通过了点云的坐标,全局特征和2Dgrid(FoldingNet中提出的,即通过cutting, squeezing, 或stretching的方法将物体映射到2D平面)一起作为输入,然后通过up-down-up的结构(如PU-GAN)去进行重构。

(3)这篇工作还提出了一个patch-based的对抗学习,结构如下:

1.3 实验结果

实验结果其比baseline的PCN和TopNet好了很多,但是没有对比最近的SOTA方法。

2. Point Cloud Completion by Skip-attention Network with Hierarchical Folding

论文链接

2.1 创新

这篇工作提出了一个利用跳跃注意力机制来更好地重建的方法。

2.2 实现细节

Pipeline
如图所示,encoder其实就是一个PointNet++,decoder被称为folding block(下面会讲)在encoder和decoder相同的scale的层之间会有一个注意力机制去加权encoder的特征到decoder的每个点上,这是这篇工作的核心贡献。

Folding block
其实也是使用了PU-GAN之中up-down-up的操作,只不过在up模块中多了一个自注意力机制。并且这篇工作中改进了FoldingNet中的folding模块。

在FoldingNet中(如上图),由3D投影到的2D grid被拼接到复制过的全局的特征上,并通过新的MLP生成3维度的逐点特征,再继续拼接,出重建点云。但是再这一篇工作里它对于每一个层使用了不同分辨率的对2D grid进行采样,通过逐渐增加密度来不断encode更密集的特征(如下图)。

2.3 实验结果

Reference

感谢这个大哥在知乎上面写的3D点云相关论文笔记,节省了我很多看文章的时间~

CVPR2020 3D点云相关论文思想和方法总结相关推荐

  1. 基于激光雷达的里程计及3D点云地图中的定位方法

    本文转载自公众号@点云PCL,基于激光雷达的里程计及3D点云地图中的定位方法 :https://mp.weixin.qq.com/s/laA1YAPBCpqlzdGi0yb2cQ 论文:LOL: Li ...

  2. 【ICCV2019】点云相关论文解析

    今年ICCV19涉及点云的相关论文一共49篇(keyword:point),标题直接包含点云的26篇(keyword:pointcloud).后续在浏览今年论文时会持续更新.这篇博客挑选了其中一些感兴 ...

  3. SemSegMap :基于3D点云语义信息的定位

    点云PCL免费知识星球,点云论文速读. 文章:SemSegMap - 3D Segment-Based Semantic Localization 作者:Andrei Cramariuc, Flori ...

  4. 3D点云的快速分割:自动驾驶汽车应用的LiDAR处理实例

    点云PCL免费知识星球,点云论文速读. 文章:Fast Segmentation of 3D Point Clouds: A Paradigm on LiDAR Data for Autonomous ...

  5. ECCV 2020 3D点云 Point Cloud 文章汇总

    一.点云文章资源 近年来,对于点云处理的研究越来越火热.Github上面有一个工程,汇总了从2017年以来各大会议上点云论文,awesome-point-cloud-analysis ,本文作者之前整 ...

  6. 使用扩散模型从文本提示中生成3D点云

    点击进入->3D视觉工坊学习交流群 摘要 虽然最近关于根据文本提示生成 3D点云的工作已经显示出可喜的结果,但最先进的方法通常需要多个 GPU 小时来生成单个样本.这与最先进的生成图像模型形成鲜 ...

  7. 3D点云论文相关论文资料总结

    论文及资料收集 斯坦福学者首次提出直接处理三维点云的深度学习模型 VoxelNet: 基于点云的三维空间信息逐层次学习网络 激光雷达点云特征表达研究进展 Volumetric and Multi-Vi ...

  8. CVPR2020中关于3D点云分割

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:不知道叫什么好 | 来源:知乎 https://zhuanlan.zhihu.com/p/152 ...

  9. Patchwork++论文阅读——基于3D点云的快速鲁棒地面分割算法

    文章目录 摘要 1. 介绍 2. 相关工作 A. 基于学习的地面分割方法 B. 传统的地面分割方法 C. 地面分割的应用 3. PATCHWORK++:快速.稳健.自适应的地面分割 A. 问题定义 B ...

最新文章

  1. android技术内幕心得
  2. phpcms 指定id范围 调用_Elasticsearch v7 中Java High-Level REST Client同步和异步调用
  3. java基础知识一_Java基础知识(一)
  4. ajax跨域问题(php)
  5. inkscape使用_如何用Inkscape制作万圣节灯笼
  6. Python数据分析学习笔记:计算相关系数
  7. ipconfig默认网关为空_网络工程师之IPCONFIG命令详解
  8. 关于四川2019ACM省赛热身赛B题的一个证明
  9. Atitit 近年来的软件与编程与技术趋势大盘点 and 2017 未来技术趋势attilax总结
  10. Unity3D的音效相关介绍
  11. Wherehows项目简介
  12. 软件测试习题(附答案)
  13. 华硕aura完全卸载_更快,更信仰,华硕RTX 2070电竞显卡
  14. jtag接口_USB接口—Xilinx—JTAG烧写器(电路图、PCB片段、烧写器配置固件)设计方案...
  15. dsniff嗅探工具
  16. 怎样使用LeapFTP,LeapFTP使用教程,如何使用LeapFTP上传网站源代码(图解)
  17. 一份关于webpack2和模块打包的新手指南(一)
  18. displayport1.4
  19. 中望3d快捷键命令大全_CAD、3D快捷命令
  20. 华为鸿蒙会没有广告,为什么华为会选择不做任何预告突然发布鸿蒙系统?

热门文章

  1. ais文件还原到mysql_金蝶kis系列数据库(.ais)打开与账套恢复办法
  2. 【贪心】Songs Compression
  3. Velodyne VLP16 WIN下配置
  4. seo关键词优化的技巧
  5. 刘强东,揭开京东未来盈利迷局
  6. 科恩第一章Friday, October 29, 2021 10:13 AM
  7. 通达oa2015 php解密,通达OA /interface/auth.php SQL注入
  8. 怎么安装java_怎么安装打印机到电脑步骤
  9. 第三方推广——《互联网运营的知识体系与整体逻辑》笔记(十二)
  10. 树莓派基于QT实现利用USB转485模块进行串口通讯