近期,百度在深圳举办了第二期“Hello Apollo 自动驾驶公开课”。Apollo 运营与开发者生态负责人张辉,无人车感知核心算法技术负责人陈世佳,高精地图编译团队技术负责人王健,车联网语音语义整体技术负责人陈聪四位重量级嘉宾出席活动,在现场分享了 Apollo 最新的产品与技术干货,与开发者进行了深度交流互动。
本期公开课分享包括百度 Apollo 开放框架、自动驾驶感知现状、高精地图的技术与应用、小度车载系统语音语义设计思路和核心架构,这四个模块的精彩内容。
第一部分:Apollo 开放框架介绍
作为本次活动的开篇,百度 Apollo 运营与开发者生态负责人张辉,先给大家整体介绍了 Apollo 生态的战略目标和开放框架。
在 7 月 5 日的百度 AI 开发者大会上,百度董事会副主席、百度集团总裁兼 COO 陆奇用“开放能力、共享资源、加速创新、持续共赢”16 字宣言概述了 Apollo 生态的战略目标,将以开放对抗封闭,打造汽车界的安卓系统。
Apollo 开放路线图主要包括能力和资源开放两部分,按照时间顺序大致可以分为如下几个阶段:
2017.7:封闭场地循迹自动驾驶、数据平台 1.0、障碍物、Road hackers 数据等;
2017.9:固定车道自动驾驶、人工编程仿真场景数据等;
2017.12:简单城市路况自动驾驶、数据平台 2.0、2D 障碍物标注数据、日志提取仿真场景数据等;
2018.12:特定区域高速和城市道路自动驾驶;
2019.12:高速和城市道路自动驾驶 Alpha 版;
2020.12:高速和城市道路全路网自动驾驶;
Apollo 是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统,从整体架构上 Apollo 平台可以分为以下四层来理解:
车辆平台:支持线控的车辆 ;
硬件平台:计算单元、摄像头、LiDAR、GPS/IMU、毫米波雷达、HMI、Black Box 等 ;
软件平台:实时系统框架、定位、控制、路线规划模块等 ;
云服务平台:仿真模拟环境、DuerOS、安全模块、OTA、高精地图等 ;
张辉表示:“我们需要几个共同语言,一是 Apollo 宣言,这 16 字宣言是我们内心相信和每天遵从的东西;二是路线图,我们会在承诺的时间内开放;三是架构图,将来跟我们交流 Apollo 时,只要说出这三个共同点,大家就是朋友,我们有共同的认知。”
第二部分:Apollo 自动驾驶感知技术
感知技术是什么?
感知属于自动驾驶核心技术,本期沙龙,百度无人车感知核心算法技术负责人陈世佳首次对外公开宣讲了这部分内容。
为了让大家更好地理解,陈世佳老师将汽车上的感知与人类感官进行了类比:人有感知,通过感官器官获取外界信息,传达感知功能区,把形象化的东西抽象成概念性或者更高层的语义,供我们思维记忆、学习、思考或者决策,让我们运动控制功能区,让我们身体对外界进行反馈。无人车类似这样的结构,这是强相关的东西,我们无人车也是一样。下图所示这辆车是 2016 年 12 月乌镇演示车队的其中一台,它有传感器、雷达、摄像头,这是覆盖比较全面的设置,包括视觉、触觉、嗅觉等信息。它需要大脑处理,大脑是无人车里的感知功能模块。
由于感知范围是广泛的,它依赖于人工驾驶或者自动驾驶需要的环境匹配,工况复杂度越高,感知复杂度越高。自动驾驶不同级别里,感知的复杂度也不同。Apollo 目前开放的定位是 Level3 或者 Level4,感知、决策、控制是三位一体的过程。
感知与传感器系统紧密结合,获取外部环境信息,比如有没有障碍物,障碍物的距离、速度等,把数据交给感知处理模块,我们会收集信息,构成人开车时理解的环境。这些信息会被我们决策模块进行分析和提取,在周围环境车辆行驶状况下,下一步怎么走才是安全的。控制模块会让车向前行,感知模块获得新的信息,不停循环,应对更新的环境状态,实现整体良性的循环。
核心:感知用来做什么?
感知的输入跟环境相关。只要符合条件,都可以被列为感知。在 Level3 和 Level4 里定义的细分任务,把输入输出具体化。
障碍物检测,包括人、车、石头、树木等。上图是点云输出,下图是图像感知示例。Level3 检测结果障碍物,对于 Level4 来说,不仅知道这是车,而且可以将其按大车、小车分类,因为大车和小车的开车方式不一样。不同的车,做出的决策规划不一样。你可以超小车,但无法超大车。
我们需要一个很细的障碍物分类,这根据输入的不同划分,有点云分类和障碍物中的分类。著名例子是红绿灯的识别,你需要判断交通灯的颜色。障碍物检测分类,我们得出障碍物信息,这样有利于我们做后续决策。我们要知道每个障碍物可能运行的轨迹,它会不会超车、插入车道或者无故变线,这需要障碍物跟踪。障碍物跟踪是很重要的模块。我们要运用障碍物,也有对场景的分析,我们点云也用到这个。
我们在图像级别会做类似的分割,目的是我们做场景建模和语义化的描述。我们有很多任务,每个任务输入是多源的,包括激光雷达、图像等。如果要用 Apollo 搭建感知系统,如何选择传感器、传感器配置?希望它做什么任务。
这是三种基本传感器的效果对比,LiDAR 是激光雷达,Radar 是汽车通用毫米波雷达,Camera 是摄像头。绿色代表做得好,黄色代表做得普通,红色代表做得差。最后,说明了三种传感器融合效果是最好的。
那么 ,感知系统开放模块怎么做?
点云感知。开放了 LiDAR 点云检测,可以判断点云里的每个点是否为障碍物,障碍物的类型是什么。
感知框架。用的是深度学习,它可以做到精准检测和识别。而深度学习非常耗费计算量。需要依靠搭建的车载智能系统,来支撑深度学习模型,以达到毫秒级感知。
高精地图。先以当前的激光雷达作为坐标系核心,把地图中的点投到坐标系里。然后建立快速的表格,根据感知的距离扩大坐标区域。之后对俯视图进行网格化,网格化参数可以在 Apollo 进行配置。最后输送给障碍物检测。
障碍物检测。分为特征抽取、点云检测、点云聚类、后处理、闭包提取。特征抽取,就是建立一个网格,每一个网格提取的信息对应一个值,每一个网格都有一个特征,拼接形成一张图;点云聚类,是用可信的网格做结果预测;后处理,是由于预测不准,对障碍物的判断会存在误差,所以要通过后处理来精确障碍物。闭包提取,是据朝向补全障碍物的形状。
障碍物跟踪。与障碍物检测相结合,检测结果和历史障碍物进行信息匹配,得出新障碍物列表。并且输出下一帧以什么速度怎样行驶,得出列表。
视觉感知。Apollo 之前版本的视觉感知数据,主要是红绿灯的数据。已发布的 Apollo2.0 同时开放红绿灯检测和识别算法,可以作为视觉感知的典型代表。
红绿灯识别。是根据当前车的位置查找高精地图,判断前方是否有红绿灯。如果有,高精地图会返回红绿灯的物理位置,同时采集视频图像。如果并排很多灯,需要准确判断影响决策的灯。
Apollo 2.0
Apollo2.0 在感知方面有三项新增功能,一是点云分类,二是多传感器融合,三是红绿灯识别。
第三部分:Apollo 高精地图的技术与应用
百度是国内唯一一家既拥有高精地图领先技术,又能提供自动驾驶完整解决方案的全面布局的公司。百度 Apollo 拥有国内最领先的自动驾驶技术,以及国内最大的自动驾驶车队,因此 Apollo 高精地图堪称“最懂自动驾驶”。
公开课里,百度高精地图编译团队技术负责人王健老师为大家分享了“高精地图技术与应用”。
主要包含三个方面的内容:
高精地图在自动驾驶系统中如何发挥最大的作用;
百度高精地图如何制作、制作流程以及制作数据量的大小;
百度制作出的高精地图,百度开放了 Apollo 平台,愿意把地图一起开放,供做自动驾驶的公司和学术单位不需要重复造轮。
高精地图在自动驾驶中如何发挥作用?
Apollo 开放框架中,高精地图排在云服务的第一位,高精引擎排在开放软件平台的第一位。这是一个巧合,但也是重要性的显示。
从云端平台来看,仿真系统无法离开高精地图,仿真系统构建真实道路、真实路况,没有高精地图无法模拟真实路况,车无法从中训练和模拟。高精引擎,通过和云端高精地图联网,它可以为其他模块提供丰富的数据,主要从四方面对自动驾驶提供支持:一是定位,二是感知,三是决策,四是规划。
关于感知——很多地方离开高精地图就没有信号灯,没有参考的“老司机”。高精地图给感知带来的,除了“老司机”,还有探测范围。传感器可以探测 500 米还是 1 公里,只要高精地图有的都可以给你。比如汇入汇出时,你错过一个高速路出口需要多绕几十公里。有了高精地图,你可以提前 5-10 公里感知距离。高精地图不仅包含数据,如果把地图理解为数据,有一定的局限性。高精地图是语义性的数据,这是图标,但这个图标代表什么意思,高精地图在制作过程中赋予语义信息。路灯、交通信号灯,交通信号灯到底有几个灯,带箭头还是不带箭头的灯,提前预知感知模块,减少运算量,提高感知算法的准确率,降低算法设计难度。如果传感器突然坏了,无法感知,如果有高精地图,它可以根据高精地图这个“老司机”继续行驶一段,直到安全的地方。这是高精地图的作用。
关于定位——高精地图如何定位?如果一辆车没有地图,只有相机、雷达,很难知道自己在哪个精确的位置。高精地图提供标准的位置,现在有一种低成本的设计方案,采用单目相机拍摄虚线和实线,把采集的图像和高精地图做比对,通过算法可以知道我当前在道路面的第几个车道。算出车道后解决定位问题,这是横向定位。纵向定位可以借助交通信号灯、路灯、灯杆等实现定位。
关于规划——如果车在路上发现前面有事故或者施工路面,这时候需要变道,高精地图提供了有利的支持。
关于决策——车到了十字路口,高精地图会采集安全岛的信息,复杂十字路口有安全岛,车在决策过程中需要参考安全岛等重要要素,否则这辆车冲上安全岛,导致行人发生交通事故。
在自动驾驶的几个重要模块,包括定位、决策、规划和感知。这几个模块离不开高精地图的支持,有了高精地图可以节省很多传感器的成本,这是加速量产的方法。在自动驾驶行业,暂时离不开高精地图的支持,如果在座各位提出低成本量产方案,可以离开高精地图,基本可以引领自动驾驶行业。
百度高精地图制作流程:
这些年百度和宝马、奔驰、大众和福特等 OEM 进行联合研发,侧面证明车厂对百度高精地图的认可。经过多年的研究和车厂联合开发,百度简化为以下流程:
一是外业采集,传送到内业借助 AI 算法,后来会谈到 AI 算法如何处理要素;
二是根据采集车采集回来的数据进行分类,校验准确性等;
三是人工验证阶段,算法只能保证 90%,为了保证百分百,必须加入人工校验步骤,人工校验结束后可以发布。现在有三级别产品,包括高精地图,三维地图可以满足自动驾驶需要;
四是 ADAS 地图应用广泛在卡车行业和乘用车行业。卡车拉着四五十吨货物,如果它能提前预知前方 1 公里外有一个大坡或者小坡,它可以灵活的控制发动机,进行节能技术的开发,我们跟 OEM 合作中有一定的项目经验。结合 ADAS 地图的卡车能耗节省 30%。地图需要持续的更新。
百度开放高精地图服务:
百度从 2013 年开始高精地图的研究,是国内唯一具备完整的自主知识产权,拥有从采集设备到数据加工全流程自主技术研发能力的高精地图数据提供商。百度 Apollo 平台的高精地图具备“精细化程度最高、生产效率最高以及覆盖最广”三大优势。
2017 年 9 月,百度对外发布了 Apollo1.5,对外开放了包括高精地图服务在内的五大能力。通过开放高精地图服务,Apollo 将帮助合作伙伴实现精准的自主定位,并为决策规划提供精确、充分的数据支持,让自动驾驶车辆掌握“全局视角”。
第四部分:Apollo 小度车载系统语音语义设计思路和核心架构
在 2017 年的百度世界大会上,发布了全球首款人车 AI 交互系统——Apollo 小度车载系统。百度车联网语音语义整体技术负责人陈聪,带大家从车外走到车内,揭秘 Apollo 小度车载系统语音语义设计思路和核心架构。
每次谈到 AI,我们都感觉它是一堆冷冰冰的算法和模型,如何把 AI 的能力转换成带有人性化的产品?这是 Apollo 在思考的。
我们希望基于 Apollo 小度车载系统做到“四个你”:听懂你,看懂你,关爱你,守护你。
想打造好的语音语义系统,关键路径要解决三个问题,一是听清,二是听懂,三是满足。百度是做搜索起家,语音语义理解是百度比较擅长的事情。关于语音,小度的目标非常明确,就是唤醒识别够精准。百度拥有情感语音识别系统,同时还有靠机器学习生成的语音系统。关于语义,小度能够很好的理解用户的意图,在理解意图的基础上,通过对话、场景做更人性化、拟人化的对答。
在听清方面,百度目前做到的核心指标,一是识别上,字准率 97%;二是拥有全球首个超大规模情感合成系统;三是唤醒上,目前在高速 100 迈开窗的唤醒率达到 95%。
在听懂方面,要谈一下百度语义系统背后的一套对话系统。通常说语义包含三方面:技术、数据和内容。包括小度车载系统中的前端对话服务、技能框架和技能数据。数据足够多,技术足够深,是打造对话系统的必要条件。
在满足方面,百度体系内支持 1 万种信息垂类,在百度搜索框里搜索到的东西,都可以在小度的搜索语义中用到。百度挑选了 100 种原生对话技能,是在车载场景下典型使用的原生的对话技能,包括优质资源、知识体系、百亿级知识实体关系。
从分层的角度看看我们这套架构做了什么:
第一层是设备层,面对所有车载设备提供标准解决方案;
第二层是核心层,是小度车载系统的核心能力,用于保证 TTS、ASR、IOV 大脑;
第三层是技能层,是需要可以满足需求的技能。百度目前在全球有 1.4 亿 POI,已经部分开放给行业和开发者。
陈聪老师总结:Apollo 小度车载系统希望做最能听懂用户的对话系统,谈到数据、技术、内容层面。我一直说 AI 能力的赋能,百度第一期开放七大 AI 能力,接下来百度越来越多的 AI 能力会被融入,我们希望做百度 AI 能力的集大成者。
写在最后
Apollo 2.0 已经于 12 月 30 号开放,该版本将支持简单城市道路自动驾驶,可以在 GitHub 获取到代码。美国时间 2018 年 1 月 8 号(中国时间 1 月 9 日凌晨 6:00),将在美国 CES 举行 Apollo2.0 发布会,敬请关注!