Apollo自动驾驶入门课程第②讲 — 高精地图

目录

1. 高精地图与传统地图

2. 高精地图与定位、感知规划的关系

2.1 高精地图用于定位

2.2 高精地图用于感知

2.3 高精地图用于规划

3. Apollo高精度地图与构建

3.1 Apollo高精地图

3.2 Apollo高精地图的构建


本文转自微信公众号: Apollo开发者社区 原创: 阿波君 Apollo开发者社区 8月9日

上周我们开始带领小白开发者学习 “Udacity X Apollo自动驾驶入门课程”,也收到了很多社区开发者的学习笔记,让我们看到他们热爱自动驾驶、努力学习的信心。希望有更多开发者在学习课程的同时,记录下学习要点,更快掌握Apollo自动驾驶知识。

本周我们将介绍高精地图部分的主要内容,这是Apollo定位、感知、规划模块的基础。

与普通地图不同,高精地图主要服务于自动驾驶车辆,通过一套独特的导航体系,帮助自动驾驶解决系统性能问题,扩展传感器检测边界。目前 Apollo 内部高精地图主要应用在高精定位、环境感知、决策规划、仿真运行四大场景,帮助解决林荫道路GPS信号弱、红绿灯定位与感知以及十字路口复杂等导航难题。


视频链接为:自动驾驶入门课程L2Sebastian_腾讯视频

1. 高精地图与传统地图

当我们开车时,打开导航地图通常会给我们推荐几条路线,甚至会显示道路是否拥堵以及每条路线将花费多长时间、交通管制,例如交通信号灯或限速标志等,我们会根据地图提供的信息来决定是在行驶中直行、左转还是右转以及对周围驾驶环境的评估。

而无人驾驶车缺乏人类驾驶员固有的视觉和逻辑能力。如我们可以利用所看到的东西和GPS来确定自己的位置,还可以轻松准确地识别障碍物、其他车辆、行人、交通信号灯等,但要想让无人车变得和人类一样聪明,可是一项非常艰巨的任务。

这时就需要高精地图了,高精地图是当前无人驾驶车技术不可或缺的一部分,它包含了大量的驾驶辅助信息,最重要是包含道路网的精确三维表征,例如交叉路口布局和路标位置。

高精地图还包含很多语义信息,地图上可能会报告交通灯不同颜色的含义,也可能指示道路的速度限制,及左转车道开始的位置。

高精地图最重要特征之一是精度,手机上的导航地图只能达到米级精度,而高精地图可以使车辆能够达到厘米级的精度,这对确保无人车的安全性至关重要。

2. 高精地图与定位、感知规划的关系

2.1 高精地图用于定位

高精地图是Apollo平台的核心,许多无人驾驶车模块都有赖于高精地图,有了高精地图我们就需要在该地图上进行自定位。这意味,需要弄清我们在地图上的位置,这就是定位——无人驾驶车辆在地图上的确切位置。

首先车辆可能会寻找地标,我们可以使用从各类传感器收集的数据,如摄像机图像数据、激光雷达收集的三维点云数据来查找地标。车辆将其收集的数据与其在高精地图上的已知地标进行比较,这一匹配过程是需要预处理、坐标转换、数据融合的复杂过程。

无人车的整个定位过程取决于高精地图,所以车辆需要通过高精地图明确它处于什么位置。

2.2 高精地图用于感知

无人车也可以使用高精地图来帮助感知,就像人的眼睛和耳朵会受到环境因素的影响一样,无人车的传感器也是如此。摄像机、激光雷达、雷达探测物体的能力,在超过一定距离后都会受到限制。在恶劣的天气条件下或在夜间,传感器识别障碍物的能力可能会受到进一步限制。另外当车辆遇到障碍物时,传感器无法透过障碍物来确定障碍物后面的物体。这时,就需要借助高精地图的帮助了。

即使传感器尚未检测到交通信号灯,高精地图也可以将交通信号灯的位置提供给软件栈的其余部分,帮助车辆做下一个决策。

另一个好处在于,高精地图可帮助传感器缩小检测范围,如高精地图可能会告知我们在特定位置寻找停车标志,传感器就可以集中在该位置检测停车标志,被称为感兴趣区域ROI。ROI可帮助我们提高检测精度和速度,并节约计算资源。

2.3 高精地图用于规划

正如定位和感知依赖高精地图那样,规划也是如此。高精地图可帮助车辆找到合适的行车空间,还可以帮助规划器确定不同的线路选择,来帮助预测模块预测道路上其他车辆将来的位置。

如高精地图可帮助车辆识别车道的确切中心线,这样车辆可以尽可能地靠近中心行驶。在具有低速限制,人性横道或减速带的区域,高精地图可以使车辆能够提前查看并预先减速。如果前方有障碍物,车辆可能需要变道,可帮助车辆缩小选择范围,以便选择最佳方案。

3. Apollo高精度地图与构建

3.1 Apollo高精地图

Apollo高精地图专为无人车设计,里面包含了道路定义、交叉路口、交通信号、车道规划,及用于汽车导航的其他元素。

高精度地图可在许多方面为无人车提供帮助,如高精度地图通常会记录交通信号灯的精确位置和高度,从而大大降低了感知速度。

高精地图不仅可以减少计算需求,还可以通过提供有关驾驶环境的详细信息,来确保无人车的安全。保持这些地图的更新是一项重大任务,测试车队需要不断地对高精度地图进行验证和更新。此外,这些地图可能达到几厘米的精度,这是水准更高的地图精度。

Apollo高精地图是最懂自动驾驶的高精地图,也是业界精细化程度最高、生产率最高、覆盖面最广的高精度图。目前,Apollo高精地图的自动化程度已经达到了90%、准确识别率达到了95%以上,预计2020年可以覆盖全国所有的重点道路。

高精地图有很多种格式,为了方便数据共享,Apollo高精地图采用了OpenDRIVE格式,这是一种行业制图标准。同时,Apollo也对OpenDRIVE做出了改进,进而产生了Apollo OpeDRIVE标准,以便更适合无人车。

3.2 Apollo高精地图的构建

高精度地图的构建由五个过程组成:数据采集、数据处理、对象检测、手动检测和地图发布

数据采集是一项庞大的密集型任务,近300辆Apollo测试车辆负责收集用于制作地图的源数据,以便确保每次道路发生改变时,地图均会得到快速更新。测试车辆使用了多种传感器,如GPS、IMU、激光雷达、摄像机。Apollo定义了一个硬件框架,将这些传感器集成到单个自主系统中,通过支持多种类的传感器,Apollo收集各类数据将这些数据融合,最终生成高精度地图。

数据处理指的是Apollo如何对收集到的数据进行整理、分类和精简,以获得没有任何语义信息或注释的初始地图模板。

对于对象检测,Apollo使用人工智能来检测静态对象并对其进行分类,其中包括车道线、交通标志、甚至是电线杆,手动验证可确保自动地图创建过程正确进行并及时发现问题。Apollo使手动验证团队能够高效标记和编辑地图,在经过数据采集、数据处理、对象检测、手动验证之后,高精地图才能发布。

除高精地图外,Apollo还发布了采用自上而下视图的相应定位地图、三维点云地图

在构建和更新地图的过程中,Apollo使用众包向公众发布其数据采集工具,以便任何人都可以参与制作高精度地图的任务,这加快了高精地图制作和维护的过程。

进阶拓展阅读学习:《Apollo 高精地图技术与应用》

更多详细课程内容,大家可以登陆官网继续学习!

也可以添加社区小助手(Apollodev)为好友,回复“课程学习”进群与其他开发者共同交流学习。

自课程上线以来,浏览量已超10万,已帮助全球97个国家约 7000 名学员入门自动驾驶与 Apollo 开源平台,其中37%为海外学员,本门课程已成为优达学城 (Udacity) 近期获得关注度最高的免费课程之一。

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

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

相关文章

项目总结2:ionic3开发跨平台App如何设置和替换应用图标及启动图

前言: 和原生开发一样,ionic官方提供的设置方式也很简单,只不过多了一个步骤:基于ionic命令的方式自动修改全局的配置文件config.xml。 设置或替换应用图标和应用启动图: 把UI提供的图标拿过来改成特定的名称"i…

LeetCode刷题实战(13):Roman to Integer

题目描述: 13 Roman to Integer 49.5%Easy Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D …

1.Intro to Deep Learning and Computer Vision

Intro 这是Kaggle深度学习教育课程的第一课。 在本课程结束后,您将了解卷积。 卷积是计算机视觉(以及许多其他应用程序)中深度学习模型的基本构建块。 之后,我们将很快开始使用世界一流的深度学习模型。 Lesson [1] from IPy…

SpringMVC常用的视图接口分类及实现类

SpringMVC中常用的视图接口分类及对应的实现类: URL资源视图:InternalResourceView、JstlView 文档视图:AbstractExcelView、AbstractPdfView 报表视图:ConfigurableJsperReportsView等JasperReports报表技术的视图 JSON视图&…

Apollo自动驾驶入门课程第③讲 — 定位

目录 1. 定位的概述 2. 定位方法介绍 2.1 GNSS RTK 2.2 惯性导航 2.3 激光雷达定位 2.4 视觉定位 2.5 Apollo定位 本文转自微信公众号:Apollo开发者社区 原创: 阿波君 Apollo开发者社区 8月17日 上周我们发布了 Apollo入门课堂第②讲—高精地图&…

Linux与Bash 编程——Linux文件处理命令-L1

目录: linux系统与shell环境准备 Linux系统简介操作系统简史Linux的发行版:Linux与Windows比较:Linux安装安装包下载Linux的访问方式远程登录方式远程登录软件:mobaxterm的使用:使用电脑命令行连接:sshd的…

网络编程懒人入门(一):快速理解网络通信协议(上篇)

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、写在前面 论坛和群里常会有技术同行打算自已开发IM或者消息推送系统,很…

PCA算法中样本方差和协方差的无偏估计与n-1的由来

原文出处: http://blog.sina.com.cn/s/blog_c96053d60101n24f.html 在PCA算法中的方差协方差计算公式中除数为什么是n-1? 假设X为独立同分布的一组随机变量,总体为M,随机抽取N个随机变量构成一个样本,和是总体的均值和方差, 是常…

Apollo自动驾驶入门课程第④讲 — 感知(上)

目录 1. 感知的概述 2. 计算机视觉 3. 摄像头图像 4. LiDAR图像 5. 机器学习 6. 神经网络 7. 反向滤波法 本文转自微信公众号:Apollo开发者社区 原创: 阿波君 Apollo开发者社区 8月23日 上一篇文章中,我们发布了无人驾驶技术的 定位篇…

网络编程懒人入门(二):快速理解网络通信协议(下篇)

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、前言 本文上篇《网络编程懒人入门(一):快速理解网络通信协议&#xff0…

为什么说逻辑回归LR是线性分类器?

问题描述:为什么说逻辑回归LR是非常典型的线性分类器? 首先,我们要弄明白区分线性与非线性分类器的标准是什么?是决策边界(Decision Boundary) 以二分类(LR可以用于多分类)为例进行…

朴素贝叶斯算法注意事项(有待完善)

1.朴素贝叶斯算法的优缺点总结: 优点: 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率;分类速度快,准确度高;对缺失数据不太敏感,算法简单,常用于文本分类(如新闻…

网络编程懒人入门(三):快速理解TCP协议一篇就够

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、前言 本系列文章的前两篇《网络编程懒人入门(一):快速理解网络通信协议…

分类问题的模型评估指标总结

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四中不同的组合,构成混淆矩阵(可适用于多分类),通常有这几种主要模型评估指标:精确率(查的准)、召回率(查的全对正样本的区分能力)、F1值(反映模型…

nltk安装punkt等语料库时报SSL错误完美解决方案及离线安装方法

nltk是NLP领域中一个比较通用的国际分词工具,但是使用时往往依赖语料库数据包,需要安装到本地,以下介绍在线安装和离线安装两种方式: (ps:对NLP感兴趣的朋友可以相互学习,我的微信号&#xff1…

7. Deep Learning From Scratch

Intro 这是深度学习第7课。 到目前为止,您构建的模型依赖于预先训练的模型。 但它们不是许多用例的理想解决方案。 在本课程中,您将学习如何构建全新的模型。 Lesson [1] from IPython.display import YouTubeVideo YouTubeVideo(YbNE3zhtsoo, widt…

最实用的Git命令总结:新建本地分支、远程分支、关联和取消关联分支、清除本地和远程分支、合并分支、版本还原、tag命令、中文乱码解决方案、如何fork一个分支和修改后发起合并请求

1.常用命令git、tag整理 1、新建分支本地分支 git branch <branch-name>远程分支 git push origin <branch-name>:<new-branch-name> 2、删除分支本地分支 git branch -d <branch-name> 或 git branch -D <branch-name>远程分支 git push o…

Java基础部分快速复习(以前复习的时候放在自己的新浪博客上)

工作后Java基本没有用到&#xff0c;有时候自己也会把基础过一遍&#xff0c;下面的链接是以前重温的时候整理的Java基础最核心部分的知识点和代码示例放在自己的新浪博客上&#xff0c;如果以后有需要&#xff0c;直接从这里进入&#xff0c;可以快速复习&#xff0c;节省时间…

SQL基础用法总结(以前复习的时候放在自己的新浪博客上)

工作后主要做移动端和前端这一块&#xff0c;后端的知识都是靠自己学习积累的&#xff0c;下面的链接是以前重温的时候整理的SQL基础最核心部分的知识点和代码示例放在自己的新浪博客上&#xff0c;如果以后有需要&#xff0c;直接从这里进入&#xff0c;可以快速复习&#xff…

网络编程懒人入门(四):快速理解TCP和UDP的差异

转自即时通讯网&#xff1a;http://www.52im.net/ 原作者&#xff1a;MeloDev&#xff0c;本文由即时通讯网重新修订发布&#xff0c;感谢原作者的无私分享。 1、前言 对于即时通讯开发者新手来说&#xff0c;在开始着手编写IM或消息推送系统的代码前&#xff0c;最头疼的问…