PointPillars:工业界大量部署落地的点云目标检测算法,精度与速度上实现SOTA!

1、本文速览

在自动驾驶的3d目标检测中,速度与精度一直是工业界部署追求的,但两者难以兼得,本文提出PointPillars模型正基于此,取得了速度与精度上的双重提高。即使仅仅使用了lidar数据,也在kitti上取得了3d和BEV视角上的SOTA pipeline。

论文:https://arxiv.org/pdf/1812.05784.pdf

代码:https://github.com/nutonomy/second.pytorch


2、背景

传统3D目标检测几个模型的比较,以PointNet,VoxelNet,SECOND为例:

• PointNet是最早将CNN卷积应用在点云检测领域,由于网络的最大迟化影响,导致点云缺失局部特征;

• VoxelNet引入端到端的特征学习,VoxelNet也基于PointNet进行设计,导致局部特征缺失。同时VoxelNet运用了 3D 卷积,计算复杂度较高,速度只有4.4 Hz;

• SECOND 将速度提升到了 20Hz,但是仍然保留了3D卷积。

PointPillar基本思想:将三维点云分为一些柱体pillars,利用PointNet提取柱体pilars特征,将特征映射为2D伪图像,对2D图像使用SSD提取目标检测框和类别


3、PointPillars框架

PointPillars包含三个模块,Pillar Feature Net、Backbone(2D CNN)、Detection Head(SSD)

 功能简述如下:
(1)Pillar Feature Net:将点云转化为伪图像的特征编码网络,即俯视图划分H × W个网格,将网格沿Z轴提升为柱体pillar,并用pointNet提取特征转伪图像;
(2)Backbone(2D CNN):基于为图像的2D骨干特征提取网络,提取不同尺度的图像特征;
(3)Detection Head(SSD):利用SSD模型检测和回归3D框检测头。

3.1  Pillar Feature Net

(1)画网格。在俯视图xy平面上,划分H × W的均匀网格,将H × W个均匀网格沿Z轴拉伸形成pillar,xy网格的分辨率为0.16m;

(2)扩维度。原始的点云数据point有(x,y,z,r)4个维度,r代表反射率。将数据维度扩展为9维,扩展维度(x,y,z,r,x_c,y_c,z_c,x_p,y_p),其中x_c,y_c,z_c是点相对于pillar中所有点的质心偏差,x_p,y_p是对点相对于pillar中所有点的物理中心偏差;

(3)补点。每个pillar中点多于N的进行采样,少于N的进行填充0。形成(D,P,N)维度的张量,其中D=9(扩展后的数据维度), N为每个pillar的采样点数N=100,P为pillar总数目P=12000,H*W;

(4)提特征。使用PointNet提取pillar特征,PointNet由一个BatchNorm层、ReLU层、全连接层组成,维度变为(C, P, N) 张量;

(5)池化。在N这个维度上做max operation,得到(C,P)的tensor,变形得到(C,H,W)张量。(C,H,W)张量正好类似图像的维度。

3.2  Backbone2D CNN

(1)特征提取层。类似特征金字塔网络(FPN),至上而下逐级提取伪图像的特征,分为1/2、1/4、1/8三个尺度的特征图;

(2)特征加强层。类似于Unet网络,至下而上逐级解码不同尺度的特征图。

(3)特征图拼接。将来自不同三个尺度的特征图在通道尺度上进行拼接。此时生成维度为(H/2,W/2,6C)的张量。

3.3 Detection HeadSSD

Anchor框匹配groundtruth框采用2D IOU匹配,直接从BEV视角进行匹配,不考虑高度信息。每个类别的检测范围、anchor框大小、正负样本匹配阈值分别为:

(1)车:x、y、z的检测范围为[(0, 70.4), (-40, 40), (-3, 1)]m,anchor先验框的长宽高设定为(1.6, 3.9, 1.5)m,阈值设置为大于等于0.65为正样本,小于0.45为负样本,中间不计算损失;

(2)行人与自行车:x、y、z的检测范围为[(0, 48), (-20, 20), (-2.5, 0.5)],行人anchor先验框的长宽高设定为(0.6, 0.8, 1.73)m,自行车的anchor先验框的长宽高设定为(0.6,1.76, 1.73)m,两类别的阈值设置均大于等于0.5为正样本,小于0.35为负样本,中间不计算损失。


4、数据增强和损失函数

4.1 数据增强

(1)类似SECOND,为所有类别和点云的ground truth 3D boxes创建了查询表;

(2)对每个样本中的车、行人、自行车分别选取15、0、8的ground truth,将这些放入当前的点云中;

(3)对所有的ground truth 3D boxes进行了增强,每个框进行旋转和平移;

(4)对所有的点云和框进行了全局增强,具体方法是:沿x轴应用随机镜像翻转,然后全局旋转、缩放和平移来加入模拟位置噪音。

4.2 损失函数

采用同SECOND相同的损失函数。框的维度定义为(x, y, z, w, l, h,θ)。

(1)定位回归损失

 

Xgt与xa分别表示groundtruth框与predicte框的长度,da为对角线的长度:

 

最终定位损失采用SmoothL1,考虑到3类别物体的框大小不会发生过多变化。

(2)分类损失

分类损失采用FcolLoss损失,FcolLoss可以有效避免样本数量不均衡产生的影响,相当于给数量少的样本更大的权重。

(3)总损失

在角度预测时候不可以区分两个完全相反的box,所以PiontPillars的检测头中还添加了对一个anchor的方向预测。这里使用了一个基于softmax的方向分类box的两个朝向信息。最终总损失如下:

其中,α= 0.25,γ=2,Npos为正样本框的数量,βloc = 2,βcls = 1, βdir = 0.2。 


 5、实验

模型速度和精度对比

PP代表pointpillars模型,M代表MV3D , A代表AVOD , C代表 ContFuse, V代表 VoxelNet, F代表Frustum PointNet, S代表SECOND, P+ 代表PIXOR++。从图中看出pointpillars确实能兼顾速度和精度。

pointpillars在BEV下的检测结果。

pointpillars在3D下的检测结果

pointpillars在BEV(上图)和框投影到图像上的可视化效果。


6、结论

PointPillars是一种可以在激光雷达点云上进行端到端训练的网络和编码器。在 KITTI中,PointPillars以较快的速度展示了较高的检测性能(BEV 和3D),实验结果表明,PointPillars为3D对象检测提供迄今为止最好的激光雷达pipeline。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Swin Transformer 目标检测算法的主要创新点可以总结为以下几点: 1. Hierarchical Transformer Structure:Swin Transformer 算法采用了一种新的分层 Transformer 结构,使得算法可以处理更大的输入图像,同时还能够保持较低的计算复杂度。 2. Shifted Window Mechanism:Swin Transformer 算法通过引入一种平移窗口机制,使得算法可以在不同的位置上学习到不同的特征,从而提高了模型的泛化能力。 3. Local Self-Attention:Swin Transformer 算法在每个分层中使用了局部自注意机制,使得算法可以更好地捕捉局部特征。 4. Multi-Scale Feature Fusion:Swin Transformer 算法还采用了一种多尺度特征融合策略,使得算法可以更好地处理不同尺度的目标。 Swin Transformer 目标检测算法的优点可以总结为: 1. 准确性高:Swin Transformer 目标检测算法在 COCO 数据集上达到了 SOTA 的效果,表现非常优秀。 2. 计算效率高:Swin Transformer 目标检测算法采用了分层的 Transformer 结构,使得算法能够处理更大的输入图像,同时还能够保持较低的计算复杂度。 3. 泛化能力强:Swin Transformer 目标检测算法采用了平移窗口机制和局部自注意机制,使得算法可以学习到不同位置和尺度的特征,从而提高了模型的泛化能力。 Swin Transformer 目标检测算法的缺点主要在于其模型复杂度较高,需要较大的计算资源和训练时间。此外,由于目前该算法比较新,还需要更多的实验验证其在其他数据集和任务上的表现。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值