笔记《基于无人驾驶方程式赛车的传感器融合目标检测算法研究及实现》

关键字:无人驾驶方程式赛车,相机,激光雷达,目标检测,传感器融合

一、绪论

1. 感知技术研究现状

1.1.1 基于相机的目标检测技术研究现状

  相机传感器获取数据将目标光线信号转化为图像信号。图像包含像素分布、亮度和颜色信息。通过对图像的处理,提取目标的特征信息,以获得目标的类别和位置信息。

基于相机的传统目标检测算法主要分为三个步骤:
1.根据实际情况设置不同尺寸和长度比的窗口,采用滑动窗口对图像数据进行遍历
2.利用手工设计的特征提取器对滑动窗口内的局部区域进行特征提取
3.将提取的图像特征输入到目标检测器中,以获得类别和位置信息

局限性:存在数量庞大的的候选框导致计算量巨大;手工设计的特征提取方法不能适应图像数据多样性,算法鲁棒性差

  深度学习能够很大程度提升了基于相机的目标检测算法的速度和准确性。CNN(Convolution Neural Network)采用局部连接和权值共享,一方面减少了权值数量使得网络易于优化,另一方面降低模型复杂程度,减少过拟合的风险。CNN处理具有像素网格的图像数据时优势更明显,直接使用图像作为数据,避免了传统目标检测算法中复杂的特征提取和目标检测过程,可以增强深度学习模型的特征提取能力和泛化能力。基于 CNN 的相机目标检测算法主要有两种。一种是基于候选区域提取的二阶段目标检测算法,如 R-CNN(Region-CNN,基于候选区域的卷积神经网络)算法、Fast R-CNN(Fast R-CNN,基于快速候选区域的卷积神经网络)算法[6]、Faster R-CNN[7]等;另一种是基于回归思想的单阶段目标检测算法,如 YOLO(You Only Look Once,你只需看一次)算法、SSD(Single Shot Multi-Box Detector)算法等。

1.1.2 基于激光雷达的目标检测技术研究现状

  激光雷达传感器获取数据:深度图像——>点云。点云:三维坐标(X,Y,Z)、颜色、分类值、强度值和时间等信息。点云具有无序性、稀疏性等特征,这导致点云数据处理的研究成果与图像相比较少。
基于激光雷达的传统目标检测算法主要分为五个步骤:
1.对原始点云数据提取感兴趣区域ROI(Region Of Interest),保留有效区域的点云
2.通过滤波方法降低点云密度同时保留点云的形态特征
3.采用随机采样一致性算法过滤地面点云,保留非地面点云
4.利用欧式聚类算法,将每一帧的点云中的目标物体逐一分开,形成单独的一簇点云
5.对目标物体的点云进行优化,获得三维坐标等特征

常用目标检测算法:二叉树搜索算法、RANSC平面分割算法和欧式聚类算法
局限:但基于激光雷达的传统目标检测算法基于手工设计的特征,算法性能受手工调参等因素的影响,只适应特定的数据集,算法泛化能力较差。
基于深度学习的激光雷达目标检测方法,按照点云数据处理方法,主要分为基于原始点云、基于体素网格与基于多视图这三类目标检测方法
基于原始点云的目标检测:对点云直接3D卷积(PointNet)
基于体素网格点云的目标检测:将原始点云按照空间几何特性划分为具有相邻特性和拓扑特性的三位体素网格,然后对体素网格进行3D目标检测 (VoxNet)
基于多视图的目标检测:将三维点云数据映射到二维平面,根据映射方向不同可以分为前视图(Front View)、鸟瞰图(Bird Eye View)等。(MVCNN)

1.1.3 基于传感器融合的目标检测技术研究现状

  相机+LiDAR
  相机图像:高分辨率、色彩、纹理信息,成本低;极易受光照影响、天气变化的干扰,特征提取和目标检测的精度大幅下降,且无法提供较为精确的深度信息。
  激光雷达传感器:精度高响应快,抗干扰强,成本高,在恶劣的条件下无法正常工作,且获取的点云稀疏无序。
  因此单一传感器很难满足复杂场景下的无人驾驶任务。采用多传感器一般使用相机+Lidar
  目前传感器融合的方法大多是 传统图像目标检测+点云2D目标检测 融合在一起。eg:VeloFCN算法,Vote3D算法。而MV3D和AVOD算法应用深度学习对传感器的数据进行融合后再目标检测。MV3D提出一种将图像数据与点云数据进行融合的方法,用点云的Front View 和 BEV 表示三维点云信息,与图像Front View融合,实现3D目标检测。AVOD算法使用点云BEV和FV作为网络数据输入,改进RPN网络架构、添加预测狂几何约束,提升了目标检测准确性和实时性。

2. 本文研究内容

一种基于 YOLOv4 模型的相机目标检测算法。针对真实赛道场景下复杂因素导致锥桶识别和检测效率低下的问题,在真实场景下采集并制作数据集用以算法训练,对算法训练结果进行分析,选取最优权重模型和最优算法模型。

二、目标检测的理论基础

2.1 感知系统介绍

  无人驾驶主要由感知、规划、控制三个部分构成。
在这里插入图片描述
感知系统的框架主要分为三个部分:特征提取、特征融合、目标检测。

特征提取:图像和点云特征提取网络分别对图像和点云数据进行特征提取获得图像和点云的特征图;
特征融合:候选区域生成网络在点云特征图上候选框,先将候选框分别映射到图像和点云特征图上,在将候选框区域内的图像和点云特征图进行融合;
目标检测:目标检测网络对融合后的特征图进行目标的分类与回归预测。

2.2 深度学习基础

2.2.1 神经网络(Neural Network,NN)

在这里插入图片描述
每个神经元接受大量输入后简单的线性加权,再通过非线性的激活函数输出
y=f(z),y 为模型的输出变量; f ( )为激活函数; z 为模型的中间参数,其定义
在这里插入图片描述
  xi 为模型的输入变量 ;wi 为权重值,每个输入变量都赋予一个对应的权重值;b 为偏置值,为达到更好的目标而作调整的偏置项。
  将多个神经元组织在一起便形成了神经网络。一般分为输入层,输出层和隐藏层。每一层可以有单个或多个神经元组成,上一层的输出将会作为下一层的输入

2.2.2 卷积神经网络(Convolution Neural Network,CNN)

带有卷积结构的深度神经网络,用以处理具有网格特征的图像数据。卷积结构有三个主要特性:局部感知、权值共享和池化操作,有效减少网络的参数量,缓解模型的过拟合问题。
  局部区域内的相邻像素联系较为紧密,而距离较远的像素关联性较差。因此,神经元不必对整幅图像进行全局感知,只需对图像的局部区域进行感知,然后在更深层将局部区域的特征信息融合就可以获得图像的全局特征信息,这就是局部感知。图像中部分特征的统计特性可能与其他部分的特征相同,这表示 CNN 对这部分的特征的学习也可以迁移到其他部分上。不同神经元之间参数的进行共享,有效地减少了需要求解的参数量,这就是权值共享

  CNN 的浅层结构由卷积层、激活层和池化层交替组成,深层结构由全连接层、采样层和最后一层输出层组成。最后一层输出层利用 Softmax 进行目标分类,对目标的候选区域进行目标预测。
(1)卷积层
  卷积层通过卷积函数(Convolution Function)对图像矩阵或滤波矩阵做内积的操作。
在这里插入图片描述

(2)激活层
  激活层通过激活函数(Activation Function)增加模型的非线性表达能力。常见的激活函数主要 Sigmoid、ReLU 和 Mish 等。
(3)池化层
  池化层通过池化函数(Pooling Function)使用某一区域内相邻输出的总体统计特征来代替网络在该区域的输出,在保持原有特征的基础上最大限度地将数组的维数变小,实现降维处理,减少参数量。池化操作在形式上与卷积操作相似,但池化操作只关心滤波器的尺寸,不考虑内部的值。池化主要分为最大池化(Max Pooling)和均值池化(Mean Pooling)。最大池化将图像上滤波器对应局部区域内的所有像素点取最大值。均值池化将图像上滤波器对应局部区域内的所有不为 0的像素点取均值。最大池化倾向于保持图像较为显著的特征,而平均池化倾向于保持图像的整体特征。

2.3 传感器标定

相机标定、相机和激光雷达联合标定(空间同步和时间同步)

三、FSAC赛车的相机目标检测

3.1 相机目标检测算法

3.1.1 目标检测算法原理

YOLOv4
在这里插入图片描述
  以红、黄和蓝三种不同大小颜色的赛道锥桶为例,基于 YOLO v4 模型的相机目标检测算法将包含三种赛道锥桶的输入图像划分成 S×S 个网格,每个网格单元产生 B 个边界框,每个边界框负责检测和识别几何中心落在该边界框内的
目标锥桶的位置和类别信息。
  每个边界框预测 5 个参数,分别为:边界框横坐标(bx )、边界框纵坐标(by )、边界框高(bh )、边界框宽(bw )和置信度(C )。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
主干网络结构借鉴了 CSPNet[35](Cross Stage Partial Network,跨阶段局部网络),使用 CSP×n 模块,使得网络结构在保持检测精度的同时减少计算量,增强了卷积神经网络的学习能力,降低了计算瓶颈和内存成本。

3.1.2 目标检测算法网络结构

3.1.13 目标检测算法损失函数

3.2 相机目标检测算法训练及实现

3.2.1 数据集制作

3.2.2 最优算法模型选取

3.2.3 数据集训练结果分析

3.2.4 最有权重模型选取

基于相机和激光雷达的传感器融合目标检测

4.1 传感器融合的目标检测算法

AVOD(Aggregate View Object Detection,多视图目标检测)模型的传感器融合目标检测算法
将通过相机采集的图像数据和通过激光雷达采集的点云数据进行融合后,进行特征提取
数据预处理、特征提取、候选区域生成、目标检测和损失函数和目标检测
选取 KITTI 数据集进行算法的训练验证

在这里插入图片描述
第一阶段:有特征提取网络和候选区域生成网络组成
第二阶段:3D目标检测网络

第一阶段:
  点云数据经过数据预处理生成点云俯视图和 3D 先验框,采用两种同样的特征提取网络进行特征提取得到图像特征图和BEV点云特征图。两类特征图分别经过两个 1×1 卷积层进行降维与裁剪,调整特征图大小后,先将 3D 先验框映射到经过调整的特征图上与先验框区域内的特征融合生成特征张量(Feature Crop),将特征张量进行融合后输入全卷积层生成候选框,利用 NMS 方法保留置信度较高的候选框。
第二阶段:
  3D 目标检测网络先将候选框与经过调整的特征图进行融合,再对候选框进行分类和回归预测,获取 3D 预测框的类别和位置信息。

4.1.1 数据预处理

(1)3D 先验框的生成
  初始先验框(Anchor Box)生成用以候选区域生成网络的输入数据之一。
选取[-40,40]×[0,70]×[0,2.5]范围(即,激光雷达坐标系中心左右 40 米、前方 70 米且垂直方向上 0 至 2.5 米范围)内的点云数据;然后在每个维度上产生水平和竖直两个方向的先验框;最后,过滤掉空的先验框,得到非空 3D 先验框。
(2)点云数据投影
  将点云数据输入到网络前,需要对点云数据进行预处理,以满足特征提取网络的需求。将原始的三维点云数据投影到二维平面上,即将点云数据投影至俯视图上。
  首先,设置点云数据的分辨率为每像素 0.1 米。然后,选取[-40,40]×[0,70]范围内的点云数据投影至俯视图上,得到分辨率为 700×800 的黑白图像。为增加点云俯视图内数据的信息含量,将垂直方向上[0,2.5]范围内的点云数据信息平分成五层,将不同层的点云数据信息投影至分辨率为 700×800 的点云俯视图上。最终,与原始点云的俯视图构成 700×800×6 的点云俯视图数据,作为特征提取网络的输入数据之一。

在这里插入图片描述
在这里插入图片描述
(a)原始俯视图,(b)-(f)为由下到上第1-5层的点云俯视图。目标物体的点云在投影到俯视图时,尺寸变化很小;且俯视图中目标物体分别占据不同的空间,避免了目标遮挡问题。

4.1.2 特征提取

基于 FPN 的特征提取网络。采用大小为 480×1590×3 的图像前视图和大小为 700×800×6 的点云俯视图作为网络的输入进行特征提取,生成高分辨率的特征图。

4.1.3 候选区域生成

候选区域生成网络的作用是将特征提取网络输出的图像和点云特征图进行处理与融合后,生成可能包含目标物体的候选框
(1)特征融合
  如果直接从高维特征地图(High Dimensional Feature Map)提取特征张量,会极大地增加数据的存储量和 RPN 网络的计算量。因此,需要先将基于 FPN 的特征提取网路输出的全分辨率特征图经由 1×1 卷积层进行降维处理减少参数和运算量。
  然后,调整图像和点云特征图的大小。 将预先生成的 3D 先验框映射到经过提调整的图像和点云特征图上,获得两个感兴趣区域(ROI)。使用感兴趣区域对相应的特征图提取特征张量,再将特征张量的双线性经 3×3 大小的卷积层调整以获得等长的特征向量。
(2)候选区域生成
  先将经过处理的特征张量按像素进行融合,然后采用 RPN 网络对融合后的特征作张量生成目标候选框,并进行目标候选框的分类和回归预测。最后采用NMS 方法对生成的 3D 候选框进行处理,选取最优的 3D 候选框。RPN 方法不仅在 2D 目标检测中具有良好的性能,而且在 3D 目标检测中也具有优异的性能。

4.1.4 目标检测

(1)3D 边界框编码
3D 边界框的回归点有 8 个,针对 3D 边界框的编码方式主要有 3 种
在这里插入图片描述
  (a)为 MV3D 算法的编码方式,过于冗杂;(b)为Axis Aligned 算法的编码方式易导致预测框漂移。作者选择编码方式(c),通过10 维(2×4+2)的向量表示 3D 预测框,实现了编码降维处理,有效地减少了参数量和运算量。

(2)预测框生成
  经由候选区域生成网络生成的 3D 候选框的数量相比于 3D 先验框,已经低了一个数量级,因此选择将 3D 候选框与原始特征图经调整进行融合。利用全连接层对融合后的特征作物进行预测,输出每个候选框的回归信息、方向估计和类别分类。再采用 NMS 方法(非极大抑制)去除冗余的 3D 预测框在,最终输出置信度较高的 3D候选框。

4.1.5 损失函数

  本章损失函数主要分为两个部分,定位损失和分类损失。定位损失采用Smooth L1 函数,分类损失采用交叉熵函数。

4.2 传感器融合的目标检测算法训练及结果分析

4.2.1 KITTI数据集

  使用开源自动驾驶数据集 KITTI 数据集。

4.2.2 数据集训练

4.2.3 实验结果分析

4.2.4 实验结果可视化

FSAC目标检测系统实现

5.1 目标检测系统搭建

5.2目标检测系统实验结果分析

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值