本人关注的3D目标检测的文章多一些,所以本文在点云检测,分割领域的发展趋势的理解可能还浅一些,希望能与大家交流。
2020年的CVPR出来之后,在点云处理方面给人的感觉是耳目一新,从众多论文中可以看出点云处理的新的发展方向。
发展趋势
1、Point-Voxel
在之前的发展中,方法大致可以分为如下几类:
- Point-based:就是以pointnet++为代表,使用MLP提取point-wise的特征;以PointCNN为代表的,先计算卷积核,然后对点做卷积
- Voxel-based:以Sparse Convolution为代表,使用3D卷积核提取特征
- Graph-based:虽然看起来Graph based的方法适用性更强,是针对无序数据可以通用的一种方法,但在点云处理中,就显得速度慢,精度也并没有特别突出。
2020年则更多的尝试在Point和Voxel相结合:
Point-Voxel CNN for Efficient 3D Deep Learning,在保证速度的同时提取point-wise的细粒度的特征,减少了运算时间,提高了精度。而且该文章提出的是backbone,所以在识别、分割、分类的方法上都能使用。
3DSSD: Point-based 3D Single Stage Object Detector,使用point-based的分支做分割任务,使用voxel-based分支做检测任务,point-based的特征来自于voxel-based的插值,从而增加了一种监督方法。
PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection,同样使用voxel-based的分支的特征计算point-based分支的特征,但更像是在multi scale中进一步聚合特征,使用key point来描述整个点云。这其实也相当于提出了一种降采样的方法。
Point和Voxel相结合的方法还是需要探索的,我个人认为需要对Voxel和Point这两种方法内部的具体计算做一些可视化,或许能够有一些启发。
2、结构呈现规律
处理点云的网络发展与处理图像的网络的发展趋势非常相似,目前处理点云的网络结构给人的感觉就是开始规范化,新的方法也基本属于主流框架中,类似于Pointnet,KD-Net这种框架已经被淘汰。
在3D检测方面,由于mmlab的一系列工作,包括类似的STD等工作,将3D的检测框架也规范了起来。
首先,Two stage的网络框架非常类似于2D中的结构,3D卷积被广泛的使用,在俯视图中做第一阶段的proposal。得到了proposal之后,使用aware pooling在体素中做特征pooling,这个pooling和2D中mask rcnn中用的非常相似。而具体的操作细节,例如aware pooling,例如预测point的mask,这种具体的操作已经被多篇文章证明其有效性。
One stage的模型仍然处于探索阶段,目前文章还比较少,一大类别就是把点云栅格化然后在俯视图中做检测,这个其实并不是特别针对3D检测任务的。3DSSD和Structure-Aware 3D Object Detection可以认为单阶段的一些探索。
但相比于2D的检测网络,3D的结构仍然是多样的,loss也是多样的,能不能找到一种对各种任务通用的结构是一个值得研究的方向。
3、Image和Point的融合
Image和Point的融合分为前融合和后融合,前融合一般是将point投影到image上,将image扩展为rgbd四通道。后融合则是采取将检测结果进行融合。还有中间的融合,例如Frustum-Net这种,image的检测结果为point中的检测提供proposal。
总的来说,融合的阶段有很多种,数据级,proposal级,结果级等,融合的方式也有很多,有将point投影到image中,以image为主体,也有通过这种投影关系获取point的rgb信息从而以point为主体的。所以融合方式多种多样,但哪种方式是有效的,能不能找到一种比较通用的融合的范式,仍然是一个开放性的问题。