面向自动驾驶的稀疏卷积特征蒸馏的点云目标检测方法

文档序号:36402083发布日期:2023-12-16 06:46阅读:39来源:国知局
面向自动驾驶的稀疏卷积特征蒸馏的点云目标检测方法

本发明属于自动驾驶领域和深度学习领域,具体涉及一种面向自动驾驶的稀疏卷积特征蒸馏的点云目标检测方法。


背景技术:

1、随着各种算力硬件高速发展,深度学习算法不断进步,对于多样化信息处理的能力越来越强,越来越快,使得多种传感器如雷达、激光雷达、相机等传感器的实时应用在自动驾驶任务具有可行性。

2、目标检测通过实时感知周边环境为自动驾驶后续的规划、决断和行动提供了先决信息,是自动驾驶的关键技术,获取一个准确快速的目标检测算法成为了整个研究领域的热点。

3、激光雷达可以获取点云格式的数据,拥有超高的检测精度和速度,是自动驾驶中最适用的探测器;但在过去,每秒产生的海量数据导致点云数据处理速度慢,效率低,很难在真实场景中进行部署;随着硬件技术的不断提升,点云3d目标检测任务逐渐成为可行方案;近年来,众多以深度学习为基础的检测算法被提出,与传统算法相比,这类算法往往具有强大的适应力和超高的准确性。目前,基于深度学习的3d点云目标检测算法主要分为三种:1)基于投影和图像的检测算法;2)基于点云的检测算法;3)基于体素的检测算法。

4、基于投影和图像的检测算法主要通过将点云数据映射到二维平面中,使用图像处理算法进行特征提取和目标检测;基于点云的检测算法直接对点云数据进行处理和检测;基于体素的检测算法先将点云分配到均匀大小的空间中,再对体素进行特征提取和检测。体素法保留了相当部分的3d空间信息,又规避了点云数据不规则存储的缺陷,使其在准确率和检测速度上都具有了一定的优势。

5、体素法根据划分的体素尺寸可以分为以下两种方案:1)将点云划分为高度上不做划分的柱状体素并编码,得到鸟瞰图下的特征图后进行进一步检测;2)将点云划分为高度上进一步划分的小体素,使用稀疏卷积等手段在3d空间内进行特征提取,并进行进一步检测。

6、这两种方法各有其优缺点。其中,稀疏卷积对于3d空间内的特征提取有着较重要的作用,可以有效提高3d目标检测的检测精度;然而,3d稀疏卷积在训练与推理中需要的时间较长,并且在模型部署方面,与稀疏卷积相关的算子尚未完全成熟,给模型部署带来了较大阻碍,给工业界与产业界带来了一定的不便;基于柱状体素的体素法由于规避了稀疏卷积的使用,可以有效的减少训练与推理所需的时间,同时也导致其检测精度相比于使用3d稀疏卷积的网络略有下降。在这一前提下,需要设计一种方法,能够在不增加基于柱状体素的体素法的计算量的前提下提高其检测精度,使其精度更加接近使用3d稀疏卷积的检测网络的检测精度。

7、知识蒸馏是一种当前得到广泛应用的模型压缩技术,其基本思路是把大模型(教师网络)的知识迁移到小模型(学生网络)的过程,在蒸馏的过程中,小模型学习到了大模型的泛化能力,保留了接近于大模型的性能。

8、常见的知识蒸馏手段包含以下几种:1)基于特征层的蒸馏,即蒸馏网络输出的中间层特征,使用教师网络输出的中间层特征监督学生网络的中间层特征;2)基于软标签的蒸馏,即蒸馏网络输出的分类概率,使用教师网络输出的分类概率软标签监督学生网络的分类概率软标签;3)基于关系的蒸馏,即利用在同一场景出现的实例具有相关性这一特点,使用来自教师网络的实例信息帮助学生模型更快收敛。


技术实现思路

1、有鉴于此,本发明的主要目的在于提供一种面向自动驾驶的稀疏卷积特征蒸馏的点云目标检测方法。

2、为达到上述目的,本发明的技术方案是这样实现的:

3、本发明实施例提供一种面向自动驾驶的稀疏卷积特征蒸馏的点云目标检测方法,该方法包括:

4、对点云数据进行预处理操作,滤除孤立点和界外点,并对点云数据进行体素化操作,获得训练数据集;

5、构建教师神经网络与学生神经网络;

6、通过训练数据集对教师神经网络进行训练,获得教师神经网络的各参数权重;

7、使用训练数据集对学生神经网络进行训练,同时将数据输入教师网络进行前向传播,通过特征蒸馏得到蒸馏特征loss,通过分类loss、回归loss与蒸馏特征loss确定总体损失函数,确定当前学生网络参数相对于总体损失函数的梯度,使用反向传播对学生网络的参数进行调整,获得完成训练的学生神经网络;

8、通过所述完成训练的学生神经网络,对预测数据集进行检测,经过学生网络前向推理得到待检测目标的位置、大小、方向和种类。

9、上述方案中,所述构建教师神经网络,具体为:

10、构建体素特征编码模块,并且根据体素数据获得体素特征与体素序号;

11、构建3d稀疏卷积模块,多次使用3d稀疏卷积模块,在多个尺度下,对点云进行特征提取,并且根据所述体素特征与体素序号对获得的多个层级尺度的体素特征;

12、构建鸟瞰图映射模块,并且根据所述多个层级尺度的体素特征中最大空间层级尺度的体素特征,使用高度压缩的方法,将3d体素特征空间转化为2d鸟瞰图;

13、构建2d卷积模块,并且通过卷积与反卷积一系列操作,在不同维度上进行下采样与上采样,将2d鸟瞰图转化为2d特征图;

14、构建目标检测头,并且根据所述2d特征图像,使用基于锚定尺寸框的方法获得稠密的候选框,通过非极大值抑制进行进一步筛选,获得最终的预测结果。

15、上述方案中,所述构建学生神经网络,具体为:

16、构建柱状体素编码模块,将点云按照柱状体素进行划分,使用多层感知机,将每一个柱状体素内的点云编码为一个特征向量,得到每一个柱状体素的特征;

17、构建鸟瞰图映射模块,并且根据所述多个层级尺度的体素特征中最大空间层级尺度的体素特征,使用高度压缩的方法,将3d体素特征空间转化为2d鸟瞰图;

18、构建2d卷积模块,并且通过卷积与反卷积的操作,在不同维度上进行下采样与上采样,将2d鸟瞰图转化为2d特征图;

19、构建目标检测头,并且根据所述2d特征图像,使用基于锚定尺寸框的方法获得稠密的候选框,通过非极大值抑制进行进一步筛选,获得最终的预测结果。

20、上述方案中,所述通过特征蒸馏得到蒸馏loss,具体为:

21、步骤401:根据训练集的真值,即3d标注框的位置、尺寸以及物体种类,将3d框投影至2d鸟瞰特征图,设当前帧包含的3d标注框的数量为n,根据卷积的下采样倍数调整3d标注框在2d鸟瞰特征图下的尺寸,划定其在2d鸟瞰特征图下的位置、大小及方向,得到最终的投影结果,即其中k=0,1,...,n-1,执行步骤402;

22、步骤402:使用来自训练集的3d标注框boxk,对于每一个标注框,计算其框内点云的完整性评分scorek,该评分同样适用于3d标注框boxk对应的2d鸟瞰特征图下的

23、步骤403:根据每一个标注框在2d鸟瞰特征图下的投影在框内分别按照的长和宽尺度上等距离的选取7*7个采样点,得到每一个采样点的坐标gridk,i,其中i=0,1,...,48;

24、步骤404:根据每一个采样点坐标gridk,i,得到2d鸟瞰特征图中与该采样点的距离最近的4个点,分别在教师网络的2d鸟瞰图特征ftea和fstu内,根据这四个点的2d鸟瞰图特征,使用双线性插值的方法,得到教师网络和学生网络在采样点处的特征和其中i=0,1,...,48;

25、步骤405:对于3d标注框boxk,使用步骤402中得到的框内点云的完整性评分scorek,以及教师网络和学生网络在采样点处的特征和计算蒸馏损失函数lossdistill,损失函数选择使用均方误差损失函数(mseloss):

26、

27、上述方案中,所述步骤402中计算每个3d标注框内的点云完整性评分,具体为:

28、步骤501:使用来自训练集的3d标注框boxk,对于当前帧点云的全部点,判断每一个点是否属于标注框以及属于哪一个标注框,并将当前帧内点云按照3d标注框进行划分,设当前帧内的标注框总量为boxk内包含的点的数量为nk,组成的点云记为pk,pk中包含的点记为pk,i,其中i=0,1,...,nk-1;

29、步骤502:对于3d标注框boxk,有中心点坐标为[xk,yk,zk],标注框尺寸为[lk,wk,hk],航向角为yawk,该航向角为从x轴正方向逆时针旋转至3d标注框的方向过程中需要旋转的角度,将boxk内点云pk绕轴[xk,yk]顺时针旋转yawk,得到旋转后的点云中包含的点记为坐标为其中i=0,1,...,nk-1;

30、步骤503:对于旋转后得到的新点云以及中包含的坐标为的全部点计算点云的x坐标的最大值xmax与最小值xmin,y坐标的最大值ymax与最小值ymin,以及z坐标的最大值zmax与最小值zmin;

31、步骤504:依据步骤503中计算得到的结果,计算框内点云完整性得分,先计算点云在空间内分布的最大尺寸为其中根据点云在空间内分布的最大尺寸与3d标注框的尺寸,得到点云的点云原始完整性得分

32、

33、步骤505:根据当前帧内的所有3d标注框,计算所有标注框的平衡因子

34、

35、其中k=0,1,...,n,n为当前帧内3d标注框的数量,计算平衡因子后,根据平衡因子ε和点云原始完整性得分得到点云完整性得分

36、上述方案中,所述通过分类loss、回归loss与蒸馏特征loss确定总体损失函数,确定当前学生网络参数相对于总体损失函数的梯度,使用反向传播对学生网络的参数进行调整,获得完成训练的学生神经网络,具体包括:

37、步骤601:对于检测类别概率损失,使用可改善类别间不平衡的focal loss函数作为损失函数;

38、

39、对于预测框的中心位置(x,y,z)、尺寸大小(l,w,h)、旋转角度θ,分别进行编码,使用l1损失函数(l1loss)计算检测框回归损失;

40、

41、对于预测框的朝向,使用l1损失函数(l1loss)进行计算;

42、

43、步骤602:将步骤601中的检测类别损失、检测框回归损失、预测框朝向损失lossdir结果以及蒸馏损失lossdistill求和作为最终loss,用于训练训练的神经网络,各项权重分别为βcls,βloc,βdir和βdistill,

44、loss=βclslosscls+βloclossloc+βdirlossdir+βdistilllossdistill。

45、与现有技术相比,本发明使用知识蒸馏的方法,通过在训练阶段使用包含3d稀疏卷积的教师网络监督柱状体素学生网络,之后计算点云完整性评分,降低低质量的教师网络信息对学生网络的干扰,从而在不增加计算代价的前提下,使得学生网络获得更高的检测性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1