点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【3D目标检测】技术交流群
后台回复【3D检测综述】获取最新基于点云/BEV/图像的3D检测综述!
论文标题:PSA-Det3D: Pillar Set Abstraction for 3D object Detection
作者:Zhicong Huang, Jingwen Zhao, Zhijie Zheng, Dihu Chen, Haifeng Hu
单位:中山大学
1摘要
从3D点云数据检测小尺寸目标是一个具有挑战性的问题,其主要原因包含以下两点:(1)相比与正常目标,小尺寸目标往往缺少有效点云数据,因此模型感知更为困难;(2)小尺寸目标容易被遮挡,导致点云数据分布往往是残缺补全的。针对以上难点,作者提出了PSA-Det3D网络提升3D小尺寸目标检测精度,包含PSA (Pillar Set Abstraction),FPC (Foreground Point Compensation)和point-based detection模块。PSA模块是基于SA (Set Abstraction)设计,通过pillar query operation扩大感受野,有效聚合点特征。FPC模块利用前景点分割和候选框生成模块,定位更多的遮挡物体。前景点和预测的中心点被整合在一起,用以预测最终的检测结果。在KITTI 3D检测数据集中,PSA-Det3D取得了较好的性能,尤其是对于小尺寸目标。
2介绍
基于点云的3D检测在自动驾驶、机器人等领域有着广泛的应用。现有的检测器对于车这一类别有着较高的检测精度,但是对于小尺寸目标如行人、骑车的人等检测性能还不尽人意。因此,如何提高小尺寸目标的检测精度仍然是一个具有挑战性的问题。一些方法通过多模态融合,聚合图像和点云中的细节信息,在正常和小尺寸目标上取得了比较好的性能。但是,其网络结构往往比较复杂,因此限制了其在实际应用中的效果。尽管在基于点的3D检测上取得了性能的突破,小尺寸目标的检测精度依然不尽人意。基于点云的小尺寸目标检测主要面临以下的两个挑战:(1)相比于正常目标如车等,小尺寸目标感知通常更为困难,因为稀疏点云并不能为这些目标提供充足的信息;(2)小尺寸目标容易被遮挡,因此在3D点云中,往往呈现不完整的形状特征,所以仅仅依靠通用的语义特征提取模块难对其进行判别。
考虑到以上难点,作者首先提出了PSA (Pillar Set Abstraction)模块,用于学习小目标的点特征。受Pillar-based等方法的启发,PSA模块在特征聚合前使用了pillar query operation来扩大编码网络的感受野。相比与传统的Set Abstraction模块,PSA通过较少的计算资源提高网络的检测性能,尤其对于小尺寸目标检测。
此外,作者还提出了FPC (Foreground Point Compensation)模块,用以定位遮挡物体。在FPC中,作者不仅仅对前景点进行了分割,还估计了所有可能物体的中心点,中心点信息可以有效补偿遮挡带来的不正确的分割结果。通过融合前景点分割和中心点预测,可以得到最终的检测结果。PSA模块和FPC模块构成了作者提出的完整的网络,被命名为PSA-Det3D。
总得来说,本工作的贡献包括:
(1)提出了PSA (Pillar Set Abstraction)模块扩大感受野,学习小尺寸目标稀疏点云的特征。
(2)提出了FPC (Foreground Point Compensation)模块定位小尺寸遮挡目标。
(3)在KITTI 3D检测任务上,取得了较好的性能,尤其是小尺寸目标性能。
3方法
如图1所示,PSA-Det3D主要包含3个模块:(a) PSA结构和点云骨干网络;(b) FPC模块以及(c) RCNN结构用于生成最后的检测结果。输入的点云集合P首先通过点云骨干网络生成点云特征F,并且利用多个PSA结构组成特征编码器。接着点特征送入FPC模块,预测3D结果框BB同时通过类似PointRCNN的分割模块计算前景点置信度。利用融合算法和中心点预测模块优化候选框的点并生成3D候选框,最后,通过RCNN模块微调候选框。
![1e2ab1805813506e2650bfb22c7848a7.png](https://i-blog.csdnimg.cn/blog_migrate/91a5890a72780fc58e1f503415389e04.png)
Pillar Set Abstraction (PSA) 模块
PointNet++中的Set Abstraction (SA) 模块已经被广泛地应用于当前的检测器中,在SA中,输入的点被分为数个以采样点为中心的球体内。作者以行人点云为例模拟这个操作过程,如图2所示。SA生成的球体是以关键点为中心,聚合其内部的特征。但是,这个操作被采样点的数目和球体半径所限制。如果采样点减少到两个或者一个,这些球体并不能很好地覆盖待检测目标,作者认为这可能是小尺寸目标检测性能降低的关键原因之一。然而,简单增加球体半径并不能解决这个问题,因为这个操作在特征聚合的过程中会引入额外的噪声,由此导致3D细节信息的丢失。
![f555e7977994c43894fe2ecc38c473a5.png](https://i-blog.csdnimg.cn/blog_migrate/9b490fafdd1189537e7f7b90c924383c.png)
基于pillar的方法提供了一个特殊的聚合方式,可以通过在z-轴扩大体素边界将点云数据划分为数个柱状结构。受此启发,作者提出了一个新颖的Pillar Set Abstraction (PSA) 结构,在PointNet++的SA模块中进行基于pillar的聚合操作。首先,作者使用了FPS算法采样一些关键点,并且利用PointNet网络在PSA层中学习特征。在FPS后,作者利用基于柱结构的聚合操作划分点云数据,可以用如下公式表示:
![617cdf9a1c725382b7970c4c031e6578.png](https://i-blog.csdnimg.cn/blog_migrate/ddcfa26ed1799bb8ad00df02f5f775ba.png)
其中GA是聚合结果,P是输入点云数据,N是输入点云数量,K是关键点集合,是采样点的数量,是点p和点k间的水平距离。
PSA提出的基于柱体的聚合操作如图2所示,即使仅仅使用一个关键点也可以覆盖到绝大多数的点云数据。换一句话说,PSA模块为后续的MLP提供了更多的有效点,因此可以帮助网络学习到更丰富的特征,这个操作对于小尺寸目标检测非常有意义。
Foreground Point Compensation (FPC)
为了在3D候选框中选择有价值的点云数据和3D边界框,基础模型通常计算所有点的前景置信度。尽管分割网络可以有效区分正常物体,遮挡问题导致的形状数据的缺失不可避免地影响了分割结果的准确率。此外,前景置信度不能完全反应3D候选框的质量,因为3D候选框和内部点的关系并没有被充分考虑在内,这些问题对于小尺寸目标更为凸显。
越来越多的方法通过定位物体中心点预测3D检测框,这种基于前景点分割的方法往往可以带来性能的提升。作者提出了FPC模块,通过预测物体中心点来优化分割结果。FPC模块包含一个中心点预测模块和一个融合模块,细节如算法1所示。
![01ed0050aff3ae39fc2ba905c68cdaad.png](https://i-blog.csdnimg.cn/blog_migrate/798acf6bca540551d3d4822f75c3f51a.png)
FPC的输入包括点云特征维度n,前景置信度C_FG和生成的3D边界框BB,中心点的计算基于3D边界框和其内部点云关系。首先,最高前景置信度的点被选为初始中心点t_0,对应的3D框BB[t_0]被用来区分框中的其他点,这些其余点被分类为ignored points M_ignored。接下来,在剩余点中选择前景置信度最高的点再次执行上述操作,直至所有点都有类别属性,中心点或者无视点(ignored points)。
为了生成3D候选框的修正得分,作者设计了算法融合中心点和前景点置信度。最终的得分通过FPC的可以利用公式表示为:
![e2ccda239802f979ea5ff78e5bace55a.png](https://i-blog.csdnimg.cn/blog_migrate/51b55984d60c71db4f5f6526d1675164.png)
其中r是用于决定融合比例的超参数。
如图3所示,作者展示了FPC模块的实验效果。可以看到很多行人被遮挡了,仅仅使用前景分割并不能有效检测出部分遮挡行人,如绿色圆圈所示。因此,作者通过预测中心点识别这些物体,如图中蓝色的点。最终,作者的FPC模块通过融合生成的候选点、前景点和中心点,如图黄色所示。
![b854a46ebf390a5153159e8dfdadf9fc.png](https://i-blog.csdnimg.cn/blog_migrate/6db41d952a2c3295feac74c03f6b161e.png)
修正模块及损失函数
作者使用了PointRCNN中的修正模块和损失函数,最终3D边界框的回归损失可以表示为:
![e0f752d42ea132f97a5ecf75e89e36d0.png](https://i-blog.csdnimg.cn/blog_migrate/9444e323ec35e0f683dc3c078fcbe8ce.png)
其中是前景点的数量,是bin-based的回归损失,是smooth L1回归损失。
4实验结果
作者在KITTI数据集上做了测试,训练硬件为2张TITAN Xp,共80个epoch,在KITTI test和val子集上结果如图4、图5所示。
![dd8bd23376279399fab209717aa4f1d5.png](https://i-blog.csdnimg.cn/blog_migrate/5c92eaa2cef51e2312a0a268cd97e46f.png)
![00ed37b945c0aa1190355069d88351f2.png](https://i-blog.csdnimg.cn/blog_migrate/614ae5e4db06f983501ad4fcd8968f20.png)
总得来说,结果具有一定的竞争力。
Ablation实验:PSA模块
这个实验中,作者主要对比了query的形状对结果的影响,如图6所示。使用柱状结构可以显著提高Ped和Cyc两类的检测精度,并且更多的采样点可以带来进一步的性能提升。
!图6 PSA性能
Ablation实验:FPC模块
此外,作者还对比了FPC模块的性能,如图7所示。只增加FPC模块大约带来2.3%的性能提升,对于Ped Mod和Ped Hard子集,提升更为明显,在4%左右。
![a138d588f6922fcd15e38b5709d46a76.png](https://i-blog.csdnimg.cn/blog_migrate/9f273ea85aedfa0730d422bc31c0305b.png)
往期回顾
ECCV 2022 | 稀有类别提升31%!如何解决3D检测中长尾问题?(Waymo最新)
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;
加入我们:自动驾驶之心技术交流群汇总!
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!