创新 • 创优 • 创见
搜索
当前位置:主页 > 新闻资讯 >

百度陈竞凯:如何打造安全、智能、高效的自动驾驶技术体系

时间:  2022-11-29 18:11   来源:  汽车总站网    作者:  Summer

[汽车总站网 www.chianautoms.com欢迎你]

2022年11月29日,百度Apollo Day技术开放日活动线上举办。百度自动驾驶技术专家全景化展示Apollo技术实力及前沿技术理念,发布新一代Apollo自动驾驶地图,并在业内首发文心大模型落地应用于自动驾驶的技术。

活动上,百度自动驾驶首席架构师陈竞凯分享了“打造安全、智能、高效的自动驾驶技术体系"的精彩内容。现场实录如下:

百度陈竞凯:如何打造安全、智能、高效的自动驾驶技术体系

大家好,我是百度自动驾驶的陈竞凯。

众所周知,百度在自动驾驶领域已深耕多年,今天我们给大家分享,我们在打造安全、智能、高效的自动驾驶体系中的一些思考。

自动驾驶系统,最重要的是安全,系统设计需要遵从汽车安全体系。我们从功能安全和预期功能安全两个方面来打造我们的自动安全系统。

按照功能安全的设计要求,我们拆解了系统的安全框架和目标,通过适当的冗余,来降低失效带来的危害。

我们在计算硬件、传感器、底盘、通讯的各个层面都构建了冗余,并且完善了故障检测和处理方案,实现全方位的安全。

传统的安全设计,主要是保障司机的可操作,使得司机在故障发生的条件下,有能力处理相应的故障。在自动驾驶系统中,我们需要能够让自动驾驶系统处理这些故障,保证系统安全。

自动驾驶系统不仅仅要处理自动驾驶系统本身的故障,而且要对车辆的各个系统的问题,也作出相应的应对。

比如说当车辆的胎压系统出现问题的时候,我们需要让它能够检出来,能够在车辆运动可能会出现异常的条件下,把车辆安全地停下来。带伤运行会让系统变得不够安全,我们的安全策略是让车辆在发生故障时,使之进入安全状态,而不是继续保持驾驶。

这时候就给我们提了一个不同于主系统的挑战,就是如何在各种各样的道路条件下,当我们发生故障的时候,把车辆进入安全状态。在复杂的道路条件下,我们是不能简单地一停了之的。故障方案必须与真实的道路环境相兼容。我们充分地利用了仿真的系统,去测试一下我们的故障处理策略是不是能够应对当前的故障,去能够应对当前的道路条件。

进入安全状态所需要的能力,通常和完成自动驾驶全功能能力是不太一样的。往往会需求相对小一点。这时候就给了我们一个机会,去平衡可靠性的要求和成本。合理的安全驾驶策略这时候就显得特别的关键,我们在仿真系统里进行了大量的测试,去调整我们的安全处理方案,使得我们在两者之间取得一个比较好的平衡。

自动驾驶系统的能力演进,是按照预期功能安全的框架去思考的,我们会从知道不知道、安全不安全这两个维度去推进自动驾驶技术能力,去提高自动驾驶系统对复杂场景的适应。

大家都知道,一个合理定义的ODD是自动驾驶系统,尤其是全无人自动驾驶系统不可或缺的一个组成部分。我们需要通过大量的仿真和道路测试,来保障我们在ODD范围内的安全驾驶。

但是,自动驾驶不是完美的,道路条件也很复杂,我们想一个详细定义的ODD,尤其是包含动态交互的ODD通常是不太现实的,所以我们在一般的ODD的定义中,通常还是偏向于静态定义,就很难去覆盖所有的道路交互状 态。这时候就需要我们在车端有比较强的检测能力,去检测我们目前的系统是不是运行在ODD下,即使这样我们也会遇到一些超出我们自动驾驶能力的一些状态。这时候我们设计了一个系统,通过我们的经验数据,通过针对我们目前驾驶能力,设计了一个偏召回的风险预警策略,这使得我们能够比较好的判断出我们目前的系统,是不是处在一个可能会不安全的状态,这时候我们会辅以一些云端和路测的手段,来保障安全,使得我们的系统从一个潜在不安全的状态变为一个更加安全的状态。当然了,这种工作一定会对自动驾驶效率会有一定的折损。随着我们自动驾驶能力的提升,我们知道的不安全的状态和场景会越来越少,对应的自动驾驶效率也会逐渐的提高。

在车端,我们也会秉承这样的思路,来做出相应的处理。我们会在主系统之外去构建一些安全的回路来保证,在一些场景下去保证一些突发状态条件下的自动驾驶系统的安全。

自动驾驶系统的能力目前还在一个不断提高的过程中间。我们需要把更多的不知道的问题变成知道的问题,把不能安全通过的场景变成一个能够安全通过的场景,并且我们能够去预知一些可能出现的危险,去通过策略去规避掉一些复杂的危险的场景。车端的持续演进,不断的去发现和改进我们的自动驾驶能力的边界,我们需要在车端有相应的数据挖掘体系,去帮助我们发现这些问题。通过车端的数据挖掘,我们会不断的去发现自动驾驶系统中间处理得不够好的,或者是一些不确定性问题,然后把这些数据上传到云端,通过云端系 统,我们使用数据驱动的方式通过训练、仿真等一系列的工作,来提升我们的自动驾驶能力,去提升我们自动驾驶的安全性。

下面我简单地给大家介绍一下百度的自动驾驶技术体系。

自动驾驶系统应该如何设计?一直都有两个思路:一个是偏学术的,倾向于统一建模,端到端的解决问题;另外一个思路是偏向工程的,去拆分系统,分治突破。

端到端的建模非常的简洁优美,从长远来看,也是一个非常有前途的方向。

在这种思路下,其实在其他的领域里面我们也看到了一些不错的进展,比如说技术模型在NLP领域里面已经取得了统治性的地位。在图像领域,大模型也给我们带来很多的惊喜。同样,我们对于这种端到端的大模型的解决方案, 在自动驾驶系统的发展也充满了期待。

这个方案的问题在于,我们又存在很大的不确定性。我们不能确定它究竟何时成熟,是两年还是十年,这是一个问题。

基于这样的一个认知,我们目前的主要的思路还是沿着工程化的路线在往前推进,同时我们也没有放弃我们在端到端方面上的一些探索。我们在探索的过程中间,我们也会把我们一些阶段性的成果应用到我们的一些路线上。

车载系统大体会分成四个部分:地图、感知、预测决策、规划控制。

地图,是在系统中一个非常重要的组成部分,也经常被大家讨论。自动驾驶系统是不能脱离地图的,因为交通系统本来就是一个规则约束下的系统,自动驾驶是运行在我们的交通实际条件下,当然也不能脱离这个规则的约束,地图恰恰是这个规则系统表达的一个核心框架。

我们认为不管是有没有离线地图,还是说我只是用在线地图,地图总是这个自动驾驶系统的一个底层表达,离线地图是一个超视距的一个整体性的感 知,我们认为,它在自动驾驶系统中间发挥着重要的作用。

大家在谈到离线地图的时候,通常有一个反应说,离线地图制作成本是不是很高?会不会成为我们一些障碍?在我们的实践过程中间我们发现,其实离线地图并不是一个高成本的障碍,反而是我们一个前进的助力。

地图的更新率其实不是一个问题,问题在于,当我们第一次碰到现实世界变更的时候,我们肯定是没有地图的,这时候我们需要能够通过地图的实时性才是它的问题,而不是它的更新率或者它的成本。

在这个问题上,我稍微多说几句。我们大家都知道,把一个问题做好其实并不难,难的是把几乎所有的问题做好,这一点是非常非常难的,在我们目前的实践中间,目前车端的实时生产的地图和规模化生产的地图其实上还是有质量上的一些差距的,这种差距,我们需要什么呢?需要通过我们自动驾驶策略去适应这两种地图的一些质量差异。但这种适应对自动驾驶能力来说是有折损的。

所以我们认为,在目前的条件下,一个规模化生产的高精地图还是不可或缺的,实时地图更多的会被我们用在应对现实世界的变更,这时候我们会把自动驾驶的策略调整到一个更加安全谨慎的方式去通过。

后续际洲会给大家介绍这方面的一些详细的工作。

感知系统,感知系统目前在整个业界的发展思路还是比较统一的,基本上是一个数据加模型驱动的系统。

目前我们主要的分歧是在于,大家讨论的一些主要分歧在于传感器的配置。

我们的判断是这样的,我们应该去充分的发挥各个传感器的能力,因为我们的出发点是说,我们首先要把事情做成,然后再去追求更好、更低成本,这时候我们基于这样的一个考虑。 就是我们的选择就是,去充分地发挥各个传感器的能力,把感知做得更加可靠,更加稳定。

在具体的过程中间,我们从后融合的方案转向前融合的方案,前融合的的方案,使得我们能够充分地发挥各个传感器的优势。另外,我们也会充分的利用百度大模型技术方面的一些积累,去提升我们的感知能力,后续井东会给大家带来详细的介绍。

预测决策系统,预测决策系统是我们直接面对复杂外部环境的一个非常非常重要的部分,我们把系统,在业界通常有一些讨论,我们把这个系统的模块的分界线划到了预测决策和规划控制之间,主要的出发点是,决策问题其实是一个可以引入人工判断的一个节点,这时候我们可以在其中引入更多的人类智慧。

我们把预测和决策放在一起,其实我们后面也是有相应的思考的,我们一般来说,我们认为预测是一个自标注的学习系统,但是其实在真实的世界里, 我们主车是与现实世界是有交互的,这时候我们更倾向于认为预测和决策是一体的,预测很多是我们决策的预言实现。

规划控制:规划控制在传统方案中间是一个优化问题,我们在真实的道路条件下,往往会面临一些求解空间和计算资源之间的冲突。在这一块,其实我们也做了很多的探索。后续我们会给大家展开介绍一下我们在这方面的一些工作。

正如我们前面提到的,驾驶能力的提升表现在车端,但是更多的工作是在云端完成的。

在车载系统的迭代中间,如何能够从数据中学习,从问题中学习,尤其是自动的学习,这是我们一直以来追求的目标。

为此我们构建了我们的数据闭环的系统,并且在自动驾驶技术研发的过程中间就不断的迭代和完善我们这个系统。后续李昂会给大家展开介绍。

仿真系统:仿真系统一直都是自动驾驶的话题中心之一,一个完美的仿真系统是自动驾驶开发者的梦想。尤其是在做一些端到端探索的时候,我们经常会感叹,如果有一个完美的仿真系统是多么的幸福。做一个完美的仿真系统在目前是不切实际的,因为如果我们想在仿真系统中去模拟各种各样的驾驶风 格,而且这种驾驶风格是和人类驾驶是一模一样的时候,实际上我们就做出了一个有不同个性的自动驾驶系统,这一点在目前这个阶段我们觉得还是很难很难的,不太切实际。我们追求的目标是做一个对我们的自动驾驶技术能力提升有用的仿真系统,后面我们会给大家介绍一下我们在这方面的一些工作。

不管是车载系统还是云端系统,自动驾驶都需要算力的支持,这方面我们也会有一些持续的投入。欧阳会在后面给大家介绍一下昆仑芯在自动驾驶系统应用的一些情况。

得益于自动驾驶技术的发展和我们搭建的自动驾驶体系,一方面我们会在研发面向全无人自动驾驶系统,为大家更好的提供出行服务。另外一方面,我们也会落地一些高级辅助驾驶,给司机提供更好的驾乘体验,后续王亮会给大家分享我们在这个方面的一些实践。

我们的最初的自动驾驶系统,预测和决策是分开的。预测是一个带有自标注的一个任务,一直都是数据驱动的,决策、规划、控制,当初沿用的都是一些偏规则的传统方案。

基于规则的方案:我们通常是把遇到的问题划分成各种场景,在每个场景下,针对不同出现的问题,再做相应的处理,为了不让各个规则之间发生冲 突,通常会仔细地限定每个规则的作用范围,一层一层地拆分下去,如果做得好的话,我们会形成一个类似树形的拆分结构;如果处理得不好的话,就会变成一个补丁摞补丁的系统。尤其在后者的条件下,我们会遇到一个无法维护的问题,即使哪怕在前者我们一个高尖端好的树状结构,也会遇到一些我们认知升级导致目前的树状结构和我们的认知不相匹配的一些问题。

规则系统在最初的时候,它是可以最大化人类的经验和一些先验知识,能够迅速地去提升自动驾驶能力,但是随着时间的推移,有两个问题是不可避免的会出现。第一,策略分叉,会导致什么呢?导致每一个规则的迭代,针对的问题会越来越小,这时候投入产出比会迅速的下降。第二、我们在面对城市扩展、场景变化的时候,需要调整规则去适应,而且这种调整的范围往往不是局限在叶子节点上的,而是需要从根到叶整个全面的调整。这种变化会使得我们的规则系统在面临这种迁移变化的时候会非常非常的难以维护。

出于这样的观察,我们认为学习性的PNC是实现全无人的一个必由之路。

正如我们提到的,预测和决策其实是一个问题的两面,预测是我们决策的自我预言实现。所以我们构造了一个预测和决策的多任务系统,联合处理这个问题。我们对道路元素,对信号灯,对自测行为,对道路元素都做了一些建模和交互的处理,最后形成一个预测和决策的一个结果。

这个框架的思路还是比较基本的,但是在我们的实践过程中间,有很多有趣的问题。

因为每一个学习系统,都会面临着一个启动和迭代的问题。在这个过程中间,我们和原先的规则系统是什么样一个关系?在实践中间,我们采取了一种渐进式的改造思路,逐渐地去吸收规则系统。

打个比方,规则系统实际上是我们学习系统的一个学步车,我们要在规则系统的经验的条件下去初始化我们的学习系统。然后再通过一些迭代使得我们的学习系统要超过规则。

在过程中间,其实我们也会发现,在规则系统中间的很多的细小的地方,就隐含了一些决策的操作。这种决策的操作,其实在我们在最初设计这个决策系统的时候,可能会有些漏掉的地方,需要我们后续再不停地去优化和改进的。

我们最终的目标,其实也不是说我要把一个学习系统去完全替代规则系 统,为什么呢?因为两点:第一:我们的交通系统本来就是一个靠规则约束的系统;第二,其实我们也需要规则去守护我们最后的底线。

另外,我们在做一些端到端探索的时候,其实也做了很多很多的尝试。 比如说,大家都知道,百度的搜索和推荐是发展得比较领先的,我们在实际过程中间也会把一些搜索和推荐的技术应用到自动驾驶系统中来。而且我们还有一些意外的、超过我们预期的一些收获。

大家都知道,在学习系统中间,我们直接生成轨迹是比较困难的,因为如果没有一个合适的锚点的话,那生成的轨迹往往比较难以尽如人意。但是我们在使用基于搜索的方法来做轨迹生成的时候。

突然发现一个非常有趣的现象,在一般的场景里面,我们只需要搜索两条轨迹侯选,我们就可以给出99%以上场景的可行的答案。而且在一些相对困难场景下,其实也有不错的一些表现。

基于这个进展,我们就把基于搜索的方案也整合到了我们的系统里面。在对场景进行建模以后,再去构建一些场景的相似性的一些方案。去通过一些搜索的技术,去生成一些轨迹的侯选,我们并没有去把这些轨迹直接作为一个输出,而是说把它作为一个我们规划系统的一个启发的输入。

从实践过程中间我们发现,这种启发的方式能够大幅度的降低我们在整体的搜索过程中间的一些,在优化过程中的一些计算开销。

后来我们整体回顾了一个整体框架,我们发现一个非常有趣的现象,就是我们整体的框架是比较契合人类的驾驶模式的。首先我们在高层语义层次上做出一些决策。比如说我们在一些宏观的层面上作出了一些决策,但是在这个微观轨迹的层面上,我们人类并不是说去做一个详细的优化,而是类似于直接出结果,而我们的检索系统恰恰又跟人类这种直接输出结果的方式,去追求可行而不是最优这种方式,有一种完美的一致。

下面我们谈一谈仿真系统,正如我们所提到的,我们追求的是做一个有用的仿真系统。一个有用的仿真系统,应该满足我们对于问题迭代的需求,一个完整的仿真系统,我们需要在微观层面上,每一个场景上能够做到辅助我们迭代,而且我们要能够让它对整体自动驾驶能力作出一个完整的评价。

仿真系统实际上是我们在自动驾驶技术发展迭代过程中的一个有效的工具。

对此,我们为了完成我们的自动驾驶发展的迭代工作,其实我们在仿真系统的能力构建上做了很多大量的工作,比如说我们做了Worldsim系统,使得能够批量地去构造大量的场景,去验证一下我们在各种各样场景下的综合能力, 另外我们也构造了一个L2W的系统,就是能够精确地复现道路的场景,帮助我们去分析和验证路上的问题。

我们也通过一些动力学的仿真,使得我们能够比较精确的去模拟,去刻画车辆的行为。

在此基础上,我们去构建了一个能够去验证我们的仿真系统和道路系统的一致性,尤其是我们面临一些安全性判断的时候,我们对这个一致性有很高的要求,而且我们构建这样一个仿真系统是能够满足我们的实际需要的。

另外,为了支撑感知能力的迭代,为了支撑我们自动驾驶系统对各个场景的适应,我们也构造了传感器的仿真,实现了对各种光照条件和天气条件的覆盖。我们能够通过高精地图,自动地能够渲染出整个的道路环境,能够端到端地去评测我们整体的系统。

针对迭代过程中间对自动驾驶中的安全、体感、合规等方方面面的要求, 我们也构建了相应的度量体系,去帮助工程师在迭代过程中去更好的评价我们的自动驾驶系统的表现。

同时我们也发展了部分的障碍物交互能力,坦率地讲,在仿真系统中构造障碍物交互是一个比较困难的事,我们目前做的更多的是去排除一些典型的不合理的行为,而不是去构造一个能够进行复杂交互的一个障碍物系统。

作为结果,仿真系统在我们的迭代过程中间,其实也发挥了非常非常重要的作用。我们支持了数百人团队的迭代,在仿真系统我们会日行上百万公里, 一个实际的运行三百万公里,去验证我们自动驾驶能力的进步,同时也在仿真系统里去探索一些我们自动驾驶的一些可能性。

我们都知道,如果仅仅是在单个Case层面上去实现对道路的真实模拟其实不太够的,如何对每一次迭代带来的变化作出一些完整的评价,一直都是仿真系统面临的一个非常大的挑战。比如说我们在面对切车的时候,采取一些占据优势地位,去避免被切的策略,这时候就一定会带来一些后续的交互行为,而这种交互行为在仿真系统是很难模拟的,这时候我们会遇到一些极限的情况, 会导致急刹或者碰撞,这时候我们会面临一个灵魂拷问,这样的场景在路上会不会真的发生?

那如果遇到这样的情况,我们怎么去评价,它是变好了还是变坏了呢?

在实际的工作中间,我们会发现,如果脱离了大规模的数据分布,我们是没法讨论这个问题的,所以在仿真系统中间,一定需要构建一个好的数据集 合。数据其实是仿真系统的灵魂。

为此,我们在针对路上可能会出现的各种情况,建设了丰富的场景库,而这些场景库我们会拿到跟路上去做比对,去看看我们在路上场景的覆盖情况。在我们建设过程中间我们发现,其实路上的场景绝大多数是可以通过大概600、700个场景就能够覆盖住的,后面就是一些分布非常常有的情况,我们在做泛化的时候也发现,其实后面很多很多的情况是不需要做泛化的,这时候我们就针对这个路上常见的700多个场景做了一些详细的维度拆分。比如说,我们举刚提到的这个切车的场景,我们会根据切车的车辆类型、切入开始的距离、速度、速度差、切车幅度、切入时间等等的各个维度,去建设了一个能够去充分刻划这个场景的一个维度体系,并且我们建设了一个相应的自动化的匹配的机制,使得什么?使得我们在路上遇到了一样的场景,我们能够自动的去匹配到我的场景体系上,把它相应维度上的一些参数给它提取出来。

在这样的一个自动化挂接的基础上,我们针对各个场景建立了相应的一些集合,在这基础上我们统计了针对每个场景的,尤其是路上常见场景的一个数据分布。这样的话,我们就可以清楚地了解到,我们这个场景,我们在仿真系统内的真实运行的场景,在我的真实世界里大概会是一个什么样的状态,它发生的概率大概有多大。就是在这个基础上我们就可以去构建一个针对了仿真系统的一个相对被扭曲的分布的条件下,去给出一个正确的度量。

而且这种度量不是像我们刚才提到的,从Worldsim中去泛化出来的这种场景,为什么?因为在那个场景里面我们很多的车辆的行为、车辆的一些参数,其实和自然发生的情况还是会有些区别的,我们把这个真实世界的场景去挂接到这个系统里面的话,其实它的运行也会变得更加的真实和可靠。

通过这样一个体系建设,我们也建设了一些特定的针对我们一些特定需求的一些场景库,比如说针对交通法规的,针对行使安全的,针对主车通行的等等,分别去建设这样的场景库,把它充分的利用到我们的迭代过程中间,去评估每一次的变更带来的能力的变化。

另外其实我们也观察到,我们在从一个城市向另外一个城市迁移的过程中间,这个数据统计、数据的分布是有变化的,这时候要求我们的自动驾驶能 力、自动驾驶的一些策略,从一个城市向另外一个城市迁移的过程中间需要做一些细微的调整,我们整体的场景库也对这个迁移过程提供了很多的保障。

总而言之,仿真系统在我们的自动驾驶技术迭代的过程中间发挥了非常重要的作用,是我们技术能力提升的重要支撑。

今天我就讲到这里,谢谢大家!
 

[汽车总站网 www.chianautoms.com欢迎你]

读者留言
看不清?点击更换

汽车总站网

  • www.chinaautoms.com/由北京茂胜文化传媒有限公司版权所有@2019

    京ICP备18056018号

    合作QQ: 305140880

    地址:北京市朝阳区清河营国际城乐想汇3号楼1612室