您的位置:首页 > 房产 > 家装 > 电脑一切正常就是打不开浏览器_高端的定义_北京网站制作400办理多少钱_nba排行榜最新排名

电脑一切正常就是打不开浏览器_高端的定义_北京网站制作400办理多少钱_nba排行榜最新排名

2024/12/23 4:04:30 来源:https://blog.csdn.net/weixin_49587977/article/details/143495148  浏览:    关键词:电脑一切正常就是打不开浏览器_高端的定义_北京网站制作400办理多少钱_nba排行榜最新排名
电脑一切正常就是打不开浏览器_高端的定义_北京网站制作400办理多少钱_nba排行榜最新排名

我自己的原文哦~  https://blog.51cto.com/whaosoft/12329152

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

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

激光雷达该不该被抛弃?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这主要体现在三个方面:

一是海量数据。

特斯拉的自动驾驶算法是业内公认能力最强、投入最大、研发最早的。截至目前,特斯拉 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 向占用网络迭代之路进化。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

轻舟智航产品负责人许诺直言,现阶段单纯依靠视觉方案,很难应对中国城市道路中的各类 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月的时间,我们可以通过高速高精地图来提取对应的车周围的车道线数据。当时做出来的时候,我记得大家还是很激动的。

图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》

图2: HDMapNet

图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用到。

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

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

首先还是回顾一下经典的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]

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]

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

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

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]

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]

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]

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

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

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

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

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

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和具身智能方面的进展。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

首先来说说泛化性

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

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

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

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

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

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

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

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

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

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

第三点,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开车并不是一个长久的方向。

首先来统一一下术语。

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

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

(下面这段关于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的工作,这里快速介绍一下,不是本文的重点。

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

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

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

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

这些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。

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

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

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

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

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

在整个系统中,我们可以让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模块,具体细节我就不介绍了,可以看看论文。

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

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

视频请点击链接: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来修正记忆。

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

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

这篇工作作为一个非常初步的工作,其所选择的环境、能进行的决策空间等等非常有限,属于一个早期的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相关的工作。其中部分工作也是我们团队正在进行的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

首先:小大模型的上车,比如一些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)作为一种有用的表示形式,因为它是以自我为中心的、度量准确的、正交的,从而避免了形状的透视变形,并且受到遮挡和物体变形的影响较小。

最近,已经证明扩散模型可以成功用于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

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

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

Adding diffusion to BEV

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

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

Matching

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

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

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

Additional method components

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

作者损失函数如下:

此外,最终在目标物体顶部停留的粒子的数量可以为作者提供关于在特定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模型。

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

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

检测精度。 结果表明,作者的基于扩散的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相同数量的迭代,参数数量也相似。

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

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

预测过滤。 在训练时间,多对一匹配有助于学习每个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.$<>

Additional properties

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

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

Qualitative study

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

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

5 Discussion

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

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

6 Conclusion

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

Appendix A Label Ambiguity

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

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

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

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

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

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

Appendix B Implementation

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

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

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

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

Appendix C Additional Experiments

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

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

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

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

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

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

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

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

模型特性。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点)等,也可以观察到类似的检测增强。

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

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

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

Appendix E Additional Discussion

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

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

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

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

#自动驾驶の泊车算法

自动驾驶泊车算法学习记录

在学习自动驾驶泊车方面的算法,看的论文主要有以下三篇,分别是Path Planning for Autonomous Vehicles in Unknown Semi-structured Environments, DL-IAPS and PJSO: A Path/Speed Decoupled Trajectory Optimization and its Application in Autonomous Driving, Speed Profile Planning in Dynamic Environments via Temporal Optimization

Path Planning for Autonomous Vehicles in Unknown Semi-structured Environments

这篇论文应该只要是学习Hybrid Astar的人都看过,主要讲的是在开放空间搜索泊车路径,第一步先搜索出一条大概满足运动学约束的路径,然后密集插值,在进一步采用CG算法优化平滑度,保持原来关键的位置不变,这样也不用害怕碰撞了,这篇论文进一步求路径点对应的速度

DL-IAPS and PJSO: A Path/Speed Decoupled Trajectory Optimization and its Application in Autonomous Driving

这篇论文是逻辑上和上一篇论文挺像的, 先搜索一条路径,然后对路径点进一步平滑,这个论文平滑的时候会采用一个信赖半径, 发生碰撞了就缩小关键点的可移动范围, 除此之外DL-IAPS and PJSO还求解了路径的速度,这是比较牛逼的,但我看不太懂- -,后续有机会再进一步研究

Speed Profile Planning in Dynamic Environments via Temporal Optimization

思路

我看传统的泊车方法好像都需要先搜索出一条路径,然后再作进一步的处理,我觉得Hybrid Astar的搜索速度非常依赖于地图分辨率,分辨率小了就会很慢,大了就没法精确避障了, 如果直接使用一条直线段连接成的路径作为参考线,不用搜索的结果了,然后对这个直线段采用最优化的方案进行求解效果会如何。TEB就是直接对直线段进行优化,并且也实现了car-like方面的路径规划, 于是我去下载了源码然后跑了一下,发现效果不太好,速度很慢, 很容易出现无解的情况, 我觉得可能是因为TEB还多了一个时间变量需要处理,时空联合规划很容易失败,如果我把这个时间给去掉,在进行优化的话效果会不会就不一样了?

方法

vehicle with trailer kinematic 参考文献

code

代码方面就是把TEB的代价函数复制过来就可以了,优化器改成ceres-solver的, 车辆模型,我不仅实现了汽车模型,还顺带在卡车模型啥也测试了一波。

Result

测试模型包含阿克曼汽车模型以及vehicle with trailer模型, 图中阿克曼就是用一个矩形来描述,卡车模型则用两个矩形来描述,小个的是车头,长条的是车厢(用c++画的图,很简陋- -),绿色框是辅助划线的可以不用管, 其他的多边形则为障碍物,

我以为测试结果会很差,结果还是有点出乎意料的,虽然有的时候会出现无解,但是只要初始线段给的好一点就不会出问题,优化的速度也挺快平均时间大概是0.3s, 路径的质量的评价我觉得主要是看平滑度和曲率大小,只要曲率不会超过车辆最小转弯半径就可以了, 这里我设置的曲率最大是0.155, 列了几组测试图,第一个是直线段参考线和优化后的路径图,第二幅是对应的曲率和航向   

  • Test1

reference_path(left), optimized path(right)

path curvature(left), path heading(right)

  • Test2

reference_path(left), optimized path(right)

path curvature(left), path heading(right)

  • Test3

reference_path(left), optimized path(right)

path curvature(left), path heading(right)

  • Test4

reference_path(left), optimized path(right)

path curvature(left), path heading(right)

  • Test6

reference_path(left), optimized path(right)

path curvature(left), path heading(right)

视频发不了...

problem

  1. 路径点的间隔不能小,否则优化时间和质量都会受到影响,这个我觉得后期可以参考上述论文,先优化出一条大概得解,然后再密集插值进一步平滑
  2. 参数初始化的好坏也会影响到求解结果
  3. 曲率不连续,虽然路径点曲率都满足要求了,但是曲率还是存在突变
  4. 倒车次数比较多

#自动驾驶の有图和无图

自动驾驶的无图化成为行业竞争的新热点,这也意味着自动驾驶从功能的堆叠进入商品化验证的阶段,无论是去高精度地图还是去激光雷达传感器,本质上都是自动驾驶作为技术应用产品,从功能到系统层面的优化。自动驾驶行业的系统优化风暴逐渐从demo阶段走向实际量产阶段,似乎只有无图、无激光雷达的自动驾驶系统才能凸显企业技术实力和系统的成本优势,在自动驾驶系统中使用高精度地图或者激光雷达信息意味着技术的落后和成本的高昂,这样就出现曾经自动驾驶相关企业纷纷布局的高精度地图或者激光雷达,一时间成为自动驾驶系统优化的众矢之的。

诚然,现阶段高精度地图在自动驾驶领域的推广应用存在一定的弊端,例如,数据更新慢、制作成本高、审核政策等等。然而,针对无激光雷达这个方案比较好理解,因为激光雷达是一个固定的硬件传感器,而去图的方式却是五花八门,每个自动驾驶厂商都宣称推出针对去图的自动驾驶方案,而效果却是千差万别,究其原因主要有两点:

第一点是高精度地图自身的复杂性。高精度地图在自动驾驶系统中是一个比较复杂的输入信号,可以当做是硬件部分也可以看做是系统输入数据的一部分,涉及到感知、定位、决策等模块。

一般意义上来讲,以时间维度高精度地图可以分为两层,底层的静态地图和上层的动态地图,其中静态地图包括道路网、车道网、车道线、交通标志等相对固定的信息,动态地图是一些可能实时变动的交通信息,例如交通拥堵、施工、交通事故等等,为自动驾驶车辆提供实时动态路径规划和信息冗余。从数据维度来看,基于感知控制的逻辑,以高精度地图为核心建立车辆行驶的虚拟环境,并且将行车规划转化为车辆动力学控制。这其中高精度地图包含的数据主要有七层,从底层的道路级路网数据、宏观动态数据、车道级路网数据、车道级路侧数据、虚拟定位的高精度3D数据、动态障碍物的实施环境数据和最上层的驾驶员数据;

第二点是中文的魅力体现。高精度是一个相对的概念,而不是物理或者数学层面对物理世界的定义,正如物理领域的误差的概念一样,错误是可以避免的而误差永远是存在的,所谓的高精度地图中的高精度一般对比的是普通的电子导航地图,也是人为的定义地图数据要素形成行业的普遍共识,地图中的数据为人或者系统提供先验的信息,所以注定是会有一定的延迟。这个延迟也可以理解为对物理世界感知的误差,所以无论是图商提供的地图还是车企或者自动驾驶公司实时感知的物理环境,误差也是存在的,只是用其他技术来缩小误差的范围。

现阶段面对复杂的高精度地图,所有的无地图方案、轻地图方案宣传的口径自然不一,这也就演化出两个问题,一是到底多轻才算轻地图方案,二是去地图的去多少地图信息数据还是完全没有使用先验信息。反过来,自动驾驶厂商开始重新定义高精度地图、定义系统所需的地图信息,高精度地图变成了高度定制的产品,逐渐弱化高精度地图在整个自动驾驶系统中的信息输入,这个弱化不仅仅体现在功能方面,还体现了市场营销方面。含图量的方式主要分为两层来看,第一层是地图应用端。高精度地图信息和车端感知信息的平衡关系的重建。例如,8月14日,小鹏汽车宣布,预计到2023年年底,将会有 50 座城市实现 XNGP 的落地。同时,XNGP 的无图区域能力也正在开发中。XNGP的无图是指在不再有确定信息输入和预验证过程并有环境干扰状态下,完全依靠车辆自身感知元器件、实时感知能力来实现辅助驾驶功能。所以在XNGP系统中,高精度地图的作用是作为一个确定信息的输入源,主要是为自动驾驶系统提供信息预验证的作用,比较典型的场景就是路口或者匝道。

无图方案是通过车端传感器实现动态和静态的环境信息输入,用车端的算法和算力平衡高精度地图信息;第二次层更细一点看目前无图算法方案主要可以分为1.0和2.0两大类方案,1.0是轻地图+重感知方案,通过地图数据要素的定制化弱化高精度地图的名称,既可以实现地图的数据输入还能有效的通过地图审核,也就是说不需要高精度地图也能实现高精度地图的效果。无图方案比较好理解,只需要普通的地图提供传统道路网数据,通过车辆自身的感知系统实现建图。例如Momenta和智己汽车联合发布的无图智驾算法方案,主要分为建图和定位两部分,建图是通过道路中的车道线等静态约束识别和构建车辆实时行驶地图,定位是通过采集车辆横纵向执行器数据以及IMU、轮速、电机转速等信号数据融合实现车辆的实时定位,有了车辆的实时定位信息,再结合其他交通参与者信息,下游的规控算法进行车辆行驶的路径规划。

2.0无图方案典型的就是特斯拉的一体化Occupancy算法,其是将三维世界划分为一个个的网格单元,然后定义哪个单元被占用,哪个单元是空闲。根据特斯拉AI DAY发布的内容,简单的理解是首先通过特斯拉的8个摄像头拍摄到的8个画面,然后画面被发送到由Regnet和BiFPN组成的主干网络;其次注意力模块采用位置图像编码并使用QKV矩阵来计算注意力机制,经过注意力机制后,会产生一个占用体积特征,然后模型会将其之前时间的体积特征融合,以获得4D 占用特征网络;最后生成 3D 体积后,使用 NeRF将输出与经过训练的 3D 重建场景进行比较。相比1.0的方案,2.0的方案可以通过数字代码的方式进一步准确的描述物理世界。

相比于自动驾驶厂商对激光雷达和高精度地图的去除态度,激光雷达和地图行业反而一直在活跃,激光雷达厂商禾赛科技登录纳斯达克、北京高精度地图政策调整,扩展示范区域、四维图新通过全国120个城市高级辅助驾驶地图审核、广汽集团出资4000万设立合伙企业,布局高精度地图产业等等信息,这系列的变化充分说明几个问题:

首先是去图或去激光雷达只是一个技术探索的方向,而当下的自动驾驶产品仍然是需要地图或者激光雷达,至于能持续多久是一个未知解;

其次是从技术的角度看,通过技术手段提高生产效率是发展的核心驱动力,从商品的角度看,从技术到商品需要有两个大前提,一个是技术应用的价值空间,辅助驾驶或高级辅助驾驶的功能已经证明了在汽车智能化领域的价值;另一个是技术应用的可行性,特斯拉的纯视觉方案或者一体化算法已经可以实现辅助驾驶甚至达到高级辅助驾驶,所以在辅助驾驶或者高级辅助驾驶领域,去图或者去激光雷达的是具有一定的可行性。在辅助驾驶或高级辅助驾驶层面,地图技术或者激光雷达技术在自动驾驶系统中的价值和可行性空间是一个固定值,可以在整个系统中通过其他的技术手段将地图和激光雷达的技术转移到系统能力;

最后是自动驾驶行业中车企、自动驾驶系统商和图商、激光雷达厂商之间的商业博弈。所谓的无图自动驾驶方案,地图能力体现在车端的感知能力之中,从本质上来说地图信息是空间信息的图形传递形式,也是人类认识客观世界的模型之一,所以无论是有没有用图商的高精度地图,自动驾驶系统中都是需要地图模型。

高精度地图一直伴随着自动驾驶技术的发展,同样自动驾驶的发展也会影响高精度地图甚至是地图行业的进化。近十年以来,自动驾驶行业发展中充满了雄心和失落,热血和落幕,与此同时自动驾驶也为汽车和计算机行业带来新的探索方向。在自动驾驶行业起伏之中,不得不提谷歌,得益于谷歌收购了人工智能顶级专家辛顿团队,谷歌独占了第三次人工智能潮流的鳌头。从人工智能到自动驾驶技术,谷歌成为较早的入局者。众所周知,谷歌也是一家数据和地图公司,试图依靠这两个优势资源打通自动驾驶的产业化,所以在自动驾驶产业化的起始阶段,高精度地图和GPS定位成为自动驾驶系统标准配置,这一架构一直影响着自动驾驶的技术发展。

 2014年高德地图搭建了国内第一条高精度地图生产线,2018通用汽车的凯迪拉克CT6进入中国,CT6的高配车型搭载了Super Cruise超级辅助驾驶系统,中国首次通过高精度地图审图。可以说,地图行业影响了自动驾驶技术的发展。现阶段,以产品化为导向的自动驾驶技术要求,无形中已经将自动驾驶的功能范围进行了界定,主要分为辅助驾驶和高级辅助驾驶,也就是说在自动驾驶的产品形态不再是天马行空的想象,而是真实可见的产品。在有限的范围内就要求降低产品的成本,从而推广技术应用。这也就解释了,无论是小鹏的无图化的XNGP还是自动驾驶创业公司形式多样的无图方案都有一个共同的特点,那就是对自动驾驶功能的实现进行无图化替代,这样必将出现一个问题,含有高精度地图的系统和无图的系统之间性能的比较,高精度地图成本和无图算法开发的成本之间的对比。高精度地图行业也会根据自动驾驶技术的发展调整行业的玩法,最终还是需要以自动驾驶系统的性能为判断依据,以自动驾驶产品的商品性为参考,而不是单纯的以技术角度“炫技”,为了无图而去图。自动驾驶系统在去图化、去激光雷达化,反过来地图行业、激光雷达行业也会进化出新的商业模式参与到智能化的变革之中,行业不会消失,只会进化成另外的形式存在。

#全景/鱼眼相机低速自动驾驶の近距离感知

cameras是自动驾驶系统中的主要传感器,它们提供高信息密度,最适合检测为人类视觉而设置的道路基础设施。全景相机系统通常包括四个鱼眼摄像头,190°+视野覆盖车辆周围的整个360°,聚焦于近场感知。它们是低速、高精度和近距离传感应用的主要传感器,如自动泊车、交通堵塞辅助和低速紧急制动。在这项工作中,论文对此类视觉系统进行了详细的调查,并在可分解为四个模块组件(即识别、重建、重新定位和重组)的架构背景下进行了调查,共同称之为4R架构。论文讨论了每个组件如何完成一个特定方面,并提供了一个位置论证(即它们可以协同作用),形成一个完整的低速自动化感知系统。

本文的工作部分受到了Malik等人在[5]中的工作的启发。这项工作的作者提出,计算机视觉的核心问题是重建、识别和重组,他们称之为计算机视觉的3R。在此,论文建议将计算机视觉的3R扩展并专门化为自动驾驶计算机视觉的4R:重建、识别、重组和重新定位。

重建意味着从视频序列推断场景几何体,包括车辆在场景中的位置。这一点的重要性应该是显而易见的,因为它对于场景绘制、障碍物避免、机动和车辆控制等问题至关重要。Malik等人将此扩展到几何推断之外,以包括反射和照明等特性。然而,这些附加属性(至少目前)在自动驾驶计算机视觉环境中并不重要,因此论文将重建定义为更传统意义上的三维几何恢复。

识别是一个术语,用于将语义标签附加到视频图像或场景的各个方面,识别中包括层次结构。例如,自行车手有一个空间层次结构,因为它可以分为自行车和骑手的子集,而车辆类别可以有汽车、卡车、自行车等分类子类别。只要对自动驾驶系统有用,这种情况就可以继续下去。灯可以按类型(车灯、路灯、刹车灯等)、颜色(红、黄、绿)以及它们对自动驾驶车辆的重要性(需要响应,可以忽略)进行分类,从而完成系统的高级推理。

重新定位是指车辆相对于其周围环境的位置识别和度量定位。可以针对宿主车辆中预先记录的轨迹进行,例如,经过训练的停车场,也可以针对从基础设施传输的地图进行,例如HD Maps。它与SLAM中的环路闭合高度相关,尽管不只是考虑环路闭合问题,而是考虑根据一个或多个预定义地图定位车辆的更广泛问题。

重组是将计算机视觉前三个组成部分的信息组合成统一表示的方法。在本文中,使用这个术语来等同于“后期融合”,这是自动驾驶的重要步骤,因为车辆控制需要传感器输出的统一表示,这也允许在后期融合多个摄像头的输出。

近域感知系统介绍

自动停车系统

自动停车系统是短距离传感的主要用例之一,图4描述了一些典型的停车用例。早期商业半自动泊车系统采用超声波传感器或radar,然而,最近,全景摄像头正成为自动停车的主要传感器之一。超声波和毫米波雷达传感器用于自动停车的一个主要限制是,只能根据存在的其他障碍物来识别停车位(图5)。此外,环视相机系统允许在存在可视停车标记(如涂漆线标记)的情况下停车,同时也被视为实现代客泊车系统的关键技术。

交通拥堵辅助系统

由于大部分事故都是低速追尾碰撞,交通拥堵情况被认为是短期内可以带来好处的驾驶领域之一,尽管目前的系统可能缺乏鲁棒性。在自动交通拥堵辅助系统中,车辆在交通拥堵情况下控制纵向和横向位置(图6)。此功能通常用于低速环境,最高速度为∼60kph,但建议更低的最高速度为40kph。虽然交通拥堵援助通常考虑高速公路场景,但已经对城市交通拥堵救援系统进行了调查。鉴于此应用的低速特性,全景摄像头是理想的传感器,尤其是在城市环境中,例如,行人可以尝试从传统前向摄像头或radar系统视野之外的区域穿过。图7显示了使用全景相机进行交通堵塞辅助的示例。除了检测其他道路使用者和标记外,深度估计和SLAM等特征对于推断到物体的距离和控制车辆位置也很重要。

低速制动

一项研究表明,自动后向制动显著降低了碰撞索赔率,配备后摄像头、驻车辅助和自动制动的车辆报告碰撞减少了78%。全景相机系统对于低速制动非常有用,因为深度估计和目标检测的组合是实现此功能的基础。

鱼眼相机

鱼眼相机为自动驾驶应用提供了明显的优势,由于视野极广,可以用最少的传感器观察车辆的整个周围。通常,360°范围只需要四个摄像头覆盖。然而,考虑到更为复杂的投影几何体,这一优势带来了成本。过去的几篇论文综述了如何建模鱼眼几何形状,例如[34]。论文不打算在此重复这一点,而是关注鱼眼相机技术的使用给自动驾驶视觉带来的问题。

在标准视场相机中,直线投影和透视的原理非常接近,具有常见的透视特性,即现实世界中的直线在图像平面上投影为直线。平行的直线组被投影为一组直线,这些直线在图像平面上的一个消失点上会聚。通过光学畸变的偏离很容易纠正。许多汽车数据集提供的图像数据消除了光学畸变,具有简单的校正方法,或几乎不可察觉的光学畸变。因此,大多数汽车视觉研究都隐含了直线投影的假设,鱼眼透视图与直线透视图有很大不同。相机场景中的一条直线被投影为鱼眼图像平面上的一条曲线,平行线集被投影为一组在两个消失点处会聚的曲线[38]。然而,失真并不是唯一的影响,图8显示了环视系统中安装在镜子上的典型摄像头的图像。在鱼眼相机中,物体图像中的方向取决于它们在图像中的位置。在本例中,左侧的车辆旋转了近90◦ 与右侧车辆相比,这对目标检测卷积方法中假定的平移不变性有影响。在标准相机中,平移不变性是可以接受的假设。然而,如图8所示,鱼眼图像并非如此,在任何计算机视觉算法设计中,必须仔细考虑如何处理这一点。

解决这些问题的自然方法是以某种方式纠正图像。可以立即放弃对单个平面图像的校正,因为首先,过多的视野必然会丢失,从而抵消鱼眼图像的优势,其次,插值和透视伪影将很快占据校正输出的主导地位。一种常见的方法是使用多平面校正,即鱼眼图像的不同部分被扭曲成不同的平面图像。例如可以定义一个立方体,并将图像扭曲到立方体的曲面上。图9显示了两个此类表面上的翘曲。即使在这里,插值和透视效果也是可见的,必须处理曲面过渡的复杂性。

另一种校正方法是考虑圆柱表面的warping ,如图10所示,在这种warping 中,圆柱轴线的配置使其垂直于地面。观察结果表明,汽车场景中的大多数感兴趣对象都位于近似水平的平面上,即路面上。因此希望保留水平视野,同时允许牺牲一些垂直视野,这带来了有趣的几何组合。

垂直是通过线性透视投影,因此场景中的垂直线在图像中投影为垂直线。图像中较远或较小的对象在视觉上类似于透视相机,甚至有人建议,通过这种变形,可以使用标准透视相机训练网络,并在鱼眼图像上直接使用它们,而无需训练[39]。然而,在水平方向上,新图像中存在失真,大型近景物体表现出强烈的失真,有时甚至比原始鱼眼图像中的失真还要大。

如图11所示,当我们处理透视相机时,当物体与相机以恒定的Z距离移动时,就会产生平移,也就是说,在与图像平面平行的平面上。然而,在圆柱形图像中,水平面上的距离必须保持不变,才能进行图像平移(对象必须绕圆柱体轴旋转)。相比之下,在原始鱼眼图像中,不清楚什么对象运动会导致图像平移。

WoodScape dataset

WoodScape全景数据集在两个不同的地理位置采集的:美国和欧洲。虽然大多数数据是从轿车中获得的,但运动型多用途车中有很大一部分数据可确保传感器机械配置的强大组合,驾驶场景分为高速公路、城市驾驶和停车用例。数据集中为所有传感器以及时间戳文件提供内部和外部校准,以实现数据同步,包括相关车辆的机械数据(例如,车轮周长、轴距)。为该数据集记录的传感器如下所示:

1)4x 1MPx RGB鱼眼摄像头(190◦ 水平视野) 2)1x激光雷达,20Hz旋转(Velodyne HDL-64E) 3)1x全球导航卫星系统/惯性测量装置(NovAtel Propak6和SPAN-IGM-A1) 4)1x带SPS的GNSS定位(Garmin 18x) 5)来自车辆总线的里程表信号

系统架构注意事项

在自动驾驶计算机视觉设计中,尤其是pipelines设计中,一个重要的考虑因素是嵌入式系统的约束,其中多个摄像头和多个计算机视觉算法必须并行运行。由于计算机视觉算法是计算密集型的,汽车SoC有许多专用硬件加速器用于图像信号处理、镜头畸变校正、密集光流、立体视差等。在计算机视觉中,深度学习在各种识别任务中发挥着主导作用,并逐渐用于几何任务,如深度和运动估计。

为了最大限度地提高处理硬件的性能,最好从处理阶段的角度考虑嵌入式视觉,并在每个处理阶段考虑共享处理,pipelines如图12所示。

1) 预处理:pipelines的预处理阶段可以看作是为计算机视觉准备数据的处理。这包括图像信号处理(ISP)步骤,如白平衡、去噪、颜色校正和颜色空间转换。关于ISP和ISP在汽车环境中用于计算机视觉任务的调整的详细讨论,请参考[52]。ISP通常由硬件引擎完成,例如作为主要SoC的一部分。很少在软件中完成,因为需要完成大量像素级处理。正在提出一些方法来自动将ISP管道的超参数调整为优化计算机视觉算法的性能[52]、[53]。值得注意的是,目前正在提出简化ISP视觉感知pipelines的方法,可以参考[54]。

2) 像素处理阶段:像素处理可以被视为计算机视觉体系结构中直接接触图像的部分。在经典的计算机视觉中,这些算法包括边缘检测、特征检测、描述符、形态运算、图像配准、立体视差等。在神经网络中,这等同于CNN编码器的早期层。这一阶段的处理主要由相对简单的算法控制,这些算法必须每秒多次在数百万像素上运行。也就是说,计算成本与这些算法每秒可能运行数百万次的事实有关,而不是与算法本身的复杂性有关。这一阶段的处理硬件通常由硬件加速器和GPU主导,尽管有些元素可能适合DSP。

3) 中间处理阶段:顾名思义,中间处理阶段是从像素到对象检测阶段之间的桥梁。在这里,要处理的数据量仍然很高,但大大低于像素处理阶段。这可能包括通过视觉里程表估计车辆运动、视差图的立体三角测量和场景的一般特征重建等步骤,在pipelines的这个阶段包括CNN解码器。这个阶段的处理硬件通常是数字信号处理器。

4) 目标处理阶段:对象处理阶段是整合更高层次推理的阶段,在这里可以聚类点云来创建目标,对对象进行分类,并且通过上述推理,可以应用算法来抑制移动目标的重缩放。此阶段的处理主要由更复杂的算法控制,但操作的数据点较少。就硬件而言,通常适合在ARM等通用处理单元上运行这些处理器,尽管通常也会使用数字信号处理器。

5) 后处理:最后后处理阶段,也可以称为全局处理阶段。在时间和空间上持久化数据。由于可以拥有长时间持久性和大空间地图,因此前几个阶段的总体目标是最小化到达此阶段的数据量,同时维护最终用于车辆控制的所有相关信息。在此阶段,将包括 bundle adjustment、地图构建、高级目标跟踪和预测以及各种计算机视觉输入的融合等步骤。由于处理的是系统中最高级别的推理,并且理想情况下处理的是最少的数据点,因此这里通常需要通用处理单元。

4R部件介绍

识别

识别任务通过模式识别识别场景的语义。在汽车领域,第一个成功的应用是行人检测,它结合了手工设计的特征,如定向梯度直方图和机器学习分类器,如支持向量机。最近CNN在目标识别应用程序中的各种计算机视觉任务中表现出显著的性能飞跃,然而,这是有代价的。首先,汽车场景非常多样化,预计该系统将在不同国家以及不同的天气和照明条件下工作,因此,主要挑战之一是建立一个涵盖不同方面的有效数据集。其次,CNN是计算密集型的,通常需要专用硬件加速器或GPU(与在通用计算核心上可行的经典机器学习方法相比)。因此,有效的设计技术对于任何设计都至关重要,最后,虽然对正常图像的CNN进行了很好的研究,但如前所述,鱼眼图像的平移不变性假设被打破,这带来了额外的挑战。

本文的识别pipelines中,提出了一种基于外观模式识别对象的多任务深度学习网络。它包括三个任务,即目标检测(行人、车辆和骑车人)、语义分割(道路、路缘和道路标记)和透镜污染检测(不透明、半透明、透明、透明)。目标检测和语义分割是标准任务,有关更多实现细节,请参阅FisheyeMultiNet论文。其中一个挑战是在训练阶段平衡三个任务的权重,因为一个任务可能比其他任务收敛得更快。

鱼眼摄像头安装在车辆上相对较低的位置(∼地面以上0.5至1.2米),容易因其它车辆的道路喷雾或道路水而导致透镜脏污。因此,检测摄像头上的污物至关重要 镜头提醒驾驶员清洁摄像头或触发清洁系统。SoilingNet中详细讨论了污垢检测任务及其在清洁和算法降级中的使用,与此密切相关的一项任务是通过修补修复受污染区域的去污,但这些去污技术目前仍属于可视化改进领域,而不是用于感知。这是一个定义不清的问题,因为不可能预测遮挡的背后(尽管这可以通过利用时间信息来改善)。由于低功耗汽车ECU的CNN处理能力有限,本文使用多任务架构,其中大部分计算在编码器中共享,如图13所示。

重建

如前所述,重建意味着从视频序列推断场景几何体。例如,这通常意味着估算场景的点云或体素化表示。静态对象的重建,传统上是使用诸如运动立体[56]或多视图几何中的三角剖分[73]等方法来完成的。在设计深度估计算法的背景下,[74]中简要概述了人类如何推断深度,并提供了有用的进一步参考。推断深度有四种基本方法:单目视觉线索、运动视差、立体视觉和focus深度。每种方法在计算机视觉方面都有其等效性,根据Marr&Poggio早期的理论工作[75],Grimson在20世纪80年代早期提供了立体视觉的计算实现[76],自那时以来立体视觉方面的工作一直在继续。然而,立体视觉系统并没有普遍在车辆上实现部署,因此,单目运动视差方法在汽车研究中仍然很流行。从计算上看,运动视差的深度传统上是通过特征三角剖分完成的[78],但运动立体也被证明很流行[79]。

考虑鱼眼图像会增加重建任务的复杂性,多视图几何、立体视觉和深度估计中的大多数工作通常假设场景的平面透视图像。传统的立体方法进一步限制了图像中的极线必须是水平的,然而,真实相机很少出现这种情况,因为存在镜头畸变,从而破坏了平面投影模型。它通常通过图像的校准和校正来解决。然而,对于镜头畸变非常严重的鱼眼图像,在校正过程中保持宽视场是不可行的。领域已经提出了几种鱼眼立体深度估计方法,常见的方法是多平面校正,其中鱼眼图像映射到多个透视平面[82]。然而,如前所述,任何平面校正(即使有多个平面)都会遭受严重的重采样失真。要最小化此重采样提出了对非平面图像进行畸变、校正的方法,有些方法会扭曲不同的图像几何形状,以保持极线笔直和水平的立体要求[83]。还有一些方法绕过了极线水平的要求,例如,最近将平面扫描法[84]、[85]应用于鱼眼[86]。鱼眼图像重采样的一个相关问题是,噪声函数被重采样过程扭曲,这对于任何试图最小化重投影误差的方法来说都是一个问题。Kukelova等人[73]使用标准视场相机的迭代技术解决了这一问题,该技术在避免失真的同时最小化了重投影误差。然而,这种方法取决于特定的相机型号,因此不直接适用于鱼眼相机。

重建的第二个方面是从视频序列中提取运动对象(运动分割)。由于三角剖分假设被打破,动态对象的三维重建会导致全局意义上的位置不精确。重建运动物体几何结构的典型尝试需要图像运动分割、相对基本矩阵估计和重建(具有比例/投影模糊性)。例如,使用Multi-X[88],前两步基本上可以结合起来,因为分割可以基于基本矩阵估计进行。然而,对于嵌入式自动驾驶应用来说,这种方法要么计算成本太高,要么不够健壮。此外,这种重建必须解决比例问题,可变形物体(如行人)可以针对身体的不同部位使用不同的基本矩阵。因此,动态目标检测的任务通常只是简单的运动分割。

Klappstein等人[89]描述了汽车背景下运动分割的几何方法,Mariotti和Hughes[90]将这项工作扩展到了环视摄像头外壳。然而,在这两种情况下,几何图形都无法完全区分所有类型的移动特征。也就是说,有一类对象运动使关联特征与静态特征无法区分,因此,必须采取全局或半全局办法。在传统方法中,这是通过将具有与被归类为运动中的光流矢量相似特性的光流向量分组来实现的。

通常,运动分割的关键输入是摄像机运动的知识。也就是说,必须知道相机的基本矩阵(或未校准情况下的基本矩阵)。[89]和[90]中假设了这一点,可以通过两种方式实现。首先,可以直接使用车辆网络上的信号,例如转向角和车轮速度,来估计车辆的运动,从而估计摄像机的运动。或者,可以使用视觉方法直接从图像序列估计运动。除了明确估计相机的运动外,另一种方法是在图像中建模背景运动。有人建议使用背景运动的仿射模型,然而,这假设背景是遥远或近似的平面,径向变形不存在或可忽略不计。图14显示了不同重建阶段的示例,包括密集运动立体、3D点云和静态障碍物集群,以及基于密集光流的运动分割。虽然鱼眼图像的使用肯定会影响设计决策,从理论角度来看,这是一个尚未完全解决的问题。

重定位

视觉同步定位与映射(VSLAM)是机器人技术和自动驾驶领域的一个研究热点。主要有三种方法,即(1)基于特征的方法,(2)直接SLAM方法和(3)CNN方法。基于特征的方法利用描述性图像特征进行跟踪和深度估计,从而生成稀疏的地图。MonoSLAM、Parallel Tracking and Mapping(PTAM)和ORBSLAM是这类算法中的开创性算法。直接SLAM方法适用于整个图像,而不是稀疏特征,以帮助构建密集的地图。密集跟踪和映射(DTAM)和大规模半密集SLAM(LSD-SLAM)是基于光度误差最小化的常用直接方法。对于Visual SLAM问题,基于CNN的方法相对不太成熟,在[101]中对此进行了详细讨论。

mapping是自动驾驶的关键支柱之一,许多首次成功的自动驾驶演示(如谷歌)主要依赖于对预先绘制区域的定位。TomTom RoadDNA等高清地图为大多数欧洲城市提供了高度密集的语义3D点云地图和定位服务,典型的定位精度为10 cm。当有准确的定位时,高清地图可以被视为主要线索,因为已经有了强大的先验语义分割,并且可以通过在线分割算法进行细化。然而,这项服务很昂贵,因为它需要世界各地的定期维护和升级。

在自动驾驶视觉环境中,视觉SLAM(VSLAM)包括绘制车辆周围环境的地图,同时在地图中估计车辆的当前姿态。VSLAM的关键任务之一是根据之前记录的车辆定位轨迹。图15显示了一个经典的基于特征的重定位pipelines。在基于特征的SLAM中,第一步是提取显著特征。图像中的一个显著特征可能是像素区域,其中强度以特定方式变化,例如边缘、角落或斑点。要估计世界上的地标,需要执行跟踪,其中可以匹配相同特征的两个或多个视图。一旦车辆移动足够远,VSLAM会拍摄另一张图像并提取特征。重建相应的特征,以获得它们在真实世界中的坐标和姿态。然后,这些检测到的、描述的和定位的地标被存储在永久存储器中,以描述车辆轨迹的相对位置。如果车辆返回相同的一般位置,实时特征检测将与存储的地标匹配,以恢复车辆相对于存储轨迹的姿态。

重组

重组执行三个功能:1)融合识别和重建,2)通过相机在世界坐标系统中绘制目标地图,3)时空物体跟踪。虽然识别和重组模块可以直接输入到环境图中,但我们认为在视觉层实现某些融合有明显的优势。先用一个例子来考虑这一点,如图16所示,假设有一个具有单目深度估计、运动分割和车辆检测的系统。融合这些信息的经典方法是将所有数据转换为世界坐标系,然后关联和融合数据,这种方法具有优势。一些汽车传感器,如激光雷达,提供本地欧几里德数据,基于这种欧几里得地图的融合系统使得包含这些附加传感器变得容易。然而,在转换为欧氏图时,基于相机的检测精度将始终受到影响。众所周知,从图像域到世界域的投影容易出错,因为它们会受到校准不良、平地假设、检测变化、像素密度和不完美相机模型的影响。如果目标在感兴趣的点上没有实际接触地面,那么对于投影到世界坐标系的平地假设将存在重大错误。

然而,在向世界投影之前,图像域中的检测不受此类错误的影响,因此,图像域不同视觉算法的检测关联更为稳健,事实上,简单的检测重叠措施通常证明是稳健的。图18显示了基于CNN的车辆检测和基于光流的运动分割的基于图像的融合的实现,尽管运动分割存在显著误差,但融合成功地将检测到的目标分为车辆和动态两类。除此之外,还必须考虑失真校正如何影响测量噪声,许多常用的融合和跟踪算法,如卡尔曼滤波或粒子滤波,都是从平均零假设开始的(高斯噪声)。对于计算机视觉中的感兴趣点测量(例如,图像特征或边界框足迹估计),通常认为这是一个有效的假设。然而,鱼眼畸变和地平面投影过程扭曲了该噪声模型(图19)。此外,由于测量噪声的失真取决于图像中感兴趣点的位置以及相机相对于路面的位置,因此解决这一问题变得更加复杂。

系统同步协同

本节将讨论系统协同效应,主要研究重定位、重建和识别任务如何相互支持,并描述双检测源在安全关键应用中提供冗余的重要性。

识别和重建

如前所述,深度估计在几何感知应用中非常重要。除了前面已经讨论过的内容外,目前最先进的是基于神经网络的方法[115]、[116],可以通过重投影损失以自我监督的方式学习[117]。研究表明,单目深度估计的最新单帧尝试通常会引发识别任务,然后使用图像中的垂直位置等线索推断深度,运动目标检测似乎也严重依赖于识别。事实证明,[48]和[58]都对通常移动的静态物体(例如行人,见图20)显示出误报,但这并没有降低这种尝试的重要性。相反,它指出了识别和重建之间的一种非常深刻的联系,从一种联系中,可以推断出另一种。

当行人检测处于最先进水平时,在语义和实例分割之前,大多数汽车行人检测研究人员都会考虑根据边界框的高度或行人在图像中的垂直位置编码深度。[81]对此进行了详细讨论。然而,基于深度神经网络的识别可以产生物体深度,这是有点直观的,特别是当神经网络的精度提高时。最近的工作证明了联合学习语义标签和深度的有效性[119]。例如,在[120]中显示,对于单目深度估计,在每个距离解码器层中添加语义指导(如图21所示)可以提高对象边缘的性能,甚至可以为动态目标返回合理的距离估计。

重定位和识别

重定位是车辆识别先前学习的位置或路径的过程,如前所述。然而,在现实的自动驾驶视觉中,很多事情都会干扰这一点。例如,场景可能会因可移动对象而改变,例如,停放的车辆可能会在场景学习时间和请求重定位时间之间移动。在这种情况下,语义分割方法可用于识别可能移动的对象(车辆、自行车、行人),并删除与此类对象相关的映射特征。如[101]中详细描述的,利用深度学习技术支持传统的Visual SLAM pipelines还有更多的机会(图22)。

Visual SLAM中的地点识别有几个应用程序。首先,它允许循环闭合以纠正累积漂移,其次,它允许从同一场景的多个过程中创建和维护地图。使用单词袋的经典方法(如[128])被证明是相当成功的,尽管可能缺乏稳健性。基于CNN的方法被证明更为稳健,外观不变的方法显示出有希望的初步结果[129]。当重要的时间过去时,对地点的识别是一个重要的话题。表III显示了Visual SLAM pipelines的一小组结果,并表明随着训练和重定位之间的六个月时间差的增加,错误显著增加。最后,可以考虑视图不变的定位。当重定位的camera视点与训练时的camera视角显著不同时,这一点很重要,例如,由于以大角度接近训练轨迹而导致车辆旋转,基于特征描述符的传统Visual SLAM方法失败了。研究表明,将语义标签附加到场景地标(通过bounding box分类)可以显著提高视点不变性的性能。 

重定位和重建

重定位和视觉SLAM通常可以被视为场景重建(即构建地图)的存储,以及通过bundle adjustment调整对所述地图的迭代细化(见图15)。这样,重建和视觉里程表就成为传统Visual SLAM方法的种子。有一些直接的方法可以绕过这种seed方法,例如LSD-SLAM(及其全向相机扩展[100]),其中光度误差相对于重投影误差被最小化。然而,如果考虑bundle adjustment调整地图的时间切片,也可以看出,Visual SLAM可用于优化重建(场景结构和视觉里程计)。此外,移动目标会导致任何Visual SLAM管道的性能显著下降。因此,动态对象检测(例如[90]、[48]、[58])可以用作Visual SLAM pipelines的输入,以抑制所述移动目标引起的异常值。

讨论下冗余

还有另一个首要的协同考虑:冗余。在自动化车辆中,冗余对应用程序的安全性起着重要作用。当系统部件发生故障时,必须提供另一个部件,以确保车辆保持安全状态。例如,FuseModNet展示了提供密集信息的相机与在弱光下表现良好的激光雷达的协同融合。在传感方面,这通常是通过使用多种传感器类型来实现的,例如计算机视觉系统、radar和激光雷达。对于近场传感,超声波传感器阵列是一种成熟的低成本传感器,可在车辆周围提供强大的安全性。

论文认为,通过并行使用不同的计算机视觉算法类型,可以实现更高的安全性。也就是说,可以配置计算机视觉系统架构以最大限度地提高冗余度。这一点尤其正确,因为数据源是完全不同的处理类型。例如,识别pipelines的统计处理和重建管道的几何pipelines。此外,这种处理通常会在SoC内的不同硅组件上运行。然而,必须意识到,如果你最大限度地发挥其他协同作用,冗余的可能性就会降低。例如,如果使用基于CNN的深度作为Visual SLAM算法的种子,则不能将CNN声明为Visual SLAM的冗余,因为Visual SLAM现在依赖于CNN处理。还必须注意,这两个处理元件可能使用相同的视频馈送,因此相机本身和相关硬件/软件的安全性也可能是一个限制因素。

#自动驾驶の雷视融合~

自动驾驶感知作为自动驾驶任务中的第一步,同时也是最重要的一个环节,只有感知的得足够精准,后续的一些诸如目标检测、语义分割或目标跟踪等任务才会有好的结果。如今,在汽车上的传感器主要包含了camera、lidar和radar,近年来camera、lidar以及camera和lidar融合的感知任务研究发展得十分迅速,相关的研究进展层出不穷。但受限于lidar高昂的价格,radar作为一种相对廉价的替代方案在工业界也许更受青睐。但由于学术界对radar作为自动驾驶中主要传感器的研究起步较晚,早期重视程度不够,再加上radar本身的固有缺陷,导致以radar为主的自动驾驶感知任务研究进展远不如lidar,相关研究与lidar相比较少。本文对近些年来,radar在自动驾驶感知任务中的研究进展和成果作了初步的调研,若有不详细之处,还请谅解。

一、radar基本介绍以及自动驾驶感知任务中的优势

雷达全称是radio detection and range,它通过发射无线电波和接收目标的反射波来计算目标的距离和速度。毫米波(MMW)雷达是雷达的一个重要分支,它工作在波长为1-10mm、频率为30-300GHz的毫米波段。目前,应用于自动驾驶中的汽车雷达通常有两种频率,分别为24GHz和77GHz。

雷达的基本工作原理如图所示,合成器(Synthesizer)产生一个调频连续波,称为"稠啾信号"(chirp),通过TX天线在空间中传播到物体表面,而后反射回雷达,通过RX天线接收反射信号,与发射信号mixed产生中频信号,进入ADC模块转化成数字信号。通常,雷达系统包含多个TX和RX天线,从而产生多个IF信号。关于目标物体的信息,如距离、多普勒速度和方位角,包含在这些IF信号中,DSP可以使用嵌入的不同信号处理算法将其分离。基于从DSP提取的目标信息和自动态信息,MCU充当计算机来评估系统需求并做出明智的决策。

基于飞行时间(TOF)原理,雷达传感器通过发射信号和反射信号之间的时间差来计算距离物体的距离。基于多普勒原理,当发射的电磁波和检测到的目标之间存在相对运动时,返回波的频率与发射波的频率不同。因此,可以使用该频率差来测量目标相对于雷达的相对速度,利用阵列信号处理方法,通过从平行RX天线反射的chirp之间的相位差来计算方位角。由于传统3D雷达传感器的RX天线仅在2D方向上排列,因此仅在2D水平坐标中检测目标,而没有垂直高度信息。最近,随着雷达技术的进步,4D雷达传感器已经被开发出来,天线水平和垂直排列,能够测量高程信息。

除了能够测量距离、多普勒速度和方位角外,毫米波段的电磁波具有较低的大气衰减和对雨水、烟雾和灰尘的更好穿透能力。这些特性使雷达传感器能够在恶劣天气条件下全天工作。然而,雷达传感器仍然有局限性,它们表现出较低的角分辨率,并且无法区分位置较近的物体。此外,雷达生成的点云分布稀疏,行人上只有几个点,汽车上只有十几个点。这些点不能充分勾勒出物体的轮廓,这使得提取几何信息具有挑战性。此外,雷达对静止障碍物的感知能力较弱,运动目标可以在一维范围和速度上与周围场景区分开来。然而,雷达对金属高度敏感,经常会导致地面井盖等静止物体的强烈反射。因此,在实践中,静止物体通常会被过滤,导致无法检测到静止的障碍物。

雷达在自动驾驶感知任务中的优势可总结为以下几点:

  1. 成本相对较低,一个毫米波雷达的价格通常不到激光雷达的十分之一。
  2. 环境适应性强,毫米波的穿透性使其能工作于较为雨雪雾等恶劣气候环境中。
  3. 探测距离远,长距毫米波雷达能探测到200米以外的目标,而lidar由于分辨率与探测距离呈负相关的属性,通常探测距离只有几十米。
  4. 可以提供额外的速度测量。

二、lidar-based方法

lidar数据通常为点云表示,由于该数据类型的稀疏性和无序性,需要设计独特的特征提取网络模型。用于lidar点云的目标检测方法通常可分为以下几种:

  1. Point-based 3D Object Detector:直接利用原始点云数据,通过采样等方式提取特征,其中有两个重要组成模块,点云采样和特征学习。该方法的瓶颈在于推理时间过慢,点云采样过程通常采用的方法是最远点采样法(farthest point sampling),该过程耗时较长,当点云数据量过大时,计算资源和内存的消耗十分巨大。代表性的方法有PointRCNN等。
  2. Grid-based 3D Object Detector:先对lidar点云进行网格化(rasterize),pillar、voxel、BEV 特征图等形式都属于此类方法,然后用2D卷积神经网络或3D稀疏卷积神经网络进行特征提取,最后将网格化后的特征图投影到BEV空间,进行3D目标检测。该类方法通过聚合一个固定范围内的点云信息,丢失了诸如高度在内的重要信息,带来了计算效率上的巨大提升。代表性方法有VoxelNet、PointPillar等。
  3. Point-Voxel based 3D Object Detector:吸取了Point-based 和Grid-based方法思想,使用基于点和体素融合的方法,保证精度的同时,缩减了大量的计算量。Point-Voxel方法分为one-stage 和two-satage,one-stage方法直接融合体素和点特征,two-stage方法先由体素特征生成proposal,采样Keypoints,再由点特征进一步筛选检测结果。该方法仍然受限于计算量与推理时间的问题,融合过程需要消耗不可忽视的时间损失。代表性方法有PVCNN、Fast Point R-CNN。
  4. Range-based 3D Object Detector:Range图像是一种密集而紧凑的2D表示,其中每个像素包含的是深度信息,而不是RGB值。Range-based方法的主要创新点在于针对Range图设计模型和算子,并要选择合适的视图。Range图由于和Image图像十分相似,可以采用2D目标检测的一些方法进行处理。然而,与鸟瞰图相比,RV视角存在易被遮挡和尺度变换的影响。由此,BEV视角下的3D目标检测已经成为主流。代表性方法有LaserNet等。

三、camera-based方法

1 Monocular 3D object detection

单目摄像头只能获取单个图像信息,缺乏深度信息,所以单目图像的3D目标检测是一个ill-posed问题。精确的预测物体的位置信息一直是单目3D检测的最大阻碍,对此,许多研究尝试解决这一问题作了多方面努力,比如由图像推测深度或是采用几何约束和形状先验。不过,这一问题并没有得道很好的解决,单目3D目标检测的精度与lidar相比还差很远。单目3D目标检测的方法可细分为以下几种:Image-Only、Prior-Guided、Depth-Assisted。

2 Stereo-Based 3D object detection

基于双目的3D目标检测是指从一对图像中检测出3D物体。与单目图像相比,双目提供了额外的几何约束,可用于推断更准确的深度信息。基于双目方法通常比基于单目的方法获得更好的检测性能。当然,基于双目的方法与基于激光雷达的方法在性能上仍有很大的差距。双目方法与单目检测方法相比,可以通过立体匹配技术获得更精确的深度和视差估计,从而带来更强的目标定位能力,显著提高了3D目标检测能力。

3 Multi-View 3D object detection

自动驾驶汽车通常会配备多个摄像头,从多个视角获取完整的周边环境信息。如今的研究热点集中于将多视角图像投影到BEV空间,通过BEV特征图进行目标检测任务。由于缺乏深度信息,如何精准地进行多视角图像到BEV的视角转换征是主流研究方向之一,如LSS、BevDet等;另一些研究方向则是将Transformer应用于视角转换模块,通过多视角交叉注意力构建BEV空间,如BevFormer等。

四、Lidar-Camera融合方法

lidar和camera拥有各自的优势和特点,融合这两种传感器目前也是自动驾驶感知任务中最重要的融合解决方案。由于在此前的研究中lidar-based方法表现出了远超camera-based方法,所以一些研究倾向于采用lidar-based方法作为pipeline并在其中尝试加入图像信息。

1 Early-Fusion Based 3D object detection

基于前融合的方法的目的在Lidar数据进入pipeline之前,将图像信息加入进来与Lidar数据进行融合。一般首先通过2D检测或分割网络提取图像知识,将知识传递给lidar点云,在把增强后的lidar点云送入pipeline。可分为point-level和region-level。

  1. region-level:通过2D检测网络生成一些2D检测框,将2D检测框逆向映射到图像的视锥空间,后续lidar-based方法可在筛选后的视锥空间中进行检测,缩小了检测范围。
  2. point-level:通过语义分割网络得到pixel-wise的语义标签,将这些带有语义标签的像素通过point-to-pixel投影与点关联,在将这些关联后的点云信息送给lidar-based pipeline。

Early-Fusion Based 3D object detection的优势在于兼容性好,基本可以将现有的lidar-based模型直接搬过来使用,在数据预处理模块加上所要使用的图像知识提取方式,与lidar点云进行融合即可。显而易见的是,在进入lidar-based pipeline之前就进行了一次图像的2D目标检测或分割任务,所带来的问题就是推理时间的延迟,如何更加高效的使用前融合方法值得继续研究。

2 Intermediate-Fusion Based 3D object detection

基于中融合的3D目标检测旨在融合image特征到lidar-based pipeline中间阶段,比如backbone网络,proposal生成阶段或是RoI提炼阶段。

  1. backbone阶段:一般用于grid-based方法的backbone中,在LiDAR backbone中,点云被网格化,这与图像特征图类似,这这一阶段进行融合具有先天的优势。
  2. Proposal generation和RoI head阶段:先由LiDAR detector生成3D proposal,投影到多视角图像上,分别从图像和LiDAR backbone中裁剪特征,最后将裁剪后的特征融合到RoI head中预测3D检测的参数。

中融合方法建议对多模态表示进行更深入的融合,并产生更高质量的3D框。然而,相机和激光雷达的特征本质上是异构的,来自不同的视角,因此在融合机制和视角对齐方面还存在一些问题。因此,如何有效地融合异构数据,以及如何处理来自多个视角的特征聚合,仍然是研究领域面临的挑战。

3 Late-Fusion Based 3D object detection

后融合就是将图像得到的2D结果和LiDAR得到的3D结果进行融合的方法。该方法采用相机与激光雷达并行进行目标检测,并将输出的2D和3D框进行融合,得到更精确的3D检测结果。

后融合方法聚焦于实例级聚合,对不同模态输出结果进行融合,避免了前融合和中融合的复杂交互,因此,该方法的效率远高于前融合和中融合的方法。然而,由于不依赖于相机和激光雷达传感器的深度特征,这些方法无法整合不同模式的丰富语义信息,限制了这类方法的潜力。

五、基于radar的3D目标检测

因为lidar和radar数据的相似性(都可以点云的的形式表示),相当多的radar-camera融合方案沿用了lidar-camera的融合方式,类似地,雷视融合大体上也可分为三类:前融合、后融合和深度(特征)融合。

前融合方法原理与lidar-camera前融合方法类似,在数据进行特征提取等一系列操作前进行融合,不同的是,相对于radar而言,基于camera的目标检测pipeline方案效果显著更好。通常先对通过过基于radar的目标检测算法生成proposals或RoI区域,再投影至图像上,并使用启发式的方法收集该区域的图像特征。同lidar-camera融合方法类似,这并不是一个可靠的方案,因为关键物体可能会事先在radar点云处理中被过滤掉,我们甚至不会尝试在图像中寻找被过滤调的目标。

后融合方法是最简单的一类方法,其核心思想是分别基于radar和camera作两遍目标检测,把两组检测的结果合并为一组,其优势在于可直接沿用现成的单一模态目标检测算法。这类方法并不能对各自模态特征进行互补,例如camera擅长检测出物体的边界,radar能探测物体的速度,但两者在进行各自的目标检测时并没有作任何信息交互。

深度(特征)融合是目前研究的主流,这是一类基于学习的方法,采用并行计算camera和radar特征的同时,相互进行软关联。进一步具体可分为三种方法:

  • 基于雷达图生成:为了将雷达信息带入图像域,提取雷达特征并将其转换为类似图像的矩阵信息。这称为雷达图像。该雷达图像的通道表示来自雷达点表示的信息,即距离、速度等物理量。类似与lidar-camera中融合中的backbone阶段的融合方式。这种方法并不是很成功,因为雷达点云固有的稀疏性使得它们无法形成良好的类图像矩阵。
  • 基于CNN:这一工作重点是卷积神经网络(CNN),用于从两种不同的模态进行特征融合。
  • 基于Transformer:这一系列工作通常利用 Transformer 模块,即交叉关注来自不同模态的交叉关注特征,并形成更精细的特征表示。

六、radarfusion主要论文

找了几篇个人觉得还算代表性的论文,作简要说明,旨在对近年radar自动驾驶感知领域内做一个大致的了解,论文的具体内容建议看原论文或CSDN等网站上的详细解析。

1 CenterFusion(WACV2021)

这篇论文发布时间较早,检测效果在今天看来并不是很理想,但此篇论文的融合思想确实对后续研究产生了不小的影响,所以放在第一篇简单介绍一下。

网络模型结构如图,CenterFusion以CenterNet作为baseline模型。整个模型结构可分为两个stage,首先,采用CenterNet对图像进行特征提取和预测,完成基于图像的2D和3D预测,得到目标物的中心点热力图、中心点偏移量、2D宽高、3D维度、距离和旋转角度,并生成2D边界框,通过视锥投影关联到radar数据(经过Pillar Expansion后),在这个物体范围内提取radar数据,这在论文中称之为RoI截锥关联方法,从物体截锥体范围内提取的毫米波雷达数据就是深度信息和速度信息,将radar的深度和速度信息,作为图像的补充特征,将这3个新的热力图通道与之前CenterNet模型的bachbone的输出特征沿深度维拼接在一起,如此便实现了毫米波雷达信息与可见光相机数据的中段融合。CenterFusion可归类于特征融合的Proposal generation和RoI head阶段的融合方式。

在nuScenes数据集上应用评估,在3D目标检测标签下,比之前所有基于Camera的目标检测方法都要好。

2 CRF-Net(2019 IEEE会议)

作者提出了CRF-Net的融合网络,其借鉴了RetinaNet的网络结构,如上图,利用VGG网络提取图像特征,在每个block后都进行特征融合,作者认为这样的融合方式可以使模型自行选择在合适的层级进行融合。这一方法属于特征融合中的backbone阶段融合方式。

其创新点主要有两个方面:第一,radar数据的预处理方式,先将radar数据映射到图像坐标下,并在高度上扩充至3米(检测的车辆通常在这个高度之内),如此处理后,在融合时,直接将图像或图像特征直接与radar数据在深度维度上进行拼接即可;第二,作者引入了BlackIn方法,由于图像信息的丰富程度和在训练中重要性远大于radar数据,BlackIn方法尝试在训练中直接丢弃图像信息输入流(图中的虚线部分),使网络单纯依赖radar数据进行训练,这一方式提升了radar数据在整个模型中占有的重要性。

CRF-Net相较于baseline提升效果比较一般,但在论文中作者还使用了十分逼近于真实场景的radar数据进行训练验证(GRF,ground-truth radar filter),验证精度较之前的43.95%提升到了55.99%,由此可以看出,若是能在radar数据与处理方面做得更出色,radar在目标检测中的潜力会十分巨大。

3 CRAFT(AAAI 2023)(NuScenes2022.7)

为了解决late-fusion无法充分发挥两种模态互补性的缺点,作者提出了一种proposal-level的毫米波与相机融合方法,有效地利用相机和雷达的空间和上下文属性进行3D目标检测。我们的融合框架首先将图像proposal与极坐标系中的雷达点相关联,以有效地处理坐标系和空间属性之间的差异。使用此作为第一阶段,然后基于交叉注意的特征融合层自适应地交换相机和雷达之间的spatio-contextual信息,在nuScenes测试集上实现了最先进的41.1%mAP和52.3%NDS,比仅使用相机的bameline高出8.7和10.8分。

CRAFT提出了Soft-Polar-Association (SPA)和 Spatio-Contextual Fusion Transformer(SCFT)两种结构,在相机和radar之间可高效地进行信息交互。SPA建立起radar点云特征与图像proposal之间的软关联,再通过SCFT中的连续两个交叉注意力encoder利用单个模态的信息补充到另一模块。

CRAFT用到了很多目前较为火热的方法,属于特征融合中的proposal阶段融合,采用了软关联和在两个模态间互相作cross-attention的方式融合特征,在CenterNet的banseline上提升明显。

4 CRN(ICCV2023)

CRN是2023年3月进入了NuScenes的排行榜,达到了57.5%mAP,62.4%NDS,领先于当时所有基于camera和camera-radar的目标检测方法。

整体网络结构如上图,主要流程分为两步,首先,利用radar数据作辅助将图像信息转换到BEV空间,其次,通过多模态特征聚合模块对radar和图像的BEV特征进行融合,后续进行相应的检测、跟踪或分割等任务。

CRN的创新点主要有RVT(雷达辅助视角转换)和MFA(多模态特征聚合)两个模块。RVT模块核心思想是通过radar中精准的深度距离信息辅助图像信息转换至BEV视角下,这一模块提升了图像信息视角转化的精确度。MFA改变了以往拼接或直接相加的特征融合方式,作者认为这些简单的方式不能处理两种模态之间的空间未对准和模糊性,效果十分一般,于是便提出了使用可变形的注意力机制以自适应学习的方式利用多模态特征。

5 FUTR3D(CVPR 2023)

现有的多模态3D检测模型通常涉及定制设计,具体取决于传感器组合或设置。这项工作,是一个统一的、用于3D检测、端到端传感器融合框架FUTR3D,它可以用于(几乎)任何传感器配置。FUTR3D采用了一个基于查询的不可知模态特征采样器(Modality-Agnostic Feature Sampler,MAFS),以及一个具有用于3D检测的集合-集合损失函数的transformer解码器,从而避免后融合的启发式方法和后处理等。在摄像机、低分辨率激光雷达、高分辨率激光雷达和雷达的各种组合上验证了该框架的有效性。FUTR3D通过不同的传感器配置实现了极大的灵活性,并实现了低成本的自动驾驶。

FUTR3D的主要创新是基于查询的不可知模态特征采样器(Modality-Agnostic Feature Sampler,MAFS),论文中先通过不同的backbone分别对各自模态做特征提取。初始化3D参考点查询,依次查询不同模态的输出特征,每融合一种模态特征相当于更新一次查询,融合完所有特征后,再作一次self attention和前馈神经网络。 

FUTR3D提出了一个统一的端对端的传感器融合的3D目标检测框架,MAFS模块使模型能够融合多个传感器共同工作,这一架构为之后的多传感器融合框架提供了一个范式。

6 EchoFusion(NIPS 2023)

EchoFusion是一篇比较新的工作,刚被NIPS接收,代码还在上传过程中,不同于前面提到的几篇论文,EchoFusion使用的雷达数据为4D雷达原始数据,文中将未经过滤波处理的一系列雷达数据称为原始雷达数据,如RA,RAD,RD张量以及ADC数据。

EchoFusion的主要创新点在于Polar Aligned Attention(PAA),在极坐标BEV空间中生成Query,由于图片特征缺少深度信息,采用图像中col维度与极坐标BEV空间中的A(角度)维度对应的方式进行cross attention计算,同样对于radar特征来说,采用距离维度对应的方式即可。这里的雷达数据虽然没有显式解码AoA,但AoA信息已经隐式地被编码到了不同虚拟天线的响应相位差中。

EchoFusion在RADIal数据集上的多个指标中取得了最佳性能,包括AP、AR等评价指标。这一工作证明了雷达可以作为自动驾驶系统中Lidar的低成本的有力替代品,利用原始雷达数据能取得非常不错的性能,使雷达感知可以摈弃冗余的前处理步骤,使端到端模型能成为主流。不过目前自动驾驶雷达数据集,尤其是原始雷达数据集十分匮乏,能建立其一个庞大的基于雷达的自动驾驶数据集将会促进进一步的研究进展。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com