进阶课程㊸丨Apollo实战——障碍物感知和路径规划能力实战

原创 阿波君 Apollo开发者社区 2月12日

环境感知在自动驾驶汽车应用中占据了核心地位。一辆车要实现自动驾驶,障碍物感知是最基础也是最核心的功能。

上周阿波君为大家详细介绍了「进阶课程㊷丨Apollo实战——车辆与循迹驾驶能力实战」。

此课程主要介绍了在搭建完自动驾驶车辆的软、硬件环境以后,通常采用循迹测试进行验证,以及进行验证的步骤有:第一步是要实现一个适配层;第二步是Can卡的管理;第三步是控制模块。

本周阿波君将继续与大家分享Apollo实战——障碍物感知和路径规划能力实战的相关课程(本节课程基于Apollo 3.0版本)。下面,我们一起进入进阶课程第43期。

完整版视频学习 请戳『阅读原文』

以下,ENJOY

相比于最基本的Apollo 1.0版本,Apollo 2.0版增加的主要功能模块是感知和规划。首先,我们回顾Apollo的感知模块。每种传感器都有自己的优势和劣势,如图1所示。从图中可以看出没有一种设备可以满足所有的场景,只有将各种设备融合在一起才能达到相对稳定感知结果。也就是从Apollo 2.0开始,我们开始使用多传感器融合的方式做感知。多传感器融合需要对不同的传感器进行标定。

在这里插入图片描述
图1 Apollo中感知模块涉及传感器的属性列表

感知的核心功能是进行障碍物的识别、分类、语义分析和障碍跟踪,如图2所示。

在这里插入图片描述
图2 感知模块的主要功能

规划的目的是告诉车辆按一条什么样的路经行驶,其代码逻辑如图3所示。顶层左边部分是规划的容器。它有几个核心元素:参考线、高精地图、规划器Planner、轨迹发布。

在这里插入图片描述
图3 规划模块的逻辑结构

在根据教程搭建了具备感知和规划能力的平台之后,开发者更希望根据自己的场景进行深度定制。为加速研发过程,百度提出了“云+端”的研发迭代模式,所谓的“云”大家都能理解, “端”指的是车辆端,如图4所示。

在这里插入图片描述
图4 百度提供的云+端的研发迭代环境

大概的流程是首先从车辆路测中积累海量的数据,将积累的数据传递到云端,然后利用云端服务器集群的强大计算能力去生成深度学习模型,并在云端做回归测试。最后将经过验证的模型更新到车辆上,赋予它新的迭代能力。
一般来说,我们将数据分为几类,如图5所示。

在这里插入图片描述
图5 自动驾驶数据分类

  1. 原始数据,各种传感器、车辆、驾驶员行为等。数据种类繁多,维度不同,数据量大,而且大多是非结构化数据,对于存储、传输、处理提出非常大的挑战。
  2. 标注数据,视觉的2D障碍物数据、红绿灯数据、3D点云数据等。
  3. 逻辑数据,包括完美感知、环境的抽象以及车辆动力学模型等。
  4. 仿真数据,包括参数模糊化数据、三维重建数据等。

Apollo建立了一个数据平台,对数据的采集、存储、使用进行管理,其基本功能如图6所示。

在这里插入图片描述
图6 Apollo的数据管理平台

首先我们通过data recorder工具按预先定义的格式生成数据,利用云端的传输机制将数据快速传递到云端。其次,我们构建了一个自动驾驶数据仓库,将海量数据成体系地组织在一起,可以快速搜索,灵活使用。最后,云端拥有基于异构系统的自动驾驶的计算平台,提供强大的计算能力。

当前,Apollo开放了六类训练数据,如图7所示。

在这里插入图片描述
图7 Apollo开放的数据

  1. 2D红绿灯,用来识别交叉路口红绿灯数据,可以用做训练、测试和验证。
  2. 2D障碍物,比如车辆、行人、自行车,还有其他未知类别的图像数据。
  3. 3D障碍物,其实是激光雷达点云。
  4. 端到端的数据,提供适合end-to-end模块的数据。
  5. 场景解析,像素级的语义标注,比如车辆、背景、交通指示牌、障碍物等,可以用来做整体环境的识别。
  6. 障碍物预测,用来训练预测算法的数据集。

此外,Apollo还发布了一个叫Apollo Scape的学术性项目。Apollo Scape开放的数据在量级、复杂程度和精度方面都比业界有名的Kitty、citi scapes大一个数量级,目的是推动整个自动驾驶行业的发展,如图8所示。

在这里插入图片描述
图8 Apollo scape项目

Apollo在云端提供了与车端一致的硬件计算能力,如图9所示。该计算平台基于Docker和GPU的集群构建,并且部署了PaddlePaddle、TensorFlow、 Caffe 等主流深度学习框架。此外,还有一个可视化展现平台,供大家了解结果。

在这里插入图片描述
图9 Apollo训练平台

最后我们再来回归一下开发的流程。

作为一个开发者,开发流程从本地开始,本地开发之后可以通过Docker镜像传到云端。然后在云端的计算环境中,通过调度云端的计算资源去训练算法,通过数据接口层调用六大类数据进行训练。

之后可以通过数据集验证算法的效果。依此不断迭代,直接在云端完成算法训练,提升整体的效率,如图10所示。

在这里插入图片描述
图10 基于云+端的迭代开发流程

以上就是本节课程的主要内容了。

-----END-----

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值