基于多阶段信息增强的3D点云目标检测算法
1 引言
3D目标检测是自动驾驶场景下一个非常重要的任务,对自车感知周围障碍物以及多目标跟踪、规划控制等下游任务具有重要意义。虽然图像包含丰富的语义信息和纹理信息,但是深度信息的缺失导致其在面对3D检测任务时表现不佳,而激光雷达获取的点云包含有高质量的深度信息,因此点云相比图像在3D检测任务具有天然优势。所以基于激光雷达点云的3D目标检测算法是目前工程实践中使用的主要方法,也是当下研究的热点。
基于点云的3D目标检测需要以大场景点云作为输入,输出七维(7D)的目标3D边界框。这7维信息包括边界框中心点的位置(x,y,z)、边界框的长宽高、朝向角。点云具有稀疏性、无序性和分布不均匀性等特点。PointNet[1]使用多层感知机处理点云并使用最大池化算子应对点云的无序性。PointNet++[2]利用基于点云的层次化分组方法来处理点云数据。基于PointNet系列算法[1],有一些直接对原始点云进行处理的3D目标检测算法,通常这类方法被称作基于原始点云的方法。PointRCNN[3]中涉及基于全局点云分割的无锚框3D候选框生成子网络。STD[4]中涉及由稀疏到密集的策略,以更好地精修候选框。Part A2[5]在PointRCNN[3]的基础上具有一个可以感知感兴趣区域(ROI)的点云池化操作。VoteNet[6]从另一个角度出发,基于激光雷达点云都分布在物体表面的现象,提出了一种基于深度霍夫投票的新的候选框生成机制。
卷积神经网络(CNN)已经在2D图像任务中展示出了强大的信息抽取能力,但是无法对分布不均匀的点云直接进行处理,因此在空间画小方格,将点云体素化以生成卷积神经网络可处理的特征,该方法成为了一种在工业界受欢迎的方法。通常这类方法被称作基于体素化的方法。VoxelNet[7]使用PointNet[1],在体素内抽取特征得到每个体素的特征向量。SECOND[8]通过应用稀疏卷积算子,解决了密集3D卷积计算量过大的问题。PointPillars[9]用立柱对点云进行体素化,避免了3D卷积算子的使用,提高了速度,有利于部署。CenterPoint[10]使用VoxelNet[7]或PointPillars[9]对点云进行体素化,生成鸟瞰视角下的伪图,之后使用无锚框的检测器进行检测。PV-RCNN[11]将原始点云的特征聚合进体素化的算法框架中。3D目标检测使用两阶段的结构,将一阶段输出的边界框作为候选框,利用二阶段网络对候选框进行精修,得到更精准的边界框。CenterPoint[10]使用一阶段特征图上与候选框有关的特征精修目标边界框。PV-RCNN[11]在ROI内聚合原始点的信息。Pyramid-RCNN[12]在ROI内使用金字塔结构解决点云稀疏的问题。Voxel-RCNN[13]直接使用ROI相关的体素特征来增强信息。
出于计算资源、实时性和方便部署等方面的考虑,工程实践中通常会使用基于体素化的算法框架。自动驾驶场景下一帧点云中点的数量可以达100×103量级,直接使用PointNet[1]去处理挑战过大,实践中通常会使用类似PointNet++[2]的层次化分组方法,但该方法会带来难以承受的计算量。所以基于原始点云的方法在实践中存在计算量和时延方面的瓶颈。基于体素化的方法可以避免上述问题,能够满足工业应用中关于计算量和时延的要求,但是体素化会带来量化误差,相比于使用原始点精确位置信息的基于原始点云的方法,基于体素化的方法的检测精度会更低一些。为了平衡基于体素化的方法与基于原始点的方法的优缺点,提出了一阶段使用基于体素化的方法,二阶段使用基于原始点云的方法的LiDAR R-CNN[14],在二阶段仅对候选框里的点云进行处理,既利用了点的精确位置信息,又解决了处理原始点时计算量过大的问题。
本文在基于体素化的算法框架的基础上,增加小型网络模块来构建多阶段网络,让后续模块弥补第一阶段网络的不足,以提升网络的性能。本文设计了两种类型的小型网络,可分别作为二阶段和三阶段网络来使用。第一类小型网络使用一阶段网络特征图中的信息来精修输出的边界框,本文称其为基于特征图的网络;第二类小型网络利用了原始点云的信息,本文称其为基于原始点云的网络。本文研究了两类网络的性能,并提出了两者级联使用的方案。本文的贡献:1)分别设计了轻量化的基于特征图的网络和基于原始点云的网络;2)在一阶段网络的基础上,先后使用基于特征图的网络和基于原始点云的网络,形成了多阶段的网络结构,特征图的信息和原始点云的信息是对一阶段网络的有力补充,使三阶段网络的性能相比于一阶段网络有显著提升;3)设计交并比损失(IoU Loss)提升一阶段网络学习边界框大小的能力,使用SiLU激活函数促进一阶段网络的收敛,使用IoU分支和优化后的置信度分数计算方法提高基于原始点云的网络的性能。
2 算法原理
2.1 算法框架
所提多阶段算法框架如
2.2 第一阶段的网络
这一部分的网络结构与CenterPoint[10]一阶段的网络结构相似,首先使用VoxelNet[7]或PointPillars[9]作为3D backbone(3D骨干网络),将点云编码成鸟瞰视角下的伪图;之后使用一个具有多尺度信息聚合能力的网络(
式中:
在计算输出边界框长宽高时,CenterPoint[10]等优秀算法使用损失函数直接约束长宽高三个数值,本文对此方案进行了改进。进行坐标系转换,使预测框与对应真值框的中心点重合,朝向角一致,如
图 2. 计算IoU Loss时坐标系转换后的结果
Fig. 2. Result after coordinate conversion when calculating IoU Loss
2.3 基于特征图的网络
第一阶段的网络只是利用了特征图上目标中心点处的特征来回归边界框的7D信息,并没有充分利用与边界框有关的信息。一阶段的输出为
式中:
式中:
式中:
基于特征图的网络输出的最终分数同时包含分类信息和IoU信息,使得高分目标边界框不仅类别较为准确,还拥有较精确的位置、大小和朝向角,为后面的利用非极大值抑制判断正负样本提供了更好的分数值,有利于提高预测结果的平均精度(AP)。
2.4 基于原始点云的网络
所提算法的前两阶段均是在点云体素化的基础上进行的,体素化带来的量化误差始终存在。为了利用原始点的精确位置信息弥补体素化带来的信息损失,同时避免过大的计算复杂度,将在算法的最后阶段使用一个基于原始点云的网络,该网络只关注与
对于基于原始点云的网络,前序网络输出的边界框可以认为是候选框。在所提多阶段网络中,候选框对应
LiDAR R-CNN[14]的预测头仅包含分类分支和回归分支。受CIA-SSD[15]和AFDetv2[16]的启发,本文增加了一个IoU预测分支,使用
式中:
式中:
3 实验结果与分析
3.1 数据集与实验设置
Waymo Open Dataset(WOD)[17]是用于自动驾驶研究的大规模公开数据集,其点云数据由64线激光雷达采集得到。WOD的训练集有798个点云序列,包含158081帧点云,验证集有202个点云序列,包含39987帧点云,目标可分为3类,分别为车辆(vehicle)、行人(pedestrian)和非机动车(cyclist)。WOD中使用的评价指标是平均精度(AP)和按朝向角精度加权的平均精度(APH)。该数据集中的目标可以按难度分为LEVEL_1(L1)和LEVEL_2(L2)两类,若目标上有超过5个点并且没有被标记为LEVEL_2,则该目标被标记为LEVEL_1类别,若目标上的点数少于5或已被手动标记为LEVEL_2,则该目标归为LEVEL_2类别。
所用的硬件配置为Ubuntu 18.04系统和NVIDIA A100显卡。在第一阶段网络和基于特征图的网络中,使用AdamW优化器和one cycle学习率优化策略,最大学习率为3×10-3,权重衰减(weight decay)为0.01,动量(momentum)在0.85到0.95之间变化。在基于原始点云的网络中,参考LiDAR R-CNN[14]的设置,使用SGD优化器和poly学习率优化策略,动量(momentum)为0.9,学习率的初始值为0.02,权重衰减为1×10-5。
3.2 算法性能
在WOD的验证集上检验所提多阶段3D目标检测算法的性能。
表 1. 在WOD验证集车辆类别上不同算法的检测结果
Table 1. Vehicle detection results of different algorithms on WOD validation set
|
3.3 消融实验
由于WOD不同点云帧之间间隔较小,所以下面的实验中没有使用全量的数据,而是在WOD训练集中等间隔抽取20%的数据训练网络,以同样的方式在验证集中取20%的数据作为测试集,这样既提高了实验效率,又不会影响实验结果的有效性。所有结果均是在WOD验证集的车辆类别上进行测试得到的。由于在工程实践中PointPillars[9]运行速度快,方便部署,所以实验中一阶段网络的3D backbone均使用PointPillars[9]。
3.3.1 SiLU激活函数与IoU Loss
表 2. ReLU与SiLU的对比
Table 2. Comparison between ReLU and SiLU
|
表 3. 原版Loss与IoU Loss的对比
Table 3. Comparison between the original Loss and IoU Loss
|
3.3.2 基于特征图的网络和基于原始点云的网络性能探索
表 4. Feature和Point不同搭配方案的结果
Table 4. Results of different matching schemes of Feature and Point
|
3.3.3 基于原始点云的网络中IoU分支的效果
表 5. 使用IoU分支的效果
Table 5. Effect of using the IoU branch
|
3.4 算法耗时
在NVIDIA A100上测试所提算法的耗时。一阶段网络处理单帧点云的平均耗时为31.2 ms,基于特征图的网络处理单帧点云的平均耗时为5.8 ms。以预选框及其对应的原始点云为输入,基于原始点云的网络并行处理256个预选框的平均耗时为2.7 ms。目前自动驾驶任务中使用的激光雷达的帧率通常为10 Hz,即每秒产生10帧点云,则相邻两帧点云的时间间隔为100 ms。相关感知算法处理单帧点云的耗时小于100 ms,可认为算法符合自动驾驶落地的耗时需求。由于模型部署过程中会有模型加速等工程化手段的使用,算法在实际车载芯片上的耗时通常比在NVIDIA A100上更少,所以所提算法完全有能力在100 ms之内完成关于单帧点云的3D目标检测任务,因此也就满足了自动驾驶落地的耗时需求。
4 结论
提出了一个基于多阶段信息增强的3D点云目标检测网络。对网络结构的设计进行了探索,在基于体素化的单阶段3D目标检测网络之后,增加基于特征图的网络和基于原始点云的网络,均可以得到更加精准的目标边界框,两种网络结合使用可以综合两者的优势。基于特征图的网络在前,基于原始点云的网络在后的方案是最优搭配,由此所提算法的三阶段网络结构便形成了。在算法的设计过程中,特别注意对IoU信息的利用,为基于原始点云的网络添加了IoU分支,利用二阶段和三阶段网络对预测框和真值框的IoU进行预测,并在计算预测框的分数时均结合了分类信息和IoU信息。还对一阶段网络进行了改进,用计算IoU Loss的方式预测一阶段输出边界框的长宽高,并使用SiLU激活函数促进网络的收敛。所提算法在Waymo Open Dataset[17]上有不错的表现,检测精度高于备受工业界青睐的CenterPoint[10],且耗时满足自动驾驶落地需求,有很大的工业应用潜力。但是,所提算法使用的特征抽取器都比较简单,所以后面可以探索使用更强大的CNN或Transformer[22]来增强算法中特征抽取器的能力。
[1] CharlesR Q, HaoS, MoK C, et al. PointNet: deep learning on point sets for 3D classification and segmentation[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE Press, 2017: 77-85.
[2] CharlesR Q, YiL, SuH, et al. Pointnet++: deep hierarchical feature learning on point sets in a metric space[C]∥Proceeding of Neural Information Processing Systems, December 4-9, 2017, Long Beach, California, USA. Red Hook: Curran Associates, 2017.
[3] ShiS, WangX G, LiH S. PointRCNN: 3D object proposal generation and detection from point cloud[C]∥2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 15-20, 2019, Long Beach, CA, USA. New York: IEEE Press, 2020: 770-779.
[4] YangZ T, SunY N, LiuS, et al. STD: sparse-to-dense 3D object detector for point cloud[C]∥2019 IEEE/CVF International Conference on Computer Vision (ICCV), October 27-November 2, 2019, Seoul, Republic of Korea. New York: IEEE Press, 2020: 1951-1960.
[5] Shi S, Wang Z, Shi J P, et al. From points to parts: 3D object detection from a point cloud with part-aware and part-aggregation network[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021, 43(8): 2647-2664.
[6] QiC R, LitanyO, HeK M, et al. Deep Hough voting for 3D object detection in point clouds[C]∥2019 IEEE/CVF International Conference on Computer Vision (ICCV), October 27-November 2, 2019, Seoul, Republic of Korea. New York: IEEE Press, 2020: 9276-9285.
[7] ZhouY, TuzelO. VoxelNet: end-to-end learning for point cloud-based 3D object detection[C]∥2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT, USA. New York: IEEE Press, 2018: 4490-4499.
[8] Yan Y, Mao Y X, Li B. SECOND: sparsely embedded convolutional detection[J]. Sensors, 2018, 18(10): 3337.
[9] LangA H, VoraS, CaesarH, et al. PointPillars: fast encoders for object detection from point clouds[C]∥2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 15-20, 2019, Long Beach, CA, USA. New York: IEEE Press, 2020: 12689-12697.
[10] YinT W, ZhouX Y, KrähenbühlP. Center-based 3D object detection and tracking[C]∥2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 20-25, 2021, Nashville, TN, USA. New York: IEEE Press, 2021: 11779-11788.
[11] ShiS S, GuoC X, JiangL, et al. PV-RCNN: point-voxel feature set abstraction for 3D object detection[C]∥2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 13-19, 2020, Seattle, WA, USA. New York: IEEE Press, 2020: 10526-10535.
[12] MaoJ G, NiuM Z, BaiH Y, et al. Pyramid R-CNN: towards better performance and adaptability for 3D object detection[C]∥2021 IEEE/CVF International Conference on Computer Vision (ICCV), October 10-17, 2021, Montreal, QC, Canada. New York: IEEE Press, 2022: 2703-2712.
[13] Deng J, Shi S S, Li P W, et al. Voxel R-CNN: towards high performance voxel-based 3D object detection[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2021, 35(2): 1201-1209.
[14] LiZ C, WangF, WangN Y. LiDAR R-CNN: an efficient and universal 3D object detector[C]∥2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 20-25, 2021, Nashville, TN, USA. New York: IEEE Press, 2021: 7542-7551.
[15] Zheng W, Tang W, Chen S, et al. Cia-ssd: confident iou-aware single-stage object detector from a point cloud[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2021, 35(4): 3555-3562.
[16] Hu Y H, Ding Z, Ge R Z, et al. AFDetV2: rethinking the necessity of the second stage for object detection from point clouds[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2022, 36(1): 969-979.
[17] SunP, KretzschmarH, DotiwallaX, et al. Scalability in perception for autonomous driving: waymo open dataset[C]∥2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 13-19, 2020, Seattle, WA, USA. New York: IEEE Press, 2020: 2443-2451.
[18] YangZ T, ZhouY, ChenZ F, et al. 3D-MAN: 3D multi-frame attention network for object detection[C]∥2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 20-25, 2021, Nashville, TN, USA. New York: IEEE Press, 2021: 1863-1872.
[22] VaswaniA, ShazeerN M, ParmarN, et al. Attention is all you need[C]∥Proceeding of Neural Information Processing Systems, December 4-9, 2017, Long Beach, California, USA. Red Hook: Curran Associates, 2017.
Article Outline
袁善帅, 丁雷. 基于多阶段信息增强的3D点云目标检测算法[J]. 激光与光电子学进展, 2024, 61(4): 0415003. Shanshuai Yuan, Lei Ding. Three-Dimensional Object Detection Based on Multistage Information Enhancement in Point Clouds[J]. Laser & Optoelectronics Progress, 2024, 61(4): 0415003.