目前在自动驾驶领域中,一辆自驾汽车会配备多种传感器,如:激光雷达传感器采集点云数据、相机传感器采集图像数据等。由于激光雷达传感器可以更加准确的获取待检测物体的几何和位置信息,所以基于点云的感知算法模型在快速的迭代和发展当中。目前主流的基于点云的感知算法主要分成以下两大类。
虽然目前基于Pillar-based的算法模型由于其部署方便、精度高而广泛采用,但目前Pillar-based的算法模型还主要使用随机初始化的方式来对2D的卷积神经网络进行初始化,这就导致很多在ImageNet上预训练的2D主干网络并未有效的被Pillar-based的算法模型利用起来,从而造成资源的浪费。除此之外,就目前来看,基于点云的感知算法模型还没有出现因模型尺寸的放大而出现精度上升的现象。而在2D检测任务当中,在大规模数据集上预训练的主干网络和更大尺寸的主干网络均展现出了更好的优势。
所以,今天解析的这篇论文就是要探索2D主干网络的规模大小和预训练对于Pillar-based的3D目标检测器的性能影响。
论文的arxiv链接如下:https://arxiv.org/pdf/2311.17770.pdf
首先,先放出来PillarNeSt算法模型的整体框架结构,如下图所示。
PillarNeSt算法模型的网络框图
通过上图可以看出,PillarNeSt也是沿用了点云感知算法中经典的架构模型(CenterPoint-Pillars)作为基线模型,但是论文中的作者为了为了构建一个更强的基线模型,对原有的PointPillars算法模型进行了更改。为了读者们更加清晰的了解每个部分的更改位置,先简单列举出来CenterPoint-Pillars算法模型的几个基础模块。
接下来就根据上述提到的每个基础模块来一步步的更改和增强,最终构建出PillarNeSt算法模型~
在原始的CenterPoint-Pillars算法模型中,Pillar Encoder模块部分先使用一个多层感知机结构来提取点云数据的特征,然后采用Max Pooling层来提取Pillar特征。但是在本文中,作者认为仅采用一个Max Pooling层会导致信息的丢失,基于此,论文作者在原有Max Pooling层的基础上又添加了一个Mean Pooling层来获取更多的有用信息。除此之外,论文作者也引入了每个点相对于几何中心高度的偏移量作为模块的输入来补偿Z轴上的信息丢失。
“
In this paper, we simultaneously employ max pooling and average pooling to preserve more information. Moreover, we also introduce the height offset of points, relative to the geometric center, as the input to compensate for the information loss on the z axis.
”
Some recent works argue that large ERF can be effectively achieved by employing convolution with larger kernels. Moreover, a larger receptive field contributes to enhancing the capability of point cloud detectors.
Our backbone design removes the stem and refrains from implementing down-sampling in the first stage block. This strategic choice ensures the preservation of the original resolution of the input features.
Our extensive experiments suggest that increasing the number of blocks in early stages yields superior gains compared to adding more blocks in later stages.
we adopt a simple way and add one more stage (named stage-5) on top of stage-4, which contains only one or two ConNeXt blocks. The block number of stage-5 can be scaled up based on the model size. The output of added stage-5 is served as one of the multi-scale inputs of the neck network.
论文的一大目标就是希望设计出一组可以缩放的网络结构模型,从而实现模型的参数量和精度的权衡。本文中论文作者设计了一系列的2D主干网络从PillarNeSt-Tiny到PillarNeSt-Large用于满足不同的参数量和精度的要求。不同尺度的网络模型配置如下图所示
不同PillarNeSt模型的参数配置情况
通过上图可以看出,不同版本的模型共用相似的模型结构。每个模型包括五层结构,上文已经提到过的第一层去掉了降采样层,对于剩余的其它层都会进行降采样的操作。
论文中还对不同规模的主干网络模型提供了更加便捷的表示方法,如下图所示
不同PillarNeSt模型的通道数及block数统计
由于作者的另外一个目标是希望可以利用在ImageNet上预训练2D主干网络的优势,而且论文中的主干网络是基于ConvNeXt进行更改的,这就导致原有的在ImageNet上预训练的ConvNeXt无法直接迁移到新设计好的网络结构上。基于此,论文采用了两种形式的参数初始化方法,分别是基于stage view和micro view的初始化方法。
作者分别在nuScenes和Argoverse2数据集上来测试设计好的PillarNeSt算法模型的有效性。首先放出来在nuScenes上的结果。
通过实验结果可以看出,最大参数量的PillarNeSt-Large算法模型实现了64.3的mAP,较大幅度的超过了其他的基于点云的感知算法模型。
除了nuScenes数据集上的对比结果之外,论文设计的PillarNeSt在Argoverse2数据集上依旧有很好的表现。
通过表格结果可以看出,无论是mAP还是CDS指标,采用PillarNeSt-Base算法模型已经实现了最优的检测性能,大幅度的超过其他的基于点云的感知算法模型。
通过上面的实验表格,已经可以比较好的说明了该方法成功实现了一组可缩放的网络结构,可以根据具体的情况选择不同参数量的算法模型来达到不同的精度效果。针对论文中提出的预训练问题,论文同样给出了实验结果图,如下所示
实验结果已经很好的说明了,论文中设计的网络结构非常出色的继承了来自ImageNet上预训练得到的知识信息,无论是mAP还是训练损失,加载了预训练模型的效果均要优于不采用预训练模型的效果。
目前虽然基于点云的感知算法已经取得了很大的进步,但是针对Pillar-base算法模型中的2D主干网络依旧采用随机初始化的方式,没有使用到来自ImageNet预训练的网络模型,同时基于点云的算法模型也没得到不同尺度规模带来的优势。
本文介绍的PillarNeSt很好的解决了上述提到的这两个问题,希望本篇解析可以给大家带来帮助。
原文链接:https://mp.weixin.qq.com/s/NJoAOyTuk9INQRJtJKz__g