导图社区 百度Apollo脑图- 自顶向下的自动驾驶之路
本文根据个人理解对百度Apollo Day做一个解读,也希望这篇文章能帮助那些对行业感兴趣的朋友更多了解这家有着中国自动驾驶黄埔军校美誉的技术公司在技术路线上的进展与思考。
编辑于2024-07-18 19:14:36这是一篇关于DPIA流程和模板的思维导图,主要内容包括:DPIA模版,DPIA概述和范围,如何执行DPIA,可接受的DPIA标准,DPIA解决什么问题,DPIA执行标准。
本文翻译了GDPR并且添加了解析,深入剖析GDPR的各个方面,可以更好地理解这一法规的重要性,并为企业和个人在数据保护方面提供有益的指导和建议。非常有价值。
这是一篇关于信息安全技术 、数据安全能力成熟度模型Informatio的思维导图,主要内容包括:附 录 C (资料性附录) 能力成熟度等级评估流程和模型使用方法,附 录 B (资料性附录) 能力成熟度等级评估参考方法,DSMM架构,附 录 A(资料性附录) 能力成熟度等级描述与 GP,DSMM-数据安全过程维度,DSMM-安全能力维度。
社区模板帮助中心,点此进入>>
这是一篇关于DPIA流程和模板的思维导图,主要内容包括:DPIA模版,DPIA概述和范围,如何执行DPIA,可接受的DPIA标准,DPIA解决什么问题,DPIA执行标准。
本文翻译了GDPR并且添加了解析,深入剖析GDPR的各个方面,可以更好地理解这一法规的重要性,并为企业和个人在数据保护方面提供有益的指导和建议。非常有价值。
这是一篇关于信息安全技术 、数据安全能力成熟度模型Informatio的思维导图,主要内容包括:附 录 C (资料性附录) 能力成熟度等级评估流程和模型使用方法,附 录 B (资料性附录) 能力成熟度等级评估参考方法,DSMM架构,附 录 A(资料性附录) 能力成熟度等级描述与 GP,DSMM-数据安全过程维度,DSMM-安全能力维度。
百度Apollo脑图- 自顶向下的自动驾驶之路
概况
时至今日,百度仍旧凭借其长年的行业积累,国内最大规模的运营车队及行驶里程,数个城市的商业化运营等成绩保持着第一流的行业影响力。外行看热闹,内行看门道,同样是技术分享,这次Apollo Day与之前其它一些自驾企业的技术分享比起来,对于技术的原理和思考也更加细致详尽,给人颇多启发。
多源融合的地图
百度等代表的自顶向下方案与Tesla最大的不同在于地图的运用上。而在Apollo Day的技术分享中,百度着重强调了轻成本,重体验这两大原则。
地图的核心价值是熟路
这里所说的地图并不特指高精地图HD Map,而应该是由自动驾驶需求出发,针对不同地图互补特性而专门设计研发的地图,他可以来自不同来源的地图融合,甚至可以来自车端实时的感知以及车云一体的V2X技术,而百度称之为自动驾驶地图。
百度的自动驾驶地图不仅包括静态图层,还包括融合实时感知信息以及交通信息的动态图层,还有结合大规模交通数据得到的驾驶员行为知识图谱信息的知识图层等。
而研发生产这样的地图是有着非常高的壁垒,这些壁垒既包括国家对地图等测绘信息严格管控的资质壁垒,还包括要高效低成本生产地图所需要的技术能力以及对自动驾驶行业的深刻理解。因此预先布局地图底图生产,拥有国内最广泛使用的地图APP,亿万用户,拥有庞大采图车队,开发过街景,并且最早开始高精地图探索研发,最早开始布局自动驾驶的百度无疑在自动驾驶地图方面拥有其独特的优势。
安全方面
在安全方面,百度利用离线地图解决车端实时感知在面对遮挡物体,标识磨损,新旧重叠等问题时候的缺陷;同时利用融合在线感知和百度地图大数据交通信息,解决道路改道,交通事故等离线地图难以解决的动态问题。
舒适性
在舒适性上,主要利用的地图的超视距能力,以及从大量百度地图用户驾驶行为数据和宏观交通数据来规划更合理速度,提前变道,平滑转向等。
效率性
在高效方面,利用百度APP的交通流速度估计,利用百度交通大数据,规划更合理高效的形成,缩短出行时间提高效率
地图的核心竞争力是轻成本
1. 地图的上述优点基本已经是行业常识,而地图的致命伤在于其采集的成本,以及更新维护的效率。针对这一点百度则是利用自己的技术积累尝试予以应对。
2. 百度建图技术的核心竞争力总结了三点:
基于路网拓扑的多层次划分,并通过局部地图优化,保证每个子图块内的地图是连续精确的,再对优化后的局部地图进行关联匹配,进行合并,形成更大的地图,最终保证整个高精地图是相互关联且连续准确的,整个过程可以当作是运用一个分而治之的策略,在逐渐自底向上逐层合并的过程。
针对局部地图间的关联上,百度训练了场景分类器来识别不同的场景,再根据场景识别结果,使用差异化的匹配策略来更好的找到匹配关系,例如城市场景的匹配因为城市GPS多径效应可能不能过度依赖GPS位置先验信息,隧道场景横向约束比较容易找到,纵向则存在歧义,因此不同场景需要定制的策略来更好的获得正确的匹配和关联。
利用learning based方法来识别重叠区域,以及仅对重叠区域进行关联配对的预测,这样可以更有针对性的找到正确的匹配管系。例如上图右下角模型不仅预测了两块子图的重叠区域(红色部分),还给出了可能的匹配特征点对(绿色箭头)。
3. 上述技术实现了高效准确的地图几何图层构建,接下来就是模型从几何图层自动提取语义信息,包括道路元素识别,特征矢量提取,语义特征与几何图层关联等步骤,最终形成具有几何层、语义层和拓扑层的高精地图。
文心云端大模型
云端大模型降维增强车端能力
1. 文心大模型的第一个主要作用在于通过云端大模型增强车端小模型性能。这个主要体现在两方面:
利用云端大模型进行将无标签数据转化为有标签数据来对车端模型进行训练,从而提高小模型能力。从下图可以看到,整个训练,标注过程采用迭代的多轮方式进行,逐步提高大模型输出伪标签的准确度,从而针对无标注数据生成有效标注,丰富数据集,从而提高车端小模型能力。
利用蒸馏等技术将大模型能力向下迁移车端小模型。从下图可以看出这里百度在多尺度特征,2D检测头,3D检测头三个位置使用了蒸馏技术来训练车端小模型,从而使小模型能力趋近于大模型。模型蒸馏技术来自于人工智能泰斗Geoffrey Hinton的研究,可以理解为用大模型的特征层以及2D,3D输出的Soft编码来作为监督信息,强制车端小模型在同样输出的前提下尽量逼近云端大模型的输出以及中间结果的分布,从而获得趋近于大模型的能力,但同时计算量仍保持小模型的计算量。
2. 除了图像感知模型的蒸馏外,大模型还利用了特征蒸馏增强了车端激光雷达Encoder部分的能力,并且在BEV感知中也利用大模型在图像平面2D、3D的检测结果对BEV模型的中间特征使用了Side Loss方法进行了监督。这里Side Loss可以理解成一种正则化约束技巧,通过添加与输出无关但能辅助模型进行训练的中间过程Loss,来督促模型学习到有意义的中间结果,从而提高最终模型输出的性能,这里要学习的中间层结果就是图像平面感知结果,而最终模型输出结果就是BEV坐标系下的感知结果。
大模型构建数据挖掘能力
文心大模型的另一个重要作用在于赋能了云端数据挖掘。我们都知道百度是一个以搜索引擎技术为核心的公司,而自动驾驶云端数据挖掘与搜索引擎技术则有着十分紧密的联系,这也使得百度在这一领域的投入和成果变得顺其自然。而文心大模型在这里的使用方法我个人觉得很受启发,其方案见下图
将相关联的图像/视频与其描述文字进行配对(描述文字可以来自人工标注,可以来自公开数据集例如ImageNet的标签,也可以来自于百度搜索的关键字和图像),然后通过云端大模型利用对比损失做Loss进行训练,保证模型可以提取文字和图像的共同内在语义信息,这个语义信息特征向量就作为数据的标签用来构建数据底库。这样在数据构建阶段,例如通过跟自动驾驶关联紧密的百度街景数据图像,以及大模型在街景图像上识别出的物体标签就可以获取语义特征向量,然后将图像数据和特征向量一起存储在数据底库中。在对数据进行定向检索挖掘的时候,可以使用文字描述,例如塑料袋,然后利用云端模型得到塑料袋的语义特征向量作为索引信息,给进数据底库进行搜索就可以得到相关的图像数据;也可以利用一个corner case的图作为种子,同样得到语义特征向量,也给进底库搜索也能搜到类似的数据。
数据闭环
数据的质量大于数量
数据的质量大于绝对数量,这个结论显然是对于那些已经迈过第一道门槛,让数据飞轮初步转起来可以获得源源不断真实数据的企业来说的。百度之所以开始关注数据质量或者叫做纯度,也是因为百度不断扩大运营L4车队的数量和范围,已经具有了较强的数据收集能力作为基础。这里虽然百度车队数量无法和Tesla这样的车厂抗衡,但是凭借更丰富完善的传感器设备布置,车端高精定位能力,长期商业化运营,百度的数据收集能力还是Robotaxi公司中最强的一档,如此大量的数据如果全量回传云端,显然对于通信,流量以及云端存储都是不可能接受的重担。因此提高数据质量的第一步就是对于数据进行筛选。这里数据筛选其实有两道门槛,分别是车端提取,以及云端提取。
车端算力有限,却是数据回传的第一道门槛,使用车端已经拥有的小模型就可以对数据特征的相似性进行分析,从而在数据选择上更聚焦,主动筛选回传那些感兴趣的数据,而不至于造成流量和通讯的过载。
云端拥有计算能力更强大的大模型,因此可以对更大量的数据进行分析检索,数据挖掘检索方案可以参考文心大模型中国呢数据检索部分内容
自动驾驶能力提升来自于数据使用的效率
1.持续自动的模型训练
持续学习首先要自动的获取训练数据,这就使用到之前提到的数据挖掘方面内容。例如下图,对漏检的小狗利用云端大模型进行特征提取,右图中每个圆点可以看做是数据在特征空间下的语义特征向量,我们有一些白色点是漏检的种子数据的特征向量,在特征空间中搜索与种子数据近邻的数据作为挖掘到的数据(图中蓝色圆点),另外在正负样本(左侧标有+号的为正样本,右侧标有-号的为负样本)分界线上对于特定模型有一些难以判断的数据(图中橘色圆点)则组成了不确定样本(由于不确定样本对于训练任务的难度较高,所以可以通过在训练中使用更高的权重进行梯度下降,以获得更好的判断结果,这一点凸显了不确定样本挖掘的重要性),把这些样本一同加入云端自动训练pipeline里,通过AutoML的方法自动搜索超参数和训练模型,就可以不断得到候选模型。这一自动持续学习流程的高效率一方面取决于挖掘出的数据的载入速度,另一方面取决于AutoML超参搜索和模型训练的计算效率。
为了提高数据消化效率,在数据载入方面百度利用了他们Paddle团队研发的PaddleFlow对数据载入速度进行优化,使云端数据读取速度提升了10倍。
而在提高模型训练的计算效率方面,则利用了基于AutoML的理念在云端利用PaddleCloud分布计算能力和云端强大算力对模型族,模型训练超参数,模型设计参数等进行搜索训练,而且这些训练的模型不仅包括车端小模型,还有云端大模型,以及实验阶段的候选模型等。这些模型共同构成了云端候选模型库,并且模型的存储包括模型的超参(决定模型训练的动态过程)以及模型的参数(模型静态参数),基于这样的模型库在不断有新数据加入的前提下,在云端持续通过指标对模型进行评估比较,就可以选用指标最优的模型应用在车端和云端。
2. 多模块联合优化
自动驾驶的目的是提高最终的自动驾驶性能,可是自动驾驶中由于不可微模块的存在,导致端到端的优化很难实现,因此自动驾驶技术被拆成可独立优化的上下游模块。而单独训练一个模块使用的优化目标函数与整个自动驾驶系统的目标函数存在较大的分布差异,因此训练一个单独模块获得更好的指标不能保证整个自动驾驶系统的性能提升。而多模块联合优化则是考虑模块自身目标函数的同时,也考虑系统评价指标综合进行优化,以期获得模块自己和整个系统相结合的最优解。
3. 分布提取
数据的分布提取包含几层不同的含义。首先是它的表示方式,可以利用标签化和场景化的分类对数据分布进行表征。其次如上面联合优化中提到,局部模块与整体系统可能存在目标函数不统一的问题,其根本原因在于局部模块与整体系统数据分布不一致。于是百度想到,可以利用标签和场景对数据加以表征,然后在最终自动驾驶评测指标中利用这些中间模块的表征对问题分布加以分析,以指导中间模块的模型训练。
仿真和MLOPS使迭代和测试变得高效
除了数据筛选和数据消化外,百度的云端工具链还包括仿真系统和MLOPS相关SaaS软件。除了数据筛选和数据消化外,百度的云端工具链还包括仿真系统和MLOPS相关SaaS软件。
百度云端工具还具有较完备的SaaS产品,包括上述的数据闭环工具链以及与数据驱动相关的MLOps软件等,整个技术栈参考上图,这里不详细介绍。