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来增强特征的学习能力。
CVPR2020 3D点云相关论文总结

1.2 实现细节

(1)本文提出了一个Shape-attentive Graph Convolutions,并且将这个卷积同时用在了down-sampling pathway和up-sampling pathway中。这实际上与2019CVPR的GACNet和PointConv之类没有本质的区别。其具体的公式如下:
CVPR2020 3D点云相关论文总结
其中g是一个MLP,将3维的相对位置输出成一维的接sigmoid的权重。f(xi,xj)=MLP([xi,xj])f(x_i, x_j) = MLP([x_i, x' _j]), 其中xjx'_j为相对位置,[,][\cdot, \cdot]为拼接操作。
CVPR2020 3D点云相关论文总结
(2)本文提出了一个Proposal Reasoning Module,在proposal之间学习其特征之间的交互。其具体公式如下:
CVPR2020 3D点云相关论文总结
其中HpH_p是proposal的特征HpRn×FHp ∈ R^{n×F},P记录它们之间的坐标相对位置,ΨΨγ\gamma都是一维卷积,而是内积操作。其本质是一个注意力机制的模块。

1.3 实验结果

他们不仅使用mAP去衡量,还是用了coefficient of variation for AP (cvAP)去衡量捕捉不同物体的适应能力,具体公式如下:
CVPR2020 3D点云相关论文总结
他们的结果在两个数据集上都比VoteNet要更好。
CVPR2020 3D点云相关论文总结
CVPR2020 3D点云相关论文总结

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的整个结构。

CVPR2020 3D点云相关论文总结
HVFE特征提取模块
第二行是混合体素特征提取器的结构,由四部分组成:
a) x-y平面多尺度预体素化;
b) 并行多流的注意力机制体素特征编码层(AVFE)编码多尺度点云特征;
c) 编码特征聚合;
d) 注意力机制体素特征编码输出层(AVFEO)层结合聚合特征和目标尺度信息进行动态特征投影。
CVPR2020 3D点云相关论文总结
AVFEO层用于将不同尺度的特征通过注意力机制映射到固定的尺度去,如上图所示。不同尺度的feature map最后拼接输入给下一个模块。

2D卷积模块
2D 卷积部分,他们利用HVFE layer提出的多尺度的feature map,在特征图上面也进行多尺度的融合。由于点云的稀疏性和特征图的低分辨率性,他们提出了尺度融合金字塔网络(FFPN)来进行进一步的特征融合。多尺度特征首先在主干网络中浅层融合,然后在提出的FFPN网络中进行深度融合。
CVPR2020 3D点云相关论文总结
检测模块
利用不同层的feature map感受野不同的特性,对不同的层设计相应的anchor box进行预测。具体来说,对于不同层的feature map,在detection head部分只会对相对应的尺度的类别进行预测,这样的方式可以有效减少类别间的混淆。

2.3 实验结果

这篇论文提出的方法在KITTI上面达到了不错的水平,尤其是小物体(cyclist),比第二名高了2个点,这也部分说明了他们方法的合理性。
CVPR2020 3D点云相关论文总结
并且作为一个单阶段的模型,其运行速度也很快,如下图所示:
CVPR2020 3D点云相关论文总结

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

论文链接

3.1 创新

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

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

3.2 实现细节

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

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

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

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

3.3 实验结果

CVPR2020 3D点云相关论文总结

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)。如下图。
CVPR2020 3D点云相关论文总结
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⽹络的性能。
CVPR2020 3D点云相关论文总结

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 实现细节

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

B. 3D点云分析(分类、语义分割)

1. FPConv: Learning Local Flattening for Point Convolution

论文链接

1.1 创新

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

1.2 具体实现

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

1.3 实验结果

其在ScanNet和S3DIS上都达到了不错的效果,其还可以加到SOTA的模型上,进一步提升其效果。
CVPR2020 3D点云相关论文总结

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插值。
CVPR2020 3D点云相关论文总结

2.3 实验结果

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

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

论文链接
CVPR2020 3D点云相关论文总结

3.1 创新

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

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

论文链接

CVPR2020 3D点云相关论文总结

4.1 创新

提出了点云上的室内场景弱监督学习,通过只预测是否有类别,来获得PCAM,最终形成pseudo labels。
CVPR2020 3D点云相关论文总结

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过程产生最终的实例分割结果。
CVPR2020 3D点云相关论文总结
Loss
论文联合学习的Loss如下所示:
CVPR2020 3D点云相关论文总结
其中LCL_C为语义分割中每个voxel类别标签预测的交叉熵损失,LeL_e是实例嵌入(包括空间和特征嵌入)的损失,LoL_o是occupancy size的回归损失。

(1)Embedding Learning

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

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

CVPR2020 3D点云相关论文总结
其中C是输入点云的实例数,NcN_c是第c个实例中的体素数,did_i是第i个体素的空间嵌入,μiμ_i代表第c个实例中第i体素的位置。这其实是votenet中的voting操作,将每个实例的点靠近每个实例的中心。
CVPR2020 3D点云相关论文总结
其中方差项LvarL_{var}使得当前点的特征嵌入靠近其所属实例平均的特征嵌入,距离项LdistL_{dist}使得各个实例之间尽量远离,正则项LregL_{reg}用于保证嵌入值有界。CVPR2020 3D点云相关论文总结
其中ucu_c代表第c个实例的平均特征嵌入,sis_i表示第c个实例中第i个体素特征嵌入,阈值δvδ_vδdδ_d被预定义为0.1和1.5,以确保实例内的嵌入距离小于实例间的距离。

协方差项LcovL_{cov}旨在学习每个实例最优化的聚类区域,bi=(σsi,σdi)b_i=(\sigma_s^i,\sigma_d^i)代表第c个实例中第i个体素预测特征/空间的协方差,在第c-th实例中平均化bi得到bi=(σsc,σdc)b_i=(\sigma_s^c,\sigma_d^c),然后将i-th体素属于c-th实例的概率定义为:
CVPR2020 3D点云相关论文总结
其中ece_c表示预测的c-th实例的中心位置,
CVPR2020 3D点云相关论文总结
公式(8)其实将空间embedding和特征embedding都归一化到一个均值为0,方差为1的正太分布上,因此当pi > 0.5时,就认为i-th体素属于c-th实例,故可将协方差项的损失定义为交叉熵损失:
CVPR2020 3D点云相关论文总结
yi = 1表示i属于c,N表示输入点云中点的数目

(2)Occupancy Regression

其中c-th实例中oio_i的平均值被视为当前实例的occupancy size的预测值(为了提高鲁棒性,occupancy size的真值和预测值均做了对数表达)
CVPR2020 3D点云相关论文总结
作者还定义了相关预测误差来评估occupancy size预测的性能
CVPR2020 3D点云相关论文总结
Instance Clustering
作者在这里采用graph-based的分割方法,利用bottom-up的策略将输入的voxels分组成super-voxels以实现实例分割,(由于3D空间中实例boundary的几何连续性,这种方法比对应的2D问题处理更有效)

定义super-voxel viv_i的空间嵌入为:
CVPR2020 3D点云相关论文总结

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

定义occupancy ratio ri,来指导instance clustering过程,ri>1r_i > 1表示vi中的voxel过多,ri<1r_i <1 表示vi中的voxel过少
CVPR2020 3D点云相关论文总结

根据上述的super-voxel的定义,可以建立一个无向图G=(V,E,W)G = (V, E, W), viєVv_i є V 表示产生的super-voxel, ei,j=(vi;vj)єEe_{i,j} = (vi; vj) є E 表示super-voxel顶点对,wi,jєWw_{i,j} є W表示顶点对之间的权重(viv_ivjv_j之间的相似性),权重越大表示vi和vj越有可能属于同一个实例
CVPR2020 3D点云相关论文总结
其中σsσ_sσdσ_drr分别表示特征协方差,空间协方差和occupancy ratio,在这里r能够起到惩罚over segmentation和merge部分分割的作用

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

1.3 实验结果

该工作在ScanNet的语义分割和实例分割benchmark上都刷到了第一名,并且网络非常地轻巧。
CVPR2020 3D点云相关论文总结
CVPR2020 3D点云相关论文总结

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。
CVPR2020 3D点云相关论文总结
(2)Lifting module的结构如下,主要就通过了点云的坐标,全局特征和2Dgrid(FoldingNet中提出的,即通过cutting, squeezing, 或stretching的方法将物体映射到2D平面)一起作为输入,然后通过up-down-up的结构(如PU-GAN)去进行重构。
CVPR2020 3D点云相关论文总结
(3)这篇工作还提出了一个patch-based的对抗学习,结构如下:
CVPR2020 3D点云相关论文总结

1.3 实验结果

实验结果其比baseline的PCN和TopNet好了很多,但是没有对比最近的SOTA方法。
CVPR2020 3D点云相关论文总结

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的每个点上,这是这篇工作的核心贡献。
CVPR2020 3D点云相关论文总结
Folding block
其实也是使用了PU-GAN之中up-down-up的操作,只不过在up模块中多了一个自注意力机制。并且这篇工作中改进了FoldingNet中的folding模块。
CVPR2020 3D点云相关论文总结
在FoldingNet中(如上图),由3D投影到的2D grid被拼接到复制过的全局的特征上,并通过新的MLP生成3维度的逐点特征,再继续拼接,出重建点云。但是再这一篇工作里它对于每一个层使用了不同分辨率的对2D grid进行采样,通过逐渐增加密度来不断encode更密集的特征(如下图)。
CVPR2020 3D点云相关论文总结

2.3 实验结果

CVPR2020 3D点云相关论文总结

相关文章:

  • 2022-02-18
  • 2021-05-13
  • 2021-07-08
  • 2022-12-23
  • 2021-09-27
  • 2021-06-10
猜你喜欢
  • 2021-12-24
  • 2021-10-12
  • 2021-09-15
  • 2021-12-28
  • 2021-06-02
  • 2021-11-07
  • 2021-11-09
相关资源
相似解决方案