#特斯拉的“纯视觉”路线 , 也许不是最好的

BEV+Transformer+占用网络技术路线的大热,再次将激光雷达推向风口浪尖。

激光雷达该不该被抛弃?

对车企来说,这是一个艰难的抉择:是坚定不移跟随特斯拉走具有「性价比」的纯视觉路线,还是采用看起来「成本稍高」的激光雷达融合方案?

要回答这个问题并不难——尤其是当你洞悉事情的真相是反常识的时候。

比如,去除激光雷达,看起来减掉的是智能驾驶系统的 BOM 成本,整车成本也随之下降了,但冰山之下的隐性成本增加了多少,你计算过吗?

再比如,占用网络的白名单可以覆盖包括机动车、行人、两轮车、锥桶、水马、路面、树木等十几个常见的「道路物体」,但白名单之外的物体,它能看见吗?

在城市 NOA 大规模落地前夕,整个智能驾驶行业需要重新审视纯视觉方案背后的成本和技术难易程度,以及激光雷达的核心价值。

「抄特斯拉作业」是否是最佳选择?在城市 NOA 落地浪潮下,车企如何集中优势发挥所长?

这些都是需要被优先考虑的问题。

01 模仿特斯拉,不该忽略纯视觉路线背后的「隐性成本」

「4 颗以下,请别说话。」这可能是此前汽车行业「卷」激光雷达最出圈的表达。

到今天,激光雷达仍然是绝大部分头部车企新车的标配。从蔚小理,再到华为(问界、阿维塔)、极氪、零跑,激光雷达在国内能够快速量产上车,很大程度上是由他们直接或间接推动的。

激光雷达的风靡,来自其带给消费者的科技感和安全感。

而当「降本」的旋风刮来,在特斯拉跑通纯视觉方案之后,「去激光雷达」的声音又此起彼伏。

短期看,拿掉激光雷达,「降本效果」立现。

然而从长期看,车企需要为这一选择投入更多的研发资源。

禾赛科技战略负责人施叶舟认为,「在考虑成本的时候,不能够只看到硬件成本,实际上更要考虑背后所需要各种研发服务和资源投入,也就是『全成本』——除了冰山上面的显性成本(硬件、BOM 成本),还有大量被忽视的隐性成本。」

这里所称的纯视觉技术路线中的「隐性成本」,包括算法、路测、云计算、数据标注、仿真训练和系统软件等。

特斯拉前 AI 高级总监 Andrej Karpathy 曾在公开演讲时说到:「纯视觉能够精准感知深度、速度、加速度信息,实现纯视觉是一件困难的事情,还需要大量数据。」

换句话说,特斯拉作业并不好抄,门槛和壁垒极高。

w~自动驾驶合集11_自动驾驶

这主要体现在三个方面:

一是海量数据。

特斯拉的自动驾驶算法是业内公认能力最强、投入最大、研发最早的。截至目前,特斯拉 FSD 累积行驶里程已超 5 亿英里,Autopilot 使用里程已经超过 90 亿英里。

特斯拉的自动驾驶系统每天可以接收到车队回传的 1600 亿帧视频数据,支持神经网络训练。众所周知,数据积累取决于累计交付量和行驶里程,如此大的数据体量,也意味着需要投入大量的时间成本。

其次是自研芯片。

特斯拉自 2014 年开始自研芯片之路,2019 年发布了 FSD 自研芯片。

为了提升数据处理能力,为进一步的深度学习量身定制,2021 年 8 月,特斯拉发布了用于神经网络训练的自研芯片 D1,D1 芯片基于 7nm 工艺打造,算力可达 362TFLOPS。

D1 芯片具备较强的可扩展性,25 个芯片可组成一个计算模块,而 120 个计算模块可以组成外界熟知的「Dojo ExaPOD」超级计算机。

第三是围绕算法训练搭建的超算中心。

在特斯拉自建的大数据中心中,使用了 14,000 片 GPU 芯片,其中 10000 片用于 AI 训练的 H100,4000 片用于数据标注。

据了解,一片 H100 芯片官方售价 3.5 万美元,尽管在黑市被炒到 30~40 万元人民币,依然是「一片难求」。

特斯拉上线 H100 GPU 集群的同时,还激活了自研的超级计算机群组 Dojo ExaPOD,开启云端算力竞赛,以支持自动驾驶技术的更新迭代。

Dojo 于 2023 年 7 月开始生产部署,马斯克曾表示,到 2024 年,特斯拉还将向 Dojo 再投资 10 亿美元。预计到 2024 年 10 月,Dojo 算力会达到 100Exa-Flops。

从这个角度看,光是算法训练的芯片投入就十分惊人,达到数十亿元。

基于这样的数据,我们可以做一个简单的数学推算:

假设要开发一个特斯拉式纯视觉路线的高阶智能驾驶系统,这个方案总投入大约在 200 亿元。

试想一下,要压低这个成本需要多大规模的销量?

——当汽车销量到 2000 万辆时,每辆车的自动驾驶成本可以降到 1000 元。

——而当汽车销量只有几十万、上百万辆时,这笔投入该如何摊销?

当前,特斯拉累计销量超过 400 万辆,其所释放的规模效应让友商们难以企及。因此,特斯拉选择视觉路线,不只是「算法能力强」,更是建立在巨大的保有量、车载芯片自研、数据回环和自动化标注、自建超算中心训练模型等一系列能力之上的综合实力。

02 占用网络不是「万能钥匙」激光雷达仍是「最佳助攻」

2016 年 1 月 20 日,在辅助驾驶状态下,一辆特斯拉撞上了一堵静止的水泥隔离墙上。这是特斯拉首起「自动驾驶」事故。

当时,对特斯拉的唱衰之声不绝于耳。但经过 7 年探索,特斯拉如今在自动驾驶领域一骑绝尘。当特斯拉跑通自动驾驶之后,其他车企开始转向了「大模型」路线,沿着特斯拉从 BEV 向占用网络迭代之路进化。

不过,即便不惜成本投入堆起来的「占用网络」,对于通用障碍物的识别仍然无法做到「天衣无缝」。

w~自动驾驶合集11_自动驾驶_02

占用网络,是一套基于神经网络的算法,是在时序对齐、多帧数据融合下构建的 4D 网络。

「因为拼接了很多算法,涉及到多帧融合。不可避免就会有一定程度的延时。」对于国内车企来说,在车端有限的算力之下,如何兼顾「高精度」和「低延时」存在诸多考验。

更重要的是,占用网络技术会因视觉缺失 3D 信息而导致漏检、误检。

为了视觉算法输出结果比较准确,需要源源不断的数据输入和迭代以提高精准度。

在车辆覆盖没有到一定规模前,尚且无法获得更多数据——这正是不少车企现阶段对「去掉激光雷达」保持谨慎,而选择「摄像头+激光雷达」融合感知路线的原因。

相比于算法,激光雷达具备「硬件本能」,不需要经过大量复杂的计算和假设,以及数据训练就可以得到纯视觉方案需要的某些数值。

相比纯视觉方案,激光雷达能够应对不易处理的 corner case(边缘场景),弥补摄像头可能出现的误判。

w~自动驾驶合集11_自动驾驶_03

在融合方案中,激光雷达存在多个公认的核心优势:

一是「抗干扰」,不惧夜间环境。

据 MIT 团队 2022 年的研究结果表明,配备了激光雷达的融合方法将夜间的感知精度提高 3 倍。

二是「真三维」,精度更高。

激光雷达基于三维坐标,能精确到厘米级别为算法提供地面和物体的相对位置。地面上的高低不平的路况,一些低矮物体,激光雷达也能够捕捉到。

w~自动驾驶合集11_自动驾驶_04

三是「高置信度」,识别物体数量更多。

纯视觉方案会建立覆盖常见「道路物体」(机动车、行人、两轮车、锥桶、水马、路面、树木等)的白名单。白名单之外,可能「视而不见」。

通过激光雷达直接获取实时 3D 数据后,车辆可以直接判断障碍物是否存在,为占用网络提供真值输入,在融合方案里作有力补充,提升系统安全性。

w~自动驾驶合集11_自动驾驶_05

此外,激光雷达的反应速度更快。在中国城市内存在复杂路况,比如闹市区里车辆突然的加塞、变道等,激光雷达相比摄像头的反应速度更快,能够准确判断对方移动速度。

值得一提的是,在最近行业大热的话题「如何降低 AEB 的误触发率」上,激光雷达也可以帮助避免一些常见的安全隐患。

施叶舟表示,「AEB 的误触发,背后的本质原因是感知精度不够高。在激光雷达加持下,周围感知精度的提升,误触发可以大大减少」。以搭载激光雷达的理想 L9 Max 为例,采用多传感器融合方案之后,每 10 万公里的误触发次数远远低于行业均值。

综合来看,占用网络技术不是一个解锁通用障碍物识别的万能钥匙,而激光雷达在提升安全性的过程中,有着举足轻重的作用。

03 激光雷达融合方案  高阶智能驾驶落地的「助跑器」

城市 NOA 正在迎来一个高光时刻——问界新 M7 累计大定已超过 8 万台,其中超过 60% 用户选择了智驾版(激光雷达版);小鹏新 G9 激光雷达版本选配比例高达 80%。

在此之前,一款车的智能驾驶搭载率只能达到 20%~30% 左右。问界和小鹏新车的智能驾驶选配率,远远超过了行业预期。

城市 NOA 迅速落地的背后,给广大的消费者体验带来根本变化是最主要的驱动力。

要实现更大范围的自动驾驶的覆盖,要切入真正的高频和刚需场景,先走到距离用户最近的地方。

数据显示,汽车平均有 71% 的里程是在城市道路行驶,对应时间占车主总驾车时长的 90%。而华为和小鹏得以更快落地城市 NOA,激光雷达功不可没。

w~自动驾驶合集11_自动驾驶_06

智能驾驶权威测评机构 nuScences 的数据显示:

截止 2023 年上半年,纯视觉方案(摄像头)和融合方案(激光雷达+摄像头)对目标物追踪准确度(AMOTA)上仍有较大差距:二者相差接近 20 个百分点(56% VS. 75%)。

预计到 2025 年,纯视觉方案准确度的均值会达到 70%~71%。这一数字相比配备激光雷达的融合方案在 22 年的准确度落后了 3 年时间。   

换个角度来看,激光雷达融合方案可以让高阶智能驾驶落地时间缩短 3 年。

w~自动驾驶合集11_自动驾驶_07

轻舟智航产品负责人许诺直言,现阶段单纯依靠视觉方案,很难应对中国城市道路中的各类 Corner Case。「激光雷达,是以投入换时间,加速城市 NOA 落地的捷径。」

「当你做视觉方案时,系统遇到未知或者通用障碍物识别时,激光雷达方案的优势是突出的。像路上突然掉下来的物体,例如纸箱、木箱等,通过激光雷达能够感应到。而且激光雷达可以告诉你,前面有障碍物,也会告诉你做分类处理。」许诺说道。

由此看来,激光雷达不仅是智能汽车里的「隐形安全气囊」,更是辅助车企量产落地城市 NOA 的捷径。

在国内市场,蔚来、理想、小鹏、仰望、智己、极氪、问界、阿维塔等汽品牌,在已经量产或即将上市的车型中,都配备了激光雷达。

在海外,布局 L3 智能驾驶功能的头部车企也都配备了激光雷达,包括已经获得 L3 监管批准的奔驰,以及正在布局的宝马、沃尔沃等。

下一步,高阶辅助驾驶若要向大众市场持续渗透,系统成本有望继续下探。

施叶舟表示,禾赛正在通过核心零部件芯片化等技术降本手段,以及放大规模效应的优势,为城市 NOA 持续落地服务。目前,禾赛已将激光雷达的价格从几年前的几十万元,降到了现在的几千元,做到了十倍以下。

到那时,激光雷达的高成本,或许也不再是阻碍其大规模上车的门槛。

车企是否都要走特斯拉的纯视觉方案,最终要量力而为。而从现阶段来看,激光雷达不仅可以成为城市 NOA 落地的「助跑器」,在未来也能够继续发挥其独特价值,做自动驾驶领域的「最强助攻」。





#BEV车道线落地

看过BEV障碍物故事的同学应该清楚,我们组是在21年10月左右开始做BEV 障碍物的。那个时候不敢想着去做BEV 车道线,因为没有人力。但是我记得在12月左右的时候,我们面到了一个候选人,在面试的过程中听到他们做了差不多半年多的BEV 车道线,整个技术路线是通过高精地图来作为BEV 车道线网络的训练真值,并说效果还不错。很遗憾,那个候选人最后没有来我们这里。结合21年Telsa AI day 讲的车道线内容,一个要做BEV 车道线的种子就这样在组内埋下了。

整个22年,我们组内人力都是很紧张的,我记得在6,7月份的时候,我们刚好有人力去探索一下BEV 车道线。但是当时我们组只有一个同学(我们就先叫他小轩同学吧)有2个月的时间去做这件事。然后21年的那颗种子开始发芽了,我们准备先从数据下手,小轩同学还是很给力的(很有想象力,后续小轩同学也做了更多令大家惊喜的东西),差不多用了2月的时间,我们可以通过高速高精地图来提取对应的车周围的车道线数据。当时做出来的时候,我记得大家还是很激动的。

w~自动驾驶合集11_自动驾驶_08

图1: 高精地图车道线 投影到图像系的效果

大家从图1上可以看出,贴合对还是有一些问题,因此小轩同学又做了系列的优化。2个月后,小轩同学去做其他任务了,现在回头看,我们的BEV 车道线探索之路,已经走对了第一步。因为在21年,22年已经逐步有很多优秀的BEV 车道线论文和代码相继开源。看到这里,你可能以为23年一定有一个完完美美的BEV 车道线落地的故事,然后理想往往都很丰满,现实却是很残酷。

由于我们BEV 障碍物已经证明BEV 这条路是可以走下去了,并且在路测也表现出了不错的效果。组内开始有了更多的资源来考虑车道线这件事,注意这里不是BEV了。为什么呢?因为在这个时候,我们面临了很大的上线压力,BEV 车道线又没有足够的经验,或者说整个组内做过2D 车道线量产的人都几乎没有。23年前半年,真的可以用跌跌撞撞来形容,我们内部激烈的讨论了很多次,最后决定形成2条线,一条线为2D 车道线: 大部分的人力在2D 车道线这条线上,重后处理,轻模型,通过2D 车道线这条线来积累车道线后处理量产经验。一条线为BEV 车道线:只有一小部分人力(其实就1-2个人力),注重BEV 车道线的模型设计, 积累模型经验。BEV 车道线的网络已经有很多了,我在这里贴2篇对我们影响比较大的论文供大家参考。《HDMapNet: An Online HD Map Construction and Evaluation Framework》 和 《MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction》

w~自动驾驶合集11_自动驾驶_09

图2: HDMapNet

w~自动驾驶合集11_自动驾驶_10

图3 MapTR

很幸运,在4,5月份的时候,我们在2D 车道线这条线积累了大量的车道线后处理量产经验,我们的BEV 车道线网络也设计出来了,在5月底,很快BEV 车道线顺利上车。在这里不得不说一下我们负责车道线后处理的大海同学,还是很给力的。然而当你觉得很顺利的时候,往往噩梦就要开始了。BEV 车道线部署后,控车效果不理想,这个时候大家陷入了自我怀疑阶段,到底是因为BEV 车道线3次样条曲线拟合的问题,还是下游参数没有适配好的问题。万幸的是,我们车上有供应商的效果,我们在路测时把供应商的车道线结果保存下来,然后在可视化工具里面在和我们的结果对比。当控车效果不好的时候,先证明我们自己的车道线质量是没有问题,这样驱动下游来适配我们的BEV车道线。一个月,整整一个月的时间,我们才稳定控车。我记得很清楚,我们还从上海跑到苏州,那天还是周六,大家在群里看到高速的控车效果都很激动。

然而一个故事往往都是一波三折的,我们只能利用高速高精地图来生产车道线数据。城市怎么办,还有那么多badcase 需要解决。这个时候重要人物终于要出现了,我们就先叫他小糖同学吧(我们数据组的大管家)。小糖同学他们利用点云重建来给我们重建出来重建clip(这个过程还是蛮痛苦,我记得那两个月是他们压力最大的时候,哈哈,当然我们和小糖同学经常相爱相杀,毕竟经常在开会时常常说又没有数据了。)。然后重建出来后怎么标注,放眼当时手里的供应商们,都没有这样的标注工具,别说什么标注经验了。又是和小糖同学他们一起,经历了漫长的1个月时间,标注工具终于和供应商打磨好了。(我们经常开玩笑说,我们这是在赋能整个自动驾驶的标注行业,这个过程是真痛苦,重建clip 加载是真慢 )。然而整个标注还是比较慢的,或者比较贵,这个时候小轩同学带着他的车道线预标注大模型闪亮登场(车道线预标注的大模型效果还是杠杠的),大家看他的眼神都在闪闪发光。这一套组合拳打下来,我们的车道线数据生产终于是磨合的差不多了。8月份的时候我们的BEV 车道线控车道线已经迭代的不错了,对于简单的高速领航功能。现在小轩同学在大模型预标注方向依旧不断的给我们带来更多的惊喜,我们和小糖同学依旧在相爱相杀中。

然而一个故事都不是这么容易结束,我们在9月份的时候,开始动手做多模态(Lidar,camera,Radar)多任务(车道线,障碍物,Occ)前融合模型,并后续支持城市领航功(NCP), 也就是所谓的重感知,轻地图的方案。基于BEV障碍物和BEV 车道线的经验前融合网络我们很快就部署上车了,应该是在9月底的时候。车道线也加了很多子任务,路面标识别,路口的拓扑等等。在这个过程中,我们对BEV 车道线的后处理进行了升级,抛弃了车道线3次样条曲线拟合,而采用点的跟踪方案,点的跟踪方案和我们的车道线模型的输出可以很好的结合在一起。这个过程也是一个痛苦的,我们连续2个月,每周开一次专项会,毕竟我们已经基于拟合的方案做的不错了,但是为了更高的上限,只能痛并快乐着。最终目前我们已经把基础的功能进行路测了。

稍微给大家解释一下图4,左边是车道线点跟踪的效果目前我们模型的感知范围只有前80米,大家可以看到车后也有一些点,这是跟踪留下的。右边是我们的建立的实时感知图,当然现在还在一个快速迭代的过程,还有很多问题正在解决中。

时刻,站在24年回看我们从21年到现在的一路成长和积累,很庆幸在21年那个点,有机会去做BEV, 也很庆幸有一群志同相合的小伙伴一路相辅相成。24年,对我们来说,有很多东西需要去追寻,前融合模型的量产上线,数据方向的发力,时序模型的探索,端到端的畅想等等。





#基于神经辐射场的(NeRF-based) SLAM

随着2020年NeRF[1]的横空出世,神经辐射场方法(Neural Radiance Fields)如雨后春笋般铺天盖地卷来。NeRF最初用来进行图像渲染,即给定相机视角,渲染出该视角下的图像。NeRF是建立在已有相机位姿的情况下,但在大多数的机器人应用中,相机的位姿是未知的。所以随后,越来越多的工作应用NeRF的技术同时估计相机位姿和对环境建模,即NeRF-based SLAM (Simultaneously localization and mapping)。

将深度学习与传统几何融合是SLAM发展的趋势。过去我们看到SLAM中一些单点的模块,被神经网络所替代,比如特征提取(super point), 特征匹配(super glue),回环(NetVlad)和深度估计(mono-depth)等。相比较单点的替代,NeRF-based方法是一套全新的框架,可以端到端的替代传统SLAM,无论是在设计方法还是实现架构上。

相较于传统SLAM,NeRF-based 的方法,优点在于:

  • 没有特征提取,直接操作原始像素值。误差回归到了像素本身,信息传递更加直接,优化过程所见即所得。
  • 无论是隐式还是显式的map表达都可以进行微分,即可以对map进行full-dense优化 (传统SLAM基本无法优化dense map,通常只能优化有限数量的特征点或者对map进行覆盖更新)

由此可见,NeRF-based的方法上限极高,可以对map进行非常细致的优化。但这类方法缺点也很明显:

  • 计算开销较大,优化时间长,难以实时。

但无法实时也只是暂时性的问题,后续会有大量的工作,来解决NeRF-based SLAM实时性的问题。

SLAM学术界的泰斗,Frank Dallaert(https://dellaert.github.io/),gtsam的作者,也开始转行研究NeRF,可见NeRF的价值和对视觉SLAM的意义。Frank大佬写了一系列NeRF相关文章的综述。

https://dellaert.github.io/NeRF/

https://dellaert.github.io/NeRF21/

https://dellaert.github.io/NeRF22/

由于NeRF方向博大精深,文章众多,我重点挑选SLAM方向,结合自己粗浅的理解,总结一下NeRF-based SLAM工作。该领域发展较快,文章持续更新中... (有遗漏的经典工作请在评论区提醒补充)

首先是一张框架图,梳理了这几篇工作各自的创新点和之间的关联关系,帮助大家有个宏观上的概念。[2][3][4][5]是和SLAM有关的工作,[6][8]和[7][9]分别是渲染加速和训练加速的工作,与SLAM无直接关系,但其加速的部分可能被SLAM用到。

w~自动驾驶合集11_自动驾驶_11

几篇Nerf-based SLAM工作的时间线:

w~自动驾驶合集11_自动驾驶_12

  • NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. 2020.03 [1]

w~自动驾驶合集11_自动驾驶_13

首先还是回顾一下经典的NeRF。NeRF选取一系列图片,这些图片的位姿已知。对像素射线上的点进行采样,每条射线采样几十个点(x,y,z,theta,phi),送入MLP网络(F_theta)。网络预测出该采样点的RGB和density(sigma)。再对射线上的点做辐射积分,得到该像素点的RGB值,和真值计算loss,梯度反传训练网络(F_theta)。该方法的优化的变量是MLP网络参数(F_theta),即场景表达隐含在网络当中。对相机的位姿不进行优化调整。

  • iNeRF: Inverting Neural Radiance Fields for Pose Estimation. 2020.12 [2]

w~自动驾驶合集11_自动驾驶_14

iNeRF是第一个提出用NeRF model来做位姿估计的工作。iNeRF依赖一个已经提前建好的NeRF模型,F_theta。所以iNeRF并不算SLAM,而是一个已有模型下的重定位问题。和NeRF的区别在与,NeRF固定位姿,优化模型,loss反传到F_theta(如图红线所示);iNeRF固定模型,优化位姿,loss反传到pose 。

  • BARF : Bundle-Adjusting Neural Radiance Fields. 2021.04 [3]

w~自动驾驶合集11_自动驾驶_15

BARF这边篇文章同时优化网络模型和相机位姿,用神经渲染网络的方法实现了Bundle Adjustment。确切的说,该方法解决的是SfM (structure from motion)问题。该方法依赖一个粗糙的相机初始位姿,这个位姿可以通过col map等方法获得。通过网络迭代对模型和相机位姿进行精修。如果引入时序和帧间tracking,这将是一个不错的slam工作。

  • iMAP: Implicit Mapping and Positioning in Real-Time, 2021.03 [4]

w~自动驾驶合集11_自动驾驶_16

iMAP是真正意义上第一个NeRF-based SLAM 工作。iMAP使用的RGB-D图片,分为Tracking和Mapping两个线程。Tracking线程使用当前的模型,F_theta, 优化当前的相机位姿;判断该帧是不是关键帧,如果是关键帧,则关键帧的位姿和模型F_theta一同优化。iMAP的框架和传统SLAM类似,但核心的tracking和联合优化都有神经网络优化来完成。遗憾的是iMAP并未开源,但好消息是后面的工作nice-slam把iMAP的实现一同开源出来了。 

  • NICE-SLAM: Neural Implicit Scalable Encoding for SLAM. 2021.12 [5]

w~自动驾驶合集11_自动驾驶_17

NICE-SLAM在iMAP的基础上做改动,作者不仅开源了自己这部分,也把iMAP的实现开源了出来。作者的主要改动是使用了特征格网(Feature Grid)+MLP这种显式+隐式混合的方法来表达环境。环境信息放在体素特征格网内,MLP作为decorder,将特征格网内蕴含的信息解码成occupancy和rgb。同时,作者还用了course-to-fine的思想,将特征格网分成粗、中和精细,以便更细致的表达。该方法比iMAP快了2-3倍,虽然具备了一定的实时性,但真正用起来还是离实时有一些距离。这是当前看到的最好、最完善的NeRF-based SLAM工作。

--------------------------渲染加速----------------------------

  • PlenOctrees for Real-time Rendering of Neural Radiance Fields, 2021.03 [6]

w~自动驾驶合集11_自动驾驶_18

PlenOctrees是一种对渲染加速的方法。加速的方法是训练好mlp这种隐式表达之后,将空间中所有点以及所有视角观察都放到网络中推理,保存记录下来。这样下次使用时,就不必在线使用网络推理,查找表即可,加快渲染速度。但由于网络输入有x,y,z,theta,phi五个自由度,穷举起来数量爆炸。所以作者改造网络,将视角theta,phi从网络输入中解耦出来。网络只输入x,y,z,输出density和球协系数。颜色通过视角乘以球协函数得到。这样网络变量的自由度从5下降到3,可以进行穷举保存。

  • SNeRG:Baking Neural Radiance Fields for Real-Time View Synthesis, 2021.03 [8]

w~自动驾驶合集11_自动驾驶_19

SNeRG和PlenOctrees类似,都是一种加速渲染的方法。Mlp训练好后,把与视角独立的信息存入3D体素格网内。在这篇文章中,作者把颜色分成固有颜色和镜面颜色,固有颜色与观察视角无关。网络输入3d坐标位置,输出体素密度,固有颜色,和镜面颜色特征向量。镜面颜色特征向量在通过一个小的网络,结合视角,解码成镜面颜色,加到最终的颜色上。与PlenOctrees一样,主干mlp网络都与视角解耦。PlenOctrees通过球协函数恢复视角颜色,SNeRG通过后接一个小网络恢复镜面颜色,在叠加到固有颜色上。

--------------------------训练加速----------------------------

  • DVGO: Direct Voxel Grid Optimization: Super-fast Convergence for Radiance Fields Reconstruction. 2021.11 [7]

w~自动驾驶合集11_自动驾驶_20

DVGO提出了对网络训练进行加速的方法。作者发现,使用MLP这种隐式表达,训练速度慢但效果好;使用体素格网这种显式表达,速度快但效果差。所以DVGO提出了混合的体素格网的表示方法。对于占据密度(density),直接使用体素格网,插值就可以得到任何位置的占据密度;对于颜色,体素格网里面存储多维向量,多维向量先经过插值,后经过MLP解码成rgb值。这样网络在训练过程中,用到MLP的次数减少;MLP只翻译颜色,也可以做的很轻量化,所以训练速度大幅提升。

  • Plenoxels: Radiance Fields without Neural Networks. 2021.12 [9]

w~自动驾驶合集11_自动驾驶_21

Plenoxels 是PlenOCtrees的后续工作。作者使用显式的格网来代替MLP。格网里面存储一维的density和球协系数。当有光线经过时,光线上的采样点的density和球协系数可由三线性插值得到。这样整个过程就摆脱了对神经网络的依赖,变成了完全显式的表达。由于去掉了神经网络MLP部分,训练速度大幅增加。作者强调神经辐射场的关键不是在于神经网络,而是在于可微分的渲染过程。




#大模型真能解决一切

今年是自动驾驶非常卷的一年。无论是工业界还是学术界,都不断有新技术新发现新思想「涌现」出来。一方面,关于自动驾驶的研究正逐渐趋同——无论是之前做感知、决策、规控的同事,都想拿大模型来试一试;但另一方面,任何新技术的出现都将意味着格局的重新洗牌,大家又回到了同一起跑线上开始。如果从趋势上来说,我认为2023年自动驾驶包括但不限于以下的一下演进:

首先,传统的感知正在向认知转变:如同深度学习时代的CV领域早期,以图像分类、目标检测、语义分割等任务为主。其本质是通过下游任务来(我最近很认同的一句话:评价方式引导发展方向。)来让整个系统具备「智能」的表现。然而,能够很好完成这些视觉任务的模型,真的是「智能」的模型吗?从行为主义上来说,大量工作确实能够很好地完成这些任务,甚至其性能可以达到甚至超过人类水平,体现出了智能的行为。但诸如一些对抗攻击在内的工作让我们发现:原来这些SOTA在对抗样本面前是如此的不堪一击,这里真正意义上的「人工智能」还很遥远。于是在2010年前后,CV界逐渐有一波热潮开始探索「认知」,包括一些更加神奇的任务、以及引入了文本等其他模态的数据,来完成Image Captioning,Grounding,VQA甚至是Scene Graph这种复杂结构支持下的复杂任务。还记得好像是16年左右,有些好事者分析过当时的顶会标题,如果带着「semantic」这个词,中稿几率大大提升。可见学术界对于「认知」、「语义」、「理解」、「知识」等等这些概念的追捧。而现在,我深刻感觉到自动驾驶也在经历这个类似的时刻。前两年自动驾驶感知方向,大家关注的还都是检测、分割之类的经典任务。而近期大家的关注点开始向更加「Fancy」的方向倾斜,例如大家开始注意到自动驾驶场景的描述(Captioning)、问答(VQA)等与「理解」密不可分的任务。

第二,大家期待的端到端自动驾驶,正在以一种知识驱动的方式到来:我个人认为,端到端自动驾驶还是可以再细分为两种。一种是如2023年CVPR Best Paper之一的UniAD一样,由多个模块的级联实现。其整体构型属于一种能够损失传导的Multi-Task Learning:通过将多个模块级联+每个模块的损失作为约束,使得各个模块在训练过程中朝着「整体最优」的方向进行,有更大的可能在整体优化过程中找到端到端的流形空间。另一类则是完全端到端,从训练端即实现data-in、policy(control)-out。这个过程和人类驾驶行为相似:以眼睛作为视觉输入信号,直接作用在方向盘和刹车油们踏板上。但这种端到端最大的挑战在于如何实现持续学习?这种直接端到端变相地扩大了模型的搜索空间,需要用更多的数据、更大的模型、更强的算力才能防止系统过拟合在特定的场景中。

第三,大模型的出现为自动驾驶打开了更多的研究机会。尤其是大模型在海量开放领域数据训练所获得的通用感知能力具备很强的泛化性,甚至具有解决自动驾驶场景各种Corner Case的能力。现在逐渐有一种声音(以工业界为主),就是很多人认为大模型将会是实现端到端的一种可能。但我感觉不能简单地将大模型与端到端划等号,甚至大模型到底能否被用来进行自动驾驶,也是一个需要考虑的问题。但大模型真的能解决一切问题吗?有朝一日我们能否见到由大模型控制的自动驾驶系统?我其实是比较悲观的,因为大模型存在太多太多问题了。与其期待教会大模型直接开车,还不如多关注一下大模型在AI Agent和具身智能方面的进展。

我和我的团队目前所研究的方向我们管他叫「知识驱动自动驾驶」,这也是这篇文章主要的话题:重新思考自动驾驶——从知识驱动到数据驱动。

首先介绍一下背景,现在的自动驾驶系统仍然存在诸多挑战。

w~自动驾驶合集11_自动驾驶_22

比如长尾难例问题一直困扰着高阶自动驾驶在开放场景的应用。

例如,如左图所示,当我们从零构建一个自动驾驶系统的感知模块。冷启动的算法期初无法分辨工程车辆。但识别到桩桶,可能会让自动驾驶系统误以为在修路。最终,错误的感知做出错误的决策。

为了解决长尾难例,我们可以增加数据采集的覆盖性。例如通过采集更多的工程车辆并标注成车来提高车辆样本的数量。随着数据的增加,我们可能确实能够handle这种装满交通锥的工程车辆的识别问题。但如果样本是右边这张图呢?总会有无穷无尽的corner case的出现,甚至很多corner case在直到发生之前,我们都难以想象的。

w~自动驾驶合集11_自动驾驶_23

这张图来源于ISO 21448 SOTIF关于自动驾驶预期功能安全的标准。横轴分为安全、不安全;纵轴分为已知、未知。

对于Safe-known的绿色区域,是算法能够解决的问题。而Unsafe是指我们算法仍然无法解决的问题。我们希望调整算法,通过更好的学习,来让很多Unsafe的场景变得Safe。另一方面,为了压缩Unknown的区域,我们可以通过进行更多的路测来提高数据覆盖度。但「提高覆盖度」这件事是有边际效应的,在没有外部知识参与的情况下,我们总会有无穷无尽的Out-of-distribution的场景,也就是一些偶发的Corner Case,导致整个系统的失效。

而自动驾驶不同于其他很多领域,是存在木桶效应的。所以如何解决这些甚至在设计算法时都未曾考虑到的场景将会是至关重要的。例如如果一个目标检测系统从设计上只考虑了人、车、非机动车。那他可能就无法区分地上的桩桶和塑料袋。所以后来出现的一些针对开放词表目标检测的研究,或者像Tesla针对Occupancy的研究,都试图想从感知问题的定义上,让他有足够大的解空间,才能覆盖尽可能多的解。

w~自动驾驶合集11_自动驾驶_24

我们可以说,现在绝大多数自动驾驶系统,都是基于这样数据驱动的模式构建的。与此也伴生出了像数据闭环等重量级的中间件:就是通过反复的路测、数据采集、数据标注、模型训练,再进行路测,重新采集数据训练模型,循环往复不断进行。通过将这些流程制度化来降低成本。但从本质上仍然未解决问题。

为什么?因为除了无穷无尽的corner case以外,还有很关键的一个因素:现有的很多系统都是基于优化的方法。而优化就存在一个问题,遗忘灾难。所有优化的本质就是当我们找不到一个全局最优解的情况下,只能妥协地达成一个局部最优解。这就意味着那些经常出现的common case才会主导因素,而偶尔发生的corner case甚至要被当做是异常的离群点忽略掉,从而才能使整个系统处于一个低熵的稳定状态。反过头来,如果太关注corner case,当模型capacity不够大的时候,有可能反而让common case变得更差。按下葫芦起了瓢的效果。而这与自动驾驶系统追求安全的事实是相反的。

w~自动驾驶合集11_自动驾驶_25

所以我们能够总结出数据驱动自动驾驶系统的不可能三角:想要一个又安全又便宜的自动驾驶系统,那一定效率不高(例如扫地机器人?);想要便宜高效,那一定很不安全(横冲直撞那效率可杠杠的);又安全又高效那一定非常贵。

尽管数据驱动不可以三者兼得,但人类却能在这三者之间找到平衡。

w~自动驾驶合集11_自动驾驶_26

所以我们需要分析为什么人类这么厉害?

2022年LeCun在他的一项关于通用人工智能的工作中开篇即提了这样两个问题:1. 为什么一个人类青少年能够在大约20分钟的练习里就可以学会基本的车辆驾驶技能?2. 而为什么人类能够在遇到一些之前从来没见过的场景时仍然能做出正确的反应和决策?

其实这里面的关键因素就在于知识和推理的运用。例如上图里那5张图很多人都见过:数据通过打标签成为信息,而后融会贯通从知识逐渐变成智慧。

如果将自动驾驶系统与之相对应,我大概认为。之前的数据驱动自动驾驶仅仅能运用数据和信息,难以挖掘信息之间的关联性。因为关联性才决定了是否具备举一反三的能力。所以我们觉得,现在正是一个好的时机,从知识驱动自动驾驶的视角出发,探索AD2.0。(当然,AD2.0这个概念不是我们提的,是Wayve等一些公司题的)。

总的来说,现阶段我认为,自动驾驶的第一性原理是知识

如何直接和间接地利用好人类的知识,跨域的知识,通用的知识,来处理好各种各样的问题,来让自动驾驶系统有更高的泛化性、Robust,是我们团队一直以来的研究方向,也是这篇文章的主题。

那接下来就介绍一下我认为什么是知识驱动的自动驾驶。

w~自动驾驶合集11_自动驾驶_27

规则驱动的方法是由人类通过观察真实场景,融入自己的思考之后将其抽象成一些可解释可执行的规则。这种方法能够很好地反应驾驶场景的本质。但由于规则编写本身是一件复杂,互相牵制的事情。完全由人工来进行则难以规模化。

而数据驱动的方法则是试图建立从输入到输出的映射关系。在这个过程中,通过将驾驶场景转换到压缩的表征空间来尽可能提取。因为有一个说法是压缩即智能。但这个空间很有可能因为下游任务的限制,overfit到了任务空间而不是真正的理解了交通场景。Data-driven更像是一种行为主义(behaviorism),只是体现了智能行为,但并不是真的理解了场景,所以性能存在边界。

而知识驱动的自动驾驶首先需要具备场景理解的能力,归纳出通用的一般性规律,再进而推演到真实的理解空间中。但由于「知识」这个概念就像「智能」一样很难定义,所以我们只能从行为主义的角度来观察如何才能实现知识驱动自动驾驶。

w~自动驾驶合集11_自动驾驶_28

我们认为,知识驱动自动驾驶的三个关键特征是:泛化性、可解释性终身学习的能力。

想要实现知识驱动自动驾驶并落地,可能需要满足这三个特征。

首先来说说泛化性

w~自动驾驶合集11_自动驾驶_29

如前面所述,由于数据驱动的方法在面对out-of-domain问题时难以解决。例如我们很难在任务设计时就考虑路上有飞机迫降这种极端的cornercase。

w~自动驾驶合集11_自动驾驶_30

而知识驱动的方法通过大量在Open Domain数据上预训练所获得的通用知识,使得我们有可能对out-of-distribution的数据进行理解。

w~自动驾驶合集11_自动驾驶_31

泛化性是解决Unknown的关键,能把工程师从处理Corner Case的重复性劳动中解放的希望。我们用这张图来解释一下。上面一排指场景空间,下面一排是驾驶能力的空间。

对于Single Domain的数据驱动方法来说,我们从场景空间中采集数据并训练模型,学会其到驾驶能力空间的映射,同时对该domain产生一些泛化性的外溢,举个不严谨的例子:只用高速公路数据训练的模型,在高架上可能同样适用。但对于domain外的泛化性还是较弱。例如只用高速数据训练的模型,在梧桐区(上海某个开车停车都很费劲的开放街道)就不能用了。

于是大家从数据采集的角度入手,增加数据覆盖率,并将各种数据混合到一起,形成了Multiple Domain的数据。然后得到的模型不但能够处理各自domain的能力,还具备了一些初步的泛化性。例如收集了晴天、雨天数据训练的模型,在阴天可能仍然能用。然而这种数据采集也只是解锁了一些不同的场景,对于非常偶然出现的corner case,仍然不能像人一样从场景理解的角度出发来给出正确的分析和解释。

而第三列表示的是知识驱动的方法。如果我们有一种方法能够挖掘到海量不同domain的数据内在的关联,具备一些初步的通用理解能力,那就有可能对偶尔出现的场景如同人类一样实现举一反三。实现最终的泛化能力。

所以说,泛化性不但是自动驾驶领域研究关注的重点,也会是知识驱动的一个特性和体现

再来说说第二点,可解释性。为什么可解释性重要?

  1. 首先,它可以作为「理解」和「知识」的佐证:可解释是智能的充分不必要条件。可以联想到图灵测试。
  2. 第二,一个完全的黑盒只能通过数据驱动来训练,又走回了老路。所以完全端到端,我个人反而是不太相信的。
  3. 第三,对解释的反思能够更直接地修正模型:非梯度方法。例如当我们让模型自己反思哪里做错了,如果能解释出个所以然来,说明模型具备了很强的能力。
  4. 第四,我们认为可解释性是实现Life-long Learning的一种显式的方式和先决条件。

例如我们尝试利用大模型来描述一下之前的场景,我们发现一旦操作变得可解释,那这些决策就会变得可信且合理起来。(这个是比较早的尝试,当时用的LLaMA-Adapter实现图片描述,用GPT3.5试试做决策和判断)

w~自动驾驶合集11_自动驾驶_32

第三点,Life-long Learning。

为什么Life-long Learning非常重要?因为从机器人或者具身智能的角度出发,一个Agent的脑中其实蕴含了对真实环境的建模。而Life-long Learning的能力决定了这个脑中世界和真实世界的差异程度。

像是现在的数据驱动方法,由于人工框定的任务限制了它施展能力的范围,导致其只能用「管中窥豹」的方式来建模世界,最终只能成为一个井底之蛙,认为的世界就和别人让他看到的世界一样。

而参考人类的思维方式,经验只会随着年龄不断积累。新司机可以通过积累经验成为老司机。并且很多驾驶经验并不来源于驾驶本身,而是从很多其他领域持续学习得来经验。

而Life-long Learning也是将整个系统落地上车的决定性因素。在这里插一句,我感觉像之前特斯拉展示的End-to-end的一些方法看起来很fancy,但实操起来会有很多挑战。最大的挑战是,在缺乏对中间过程的supervise的情况下,如何对规模庞大的模型实现持续学习/终身学习?所以可能UniAD这种中间可以插入supervise的方法举例落地会更现实一些。(除非World Model真的实现,后面再细聊

在介绍完知识驱动自动驾驶基本定义之后,再来聊一下最近出现的LLM是否对知识驱动自动驾驶能有所帮助。

其实一直以来我的一个思想是:知识驱动是第一性原理,但LLM不是。LLM只是在现阶段能够实现体现出知识运用能力的一种工具,它虽然具备基础的通用理解能力,但不见得所有事情都要靠LLM。让LLM开车并不是一个长久的方向。

w~自动驾驶合集11_自动驾驶_33

首先来统一一下术语。

我们发现工业界引入「大模型」这个概念的时候发生了大量的术语混淆。难道「大号的模型」就是大模型吗?比如像SAM算大模型吗?BEV算法属于大模型吗?甚至一些人在到处讲,Transformer就是大模型。

但从学术上,LLM其实是有着明确的指向的。

w~自动驾驶合集11_自动驾驶_34

w~自动驾驶合集11_自动驾驶_35

(下面这段关于LLM的整理不是很严谨,请批判性阅读)

并不是用了transformer或者数据量大就是LLM,应该是采用LLM或者VLM架构且在大规模数据上进行训练,并且跟随scaling law出现了涌现的现象,才是我们讨论的LLM

想要解释清楚LLM发展的来龙去脉需要比较长的篇幅,也不是本文要讲的重点。所以这里就简要概述一下。

早期的大模型,是在Transformer之后出现的如BERT、ELMo、GPT等在内的语言模型。其本质就是一个语言模型,用来建模一句话的发生概率。其训练方式是输入第1到t-1个token,预测第t个token应该是什么。并且在那个时候利用海量纯文本数据,通过随机对一些词进行mask,或者对两句话交换顺序等各种各样的下游任务,迫使模型能够更好地理解一句话内包含的语义。那个时候是NLP的黄金时代,因为大模型通过海量的数据获得了基本的语言理解能力,使得很多任务都利用大模型实现了突破。

而后大模型也面临一个life-long learning的问题。之前很多大模型还是以研究为主,直到后来出现了一些工作,发现大模型是可以随着堆料性能不断增加的。这就刺激到了工业界。工业界就喜欢这种力大砖飞的模式,因为每一分钱的投入都有可以计算的预期收益。然后就掀起了现在大模型研究的热潮。随后又出现了In-Cotext Learning, Chain-of-Thought等等各种技术,甚至催生了提示词工程这个行业。

时至今日,大模型的范式基本是统一的,首先就一个参数量巨大的Foundation Model,再利用部分和任务相关的数据进行Instruct-tuning。像ChatGPT就是在GPT这个Foundation Model中用少量高质量的对话数据对齐的能够对话的模型。后面这个过程通常不被称为是训练而是对齐,我个人感觉可能是因为,Foundation Model已经具备了很强的能力,而少量的Instruction-tuning只是为了向大模型展示任务需要,让大模型的表现对齐到人类预期的行为之上。

解释一下大模型的一个有趣的现象,就是可以通过In-context-learning实现few-shot来完成一些任务。而我们也可以通过SFT来将这些能力内化到大模型内部。

近期出现了大量的LLM+AD的工作,这里快速介绍一下,不是本文的重点。

w~自动驾驶合集11_自动驾驶_36

LanguageMPC利用LLM进行了细粒度的决策,通过将场景结构化成文本送入大模型,来和环境进行交互。通过接了一个具体的行为控制模块实现具体的驾驶行为的输出。其主要是利用了大模型对场景进行编码的能力。

w~自动驾驶合集11_自动驾驶_37

DriveGPT4则是试图引入一个带有视觉的VLM,实现对输入视频的理解,并且能够根据prompt完成一些QA任务。包括生成控制信号等等。

w~自动驾驶合集11_自动驾驶_38

↑这篇工作则同样是利用大模型来处理控制的工作。通过将场景向量化表征,并且通过一些数据对大模型进行了SFT使其变成了能够输出控制信号的大模型。

和上面这些LLM+AD的工作区分开,下面这页Slides才是我想表达的重点:

w~自动驾驶合集11_自动驾驶_39

这些LLM+AD的工作真的能解决一切问题吗?我不认为。

我觉得大模型尽管能展现出generalization和interpretability。但仍然存在诸多问题:

  1. 幻觉:因为LLM的训练方式导致其必然会输出一些文本。直接影响安全性和正确性。
  2. 响应速率低下:影响实时性,最终导致安全和效率都会受损。
  3. 对齐税:朝着自动驾驶任务SFT,反而会丧失一部分通用性和泛化性。
  4. 并且SFT成本高,难以通过SFT的方式实现Life-long Learning。

其实一直以来我的一个思考是:知识驱动是第一性原理,但LLM不是。LLM只是在现阶段能够实现体现出知识运用能力的一种工具,它虽然具备基础的通用理解能力,但不见得所有事情都要靠LLM。让LLM开车并不是一个好主意。所以我们需要的是借助LLM的能力,而不是all in在LLM上,让LLM成为一个万能的工具。

受到最近一些Multi-agent和Embodied AI研究的启发,我们认为,LLM可以作为一个CPU,利用好它的generalization和interpretability,配合memory实现life-long learning,结合外部的专家系统、Retrieval Augmented Generation技术来解决幻觉问题,共同构建成一个Driver Agent。

所以接下来介绍一个我心目中的知识驱动自动驾驶的架构

w~自动驾驶合集11_自动驾驶_40

让我们先跳出LLM的制约,从认知的角度先来讨论一个通用的知识驱动的框架。它更像是一种Embodied AI的架构在AD的应用。

上图展示了一种利用Agent来操作工具、进行规划,并结合Memory机制最终产生Action的架构。这个架构和人类认识世界和做决策的框架是类似的。

更进一步,我们认为其实知识驱动的自动驾驶也可以利用这样的框架进行(如上图下部分)。其核心是Driver Agent,通过对环境进行Observe,并从Memory中Query一些过往的经验,最终综合做出决策,并利用决策的执行情况作为修正信号来修正Memory。

w~自动驾驶合集11_自动驾驶_41

我们再进一步将其对应到自动驾驶场景中。首先我们利用场景理解系统来进行场景表征。并且基于这些表征进行决策。在决策过程中将会有过去的经验参与。如果决策是正确的,则会将其作为经验的一部分积累到记忆模块中。如果决策发生了错误,则也会要求系统能够反思错误,并将纠正好的正确经验重新加回到记忆系统中。整个系统不断迭代。最终记忆就成为了知识的一种表现。

w~自动驾驶合集11_自动驾驶_42

在整个系统中,我们可以让LLM参与到部分工作,但是并不是仅仅依赖LLM,于是我们构建了这样的系统。这篇叫做DiLu: A Knowledge-driven Approach to Autonomous Driving with Large Language Models。(To the best of our knowledge, 这篇应该算是非常早期探索LLM+Agent+AD的工作了,还有我们另一篇工作Drive Like A Human可能是第一篇探索大模型是否能和自动驾驶相结合的工作。)

整个系统包括了Reasoning、Reflection、Memory三个模块。首先在Memory模块中保存了一些驾驶经验行为。本质上是一个向量数据库。其中Key是场景的语义向量化表征(相似场景vector相似,不同场景vector不相似)。而Value则保存了这个场景曾经做出的决策,以自然语言文本来描述的。

在推理模块中,我们首先对环境进行编码,利用这个编码从记忆模块中query相似场景。并将这个信息作为prompt,和当前场景一起输入到大模型中。也就是说,此时大模型既输入了当前场景的描述,又输入了记忆中相似场景和当时所作出的决策作为共同信息,并且最终给出一个决策意见。我们将这个决策转换成Environment的控制信号,控制一个在虚拟环境中的车辆进行驾驶。

在驾驶过程中,我们可以知道这个决策是否正确。如果决策正确,我们会将这里的场景表征向量作为key,决策说明作为value来更新记忆模块中的经验。另一方面,如果决策出错,例如发生了碰撞或者其他危险行为,我们会借助大模型进行自我反思,并将整个反思过程一起加入到记忆模块中。

从这里就能看出之前我们提到的三个特性:generalization、interpretability、life-long learning的重要性。首先,泛化能力保证了对各种out-of-domain的场景的通用理解能力。而我们利用可解释的信息作为记忆系统,一方面能够追溯所有做出的决策,另一方面也能够用人类能够理解的方式来完成反思等复杂的内容。另外,也正是因为经验是以自然语言定义的可解释的文本,而这些文本常常是放之四海皆准的信息,不随domain变化而产生太大的漂移的。而整个经验库是在不断积累的,从而实现一个Life-long Learning。

还有就是这篇文章的Reasoning模块和Reflection模块,具体细节我就不介绍了,可以看看论文。

w~自动驾驶合集11_自动驾驶_43

w~自动驾驶合集11_自动驾驶_44

这里有一个缩时演示的视频。我们采用了Highway Env作为仿真环境,每一步都是由大模型参与进行决策并交给仿真器来执行的。

w~自动驾驶合集11_自动驾驶_45

只是张图片动不了的,视频请点下面的链接

视频请点击链接:DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Mode_哔哩哔哩_bilibili

Slides后面有一些实验分析,这里我就不具体展开了不然文章篇幅太长了。(写到现在已经快1w字了)。一句话总结就是我们有这样几个发现:

  1. Memory机制真有用,这种类似于RAG(Retrieval Augmented Generation)的方法能够在不SFT模型的情况下,实现Continuous Learning的功能(但Life-long Learning还没试过,主要是Highway Env太toy了)。
  2. 真有泛化性:我们用Domain A的场景得到的Memory,直接在Domain B中用,发现
  3. 真有可解释性:Memory中的key是场景表征向量,value可就是纯文本啊。无论决策做对了还是做错了都是一目了然的,甚至可以reflect来修正记忆。

这里我们展示了反思模块的一些能力。例如这里进行了一个错误的决策。

w~自动驾驶合集11_自动驾驶_46

此时我们让大模型分别针对碰撞原因、其中的经验教训进行解释,并产生一份revised decision。我们会将整个这些文本都作为经验保存到记忆模块中。

w~自动驾驶合集11_自动驾驶_47

这篇工作作为一个非常初步的工作,其所选择的环境、能进行的决策空间等等非常有限,属于一个早期的toy性质的研究。所以也留下了很多Open Problems:

  1. 场景理解:Key该如何构建?
  2. 记忆该如何表征:显式地用自然文本?图像?还是隐式的representation?
  3. 是记答案?还是记「决策过程」?
  4. 进一步从人类思考的视角出发,如何与System I(快系统)和System II(慢系统)相结合?

另外再提一个我觉得很有意思的工作Agent-Driver([2311.10813] A Language Agent for Autonomous Driving (arxiv.org)),也是采用了Agent而非教大模型开车的模式。不过当时做Slides的时候忘记介绍了,后面有机会再补上。

除了DiLu以外,再介绍一些我们认为和Knowledge-driven相关的工作。其中部分工作也是我们团队正在进行的。

w~自动驾驶合集11_自动驾驶_48

首先,畅想一下未来,我们认为未来的自动驾驶系统有可能发展成这个样子。这张图来自于我们最近的一篇Survey(说是Survey,但其实也包含了我们很多思考):Towards Knowledge-driven Autonomous Driving。

一方面从真实世界中提取信息积累常识知识。另一方面利用真实世界的数据,构建高质量的虚拟的仿真引擎。并通过在仿真引擎中积累交互知识。反复重复这个过程实现life-long learning。

w~自动驾驶合集11_自动驾驶_49

所以这就引发了三个探索的方向,我们认为是目前学术界比较火热的方向(换句话说:很卷的方向):自动驾驶的Foundation Model(完成场景理解、辅助决策)、知识驱动的Autonomous Driver Agent(Memory机制、RAG)、高一致性的仿真引擎。

w~自动驾驶合集11_自动驾驶_50

首先是我们该如何利用Foundation Model?这可能依赖于通用大模型的理解能力,也需要一些利用大模型针对自动驾驶追至领域SFT的探索。

但我觉得大模型在这个环节的参与可能体现在场景理解和Decision Making上。因为这些功能充分体现了大模型处理out-of-distribution问题的能力,以及宏观决策能力。并且由于不是直接将方向盘交给大模型,所以能够从一定程度上缓解幻觉的问题。

w~自动驾驶合集11_自动驾驶_51

另一块我觉得非常有趣且有潜力的方向就是世界模型。

世界模型早在2018年甚至更早就被已提出,其架构的本质是利用下一帧预测来让模型理解整个世界。我觉得世界模型的一个应用点在于场景理解:因为能正确预测出下一帧的样子,说明中间的vector包含了对整个场景的编码表征。

w~自动驾驶合集11_自动驾驶_52

基于世界模型的思路,Wayve提出了GAIA-1,可能是第一个自动驾驶领域的世界模型。

w~自动驾驶合集11_自动驾驶_53

还有国内一家叫做极佳科技和清华大学合作推出的DriveDreamer。我们跟他们交流比较多,不过目前看来不得不屈服于市场:用World Model来生成数据卖。

w~自动驾驶合集11_自动驾驶_54

DriveDreamer主要是支持多种prompt输入,包括文本、参考图像、HDMap和3D Box与对应的action。而后由模型在这些信号进行控制的情况下输出未来帧的视频。

w~自动驾驶合集11_自动驾驶_55

还有上个月刚公开的ADriver-I则是利用VLM进行图像生成的工作。有种把世界模型和LLM相结合的感觉。

第二个值得重点关注的方向就是仿真。

自动驾驶的仿真引擎并不算一个很新的topic。其实目前也有很多仿真引擎被广泛应用,例如Carla、VTD等等。但这些仿真引擎仍然存在诸多问题。比如传感器仿真不够逼真、交通流很多也是基于规则或者机理模型,导致难以进行端到端的闭环仿真测试。

所以其实我们团队过去两年中花了大量的精力在构建一个高质量的端到端闭环仿真引擎。

w~自动驾驶合集11_自动驾驶_56

为了获得高一致性的仿真传感器数据,我们采用了神经渲染的思路。这种方法能够用自动化的方法高质量地对场景和物体进行三维重建。

w~自动驾驶合集11_自动驾驶_57

我们构建了名为OASim的基于神经渲染的自动驾驶仿真器(将会在近期开源)。

它能够进行相机、激光雷达等在内的传感器仿真。并且由于我们的技术路线不同于NeRF的体渲染,而是采用了SDF-based的表面渲染,使得我们能够同时重建好形状和外观,甚至可以用来进行数据生成并帮助感知模型训练。

w~自动驾驶合集11_自动驾驶_58

本来是段Demo的录屏的,后面有机会开源的时候再release

w~自动驾驶合集11_自动驾驶_59

所以我们打通了从重建,到泛化,再到生成的整个链路。甚至我们可以仿真生成激光雷达的数据:

w~自动驾驶合集11_自动驾驶_60

w~自动驾驶合集11_自动驾驶_61

第三点,就是将Agent与自动驾驶相结合,也是我们DiLu的后续研究方向。并不是简单地教大模型开车,而是利用大模型的通用理解能力,通过各种外部工具,务实地实现自动驾驶。不能为了用LLM而用。

目前我们在探索闭环评测,因为我觉得只在开环数据集上进行训练和评测已经略显疲态。尽管有一些基于仿真引擎做闭环训练的工作已经出现,但评测终究是开环的。我们目前正在尝试构建一套基于全功能Agent的pipeline,实现自动驾驶的incremental learning甚至是life-long learning。

最后再介绍一些我觉得和Knowledge-driven AD相关,但可能还需要一些时间才能看到的工作和方向。

w~自动驾驶合集11_自动驾驶_62

首先:小大模型的上车,比如一些1B的模型可能已经具备了在边端推理(甚至训练)的能力。以及一些线性Transformer的工作,如果真有一天能够上车就有趣了。因为现在大模型动辄规模这么大还是因为其本质是个通用模型。但如果我们只需要通用模型在某个子领域的一小部分能力,是不是不需要这么大也可以了?

第二,最近的一个概念:Superalignment。就是我们是否有空了能用小尺寸的大模型来supervise大尺寸的大模型。因为相比用小模型生成合适的语料喂给大模型来训练,可能用小模型来为大模型的训练提供supervise可能是个更容易的任务。OpenAI可能会用它来取代RLHF等简单任务中的人力,但仔细想想,这是不是下一代的「影子模式」?

第三,直接在世界模型中训练AD算法:其实这才是我觉得World Model的本质啊。一个能够建模整个世界的模型,一定能够完美地理解世界,也能够用来将自己对世界的理解拿来supervise自动驾驶算法本身?

第四,重建即感知:这也是最开始入坑多模态传感器融合感知时候的思考。即:其实无论多模态传感器融合、环视相机融合还是什么融合算法,其实本质就是在做「对齐」。这些算法的目标就是把各种不同位置不同模态的数据对齐到一个Unified Space。然后后面的算法再从这个Unified Space出发。其实仔细想想,无论是Pillar、Voxel,还是后来的BEV,和Occupancy,其本质都是一个一个用来对其的Unified Space。既然space这么多,究竟哪个Space最好?通常意义上来说,我们期待学习一种从输入空间到流形空间(关于流形空间很多年前我有过一个回答大家可以看看:求简要介绍一下流形学习的基本思想?)的映射。那么什么空间是最标准的对齐空间呢?我觉得就是3D空间啊。不同模态的传感器,都对齐到同一的3D空间。其实这件事本质就是做三维重建了。。。所以我觉得冥冥之中,「三维重建」和「场景理解」这两件事情总有一天会合二为一。重建即感知。

写到这里,这篇文章基本就结束了。可能废话有些多,主要都是我最近一段时间的思考,和我们团队的一些努力。最后回顾一下主旨

  1. LLM+AD的出现,意味着大家意识到了这是一个从数据驱动到知识驱动的时机
  2. 知识驱动可能有三个特性和目标:泛化性、可解释性、持续学习
  3. 我个人认为,没必要非要追求用LLM实现端到端的自动驾驶。因为大模型存在幻觉、推理速度慢等非常多的问题。我们应该利用的是LLM的知识运用能力、推理能力,并从Agent的角度出发,探索出一种能够利用LLM但不依赖LLM的架构,渐进式地构建新一代的自动驾驶系统。





#Diffusion BEV

扩散模型+BEV太强 | Diffusion BEV感知,小目标+遮挡都得到缓解

鸟瞰视角(BEV)是自动驾驶车辆(AVs)中最广泛使用的场景表示之一,因为它非常适合下游任务。为了提高AVs的安全性,在BEV中建模感知不确定性至关重要。最近,基于扩散的方法为视觉感知的不确定性建模提供了有前景的方法,但在大型覆盖范围下的BEV中无法有效检测小目标。这种性能下降主要可以归因于训练时使用的特定网络架构和匹配策略。

在这里,作者通过将扩散范式与当前最先进的BEV中的3D目标检测器相结合来解决这个问题。作者分析了这种方法所面临的独特挑战,这些挑战在确定性检测器中并不存在,并提出了一个基于目标 Query 插值的简单技术,即使存在扩散噪声,模型也能学习位置依赖性。基于这一点,作者提出了一种基于扩散的DETR模型,用于目标检测,该模型与粒子方法具有相似性。

在NuScenes数据集上的大量实验表明,与确定性状态最先进的算法相比,作者的生成方法具有同等或更好的性能。作者的源代码将公开发布。

1 Introduction

三维目标检测 - 在实际三维坐标系中定位和分类物体 - 是自动驾驶车辆流水线中最重要的任务之一。由于它直接影响到后续的预测、规划和执行模块,显然,为了避免障碍物,作者需要识别障碍物。直接从摄像头的视角估计物体的位置面临着透视变形和尺寸-距离歧义等问题。因此,鸟瞰视角(BEV)作为一种有用的表示形式,因为它是以自我为中心的、度量准确的、正交的,从而避免了形状的透视变形,并且受到遮挡和物体变形的影响较小。

w~自动驾驶合集11_自动驾驶_63

最近,已经证明扩散模型可以成功用于2D目标检测 [9] - 与生成任务(如文本到图像)完全不同的设置,在那里它们主导着。原则上,应该能够将基于扩散的目标检测应用于2D BEV,并预测3D位置,从而获得所有扩散的好处,如逐步精炼和计算与准确性之间的权衡?

作者发现,在BEV中无根据地应用扩散会导致性能不足的算法。作者认为这主要归因于具有挑战性的问题设置和网络架构没有针对BEV的特定几何方面进行优化。

设置:最近的一些工作将BEV表示为与自身车辆周围(50x50)或甚至(100x100)米网格相关的空间相关潜在特征。可检测的目标(如汽车和行人)相对于整个BEV地图的大小自然非常小,这使得与用于基准2D检测算法的常见数据集相比,检测更具挑战性。

架构:DiffusionDet [9],代表性的扩散算法,使用基于ROI(Region of Interesting,感兴趣区域)的架构,仅在提出的框内聚合BEV(鸟瞰视角)特征。这使得目标特征更加局部,避免了在BEV上的广泛搜索。在目标框较大且更密集的场景中,局部特征工作得很好,但作者在BEV中认为需要一种更专业的架构来更好地处理目标的稀疏性。

问题陈述和方法。由于目标检测本质上是一个搜索问题,而较小的物体定位更困难,因此在BEV中使用扩散检测物体的一些固有挑战可能会加剧。因此,作者试图回答的研究问题是:如何调整扩散方法和网络架构,以便在BEV中更容易地搜索?为了实现这一目标,作者的洞察是,首先,为了更有效地搜索,应该在搜索 Token(BBox, Anchor 点, Query )之间池化信息,其次,应该采取措施防止扩散噪声淹没数据中存在的任何位置依赖性。

为了在搜索 Token 之间池化信息,作者需要使它们_相互通信_。这可以通过使用自注意力来实现,这反过来又指向了类似于DETR这样的Transformer方法。这些模型使用一些固定的目标 Query ,它们学习将这些 Query 回归到预测的框中。它们进一步采用了交叉注意力模块,以独立于单个 Query 的方式从图像中查找相关的特征。组合架构可以利用全局特征,随着物体尺寸的减小,这种全局特征变得越来越有用。

关于位置依赖性,作者展示了扩散噪声如何影响预测框和目标框之间的匹配。本质上,大多数方法(如DeformableDETR)都从固定的参考点开始,查找这些位置的图像特征,并输出相应的校正,这些校正随后被应用到它们上。但是,当扩散应用于初始参考点时,它们不再与物体 Query 相关联,阻止模型使用位置信息。

为了解决这个挑战,作者引入了一种简单的方法_物体 Query 插值_,即使存在参考点上的噪声,也能让DETR类模型学习位置关系。

最终生成的生成模型可以优化其预测,权衡准确性和计算,在不同数量的搜索 Token (在训练和测试时)上运行,并产生与经过实战检验的确定性模型相当或更好的结果。此外,它与粒子方法相似,可以从粒子剪枝和优化的想法中借用灵感。

作者的贡献如下:

  1. 通过展示扩散过程的随机性如何影响分配,提供了一种对DETR类似模型[5, 71]中存在的分配不稳定问题的新看法。
  2. 展示了一种名为_ Query 插值_的模块,该模块允许模型在存在扩散噪声的情况下学习位置信息。
  3. 将提出的模块集成到变形DETR的变体中,称为粒子DETR,该变体使用扩散来去噪BBox中心到它们的真实位置。作者还进一步对模型在现实和大规模NuScenes数据集上的性能进行了详细分析。

2 Related Work

基于扩散的目标检测。利用扩散模型进行精确任务始于DiffusionDet,其中模型学习在图像坐标系中轴对齐的2DBBox去噪。首先,一个 Backbone 网络,例如ResNet或Swin Transformer,提取多尺度图像特征。在训练时,根据扩散计划,根据扩散时间表在真实(GT)BBox中添加随机噪声,而在测试时,从高斯分布中随机采样随机BBox。然后,一个基于区域感兴趣(ROI)的解码器架构将每个BBox内的特征聚合起来,并产生对BBox参数的校正。输出BBox然后被匹配到GTBBox进行训练。

其他应用。受到DiffusionDet的启发,扩散模型在其他预测任务中的应用也增加了。它已经被应用于BEV特征的去噪,未来离散BEV Token 的预测,视频中的动作分割,弱监督目标定位(WSOL),人类运动预测和姿态估计,域自适应语义分割,视频异常检测,伪装目标检测,文本视频检索,以及开放世界目标检测。

DETR模型家族。目前BEV中的目标检测主要由DETR变体主导。它们使用一个 Transformer 序列,其中固定数量的目标 Query 使用交叉注意力查找相关图像特征,并转换为固定数量的输出框。由于输出和GT是无序的,需要一个集合匹配步骤来为目标分配预测。这种匹配被称为不稳定的,因为在同一图像上的多个训练迭代中,一个预测可以被匹配到不同的目标。各种方法试图减轻这个问题,通过引入 Query 去噪,其中一些目标 Query 通过索引匹配到目标,以及对比去噪,其中在每个 Query 组中使用正负示例。

BEV感知。将摄像头特征转换为BEV是一个活跃的研究领域。这已经通过两种传统方法实现,即在图像平面上将3D Voxel 投影,并在投影内的图像特征进行平均池化,或者对每个图像像素估计一个分类深度分布,然后根据它们的深度在3D中提升特征。隐式投影,其中深度不显式估计,可以通过使用自注意力向上查找过去的BEV和交叉注意力向上查找当前图像特征实现。这就是作者在本工作中依赖的方法。一旦进入BEV,模型可以执行联合检测和轨迹预测,BEV分割,跟踪,或代理交互分析。

3 Approach

在本节中,作者通过考虑将扩散与BEV感知相结合时出现的独特挑战,参见第3.2节,以及作者的方法如何减轻这种挑战,参见第3.4节,来动机作者的方法。

Preliminaries

扩散模型。 扩散模型是一种生成模型,其目标是在样本空间上学习采样分布。为此,在训练过程中,一个随机过程根据预定义的调度向每个输入样本添加噪声。在训练时,模型学习预测添加的噪声,而在测试时,生成随机初始噪声,该模型逐步去噪直到形成训练分布中的数据点。

正向过程,在训练时向样本添加噪声,定义为

w~自动驾驶合集11_自动驾驶_64

Adding diffusion to BEV

w~自动驾驶合集11_自动驾驶_65

在测试时间,作者采样初始随机的BBox中心,并将其传递给解码器。由于模型已经训练为与可变参考点一起工作,因此可以在下一个去噪步骤中使用预测的BBox中心作为输入参考点。这使得作者可以迭代地优化预测 - 这一点是确定性模型(如DeformableDETR)无法做到的,因为它们依赖于特定的位置的目标 Query 。

遵循DETR 在每一层解码器上应用辅助损失,而不是仅仅在最后一层。将每个解码器层称为阶段,并将所有解码器层上的通过称为单个DDIM步骤。通过拥有多个这样的步骤,作者可以权衡准确性和计算。每个DDIM步骤只需要评估解码器。

Matching

DETR家族的检测器使用的匹配成本通常考虑预测的BBox尺寸和预测的类别logits。因此,不能说预测距离GT BBox更近的预测_总是_会被匹配,而那些距离更远的预测则不会被匹配。然而,确定性检测器收敛是因为即使匹配在不同的迭代中发生变化,输入的静态性质允许作者学习图像中的空间关系。

标签歧义。在扩散的情况下,存在特定情况,由于参考点噪声采样导致同一个BEV特征有不同的目标,实际上学习是不可能的。图4概念上说明了这些情况。

w~自动驾驶合集11_自动驾驶_66

w~自动驾驶合集11_自动驾驶_67

w~自动驾驶合集11_自动驾驶_68

在原则上,也可以直接插值BEV在采样位置上,完全避免使用学习到的目标 Query 。初步实验表明,在这种情况下,学习变得极其困难,原因是BEV特征的多样性和性质。如果模型使用交叉注意力查找BEV特征,而不是从目标 Query 开始,则要容易得多。

Additional method components

损失函数。算法的随机性质使得如果以一对一的方式匹配预测和真实值,训练将会非常慢且困难。为了缓解这个问题,作者采用了多对一匹配,即许多预测与每个GTBBox匹配。这极大地加快了训练速度,但需要使用非极大值抑制(NMS)对预测进行后处理。

作者损失函数如下:

w~自动驾驶合集11_自动驾驶_69

此外,最终在目标物体顶部停留的粒子的数量可以为作者提供关于在特定BEV位置上的感知不确定性的初步测量。作者不能将DETR模型的搜索 Token 称为动态,因为它们是固定的,不允许顺序优化。

4 Experiments

NuScenes数据集。 作者在包含近140万标注3D边界框的大规模NuScenes数据集上评估作者的方法,该数据集包含1000个场景。其中有23个语义类别,其中10个进行评估。图像的频率为2 Hz。主要的关注指标是平均精度(mAP)和更重要的NuScenes检测分数(NDS)。

对于mAP检测,只基于预测和GT中心之间的距离贪婪地分配预测给目标。有四个距离阈值 - 0.5,1,2和4米。mAP计算为100个召回百分位数平均精度,并进一步在这些4个距离阈值上平均。

在评估时间,一旦预测框和目标之间的分配完成,就可以计算各种真实阳性指标 - 翻译误差(mATE),尺度误差(mASE),BBox方向(mAOE),速度(mAVE),属性误差(mAAE) - 在匹配对上。这些指标与mAP一起加权形成NDS指标。有人声称,NDS指标在实际驾驶性能方面比mAP更为现实。

Comparison with baselines

在作者的实验中,作者将与以下最新的模型进行比较:

DiffusionDet,对它进行了最小程度的修改,并在BEV中直接使用作为作者的主要 Baseline 。

DeformableDETR,作为BEVFormer中的使用,是一种最新的确定性检测器,它已经大大超过了原始DETR模型。

w~自动驾驶合集11_自动驾驶_70

位置编码。 通常在某些相对于自车辆位置的位置上,某些类别的出现更为频繁,例如,行人出现在车辆前方的情况比出现在车辆侧面的情况要少。基于ROI的架构并没有考虑BEV中BBox的绝对位置,这促使作者使用正弦位置编码,并将它们连接到每个BBox标记的聚合BEV特征中。这提高了性能,但与BEVFormer相比仍然不足。

全局特征以解决稀疏性。 ROI-based架构强调每个BBox内部的局部特征。这样的先验在像COCO这样的数据集上是足够的,但对于更小的目标,作者认为需要更多的全局特征。这促使作者考虑一个基于DETR的架构,其中作者用目标 Query 和注意力代替BBox和ROI池化。现在,每个阶段首先应用目标 Query 之间的自注意力,从而考虑它们的相对位置和内容,然后应用交叉注意力在BEV上。这种交叉注意力具有潜在的无限视角,可以为每个标记聚合比ROI架构更多的全局BEV特征。

w~自动驾驶合集11_自动驾驶_71

检测精度。 结果表明,作者的基于扩散的Particle-DETR方法实现了良好的性能,在mAP和NDS方面明显优于 Baseline DiffusionDet。更重要的是,它的性能与确定性方法如BEVFormer具有可比性。作者的生成方法实现了更高的NDS,表明一旦检测建立,预测的BBox尺寸、方向和速度平均来说更加准确。然而,与BEVFormer相比,仍然存在约1.6 mAP的微小差距。

使用静态参考的提升。随机参考允许模型学习每个GT中心周围的吸引子。但是,没有什么阻止作者使用固定参考,它们可以获得更高的精度。因此,作者进一步实验了一个设置,其中作者使用两组参考 - 一组随机来自扩散过程,另一组固定。这样,两组参考导致两组 Query  - 一组是插值在随机位置的 Query ,另一组是学习并固定的。由于解码器是共享的,联合训练可以捕获随机和固定 Query 之间的任何协同作用,从而提高两种 Query 的性能。

在测试时间,为了使 Query 数量与以前的模型可比,可以使用只有扩散 Query 或固定 Query 。使用扩散 Query ,得到作者的最终Particle-DETR模型。使用固定 Query ,得到一个增强的BEVFormer,称之为BEVFormer-Enh。

Implementation details

Particle-DETR实现很简单,并遵循BEVFormer的做法。将模型训练与BEVFormer相同数量的迭代,参数数量也相似。

w~自动驾驶合集11_自动驾驶_72

训练超参数如表3所示,可以在算法1和2中找到伪代码。

w~自动驾驶合集11_自动驾驶_73

w~自动驾驶合集11_自动驾驶_74

梯度分离。 为了进一步简化训练,为每个解码器层配备了向前看两次更新,在计算前向传播过程中的下一层参考点时,每个解码器层的参考点并不从计算图中分离。

预测过滤。 在训练时间,多对一匹配有助于学习每个GT中心周围的吸引力盆地。然而,在测试时间,它会导致许多假阳性,正如补充材料中的第C节所示。因此,作者使用NMS,并利用一个小得分阈值来过滤任何置信度低于它的预测。

径向抑制。 作者发现,像交通锥子这样的非常小的目标不会重叠,会被NMS遗漏。因此,作者引入了径向抑制来进一步过滤掉BBox。本质上,首先按置信度递减的顺序对预测进行排序。然后,对于最自信的预测,依次用它们附近BBox的加权平均值替换它们,而这些加权平均值又会被过滤掉。

$\mathbf{b}_{i}=\frac{\sum_{k}\mathbf{b}_{k}\pi_{k}}{\sum_{k}\pi_{k}},\forall k :\sqrt{(c_{x,i}-c_{x,k})^{2}+(c_{y,i}-c_{y,k})^{2}}<r.$< p=""></r.$<>

w~自动驾驶合集11_自动驾驶_75

Additional properties

灵活性。 Particle-DETR架构允许用一个 Query 数量进行训练,但用不同的 Query 数量进行评估。此外,DDIM步数允许作者进一步权衡准确性和计算。图6表明,增加DDIM步数和粒子数都可以提高性能。使用900个参考点时,只需要一个DDIM步骤就可以在NDS上超过BEVFormer。

w~自动驾驶合集11_自动驾驶_76

结果的随机性。 由于依赖于随机采样的初始参考点,作者的方法的结果是随机的。表2显示了在10次测试运行中的统计数据。作者注意到,性能在各次运行中非常一致。

w~自动驾驶合集11_自动驾驶_77

Qualitative study

在这里,对作者的预测和BEVFormer的预测进行了定性比较。总体上,由于扩散过程导致的更高NDS使得作者的检测在位置、大小和方向上更加精确,这对非常小的目标(例如交通锥子)在汽车附近特别有益。在某些场景中,作者的方法甚至可以更早、更自信地识别出部分被遮挡的目标,如图7所示。

w~自动驾驶合集11_自动驾驶_78

常见于模型在估计大型物体的尺寸(如公交车和卡车)时存在准确估计的困难。这是因为它们大大遮挡了摄像机的视野,使得估计物体结束的位置变得困难。作者注意到,在某些场景中,作者的方法在这方面显著改善。补充材料中可以找到更多的视觉化和分析。

5 Discussion

生成模型的精度。 与文本到图像任务不同,学习给定BEV特征的边界框分布是一个非常不同的任务。即使对于非常详细的文本提示,也有许多相应的有效图像。改变像素值不会显著改变描述。因此,文本到图像任务可以容忍生成样本中大量变化。然而,目标检测需要输出精度。因此,调整 Query 数量,作者发现在mAP方面与确定性方法相比存在微小性能差距是自然的,因为随机参考输入始终会在输出上诱导分布。

不确定性。 学习一个分布在一个BBox上的边界框可以提供一种初步理解它们不确定性的方法。不幸的是,这种方法可能会将由于估计模型参数引起的认知不确定性与由于BBox本身的随机性引起的 aleatoric 不确定性混合在一起。补充材料中提供了估计的BBox分布的 Heatmap ,以及进一步的讨论。

6 Conclusion

在这项工作中探索了基于扩散的生成模型在BEV中的3D目标检测。作者发现无根据地使用以前的方法会导致性能差距。为了缩小这个差距,采用了基于 Transformer 的架构和特定的 Query 插值模块,以帮助模型在存在扩散的情况下学习位置信息。将扩散过程形式化为扩散粒子,这产生了基于粒子方法的独特解释。作者的方法在以前生成方法的基础上有了很大的改进,并达到了与强确定性方法相当的结果。

Appendix A Label Ambiguity

标签歧义会在参考点采样时出现匹配预测和目标之间的不确定性。图4给出了使用总距离匹配的示例。

w~自动驾驶合集11_自动驾驶_79

首先,图像经过两个卷积层,保持输出尺寸与初始尺寸相同。

然后,作者查找,即插值,一些参考点的特征作为额外输入。

处理后的特征经过两个线性层后,返回新的2D位置。

w~自动驾驶合集11_自动驾驶_80

如果有更多的参考点,模型确实可以收敛,收敛速度取决于参考点的数量。这是因为只有某些预测用于损失函数,使得预测更局部化到它们的参考点开始的位置。这种行为在参考点在训练迭代中固定时不存在,在这种情况下,模型总是收敛到零损失,无论它是否找到所有目标还是只找到一些目标。

在一个确定性的设置中,更多的参考点只会加快训练。但是,当它们是随机的时,为了收敛,需要有大量的参考点。

Appendix B Implementation

在这里,作者提供了关于实现和实验的额外信息。表3包含了训练超参数,而算法1和2提供了PyTorch类似的伪代码,用于训练和测试逻辑。大多数函数名称借用了。

对于实现,作者的代码库基于BEVFormer。在8个NVIDIA A100 GPU上训练所有模型24个周期在NuScenes数据集上,而评估始终在单个GPU上进行。在训练和测试时,批大小都设置为1。

w~自动驾驶合集11_自动驾驶_81

GIoU损失。与原始的DiffusionDet不同,在作者的实现中,作者没有使用GIoU损失,因为它的旋转BBox的支持反向传播实现并不简单。作者留待未来研究如何使用类似的度量作为损失。

SimOTA。在评估simOTA匹配策略时,作者移除了DiffusionDet中存在的成本矩阵遮挡。在那里,为那些中心距离目标BBox不够近或位于目标BBox内的预测增加额外成本,这实际上阻止了这些预测被匹配。在作者的设置中,这种遮挡引入了大量的不稳定性。因此,作者使用原始成本矩阵的simOTA,其中所有预测都被认为是所有目标的潜在匹配。

Appendix C Additional Experiments

在这里,作者提供了额外的实验结果。所有结果和图表都来自NuScenes验证数据集,除非另有说明。

确定性和随机参考。 作者的Particle-DETR在训练后提供了丰富的机会来调整测试时间性能。一旦模型被训练,就可以自由更改控制推理行为的超参数。首先,评估两个参考集的联合训练,固定和随机,如何影响性能。一旦从这种联合设置中得到模型,可以用两种参考集或其中一个来评估。表6显示了使用两种参考集进行评估时的性能。性能在统计上具有显著性,并优于BEVFormer在所有指标上。

w~自动驾驶合集11_自动驾驶_82

作者分析每个参考集如何贡献结果。为此,作者观察解码器层中的自注意力值。在评估两个 Query 集时,第一个解码器层的固定 Query 大约94%的时间用于关注其他固定 Query ,而与随机参考相关的扩散 Query (与固定参考相关)花费了82.5%的时间关注固定 Query 。这种不平衡在后续解码器层中得到纠正。特别是,在最后一个解码器层中,两个 Query 集分别花费约50%的时间关注另一个 Query 集。

当评估使用静态和随机参考的最终模型时,发现增加DDIM步骤或随机 Query 数量对性能没有显著影响,可能是因为对应静态参考的 Query 更重要。这一点在表4中得到了强调。mAP和NDS结果比只使用静态 Query 略高,表明随机参考对应的额外 Query 可以提高性能。

w~自动驾驶合集11_自动驾驶_83

如果作者只使用随机参考,mAP和NDS指标自然会更低,因为建议的校正都应该相对于当前参考位置,而这是随机的。使用额外的DDIM步骤或额外的参考之间存在明显的权衡,以及性能。表5和7显示了带有和没有径向抑制的情况。作者强调,在有足够的随机参考的情况下,Particle-DETR确实可以击败BEVFormer在mAP上。在NDS上,只需要900个参考和单个DDIM步骤就可以击败它。

w~自动驾驶合集11_自动驾驶_84

过滤。 为了进一步说明为什么需要过滤,由于多对一匹配导致多个预测堆叠在一起,作者发现使用NMS是必要的。最好的阈值是0.1,作者在表8中还结合了基于置信度的过滤。

w~自动驾驶合集11_自动驾驶_85

作者用径向抑制替换了一个置信度较高的预测框,用球形邻域内的预测加权平均值。作者调整这个邻域的半径。对于非常小的值,不进行过滤。对于较大的值,来自多个不同物体的预测被过滤。半径的最优值约为0.5米,如表9所示。邻域半径和NMS的联合调整的数据可以在表10中找到。

w~自动驾驶合集11_自动驾驶_86

参考重采样。 参考重采样是在DDIM步骤之间重采样搜索标记,就像DiffusionDet中所做的那样。作者尝试了不同的策略,但发现[9]中的基本策略最适合,如表11所示。因此,在每个DDIM步骤之间,只重采样对应于不太确信预测的参考。尝试的其他策略包括在确信预测附近重采样,不应用DDIM步骤的重采样,或者完全不进行重采样。

w~自动驾驶合集11_自动驾驶_87

模型特性。BEVFormer-Enh模型与BEVFormer具有相同的参数数量、FLOPS和FPS。Particle-DETR与之类似,但可以根据运行的DDIM步骤使用更多的计算资源。Query 插值的计算仅取决于参考点的数量,而与DDIM步骤无关。

Appendix D Qualitative Analysis

在这里提供了预测的额外可视化。图9显示了一个示例,其中Particle-DETR仅使用扩散 Query 来检测非常小的物体,这些物体被BEVFormer遗漏了。实际上,交通锥子在0.5米处的AP高于0.34,而BEVFormer的AP为0.28。对于汽车(+1 AP点)、自行车(+2.4)、摩托车(+2.8)、行人(+1.8)和障碍物(+9 AP点)等,也可以观察到类似的检测增强。

w~自动驾驶合集11_自动驾驶_88

总的来说,增加的NDS主要源于更准确的翻译、方向和速度。在图13中展示了作者的Particle-DETR将预测投影到摄像机图像上。突出了各种驾驶条件,包括明亮的阳光、雨天 - 雨滴在图像中造成局部模糊,以及夜间 - 由于曝光时间较短,像素强度噪声存在。在这所有这些情况下,作者的方法都能产生合理准确的预测,同时是一个完全生成性的模型。

w~自动驾驶合集11_自动驾驶_89

w~自动驾驶合集11_自动驾驶_90

w~自动驾驶合集11_自动驾驶_91

BEV由多个摄像头视图拼接而成。从逻辑上讲,禁止参考点从 ego-vehicle 的同一侧开始细化到另一侧是理想的,因为从一侧的视图无法提供关于相反视图的信息。Particle-DETR 的吸引力性质在很大程度上满足了这一约束。

由于起点的特征与任何可见场景元素都不对应,因此位于问题区域的参考点(如在墙后或在路边外)被推进BEV的两侧。相应的预测的置信度接近于零。

Appendix E Additional Discussion

标准的DETR模型是全确定的。要得到预测的不确定性估计,通常需要显式修改模型架构,例如通过添加额外的输出来代替标准差。在这里,作者的生成式Particle-DETR具有优势,因为一种基本的不确定性形式可以方便地获得。

首先,作者考虑基准BEVFormer,并使用核密度估计计算预测框中心的 Heatmap ,如图11所示。图11中每个预测框中心的密度(和颜色)主要由该点距离附近预测的接近程度决定。第一张 Heatmap 仅显示预测框中心的密度,即使不考虑每个预测的置信度。由于BEVFormer使用一对一匹配,大多数预测相当分散,只有少数被吸引到同一个GTBBox。如果作者按置信度对预测进行加权,作者得到第三张 Heatmap ,这更合理。

w~自动驾驶合集11_自动驾驶_92

现在,将同样的程序应用于Particle-DETR。在第二张 Heatmap 中,仅绘制预测框中心的密度,在应用NMS之前。由于在训练中存在多对一匹配,预测堆叠在一起,这防止密度过于分散,并使其相对集中在真实物体上。如果进一步考虑预测置信度作为每个点的一个权重,作者得到第四张 Heatmap ,其中密度更好地定位。

因此,预测的形成本身包含信息。尽管在目标检测中作者只使用几个预测,但对于不确定性估计,许多预测都是有益的。作者将这个问题留待未来的工作来研究如何以更正式的方式利用这个机会。