1. 3DSSD
首先分析CVPR2020的3D目标检测文章“3DSSD: Point-based 3D Single Stage Object Detector”。这是一个单阶段,不需要Anchor的,基于点云的3D目标检测算法。网络实验效果也比较不错,比单阶段目标检测的SOTA方法优秀。在引言中,把当前的方法分为voxel-based
方法和point-based
方法。介绍voxel-based
方法显得很苍白。但是介绍point-based
方法写的很细致。这些方法需要PointNet++
中的Set Abstraction
(SA层)和Feature Propagation
(FP层)的操作。3DSSD
主要有三个创新点:
- 提出一个新网络
3DSSD
,不需要FP层,进而提高推断时间 - 在SA层上提出一个新的采样策略,可以保留充足的前景信息
- 提出一个新的3D框预测网络
3DSSD
的网络结构图如下所示:
图1:3DSSD的网络结构(注意作者提出的创新点:Fusion Sampling,Candidata Generation Layer;)
这篇文章逻辑写的很通畅。作者会讲解他们提出创新点的思路和原因,以Motiviation
的形式写出。这一点是非常值得学习的。
1.1 Fusion Sampling
作者认为现有的point-based
方法都采用双阶段的形式。这类方法通常会采用FP
层做特征提取,而FP
层的计算是非常消耗时间的。基于此,作者想设计一个轻量的网络,不去使用FP
层。
在图1中,D-FPS
指欧式空间下的采样,可以直接理解为K近邻。在Fusion Sampling
的机制中,作者首先提出了F-FPS
,即feature-farthest points sampling。在Feature空间下,衡量两个点之间的feature距离可以用它们对应的高维特征向量的欧式距离。这一个思路其实很好。作者定义的空间距离,实际上是3D距离和特征距离的加权和,如下所示:
然后根据这种混合的特征距离进行最远点采样。所谓Fusion Sampling
就是同时进行D-FPS
和F-FPS
操作。总之这篇文章的核心就是F-FPS
。后续的操作都是对F-FPS
的延续。
2. Part-A2 Net
分析一篇TPMAI2020的双阶段的3D目标检测文章“From Points to Parts: 3D Object Detection from Point Cloud with Part-aware and Part-aggregation Network”。正如题目所言,这篇论文有两个主要的创新点:
- Part-aware stage 用于回归初始3D框
- Part-aggregation stage 用于精细化优化初始3D框
Part-A2 Net
的网络结构图如下所示:
图2:Part-A2 Net网络示意图
总体感觉是对PointRCNN
的细致升级版。PointRCNN
的Backbone
使用的是PointNet++
,在这里就升级为SparseConv
。PointRCNN
的Point cloud region pooling
就升级为RoI-aware Point cloud Pooloing
。误差函数和PointRCNN
一样,采用Bin based
的误差函数。
2.1 RoI-aware point cloud feature pooling
对我而言,比较重要的是RoI-aware Point cloud Pooloing
机制。PointRCNN
的Point cloud region pooling
比较简单,但是会面临一个问题:如果两个候选框(图3中两个蓝色虚线框)中覆盖的点是一模一样的(图3中黄色的点),那么这两个候选框池化的信息也是一样的,如下图所示。这样会产生歧义。作者会根据黄色的点,在体素空间上得到一个“方方正正”的候选框(图3中的绿色框),然后再去做池化(把点云特征转移到体素特征上,一个体素就是一个小立方块,把小立方块中的点云特征池化为该立方块对应的特征,有平均池化和最大池化两种方式)。
图3:RoI-aware point cloud feature pooling示意图
3. PV-RCNN
这是一篇CVPR2020的文章“PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection”。这篇文章目前是KITTI3D目标检测的榜首。PV-RCNN
网络的Backbone
部分吸同时收了Point
特征和Voxel
特征,它的网络结构如下所示:
图4:PV-RCNN网络结构
这个网络结构其实很容易懂。对原始点云进行FPS采样,采样点的特征包括周围点的近邻特征,稀疏卷积得到的特征,以及BEV视图下的特征。这些采样点中又会回归出各自的权重比值,用于第二阶段的3D框的回归。它同时也吸取了Part-A2 Net
的核心创新点RoI-aware Point cloud Pooloing
,并在此基础上做了改进,得到RoI-grid Pooling Module
。采样点的权重计算过程则如下所示(通过监督学习方式,让属于前景目标的关键点的权值尽可能大,背景点的权值尽可能小):
图5:关键点权值计算过程
最后看一下RoI-grid Pooling Module
机制,如下图所示。提取体素点(即Grid Point
)的特征,会在该点展开两个邻域球,一个半径较小(紫色球),而另外一个半径较大(绿色球),把这两个球内的特征拼接在一起,然后得到RoI-grid Point Features
。
图6:RoI-grid Pooling Module
机制
4. 感想
读文章最重要的是学习它的闪光点。有时候先去理解这篇文章的解决问题思想,然后再按照自己实际的需求,细化分析文章中的数学公式和背后的代码,也是未尝不可的。