APP下载

基于激光雷达点云的3D目标检测技术综述

2022-03-09刘明宇葛万成

电视技术 2022年1期
关键词:体素阶段特征

刘明宇,严 俊,葛万成

(同济大学,上海 200092)

0 引 言

对于自动驾驶场景而言,自动驾驶车辆能够快速、精确地感知周围实时变化的环境是非常重要的。对于这一要求,相较于2D图像而言,3D数据能够提供更加丰富的场景信息,更加有利于三维环境感知任务。因此,许多不同类型的传感器被应用在自动驾驶车辆上,来获取三维场景信息,比如LiDAR、RGB-D cameras、RADAR等。其中,由于激光雷达获取的点云能够保留丰富的物体原有的几何信息,在自动驾驶场景中获得了很多关注。但是因为激光雷达点云是一种稀疏的和非结构化的数据,相较于图像而言,处理点云数据需要更多的计算机算力,这些都制约了利用激光雷达点云进行三维目标检测。因此,如何利用更少的计算机资源,利用获取的点云数据获取更加高效精确的目标检测性能,成为利用点云进行目标检测的研究方向。特别是自2018年以来,出现了许多数据量庞大的点云数据集,如KITTI[1]、nuScences[2]以及Waymo Open Dataset[3],有了这些数据集的支持,越来越多来自学术界或工业界的学者开始关注和研究自动驾驶场景下基于点云的3D目标检测相关问题的解决。本文收集和梳理了近年来经典和性能较好的模型,便于国内研究者能够更好地进行相关方面的研究。本文的贡献如下:

(1)本文总结了近年来自动驾驶领域基于激光雷达点云目标检测方法,将对现有的相关方法进行分类和简述;

(2)本文涵盖相关领域最新的文章,读者可以通过本文了解最新的、性能最好的模型;

(3)本文对于基于点云的3D目标检测之后的发展趋势做出了展望。

本文结构如下:第二部分将介绍现有的常用于自动驾驶领域的3D目标检测的数据集,第三部分将介绍现有的3D目标检测方法,第四部分是关于未来基于点云的3D目标检测技术的展望。

1 数据集

如引言所说,现在常见的用于自动驾驶场景的激光雷达3D目标检测数据集有KITTI[1]、nuScences[2]和Waymo Open Dataset[3]。这三个数据集的基本情况比较如表1所示。

表1 自动驾驶领域3D目标检测常用数据集数据比较

1.1 KITTI

KITTI数据集由德国卡尔斯鲁厄大学和丰田美国技术研究院在2012年联合创办,是目前为止使用最广泛的自动驾驶领域的目标检测数据集。它包括7 481个训练样本以及7 581个测试样本。该数据集包含3个类别的检测目标,分别是行人(Pedestrian)、自行车(Cyclist)以及车辆(Car)。

1.2 nuScenes

nuScences数据集能够提供不同城市场景下360°的全景信息。它包含1 000个在波士顿和新加坡不同天气下采样的场景数据,每一个场景的时间为20 s。不同于KITTI数据集,nuScenes数据集还提供不同场景下时续连续的样本。

1.3 Waymo Open Dataset

Waymo Open Dataset(WOD)包含1 000个场景,其中798个场景作为训练集(包括大约160×103的样本),202个场景作为验证集(包括大约40×103的样本)。

1.4 评价标准

通常,目标检测领域主要使用准确率(Precision)、召回率(Recall)、平均精确率(Average Precision,AP)、平均精确率均值(mean Average Precision,mAP)以及检测速度来评价算法的性能。其中,准确率表示全部已识别样本中正样本被正确识别为正样本的比率,召回率表示正样本中被正确识别为正样本的比率。分别以召回率和准确率作为横、纵坐标,可以获得准确率-召回率曲线(Precision-Recall,P-R),P-R曲线下的面积就是平均精确率(AP),所有检测类的平均AP值就是平均精确率均值(mAP)。检测速度以每秒帧率(Frame Per Second,FPS)来评价,单位为帧/秒,表示每秒处理图片的数量,FPS越高,说明模型的检测速度越快。

1.5 小 结

KITTI数据集因为提出时间早,在自动驾驶目标检测领域是非常经典和使用最为广泛的数据集。但是该数据集也存在没有时序信息、数据量难以满足要求更高模型等问题。

nuScenes和WOD数据集包含了大量不同场景下的点云数据,并且包含了时序信息。近年来越来越多的模型采用了这两个数据集。

2 基于点云的3D目标检测方法

基于点云的3D目标检测模型通常由点云表示模块、点云特征提取模块以及区域提案模块三个模块组成。根据模型完成检测所需的步骤,可以分为单阶段检测算法和两阶段检测算法[4]。对于单阶段方法和两阶段方法,又可以根据在对点云进行处理时所采用的不同策略进行进一步的划分,接下来将对这些方法进行详细的讨论。

2.1 单阶段检测算法

单阶段目标检测方法就是使用单阶段的网络结构,从原始的点云中获取特征后,使用这些特征直接进行目标预测并生成3D边界框。单阶段检测算法通常具有非常高的运行速度,但是在精度上可能并不理想。单阶段检测方法会对原始的点云进行一定的预处理,使得非结构性的原始点云变得更加规则,便于后续的骨干网络提取点云特征。根据不同的点云预处理方法,可以将单阶段检测方法分为基于体素的方法、基于点的方法、基于图的方法以及其他方法。

2.1.1 基于体素的检测算法

基于体素的检测算法的基本思想是,将原始的点云通过变换后通过体素进行表示,之后通过骨干网络对体素进行特征提取。例如,在VoxelNet[5]网络中,原始的点云数据首先根据点云的(X,Y,Z)坐标被划分为若干体素,对划分后的点云进行特征编码,然后生成对应的特征图,通过在骨干网络中使用3D卷积对特征图进行特征提取,最后3D检测头将根据获得到的特征进行目标预测并生成相应的边界框。由于点云的稀疏性,为了提高检测效率,SECOND[6]在VoxelNet[5]网络的基础上,在骨干网络中使用了文献[7]提出的Sparse Convolution Layer进行特征提取。PointPillars[8]则是在点云表示阶段仅根据点云的(X,Y)坐标进行划分,将原始的点云划分为若干点柱,然后使用PointNet[9]网络来获取的点柱特征投影到(X,Y)平面,生成伪图,然后使用2D 卷积神经网络(Convolutional Neural Networks,CNN)对伪图进行卷积。通过使用2D CNN,该方法在检测速度上获得了巨大的提升。TANet[10]网络将单帧点云以体素表示,并在特征编码阶段加入了注意力机制,获取了检测性能的提高。而3D-MAN[11]算法则在PointPillars[8]的基础上,在多帧点云中加入注意力机制,来提高模型的性能。AFDet[12]算法在PointPillars中加入了无锚框检测头,类似地,AFDetV2[13]算法在VoxelNet[5]网络的基础上提出了无锚框的检测方法。VoTr[14]提出了一种体素transformer的方法。MVF[15]对点云采用动态体素划分方法,将鸟瞰图视角(BEV)和透视图视角(Perspective view)下获取的点云特征相融合,来丰富点云的特征。

2.1.2 基于点的检测算法

顾名思义,基于点的检测算法将直接使用原始的点云作为网络的输入并提取出点特征,用于目标检测。3DSSD[16]提出了一种融合采样方法,通过Distance-FPS和Feature-FPS代替了传统的特征传播层(Feature Propagation layers)从而提高模型的运行效率。之后获得的特征将作为候选生成层(Candidate Generation layer)的输入,最后使用无锚框检测头生成预测结果。

2.1.3 基于图的检测方法

Point-GNN[17]网络使用图来表示点云,首先使用体素对点云进行下采样,利用下采样后的点云特征作为节点,通过多层感知机(Multilayer Perceptron,MLP)来提取边特征并迭代更新节点的特征,最后利用迭代后获取的点云特征作为检测头的输入来生成检测结果。SVGA-Net[18]网络通过将原始点云划分为球形体素,然后在体素内部点云和球形体素间分别构建局部和全局图,并融入注意力机制,来获取更加丰富的特征表达,从而提升模型的目标检测性能。

2.1.4 其他方法

因为PointPillars[8]的高效性,3DVID[19]算法在nuScences[2]数据集上,对单帧点云获取点柱特征,然后将每个点柱特征作为图的节点构建图,利用Pillar Message Passing网络迭代点柱信息,之后将更新的点柱特征送入AST-GRU网络(空间-时间注意力GRU),使得获取的点云特征包含了时序信息,从而提高了目标检测的性能。也有许多文章探索了如何融合不同表示方法的点云特征,来提升模型的检测性能。如PVGNet[20]方法首先将原始点云划分为若干体素,之后使用体素特征提取网络获取体素特征,之后通过骨干网络和上采样网络将体素特征转换为BEV特征,同时对于每个非空体素中的点使用MLP来获取点特征,然后将这三种特征进行融合,融合特征将作为检测头的输入来进行目标检测。HVPR[21]方法也采用了将点特征和体素特征融合的方法来提高模型目标检测的性能。因为点云在远距离物体比近距离物体上更加稀疏,并且大的目标比小的目标包含更多的点云,SRDAN方法[22]针对上述问题提出了一种基于尺度和范围感知的网络。LiDAR-Aug算法[23]探讨了点云增强算法对于目标检测模型性能提升的影响。SA-SSD算法[24]针对一阶段检测精度不高的问题,首先将点云数据输入骨干网中并提取出多阶段特征,同时在网络中加入点级监督的辅助网络,使得网络可以获取点云结构特征,从而提高检测精度。

2.2 两阶段检测算法

两阶段检测方法是使用第二阶段的网络从第一阶段生成的区域提案中进行更精确的检测[4],因此两阶段检测算法也被称为基于区域提案的方法。两阶段检测方法在运行速度上较慢,但是却可以获得相较单阶段检测算法更好的检测性能。

PointVoxel-RCNN[25](PV-RCNN)算法首先将点云划分为若干球形体素,之后使用3D稀疏卷积网络以及基于PointNet[9]的网络来提取点云特征。具体来说,体素化的点云将通过3D稀疏卷积网络生成多尺度的语义信息,并生成3D目标提议。除此之外,通过体素集抽象模块将把学习到的体素特征编码为一组关键点。最后关键点特征将作为keypoint-to-grid ROI abstraction模块的输入,来获得更加丰富的信息。这些信息将被用于优化之前生成的3D目标提议,提升检测的精确度。Centerpoint[26]受到2D目标检测方法CenterNet[27]的启发,对VoxelNet[5]和PointPillars[8]进行了改进,提出了Center heatmap head,该方法取得了很好的检测性能。Part-A*2[28]由部分感知阶段和部分聚合阶段组成。部分感知阶段使用了带有稀疏卷积和稀疏反卷积的U-Net[29]网络来学习点特征,通过点特征来进行预测并生成粗略的内部对象位置。在部分聚合阶段将通过RoI(Region of Interest)感知池化对预测阶段生成的位置信息进行聚合,从而优化3D检测框。Fast Point R-CNN[30]是一种使用点和体素处理点云的二阶段检测方法。具体来说,原始点云将被体素化,之后使用3D骨干网络来生成初始的检测结果;之后使用第一阶段生成的检测框内部的点的特征对检测框的精度进行提升。Voxel R-CNN[31]首先将点云进行体素化,使用3D卷积对体素进行采样,之后将3D点云特征转换为鸟瞰图,使用2D卷积提取特征并生成一阶段的检测结果。在第二阶段时,使用体素RoI池化从3D点云特征中提取RoI特征,最后利用RoI特征来优化一阶段的检测结果。STD[32]是一种基于PointNet[9]和PointNet++[33]的方法,首先在提案生成模块生成球形锚框,在第二阶段使用每个点的语义分数去除冗余的锚框,从而获得更好的检测结果。3D IOU-Net[34]使用PointNet++[33]获取点云特征并生成一阶段的提案,在二阶段通过IoU对齐操作优化一阶段的检测结果。文献[35]提出了一种实例感知的IoU池化模块,用于对一阶段生成的检测结果进行优化。文献[36]提出了一种新的局部优化网络,在二阶段生成优化的预测结果。RSN[37]提出范围稀疏网络,首先使用2D卷积从范围图(range image)中提取特征,之后使用稀疏卷积从范围图的前景点中进一步提取点特征,最后使用稀疏CenterNet[27]来生成3D检测框。LiDAR R-CNN[38]也提出了一种新的二阶段检测方法。CT3D[39]提出了一种通道级的transformer网络用于二阶段的优化。

模型在KITTI测试数据集、Waymo Open Dataset验证数据集LEVEL 2和nuScenes测试数据集上的目标检测结果分别如表2、表3、表4所示。

表3 Waymo Open Dataset 验证数据集LEVEL 2目标检测结果比较

表4 nuScenes测试数据集目标检测结果比较

表2所列数据为各方法以运行速度(FPS)以及不同难度下各检测类的平均精确率(AP)(单位:%)为评价标准,在KITTI测试集上的3D目标检测结果。

表2 KITTI测试数据集上3D目标检测结果比较

表3中,LEVEL 2表示目标类型为困难或者bbox内的点数小于5的目标,mAPH在mAP的基础上增加了角度检测评价。表中所列数据为各方法以mAP和mAPH为评价指标在LEVEL 2验证集上的检测结果,单位为%。

表4中,NDS(NuScenes Detection Score)是nuScenes官方给出的评价标准,计算参数较多,不在本文的讨论之中,具体可参见nuScenes官方网站。表中所列数据为各方法以mAP和NDS为评价标准,在测试集上的目标检测结果,单位为%。

2.3 小 结

单阶段的检测方法在运行速度上普遍优于两阶段的方法,但两阶段的方法在检测精度上好于单阶段方法。

对于现有的3D目标检测方法而言,在保证运行效率的同时,如何充分利用点云的信息,这仍然是一个亟待解决的问题。

在点云特征提取时,通过引入注意力机制、融合多帧时序特征等方法,能有效地提升3D目标检测模型的性能。

3 展 望

对于基于点云的3D目标检测任务而言,依靠单一的点云表示方法获取的点云特征来进行目标检测的模型,在检测精度上已经难以令人满意。因此,如何将原始点云使用不同视角、不同表示方法进行采样,并获取相应的融合的点云特征,以此来增强模型的检测性能,是目前如文献[20]和文献[21]所采用的思路。另外一种思路如文献[19]是使用时序信息,将连续点云帧之间的点云特征相关联,在单帧点云的空间特征中融入时序特征,使得点云特征包含丰富的相邻帧之间的信息,从而提升目标检测能力。同时这种方法也可以用于跟踪任务。

因为点云数据量有限,人工标注点云数据是一项繁重的工作,因此,最近自监督和无监督的点云目标检测算法受到了越来越多的关注。如在自监督领域,文献[40]和文献[41]使用自监督方法,在室内目标检测中取得了较好的效果。而以文献[42]为代表,探索了自动驾驶场景下,基于自监督框架的模型预测帧间点云运动的性能。对于无监督算法,文献[43]和文献[44]验证了无监督算法对于自动驾驶领域3D目标检测的有效性,为以后的无监督算法提供了思路。

4 结 语

3D目标检测是自动驾驶领域非常重要的研究课题,具有广泛的应用前景。本文详细阐述了近年来基于激光雷达点云的3D目标检测相关的数据集、检测模型等,并对相关领域的发展方向做出了展望。

猜你喜欢

体素阶段特征
根据方程特征选解法
离散型随机变量的分布列与数字特征
关于基础教育阶段实验教学的几点看法
瘦体素决定肥瘦
Dividing cubes算法在数控仿真中的应用
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
基于距离场的网格模型骨架提取
不忠诚的四个特征
基于体素格尺度不变特征变换的快速点云配准方法
大热的O2O三个阶段,你在哪?