自动驾驶--预测技术

news2024/9/20 1:22:00

根据百度技术培训中心课程整理( https://bit.baidu.com/productsBuy?id=72)

背景简介

无人车系统从算法模块可分为三个部分,首先是感知通过对传感器数据和环境信息进行计算来解决周围有什么的问题,其次是预测,根据感知信息预测环境下一步将发生什么,最后有规划控制模块综合考虑周围障碍物的预测结果和本车的目的地,来决定接下来本车该做什么。

 

对于预测模块,综合地图和感知信息来对周围障碍物未来的行动进行估计。预测有三个显著的特点(1)实时性、(2)准确性 (3)可学习性。

预测技术

首先思考两个问题,

(1)人来驾驶员如何进行预测?

一般来说,人类驾驶员会根据自己的驾驶经验和当时的环境情况,统筹考虑安全和可通行的方式进行驾驶。他自己是不会具体预测出障碍物未来的位置、速度分别是如何的。

(2)算法层面如何进行预测建模?

但是对于无人车的预测算法而言,我们需要对障碍物的风险行为进行具体的量化和建模,给出障碍物未来的预测轨迹,供我们后来的规划控制模块使用。运动障碍物主要有三类汽车,自行车和行人。 

下面主要考虑汽车的行为预测建模。

由于地图中的道路是非常复杂的,汽车在道路中的行为包括左转,右转,掉头,出环岛,进环岛等行为,由于道路的复杂性,我们很难对道路方向和汽车行为进行穷举,因此我们需要进一步的抽象。我们的方式是把地图上的所有未来的道路抽象成Lane序列,Lane序列是地图将道路划分的基本单元。对于任意一辆车,在地图中的任意一个位置,我们都可以获得这辆车未来走的一个lane的序列。那么通过障碍物车辆未来会走哪个lane序列进行打分和建模,以此来预测车辆的未来行为。我们会同时输出车辆未来行为的lane概率和加速度。因此将预测问题变为二分类问题和回归问题进行求解。考虑到我们的问题需要判断障碍物历史信息的变化,具有一定的时序性,因此使用递归神经网络进行建模。

下面是我们行为预测学习框图,分为离线部分和在线部分。

在离线端对Record数据进行清洗和标记,同时通过特征提取器,抽取一些原始特征和对一些高阶特征进行选择,结合了我们抽取的特征和样本,我们会训练RNN模型来进行预测。

在线端,我们会实时接收Channel消息,包括感知的数据,地图的数据,定位的数据等等。我们会在线进行特征的抽取和生成,最终调用离线训练出来的RNN模型,实时进行行为预测。

纵上所述,行为预测学习框图可以分为三个部分工作,分别是样本工程,特征工程和模型优化。这三个工作也是机器学习中最重要的三个部分。

下面分别介绍这三部分工作,首先介绍样本工工程的工作。

我们通过对自动驾驶历史数据进行回放,针对障碍物的前20帧数据进行特征抽取,将障碍物未来第30帧的行为进行label程序,以此构成模型的样本。

 

对于样本,是需要进行合理样本清洗工作的,比如对感知噪声过大的数据进行平滑和过滤,包括感知数据的抖动,短时间内过大的速度,heading变化。其次删除无意义的样本,例如静止的车辆。

 另外,还需要进行样本选择的工作,由于我们行为识别当中,绝大多数车辆都是直行,换道的车辆比较少,我们会对直行的车辆进行降采样,确保换道的特征能够被模型学习到。而一般而言,对于深度学习模型,数据量越丰富越好,因此尽可能多地进行样本采集。除此之外我们还需要根据地图标识的变化,感知策略变化等及时更新我们的样本流,确保样本特征分布的一致性。什么是一致性呢?就是说我们要保证线下训练用的数据的版本和我们无人车在路测版本是一致的。

 其次是特征工程方面的工作,特征的好坏对机器学习模型效果的影响是巨大的。

我们对障碍物呢抽取了若干特征类特征,第一类是车辆本身的特征,第二类是车辆相对于道路(lane)的特征, 第三类是车辆相对于未来道路的特征。

同时,由于一个障碍物 的行为会受它到周围障碍物的影响,为此,我们还抽取了周边的障碍物特征。我们通过对空间的划分,对车辆周围障碍物的速度,距离,以及预计发生碰撞的时间进行了抽取。我们调研发现,当加入了周围障碍物的特征时,我们的模型能分析出分析出障碍物前方有静止车辆时,它提前换道的意图。我们能够提前近半秒左右对车辆换道的行为进行预测,确保了无人车的安全。

 

最后是模型优化的工作,对于预测这个时间序列化的建模问题我们采用RNN网络建模,我们也使用传统的LSTM模型。因为网络当中的输入包括了目标障碍物特征,未来道路特征,周围障碍物特征。他们会经过LSTM 输出给后面的MLP网络,同时,对于周围障碍物这样一个非时序的周围障碍物直接输出给MLP网络。整个网络的输出是有两个输出的,分别是目标lane序列的概率及走目标lane序列的加速度的预测值。这就对应刚开始所说的,我们将整个车辆预测的模型分解成了一个二分类的模型和一个回归模型进行预测。最后我们会根据算出来的加速度和速度,画出障碍物的轨迹。

 下面看一下未来的规划。

未来的规划主要由三部分组成,首先对于我们预测模块本身,从样本、特征、模型角度继续深度优化,提高精准度,提供更丰富的信息供后面的决策使用,可以适用更加复杂的场景。其次,对于前级的感知,我们预测后续希望引入更多的信息,比如转向灯,进行综合的预测。最后,未来希望输出空间危险区域的概率分布,代替现在的轨迹点,这使得更合理对无人车进行规划。

 小结

最后,做一个小结。预测模块主要是解决接下来环境要发生什么的问题。通过对障碍物未来的行为进行了lane序列建模,使得这样的一个问题变成了机器学习的二分类问题和回归问题。对于机器学习的问题,从样本、特征、模型三个角度进行优化,确保无人车的安全与舒适。

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

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

相关文章

Java单元测试

1. 序言 1.1 工作中要求进行单元测试 毕业进入公司时,为了锻炼笔者的Java基础,老大给笔者分配了平台化开发的工作,基于Spring Boot Mybatis的Java Web后端开发一个人干后端开发,且以前也没有后端开发的经验,所以只是…

CTF之序列化__toString

序列化简介 本质上serialize()和unserialize()在php内部的实现上是没有漏洞的,漏洞的主要产生是由于应用程序在处理对象,魔术函数以及序列化相关问题时导致的。 当传给unserialize()的参数可控时,那么用户就可以注入精…

【应用】Docker Swarm

Docker SwarmDocker Swarm 集群配置配置前准备初始化 SwarmSwarm 常用命令Portainer 集群管理Docker Swarm 集群配置 masternode1node2192.168.86.133192.168.86.131192.168.86.139 配置前准备 关闭各个节点服务器的防火墙 systemctl stop firewalld systemctl disable fire…

ATF问题二则:EL3可能没有实现吗? aarch32中的S-EL1是什么?

最近两个问题,戳到了我的知识盲点,当然我这个菜鸡ATF哪里都是盲点。 问题一:EL3可能没有实现吗? 问题二:bl2是aarch32, 那么bl2是S-EL1,bl31也是S-EL1? 1、EL3可能没有实现吗? The Armv8-A …

基于MATLAB的一级倒立摆控制仿真,带GUI界面操作显示倒立摆动画,控制器控制输出

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 一个可以活动的小车上立着一根不稳定随时会倒下的杆。小车的轮子由电机控制,可以控制小车电机的转动力矩M。同时,也可以获取小车轮子转动的圈数N(可以精确到小…

java计算机毕业设计ssm实验室设备管理系统5k648(附源码、数据库)

java计算机毕业设计ssm实验室设备管理系统5k648(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xf…

162.基于Django-rest_framework的身份验证和权限

1. 概述 到目前为止,程序的API对任何人都可以编辑或删除,没有任何限制。我们希望有一些更高级的行为,进行身份验证和权限分配,以确保: 数据始终与创建者相关联只有经过身份验证的用户才能创建数据只有数据的创建者可…

嵌入式Linux上ifpulgd的使用配置与qemu模拟验证

问题引入 最近在项目开发中收到了一个非常简单的需求,我们的嵌入式Linux板卡需要在检测到网口插拔后重新配置网络,这在pc环境中非常常见。但是在这个项目的默认SDK中并没有相关配置,稍微查询了一下,在一般pc上通常使用Ifpulgd,并…

[附源码]Python计算机毕业设计Django企业售后服务管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【数据结构】树的概念与堆的实现

树的概念与堆的实现1、什么是树1.1 树的概念1.2 树的相关概念1.3 树的表示2、二叉树概念及结构2.1 概念2.2 特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储结构3、二叉树的顺序结构及实现3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现3.3.1 创建一个堆3.3.2 初始化堆3.3…

【计算机毕业设计】基于JSP的网上购物系统的设计与实现

分类号:TP315 U D C:D10621-408-(2007)5883-0 密 级:公 开 编 号:2003214012 学位论文 基于JSP的网上购物系统的设计与实现 基于JSP的网上购物系统的设计与实现 摘 要 近年来,随着Internet的迅速崛起&#xff0c…

内存 分页、交换空间

目录 1. 分页 1.1 地址转换 1.2 页表存在哪里 1.3 列表中究竟有什么 1.4 分页的优缺点 2. 快速地址转换(TLB) 2.1 TLB 的基本算法 2.2 谁来处理 TLB 未命中 2.2.1 硬件处理 2.2.2 软件(操作系统)处理 2.3 TLB 的内容 …

[附源码]Python计算机毕业设计SSM精准扶贫系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

(免费分享)基于springboot,vue公司财务系统

该系统是一个简单的公司财务管理系统,包含用户基本信息管理(员工管理,管理员管理),工资管理(员工工资管理,管理员工资管理),业务管理(员工业务管理&#xff0…

Windows server 2012搭建用户隔离FTP站点

Windows server 2012搭建用户隔离FTP站点 系统添加FTP功能创建FTP登陆账户和其使用的文件夹D盘根目录下创建FTP站点主目录ftp文件夹ftp下创建用户主目录localuser(名称不可更改,实现用户隔离必要步骤)Localuser文件夹下创建对应用户的文件夹…

opencv入门笔记(二)

目录图像运算位运算位与运算位或运算取反运算异或运算位运算特点示例:位运算示例加法运算示例:查看三种加法运算的区别滤波器均值滤波中值滤波高斯滤波双边滤波示例:查看多种滤波器的处理效果视频处理示例:打开笔记本电脑内置摄像…

轻量化神经网络(移动设备上的神经网络)的整体框架

提示:不断更新中 文章目录一、为什么要引入轻量化神经网络二、模型压缩(Model Compression)参数修建低秩因子分解参数量化知识蒸馏人工神经架构设计三、自动压缩和神经架构搜索(Automated Compression and Neural Architecture Search)自动模型压缩(Automated Model…

【软件工程】白盒测试:基本路径测试

基本路径测试是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行的路径集合,从而设计测试用例的方法。 步骤(以一段代码为例): (1)画出控制流图 void sort(int num,int t) 1. { 2. i…

MySQL数据库的SQL语句

MySQL数据库的SQL语句MySQL的常用数据类型MySQL数据类型及含义char与varchar的区别MySQL的基本命令登录数据库查看MySQL数据库版本查看当前服务器中的数据库查看MySQL库中的表查看表的结构(字段)SQL语句SQL简介及分类创建新的数据库创建新的表添加表中各…

卡尔曼滤波之基本概念和状态观测器

图裂参考原文:https://www.cnblogs.com/odesey/p/16937124.html 1. 为什么使用 Kalman Filters? 1.1 什么是 Kalman Filters? Kalman Filters 是一种优化估计算法。下面使用使用两个例子说明 Kalman Filters 的用处。 例子1: …