将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 2

2024-05-05 08:52

本文主要是介绍将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

第五章 感知模块

我们俗称自动驾驶要回答几个问题:

  • 定位-“我在哪儿 (where am I)?”
  • 感知-“我周围是什么 (what’s around me)?“
  • 预测-“下一步会发生什么(what will happen next)? “
  • 规划-“我要做什么(What should I do)? “
  • 控制- “怎么做(How to do)?

感知模块相当于自动驾驶车辆的“眼睛”,它跟传感器直接相接,获取大量传感器的数据输入,然后分析处理后得到周围环境的理解,包括障碍物检测,跟踪和距离估计,车道识别和分割,交通标志和红绿灯识别等。由于现在自动驾驶系统都是装载多个多种传感器,所以传感器融合是必要的也是重要的感知部分,甚至一些系统把它单独列出来,独立于感知模块。
本章从5.1车载各种传感器的标定开始,5.2介绍了单目摄像头测距的各种方法,以及5.3单目图像的深度估计算法;接着5.4分析了目前单目摄像头的3-D障碍物检测方法,即3-D目标长方体框在图像的投影而不是2-D矩形框而已;然后5.5对障碍物跟踪方法展开讨论,包括单目标和多目标情形;传感器融合是重要的问题,5.6从数据级和任务级两个层次分析了融合的方法;5.7、5.8和5.9主要讨论车载视觉系统关心的三个问题:车道线检测、交通牌识别和红绿灯识别; 5.10重点讨论视觉摄像头看到的可驾驶区域问题,即语义的道路分割;5.11是基于立体视觉的感知模块分析;由于行人的行为分析需要,人体姿态估计在5.12讨论; 5.13特别提到驾驶员监控系统(DMS)的实现算法;5.14对当前最新的BEV感知系统做深入讨论。

关于BEV的介绍片段:
在这里插入图片描述
第六章 高清地图

“高清地图(HD map)”概念于2010年Mercedes-Benz首次引入,随后于2013年为Bertha Drive 项目做出贡献。在Bertha Drive项目中,Mercedes-Benz S500以完全自主的模式完成了Bertha-Benz Memorial Route,使用高度精确且信息丰富的3D路线图,该路线图后来被一家名为HERE的参与地图公司命名为“高清(HD)实时地图”。
高清地图(HD Map),在自动驾驶领域被看得很重,因为它能提供先验知识,让感知难度降低,同时规划有的放矢。
高清地图不是新的东西,已经有一些地图和自动驾驶公司开始制作和使用HD Map。但是,HD Map的制作和包含的信息以及精度仍然没有统一的共识。
本章6.1首先介绍高清地图的基本类型、层次、格式和制作方法,然后6.2重点讨论语义地图的各种生成方法,6.3强调车道线级别高清地图的制作方法,最后6.4介绍基于深度学习的SLAM方法。

关于高清地图制作的介绍片段:
在这里插入图片描述
第七章 定位模块

就道路上的自动驾驶车辆而言,首先重要的任务之一是将车辆定位在道路上。为此,车辆需要考虑来自多个传感器的信息,并将其与来自道路地图的数据融合。道路定位问题可以归结为三个部分:第一个是车辆当前行驶的道路确定;事实上,全球导航卫星系统还不够精确,无法自行推断出这些信息,因此需要一个滤波步骤;第二个是估计车辆在车道中的位置;最后第三个是评估车辆当前行驶的车道。这里讨论主要限于后两个部分,因为第一个在基于导航地图的定位中已经有成熟的方案,比如地图匹配(车辆位置与地图的路网相匹配)等。
有两种技术适合这个任务。第一种方法取决于高清地图存储的地标精确位置(例如车道标记),系统必须将检测的地标与地图中存储的地标相匹配。第二种技术完全依赖于车载传感器检测视觉地标,例如道路上的所有车道;然而,由于其他车辆的遮挡,有时无法检测到道路上所有车道标记;提取的相关道路级特征送入一个高级融合框架,该框架评估车道数和车辆行驶的车道。本章只限于讨论第一种方法。
基于地图的定位实际上分成两个阶段。在位置识别(place recognition)阶段,将传感器输出与一组地理标记的感兴趣地图区域进行比较,确定车辆在地图中的初始位置。随后,在地图度量定位(map metric localization)阶段,不断将传感器输出与经过的地图当前区域对齐,这样车辆在地图上运动的同时被跟踪。
因此,定位需要感知模块提供数据输入和地图的信息进行匹配;那么类似于感知模块,定位模块也会采用传感器融合的思路,即采用GPS/DGPS(如RTK),IMU,摄像头,激光雷达加高清地图的组合。
GPS定位是经典的方法,但是环境中电磁波的传播会因为天气、大气层,高楼大厦和山丘等因素产生时间误差,并造成估计的距离误差。为了补偿部分误差,提出了差分GPS即DGPS,比如RTK技术。千寻网络背靠中国兵器工业集团和阿里巴巴集团两个大公司,在全国提供这方面的服务。
还有另外两个定位算法:分为里程计法和惯性导航法。里程计( Odometry ) 是一种被广泛应用的方式,通过安装在车轮上的光电编码器(wheel encoder)记录车辆的运动过程从而估计其位置。惯性导航法(IMU)则利用加速度计和陀螺仪实现定位,里程计由于轮子侧滑会带来误差,而惯导的积分累积误差也会带来困扰,里程计和惯性导航的定位精度一般比较差,最好和GPS或者激光雷达/摄像头联合使用实现航位推测(dead reckoning)。
激光雷达点云数据做定位的方法,是要求感知输入的激光雷达点云(有的方法允许反射图)和高清地图的点云匹配,直接ICP计算量太大。大家熟悉的算法,常用的有正态分布变换(NDT,normal distributions transform),还有斯坦福大学的直方图滤波器(histogram filter)和粒子滤波(particle filter)之类。算法要求车载系统有激光雷达传感器,能够实时采集现场点云数据。也有压缩点云数据的快速匹配定位方法,比如TomTom的RoadDNA,Civil Maps的指纹图(Fingerprint Map),定位难度和精度上会有所折衷。
摄像头定位是视觉里程计或者视觉SLAM采用的,以前有不少研究“基于图像的重定位(Image-based Re-localization)”问题,用于SLAM的闭环(loop closure)检测和跟踪失败(tracking failure)恢复等等。SLAM方法包括稀疏法、致密法和半致密法,但在自动驾驶这个场景中,稀疏法是最合适的。不过,单纯靠视觉的特征点来实现定位是不足的,还需要语义目标的辅助,即语义地图。在自动驾驶中,语义地图最实用的是基于车道线的地图。
本章是前一章高清地图的衔接,首先7.1介绍低成本的基于车道线地图的定位技术,然后7.2讨论基于激光雷达的定位算法,接着7.3分析多传感器的融合定位方法,最后7.4介绍基于深度学习的定位方法。

关于深度学习的视觉定位分析片段:

在这里插入图片描述
第八章 规划(包括预测)模块

自动驾驶中的规划模块是确定车辆的动作,它基于输入的感知结果,而结果将送入控制模块确定车辆的实际操作。前面提到感知相当于自动驾驶的“眼睛“,那么规划的作用就相当于”大脑“,是非常重要的模块。
首先,需要确定几个专业词的表述:路线 = route;路径 = path;轨迹 = trajectory。
本章8.1首先介绍基本的规划理论,分三个层次,即路线规划、行为规划和运动规划;8.2讨论驾驶行为建模和预测,主要是基于数据驱动的机器学习方法;8.3扩展到行人行为的建模和预测问题;最后8.4附带讨论如何学习老司机的驾驶技术,是8.2课题的深入。

关于运动规划的讨论片段:

在这里插入图片描述
关于神经规划器的介绍片段:

在这里插入图片描述

关于车辆预测方法的分析片段:

在这里插入图片描述

这篇关于将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961296

相关文章

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后