点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
论文作者 | 自动驾驶Daily
编辑 | 自动驾驶之心
写在前面&笔者的个人理解
在自动驾驶系统中,感知任务是非常重要的一环,是自动驾驶后续下游轨迹预测以及运动规划任务的基础。作为一辆能够实现自动驾驶功能的汽车而言,其通常会配备环视相机传感器、激光雷达传感器以及毫米波雷达传感器。
目前,针对智驾感知方案而言,相比于相机传感器,激光雷达传感器通过采集点云数据可以更加准确的获取到物体的深度信息和几何结构信息而被广泛应用于很多公司厂商的高阶智驾方案当中,同时也受到了来自学术界的广泛关注。
对于点云3D目标检测任务,由于不同类型目标的尺寸存在着明显的差别,这就需要检测算法可以提取丰富的多尺度、多层级的特征信息进而实现更加准确的检测过程。但是由于实际部署任务的需要,很难在主干网络中采用大尺寸的卷积核来提取大尺度的语义特征。同时,还有一些远距离的目标,其本身所包含的点云数量非常少,经过多层降采样后损失了过多的特征,从而降低了检测算法的最终表现性能。
基于上述提到的相关问题,并且考虑到实际上车部署的需求,我们提出了Pillar-Based的3D点云检测框架,称之为PillarNeXt,整体贡献可以总结为以下几个方面
本文提出了PillarNeXt点云3D目标检测算法,该算法重新设计了点云数据的特征编码、点云特征提取主干网络以及特征融合网络,从而显著提升点云检测模型的感知性能。
为了充分结合Pillar-Based以及Voxel-Based点云处理模型各自的优势,我们提出了Voxel2Pillar特征编码模块。该模块利用提出的稀疏卷积构建器从基于Voxel的体素中构建Pillar,从而获取到丰富的特征信息。
同时本文还进一步提出了一个完全稀疏主干网络用于在主干网络的每一层提取多尺度和大尺度的语义特征。
论文链接如下:https://arxiv.org/pdf/2405.09828v1
网络模型的整体架构&细节梳理
在详细的介绍本文提出的PillarNeXt点云3D目标检测算法之前,下图展示了我们提出的PillarNeXt算法的整体网络结构。
通过上述的PillarNeXt点云3D目标检测算法整体流程图可以看出,我们提出的PillarNeXt算法模型共包括四个部分,分别是特征编码模块、主干网络模块、特征融合模块以及3D检测头。具体而言,特征编码模块使用提出的Voxel2Pillar特征编码,同时利用了Pillar-Based和Voxel-Based模型特征编码的优点。在主干网络中,网络的每一层级使用提出的多尺度特征提取模块,并且将主干网络的最后三层特征进行结合。提出的特征融合网络包含了空间稀疏卷积模块和稀疏ConvNeXt模块。最后将预测头应用在Neck模块输出的特征上,得到最终的检测结果。
Voxel2Pillar特征编码模块
对于当前的绝大多数的点云3D目标检测算法,主要采用Voxel-Based和Pillar-Based两种特征编码方式来分割采集到的原始点云数据,并对每个网格中的点云数据进行编码。具体而言,Voxel-Based的特征编码方式基于水平和垂直两个维度来划分原始的点云数据,并且需要3D卷积用于完成体素特征的提取。Pillar-Based的特征编码方式只会沿着水平的维度对原始的点云数据进行划分,并且仅需要2D卷积来完成Pillar特征的提取任务。
在介绍本文提出的Voxel2Pillar特征编码方式之前,我们先整体回顾一下Pillar-Based的特征编码方式,如下所示
通过上述公式可以看出,代表一组点云集合,和代表点云集合的横纵坐标。是一个浅层的多层感知机。和分别代表批归一化层和激活函数。是点云集合中特征扩展的结果,是特征编码的结果,称之为Pillar。
基于上述的描述,我们提出了一种新的特征编码方式,称之为Voxel2Pillar特征编码方法,可以用下图进行表示。
具体而言,其详细流程可以用下式进行说明。首先,我们先将原始的点云数据信息划分成体素的形式进行表示。然后采用一个浅层的多层感知机网络来扩展每个体素中点云的特征。接下来,计算每一个点云特征的最大值、最小值和均值并且将计算得到的结果concat到一起,得到新的特征向量。最后,我们采用提出的稀疏卷积构建器来融合Voxel体素特征中垂直维度的特征信息获得最终的Pillar特征。该构建器包含一个空间稀疏卷积、一个批归一化层以及ReLU激活函数。
主干网络
大尺度特征提取残差模块
相关文献中也有提到,在主干网络的前几层特征中提取多尺度和大尺度的物体特征有助于提高算法模型对于不同尺度目标的检测能力。通常来说,目标的大尺度语义特征通常采用扩充感受野的方式进行,然而扩大卷积核的尺寸会增加参数的数量并且带来明显的计算开销,不利于满足自动驾驶任务实时性的要求。
受到膨胀卷积相关思路的启发,膨胀卷积通过在原有卷积核的基础上插入空格来扩大卷积核的特征提取范围,从而实现在无需额外计算成本的前提下获得更大的感受野效果。因此,本文提出了大尺度特征提取残差模块,其网络结构如下图所示。
通过上图展示出来的结果可以看出,我们提出的大尺度特征提取残差模块包含三个分支,具体介绍如下。
主特征提取分支:主特征提取分支包含两个的稀疏卷积用于提取点云的细粒度特征。
残差分支:残差分支的主要作用在于防止网络模型出现性能退化的现象。
大尺度特征提取分支:代替在主特征提取分支中加入膨胀卷积,我们设计了一个包含有可膨胀卷积的大尺度特征提取分支用于提取目标的大尺度特征。
综上,主分支用于提取细粒度的特征,大尺度特征提取分支用于帮助模型建立长距离的特征关系。其中,膨胀卷积的膨胀比例逐渐增加用于扩大模型的感受野范围。子流形稀疏卷积关注数据中的非空区域,当非空元素出现在卷积核的中心时进行卷积。
稠密大尺度特征提取残差块
激光雷达可以探测到比较远的范围,但是一些远距离目标的特征就会变得非常稀疏。尽管通过稀疏膨胀卷积的方式可以获得由粗糙到细粒度的大尺度特征。但是随着膨胀比例因子的增加,会导致远距离小尺度目标的特征表达能力退化的问题。因此,远距离特征的有效准确表达对于3D检测任务而言是至关重要的。
基于上述考虑,我们提出了一个稠密大尺度特征提取残差模块,其网络结构如下图所示。
通过上图可以看出,稠密大尺度特征提取残差模块主要包括三个分支,相关细节如下。
残差分支:残差分支的主要作用在于防止网络模型出现性能退化的问题。
细粒度特征提取分支:细粒度特征提取分支包含一个子流形稀疏卷积用于提取目标细粒度的特征。
稠密大尺度特征提取分支:稠密大尺度特征提取分支包含由和子流形稀疏卷积。稠密大尺度体征提取分支在计算上等价于两个子流形稀疏卷积,但是却可以实现更远距离的特征构建效果。
多尺度特征提取模块
在这一部分中,为了提取物体多尺度的特征信息,我们提出了多尺度特征提取模块,其网络结构如下图所示。
具体而言,我们提出的多尺度特征提取模块包含一个可选的下采样模块,一个稠密大尺度特征提取残差模块以及多个大尺度特征提取残差模块。下采样模块的作用是利用空间稀疏卷积来降采样输入特征,进而保留更多的完整特征。所有的其它模块包含有子流形稀疏卷积用于避免随着模块数量的增加而导致的特征稀疏性。如上图所示,代表稀疏膨胀卷积的膨胀比例因子,随着数量的增加,所提取到目标的尺度特征也会随之增加。接下来的网络结构块采用稠密大尺度特征提取残差块来提取大尺度的稠密特征进而阻止包含有少量点云物体信息的丢失。综上所述,多尺度的特征提取模块可以实现同时提取稠密、细粒度的大尺度特征以及由粗糙到细致的大尺度特征。
Neck网络
我们发现,ConvNeXt网络被经常用于物体分类和目标检测等任务中捕捉图像当中的多尺度特征。因此,在我们提出的PillarNeXt模型的Neck网络设计部分,我们借鉴了ConvNeXt的网络结构,并加入了稀疏卷积模块和稀疏ConvNeXt模块,其网络结构如下图所示。
通过上图可以看出,提出的Neck网络结构首先采用了一个的空间稀疏卷积模块,批归一化层以及ReLu激活函数。然后几个稀疏ConvNeXt模块被引入用于提取特征图的多尺度特征。
具体而言,提出的稀疏ConvNeXt有着和ConvNeXt类似的网络结构,但是利用了一个的子流形稀疏卷积核代替了大尺度的卷积核。考虑到点云数据的高度稀疏性,使用子流形稀疏卷积会降低卷积效率。此外,我们在Neck网络中使用大尺度的卷积核,因为Neck网络的特征图比较小,并且不会显着增加计算成本。
实验结果&评价指标
定量分析部分
为了验证我们提出的算法模型PillarNeXt的有效性,我们在Waymo数据集上与其它点云3D目标检测算法进行了对比验证,实验结果见下表所示。
通过表格结果可以看出,我们提出的PillarNeXt算法模型在车辆检测任务中实现了最高的目标检测精度。相比于Voxel-Based的算法模型而言,提出的PillarNeXt算法并不需要3D稀疏卷积,并且在更低计算开销的情况下实现了更高的检测精度。此外,与基于Pillar-Based的算法模型相比,我们在所有类别的检测性能指标上也均实现了最高的检测性能。在行人和骑车人检测精度略低于VoxelNeXt-Large,但高于所有Pillar-Based的检测算法。此外,基于Pillar-Based的计算成本比Voxel-Based的检测器低得多。因此,所提出的PillarNeXt算法可以在有限的计算能力下实现更具竞争力的检测精度。
此外,我们也对提出的算法模型进行了一系列的消融对比实验,实验结果如下表所示。
相关的数据可视化结果如下图所示
我们所采用的基线模型是VoxelNeXt-2D算法模型。表格中的Multi、Dense、Feature、V2P以及NeXt分别代表多尺度特征提取模块、稠密大尺度特征提取残差模块、特征编码模块以及Voxel2Pillar模块以及Neck网络结构。通过实验结果可以看出,在同时使用多尺度特征提取模块、稠密大尺度特征提取残差模块以及特征编码模块的情况下,Voxel2Pillar模块的体素大小选择为0.2时,实现了最佳的检测精度。在此基础上,在引入了Neck网络结构后,当所采用的稀疏ConvNeXt模块的数量为3个时,在车辆类别上实现了最佳的检测结果。当数量为1个时,在行人和汽车人类别上实现了最佳的检测结果。但无论选取的数量为多少,整体而言所提出的模块,相比于基线模型而言,均实现了有效稳定的涨点。
结论
本文在Pillar-Based点云3D目标检测算法模型的基础上,对其网络结构进行重新设计了一个新的3D检测算法模型PillarNeXt,实现了在仅增加少量计算量的前提下,实现了多尺度和大尺度特征的有效提取,提高了算法模型的检测性能,在Waymo上,相比于其它Voxel-Based和Pillar-Based的算法模型,实现了最佳的检测性能。
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵