论文结构

  • 关键字:无人驾驶方程式赛车,相机,激光雷达,目标检测,传感器融合
  • 一、绪论
    • 1. 感知技术研究现状
      • 1.1.1 基于相机的目标检测技术研究现状
      • 1.1.2 基于激光雷达的目标检测技术研究现状
      • 1.1.3 基于传感器融合的目标检测技术研究现状
    • 2. 本文研究内容
  • 二、目标检测的理论基础
    • 2.1 感知系统介绍
    • 2.2 深度学习基础
      • 2.2.1 神经网络(Neural Network,NN)
      • 2.2.2 卷积神经网络(Convolution Neural Network,CNN)
    • 2.3 传感器标定
  • 三、FSAC赛车的相机目标检测
    • 3.1 相机目标检测算法
      • 3.1.1 目标检测算法原理
      • 3.1.2 目标检测算法网络结构
      • 3.1.13 目标检测算法损失函数
    • 3.2 相机目标检测算法训练及实现
      • 3.2.1 数据集制作
      • 3.2.2 最优算法模型选取
      • 3.2.3 数据集训练结果分析
      • 3.2.4 最有权重模型选取
  • 基于相机和激光雷达的传感器融合目标检测
    • 4.1 传感器融合的目标检测算法
      • 4.1.1 数据预处理
      • 4.1.2 特征提取
      • 4.1.3 候选区域生成
      • 4.1.4 目标检测
      • 4.1.5 损失函数
    • 4.2 传感器融合的目标检测算法训练及结果分析
      • 4.2.1 KITTI数据集
      • 4.2.2 数据集训练
      • 4.2.3 实验结果分析
      • 4.2.4 实验结果可视化
  • FSAC目标检测系统实现
    • 5.1 目标检测系统搭建
    • 5.2目标检测系统实验结果分析

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

一、绪论

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. 《信贷的逻辑与常识》笔记

    序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...

  2. AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟

    AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...

  3. 人工智能入门算法逻辑回归学习笔记

    逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...

  4. 【逻辑回归学习笔记】

    算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...

  5. 逻辑回归函数学习笔记

    继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...

  6. 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授

    逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...

  7. LVM逻辑卷分区笔记

    磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...

  8. 适合理工直男的钟平老师逻辑英语学习笔记

    一切的一切都只是套路!             --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...

  9. 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象

    文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...

  10. 线性回归、逻辑回归学习笔记

    学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...

最新文章

  1. 一文读懂 volatile 关键字
  2. 保护眼睛的电脑设置_电脑文件加密怎么设置?一键快速保护重要文件
  3. 蔚来事故启示录:被夸大的和被误导的自动驾驶
  4. 小米3g刷高格固件_高恪可刷机型清单
  5. Python采集豆瓣网电影资源--疑问
  6. 米谟科技 3D音频VR编辑器——sound flare声弹是什么
  7. 请简述一下”==”和”equals”的区别
  8. python生成测试数据_Python基于Hypothesis测试库生成测试数据
  9. 程序员如何用“心“表白(结尾附源码)
  10. Python 爬虫、抓包
  11. matlab的给平面图,matlab画相平面图
  12. 疫情反弹,传统企业如何做好线上营销获客?
  13. 2022-2027年中国降糖药行业市场调研及未来发展趋势预测报告
  14. 阿里内部的那个牛逼带闪电的Java诊断工具arthas终于开源了
  15. 混淆的C代码竞赛2006.请解释sykes2.c
  16. 初学tms320f2812的一些总结
  17. FileZilla Server 0.9.43 中文版 安装教程
  18. Unittest参数化
  19. Failed to connect to gitee.com port 443: Timed out
  20. Unity3D内DllImport的使用,以及对第三方C/C++/Objective-C编写的类库的广泛支持

热门文章

  1. 基于Web的商城后台管理系统的设计与实现
  2. 关于支付宝沙箱支付时提示系统有点儿忙,一会再试试解决方案
  3. vue+echarts GL3d中国地图
  4. java计算机毕业设计问卷调查系统源码+数据库+系统+lw文档+mybatis+运行部署
  5. 信息安全方向就业要考哪些证书?
  6. 业务系统如何集成工作流引擎?
  7. 洛谷P1556 幸福的路
  8. 网络推广50种方法必看
  9. 北京航空航天大学 素数(java)
  10. 如何查看网卡的驱动和驱动mod的详细信息