您的位置:首页 > 运维架构 > 网站架构

干货曝光(一)|资深架构师首次解密“Apollo”!

2018-01-05 14:32 246 查看
origin: http://www.sohu.com/a/160518000_795622 2017-07-28 10:52
自 7 月5 日,百度在首届 AI 开发者大会宣布开放 Apollo 自动驾驶平台以来,受到了社会各界的广泛关注,更在自动驾驶开发者群体中引发了热烈反响。

在7月22日举办的第73期百度技术沙龙上,百度自动驾驶事业部资深架构师、数据平台专家杨凡,百度自动驾驶资深架构师何玮,百度智能驾驶事业部资深架构师郁浩三名讲师在中关村创业大街车库咖啡,向参加沙龙的三百多名开发者们深度解析了Apollo平台与智能驾驶方案。



沙龙现场,开发者们对本场演讲相当期待,座无虚席。



QA环节开发者们积极提问。



我们将陆续分享三位资深架构师的演讲干货。首期,为大家带来杨凡讲师的主题演讲内容:

|《Apollo能力开放与资源开放》

杨凡,数据平台专家,百度自动驾驶事业部资深架构师,专注海量数据体系和数据平台建设和 Apollo 云端产品架构设计。



以下是主题演讲内容:

一、Apollo计划与共赢





“Apollo宣言是我们的信条,也代表了我们对自动驾驶的理解。自动驾驶是汽车诞生百年来最重大的事件之一。同时对中国是巨大的挑战和机遇。”——杨凡



自动驾驶是一个系统级工程。构成Apollo有多个平台模块,每一个单独拿出来都可以作为非常深入的单独领域发展。自动驾驶的挑战是要把这些完美的结合在一起,并且需要解决非常强的安全可靠问题。这对于无论任何一家企业都是巨大的挑战,我们Apollo合作伙伴一起构建一个开放生态,通过大家一起合作来解决。

实际上Apollo的开放分成两大部分:能力的开放和资源的开放,它们之间相辅相成,缺一不可。



Apollo 可以提供完整、开放、安全的自动驾驶模块,来实现生态伙伴和合作伙伴的共赢。有Apollo的自动驾驶能力赋能,与各个车企和运营公司提供的场景结合,通过Apollo广泛的生态合作伙伴为生态补充更多能力,可以形成解决方案,满足各种各样场景。

二、 Apollo 1.0

l 自动驾驶技术栈



自动驾驶分成四层技术栈:

1. 参考车辆平台,一辆车要完成自动驾驶,必须要实现电子化的控制,也就是线控,这是最底层的一步。

2. 参考硬件平台,为了实现计算能力需要计算硬件平台,飘蓝部分是已经开放的单元:包括计算单元,GPS/IMU、HMI Device。

3. 软件平台,它是最核心的部分。可分成三层,最底层的是实时RTOS系统,要求保证实时反应;再上层是运行框架;在上层是Apollo 1.0开放三个模块,分别是定位模块、控制模块以及HMI人机交互模块,这三块构成了循迹驾驶体系。

4. Apollo 1.0还开放了云端数据平台,以及唤醒万物的DuerOS能力。

这样的技术层次构成了整个技术栈。

l Apollo 1.0 应用效果



Apollo循迹车搭载了Apollo 1.0技术,双车实现快速穿插自动驾驶,这对控制的要求非常精细,Apollo 1.0已经可以实现非常精准的控制。通过Apollo 1.0的赋能,Apollo美国合作伙伴的工程师三天就完成了一辆封闭场地循迹自动驾驶车辆的组装调试。

l 自动驾驶挑战与云端资源



自动驾驶智能的核心在于需要深度的AI算法,这又依靠海量大数据、高性能计算。数据分层原始数据、标注数据、逻辑数据和仿真数据四个层次。原始数据由Lidar、摄象头、雷达、GNSS、IMU、CAN总线等数据构成,每辆车每天产出的全量数据都可能是T级别数据,这样车队产出的数据可能会达到P级别数据,这对数据处理的挑战是非常巨大的。

光有原始数据还不够,为了做深度学习养料,要教会机器数据表达的是什么,这就需要标注。进而需要对逻辑的理解和各种模型的刻画。要呈现一个完整的自动驾驶要解决相当多的问题,还需要构建更广泛的场景,重组出无穷的场景,成为仿真数据。从而实现日行百万公里能力,真正验证一辆车、一个方案的可行度。中国特色的马路上,有站在十字路口的交警,有汽车、三轮车、电动车,以及近期大热的共享单车和川流不息的行人。不仅如此,还有各种各样实施路况,井盖没了、积水、甚至栏杆被别人碰了一下道路就完全不一样等等,都需要对数据的大量积累。



这次Apollo1.0开放了几个关键的数据集,一是基于摄像头的2D红绿灯检测,这是完成道路自动驾驶中最难的环节之一;二是基于激光雷达的3D障碍物检测和分类,这也是对自动驾驶感知最重要和最难的环节;还有Road Hackers,端到端的模型也是一个很热的领域,把自动驾驶行为当成一个完整的函数,传感器的数据就是输入,车辆的横向和纵向控制就是输出。

如何使用呢?深度学习的标准算法研发流程是这样的。在编写算法后,经过数据准备开始训练,训练出来的结果成为一个model,在一定轮数后拿出来做一个预测评估,之后把不正确的case拿出来,然后进行进一步调优。如果是基于规则性算法的研发,不需要训练部分,但是其他部分都是一样的,都是不断尝试调整的过程。



数据是海量的,每一次都取出大量数据训练、验证,如果是靠拖数据下载,是很难被开发高效运用起来。这一次我们把整个流程都在云端实现了,把我们在自动驾驶内部研发中解决瓶颈的解决方案开放出来。在海量的数据仓库可以和云端用户空间紧密结合在一起。需要用户先通过云端Docker Repository,下载一个基于本地的VM+Docker而开发环境,然后需要编写训练和预测两部分算法,配置所有的依赖环境。



将这个镜像推回到Docker Repository,然后通过可视化训练调试平台,把用户本机算法容器,在云端提供的CPU和GPU集群中跑出来。这样数据仓库的数据就非常容易地被算法训练利用起来。通过云端,用户可以利用海量数据训练出model,自己选取有效的model来使用。

回顾一下整个流程,需要从模板镜像到本地环境、开发算法、小数据测试、大数据训练、大数据预测,然后再进行调试,这也是我们这次数据开放平台的特色。

三、 Apollo 2.0展望



淡紫色标注部分是Apollo 2.0中要进一步开放的。

l 仿真能力

在2.0中仿真能力是最重要的能力之一。Apollo 2.0会在虚拟车中提供3D路况,会在虚拟世界中重构整个场景,会提供插件能力,实现快速迭代。

l 高精度定位

在2.0中高精度定位技术非常重要,现在大多数车的主流定位是基于RTK能力,虽然非常有效,但是因为建筑物遮挡、信号问题、稳定性问题会有很大不确定性。而通过多传感器融合以后,就可以非常稳定的得到定位。

l 云端的感知算法

在2.0里,还会把云端的感知算法训练出的模型与车端结合安装到车上。基于3D激光雷达的障碍物检测,可以精确到底是车辆、行人还是自行车,这样规划模块可以精确计算出运作轨迹是怎样的,从而完成精确的避障。基于2D摄像头的红绿灯识别也会安装到车上,这样就可以非常精确的遵守城市路口的交通规则。

Apollo是一个开放的、完整的、安全的平台,通过这个平台生态伙伴会得到和构建开放能力、资源共享、加速创新、持续共赢。

以上是杨凡讲师在本次沙龙上的分享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐