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

Apollo实战——障碍物感知和路径规划能力实战

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

相比于最基本的Apollo 1.0版本,Apollo 2.0版增加的主要功能模块是感知和规划。首先,我们回顾Apollo的感知模块。每种传感器都有自己的优势和劣势,如图所示。从图中可以看出没有一种设备可以满足所有的场景,只有将各种设备融合在一起才能达到相对稳定感知结果。也就是从Apollo 2.0开始,我们开始使用多传感器融合的方式做感知。多传感器融合需要对不同的传感器进行标定。
Apllo进阶课程31-Apollo实战——障碍物感知和路径规划能力实战_第1张图片
感知的核心功能是进行障碍物的识别、分类、语义分析和障碍跟踪。

规划的目的是告诉车辆按一条什么样的路经行驶,其代码逻辑如下图所示。顶层左边部分是规划的容器。它有几个核心元素:参考线、高精地图、规划器Planner、轨迹发布。
Apllo进阶课程31-Apollo实战——障碍物感知和路径规划能力实战_第2张图片
在根据教程搭建了具备感知和规划能力的平台之后,开发者更希望根据自己的场景进行深度定制。为加速研发过程,百度提出了“云+端”的研发迭代模式,所谓的“云”大家都能理解, “端”指的是车辆端。

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

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

Apollo建立了一个数据平台,对数据的采集、存储、使用进行管理。

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

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

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

Apollo在云端提供了与车端一致的硬件计算能力,如图所示。该计算平台基于Docker和GPU的集群构建,并且部署了PaddlePaddle、TensorFlow、 Caffe 等主流深度学习框架。此外,还有一个可视化展现平台,供大家了解结果。
Apllo进阶课程31-Apollo实战——障碍物感知和路径规划能力实战_第3张图片
最后我们再来回归一下开发的流程。

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

之后可以通过数据集验证算法的效果。依此不断迭代,直接在云端完成算法训练,提升整体的效率,如下图所示。
Apllo进阶课程31-Apollo实战——障碍物感知和路径规划能力实战_第4张图片

你可能感兴趣的:(自动驾驶)