APOLLO UDACITY自动驾驶课程笔记——感知、预测

news2025/7/11 0:20:08

1、计算机视觉

无人驾驶车有四个感知世界的核心任务:检测——指找出物体在环境中的位置;分类——指明确对象是什么;跟踪——指随时间的推移观察移动物体;语义分割——将图像中的每个像素与语义类别进行匹配如道路、汽车、天空。

2、Camera图像

RGB图像,深度为3

3、Lidar图像

激光雷达传感器创建环境的点云表征,提供了难以通过摄像头图像获得的信息如距离和高度。点云中的每个点代表反射回传感器的激光束,可以告诉我们关于物体的许多信息例如其形状和表面纹理。

4、机器学习

  • 监督式学习:使用数据和相关的真值标记来进行模型训练

  • 非监督学习:没有真值标记的车辆与行人图像,让计算机自行决定哪些图像相似、哪些图像不同

  • 半监督学习:使用少量的标记数据和大量的未标记数据来训练模型

  • 强化学习:允许模型通过尝试许多不同的方法来解决问题,然后衡量哪种方法最为成功。以多种不同的方向和速度进行实验性驾驶,如果车辆实际完成了右转,智能体会提高奖励即得分。

5、神经网络

受到构成人类神经系统的生物神经元启发,生物神经元通过相互连接构成了神经元网络或神经网络,通过类似的方式将人工神经元层连接起来以创建用于机器学习的人工神经网络。

6、反向传递

三步循环组成——前馈、误差测定、反向传播。每个人工神经元都对其值进行微调,这是基于通过神经网络后向传播的误差,可生成更准确的网络。

7、卷积神经网络CNN:CNN通过维持输入像素之间的空间关系来解决这个问题,CNN通过将过滤器连续滑过图像来收集信息,每次收集信息时,只对整个图像的一小部分区域进行分析,称为卷积。当在整个输入图像上对一个过滤器进行卷积时,将该信息与下一个卷积层相关联。

8、检测与分类:计算机首先需要知道障碍物的位置,然后进行分类。另一个示例为交通信号灯检测分类,首先将使用计算机视觉对图像中的交通信号灯进行定位,然后根据灯光显示颜色对交通信号灯进行分类。可以先使用检测CNN来查找图像中的对象的位置,在对图像中的对象进行定位后,可以将图像发送给另一个CNN进行分类。经典体系结构为 R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD等

9、跟踪:追踪可以解决遮挡问题。追踪的第一步为确认身份,通过查找特征相似度最高的对象,将在之前的帧中检测到的所有对象与在当前的帧中检测到的对象进行匹配。

10、分割:语义分割涉及对图像的每个像素进行分类,用于尽可能详细地了解环境并确定车辆可驾驶区域。语义分割依赖于一种特殊类型的CNN,被称为全卷积网络FCN。1)FCN用卷积层来替代传统CNN体系结构末端的平坦层,现在网络中的每一层都是卷积层,因此名称为“全卷积网络”。2)为了分割像素,输出尺寸必须与原始图像的尺寸相匹配。为了完成,可以对中间输出进行上采样处理,直到最终输出的大小与原始输出图像的大小相匹配。编码器 和解码器。

11、Apollo感知:

1)Apollo将ROI过滤器应用于点云和图像数据,以缩小搜索范围并加快感知。

2)然后通过检测网络馈送已过滤的点云,输出用于构建围绕对象的三维边界框。

3)最后使用被称为检测跟踪关联的算法来跨时间步识别单个对象,该算法先保留在每个时间步要跟踪的对象列表,然后在下一个时间步中找到每个对象的最佳匹配。

4)对于交通信号灯的分类,Apollo先使用高精度地图来确定前方是否存在交通信号灯。如果前方有交通信号灯,则高精度地图会返回灯的位置。后续根据位置,摄像头搜索范围,在摄像头捕获到交通信号灯图像后。Apollo使用检测网络对图像中的灯进行定位,然后从较大的图像中提取交通信号灯。将裁剪的交通灯图像提供给分类网络以确定灯颜色,如果有许多灯则系统需要选择哪些灯与其车道相关。

5)Apollo使用 YOLO 网络来检测车道线、动态物体其中包括车辆、卡车、骑自行车的人、行人。在经过YOLO网络检测后,在线检测模块会并入来自其他传感器的数据对车道线预测进行调整,车道线最终被并入名为“虚拟车道”的单一数据结构中。同样也通过其他传感器的数据对YOLO网络所检测到的动态对象进行调整,以获得每个对象的类型、位置、速度、前进方向。虚拟通道和动态对象均被传递到规划与控制模块。

12、传感器比较:Camera适应于分类,交通信号灯分类、车道检测。激光雷达:适用于障碍物检测;

13、感知融合策略:卡尔曼滤波。实际上有两种测量结果更新步骤:同步和异步。同步融合同时更新来自不同传感器的测量结果,而异步融合则逐个更新所收到的传感器测量结果。传感器融合可提高感知性能,因为各传感器相辅相成,融合也可以减少跟踪误差。

1、简介

1.1、无人车需要预测这些物体的行为,这样才能确保做出最佳决策。在环境中为所有其他的物体做出预测,这些共同形成了在一段时间内的预测路径。这些预测路径为无人车在规划阶段做出决策提供了必要信息。

1.2、预测路径:实时性、准确性、预测模块应该有学习新的行为。

2、不同的预测方式

  • 基于模型的预测:构建两个候选模型,观察移动车的运动,看它与那一条轨迹更匹配。

  • 基于数据驱动预测:使用机器学习算法,通过观察结果来训练模型。数据驱动方法的优点是训练数据越多,模型效果越好。

3、基于车道序列的预测

为了建立车道序列,首先将道路分成多个部分,每一部分都覆盖了一个易于描述车辆运动的区域。为了预测,我们更关心车辆如何在这些区域内转换,而不是在某个区域内的具体行为。例如直行汽车的运动可以描述为车道序列是 0-1-3-7。

4、障碍物状态

为了预测物体运动也需要知道障碍物状态(位置、朝向、速度、加速度、其在车道段内物体的位置),预测模块会考虑从物体到车道线段边界的纵向和横向距离,还包含之前时间间隔的状态信息以便做出更准确的预测。

5、预测目标车道

现在所要做的就是选择车辆最有可能采取的车道顺序,可以通过计算每个车道序列的概率来进行选择。随着记录随着时间的增加,模型可以自我迭代更新,精确度不断提升。

6、递归神经网络RNN在目标车道预测的应用

1) 递归神经网络RNN是一种利用时间序列数据特征的一种预测方法。建立像这样的多重结构的递归神经网络称之为 MLP单元,从数据序列中提取出高级特征,每个MLP单元将序列的一个元素作为输入并预测序列的下一个元素作为输出。为了对元素之间的顺序关系建立模型,在每个单元之间建立一个额外的连接,这意味着每个单元根据原始输入和前一个单元的输出进行预测,这 RNN的基本结构。

2)Apollo使用RNN建立一个模型来预测车辆的目标车道,为车道序列提供一个RNN模型,为相关对象状态提供另一个RNN模型。连接这两个RNN的输出并将它们馈送到另一个神经网络,该神经网络会估计每个车道序列的概率,具有最高概率的车道序列是我们预测目标车辆将遵循的序列。

7、轨迹生成

如何预测最有可能的轨迹?可以先通过设置约束条件来去除大部分候选轨迹,首先假定汽车将与目标车道的中心对齐,继续去除车辆无法实际执行的轨迹。通过考虑车辆当前的速度和加速度从剩余的轨迹中进行选择,实际上我们并没有实际列出所有可能的轨迹并逐一去除它们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Adb找不到设备解决方法

有时候使用adb devices 却找不到设备,而用一些第三方的软件却可以找的到, 除了没有打开USB调试模式,或者没装驱动,数据线有问题,操作系统是精简版系统外, 一般是因为设备的安卓版本太高,导致a…

操作系统内存管理-01分段

前言 本文讲述本文博主在学习80386下 window下段式内存管理。 内存管理往往需要软硬件结合进行管理,CPU定制一套官方规范,要求操作系统按要求实现某些操作即可。本文所述的CPU 分段规范 在intel 第三卷 第三章。 分段概述 我们知道每一个程序会被赋予…

可自定义评教系统(教学质量评估系统)设计与实现(SSM)毕业论文+设计源码+mysql文件

目 录 摘要 I Abstract II 第1章 绪论 1 1.1 课题背景 1 1.2 研究意义 1 1.3 国内外研究现状分析 2 1.3.1 评教指标的过于简单化 2 1.3.2 评教指标的权重过于平均 2 1.3.3 评教结果的可信度和缺乏科学的数据分析 2 1.4 系统开发的主要目标和内容 3 1.4.1 开发目标 3 1.4.2 开发…

C++ 内存模型

1、内存分区模型 C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的(所有代码包含中文注释)全局区:存放全局变量和静态变量以及常量栈区:由编译器自…

使用 Clion (cmake) 运行FreeRTOS

这里使用的是 f4071. 先用STM32CubeMX 建立一个可以运行的stm32项目,toolchain选择 SW4STM322. 官网下载源码www.freertos.org我这里下载的是FreeRTOSv202112.00.zip 解压缩后得到需要以下几个文件夹或档案FreeRTOS/Source下的所有的 .c 档案FreeRTOS/Source/includ…

【附源码】计算机毕业设计JAVA在线图书超市

【附源码】计算机毕业设计JAVA在线图书超市 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

算法刷题打卡第28天:省份数量---广度优先搜索

省份数量 难度:中等 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不…

BP神经网络PID控制从Simulink仿真到PLC控制实现(含博途PLC完整SCL源代码)

单神经元自适应PID控制博途PLC完整源代码,请参看下面的文章链接: 博途PLC单神经元自适应PID控制_RXXW_Dor的博客-CSDN博客_单神经元pid控制1、单神经元作为构成神经网络的基本单位,具有自学习和自适应能力,且结构简单易于计算,传统的PID具有结构简单、调整方便和参数整定…

数据结构 | 树和二叉树的基本概念和性质【考点精析】

树和二叉树🌳树🍃树的概念🍃树的相关概念🍃树的性质和常用公式总结 ⭐⭐⭐⭐⭐🍃树的表示🍃树在实际中的运用(表示文件系统的目录树结构)🌳二叉树🍃二叉树的概…

我与世界杯足球那些事——世界杯征文

征文活动链接: https://bbs.csdn.net/topics/609601920 目录 第一次了解世界杯 第一次观看世界杯 世界杯主题曲 我最热爱的球员 今年世界杯 预测冠军 第一次了解世界杯 提起世界杯,我可能了解的比较晚一些,是在2014年的巴西世界杯的时…

浏览器扩展课程Manifest V3升级版

大家好,经过一段时间的整理,我的《浏览器扩展插件开发》视频课程做了全新的升级。之前的课程也收到了很多反馈。因为Chrome浏览器扩展发布了最新的Manifest V3标准,简写MV3,也发布了新的路线图。2022年1月份开始不接受新的MV2版本…

人工智能CV应用现状与发展 - 讲座记录

简单介绍 ✅CV应用现状与发展前景如何? ✅算法工程师如何自我修炼? CV应用现状与发展前景如何? 模型训练好后,新增场景case,则需要再次进行模型训练。模型固化。 硬件部署,也固化,不同模型部署在不同硬件…

12.PGL图学习之项目实践(UniMP算法实现论文节点分类、新冠疫苗项目实战,助力疫情)[系列九]

原项目链接:https://aistudio.baidu.com/aistudio/projectdetail/5100049?contributionType1 1.图学习技术与应用 图是一个复杂世界的通用语言,社交网络中人与人之间的连接、蛋白质分子、推荐系统中用户与物品之间的连接等等,都可以使用图…

高并发场景下更新数据库报错,记录一次 MySQL 死锁问题的解决

今天隔壁项目组的开发小姐姐找到我,说她们项目正在做压力测试,更新 MySQL 数据库的一张表时,总是发生死锁,日志大概是这个样子的: org.springframework.dao.DeadlockLoserDataAccessException: ### Error updating d…

Java常用类(一)

目录 字符串相关的类 一、String String的特性 String不可变性的体现 String的实例化方式一:字面量的定义方式 String实例化方式二:通过new构造器的方式 字符串的特性 String使用陷阱 面试题 String的常用方法 ​编辑 String与基本数据类型转换 …

TFT-LCD LVGL官方例程的应用

TFT-LCD LVGL官方例程的应用 移植完lvgl的源码和驱动后,就可以试着调用lvgl的官方例程来运行了;例程的目录如下 官方demo是一些比较完整的界面,文件夹里面有.gif的动态图展示,而类型和小部件适合根据需要做一个自己喜欢的界面&am…

TensorRT--学习笔记

官方文档是最权威的TensorRT是可以在NVIDIA各种GPU硬件平台下运行的一个C推理框架。利用Pytorch、TF或者其他框架训练好的模型,可以转化为TensorRT的格式,然后利用TensorRT推理引擎去运行我们这个模型,从而提升这个模型在英伟达GPU上运行的速…

【学习笔记38】JavaScript中的本地存储

一、localStorage 浏览器的本地存储(永久存储), 打开浏览器存储上之后, 关闭浏览器, 信息还在语法:window.localStorage.setItem(key, value)注意: value的值必须为字符串key的书写符合见名知意 window.localStorage.setItem(ceshi1, 1111111);window.localStorage.…

16.预处理、动态库、静态库

C语言编译过程 1.预处理 将.c中的头文件展开、宏展开 生成的文件是.i文件 2.编译 将预处理之后的.i文件生成.s汇编文件 3.汇编 将.s汇编文件生成.o目标文件 4.链接 将.o文件链接成目标文件(可执行程序) Linux下GCC编译器编译过程 gcc -E hello.c -o he…

C++11标准模板(STL)- 算法(std::upper_bound)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 返回指向第一个大于给定值…