毫末智行无限靠齐特斯拉,「重感知」是城市自动驾驶方案的最优解?
文章

4 月 19 日,毫末智行在 AI DAY 上正式发布了 NOH 城市版领航辅助驾驶系统,在发布会结束之后很多行业内朋友问我怎么看毫末,以及为什么毫末会这么快推出这套方案?

看到这些问题我意识到,有必要认真聊聊毫末智行,以及它的自动驾驶技术了。

关于毫末这家公司,绝不是我们用一篇文章就能介绍清楚的,所以我们用倒叙的方式聊聊毫末在技术上的特点以及为什么毫末智行能快速实现高阶自动驾驶的落地?

先从毫末智行 AI DAY 上公布的技术方案聊起。

01 自动驾驶和「进城」之难

再聊毫末之前,我想先聊几个概念,或者说共识,自动驾驶的目标是实现汽车的无人化驾驶,从现在的开放道路辅助驾驶,到端到端的领航辅助驾驶,最后到取消方向盘,这只是实现无人驾驶执行方式的区别,俗称: 「渐进式」 。

有了这个目标,就会衍生出一系列技术方案,常见的有纯视觉方案、感知融合方案以及基于高精地图做感知融合方案,但不管方案区别再大,本质上目标是一致的,一句话总结就是: 让车辆认识真实的物理世界,在道路范围内能自主将用户送到任何一个地方。

因此,不同方案的出现都只是解决自动驾驶工程上的难题,因为实现自动驾驶本质上是「工程」问题,而非「科学问题」。

而实现起来最大的难题就在于,如何让车辆认识真实的世界。特斯拉的选择是用视觉,国内大部分厂商是用「感知融合 + 高精地图和定位」。

举个例子,靠感知为主的方案是,就像正常人只要眼睛(眼睛好比感知)是好的,你不管是在上海还是北京,城市或者乡村,你都能走在正常的道路上,遇到垃圾桶、大石头会主动躲避,人也不会主动走到河里;而依靠高精地图为主,则需要这个人先把所有要走的路都先走一遍, 把道路、障碍物、路牌标识所有信息看一遍,并记在脑子里,之后他才能顺利通过这条路 。

这样的对比显而易见,后者的局限性非常大,因为一个人没有办法把全中国上所有的路都走一遍,并且走过的道路过了几个小时或者一天后你也没办法知道道路是否有新的变化,这就是高精地图鲜度的问题,这也是高精地图没有大规模泛化能力的主要原因之一。

如果想要大规模泛化,则需要非常高的运维成本,这一点不光车企做不到,甚至高德、百度这样的专业图商都没有更好的办法,如果想要让高精地图更好服务自动驾驶还需要加上鲜度。

所以,一些自动驾驶公司想要解决的就是:能否不依赖高精地图的信息,仅靠感知来识别这个物理世界,只通过导航地图来定位方向和距离?

答案是:肯定能。

特斯拉、毫末智行选择的就是「重感知」的方案,区别在于,特斯拉只采用摄像头为主的视觉,而毫末智行采用的将感知进行前融合;相同点在于,它们都只需要使用基础的导航地图,然后在车端通过感知做加强。

那为什么不用「众包地图」方案?

众包方案对算法技术本身有更高的要求,对于大部分车企来说,这又是一个难题; 监管对于众包的限制是,需要有国家办法的测绘资质,让所有相关企业都拿到资质不现实; 众包的运维成本依然很高。

关于使用高精地图的问题,我专门请教了某自动驾驶公司 CEO,他表示:

「短期来看,所有的方案都是为了解决场景问题,用激光雷达补盲以及高精地图感知道路信息都是要加快进城;长期来看,依靠大规模高精地图是有场景泛化的局限性的,从这一上讲国内的方案多数最终也会走向重感知上。」

在我和毫末技术总监潘兴博士交流中,他强调:

「重感知方案只是想最大程度上,让自动驾驶车辆像人一样实时感知,但这不代表说一定会放弃高精地图,不管是高精还是标清图它都是工具,对于工具的使用只要恰到好处,对于功能来说没有太大差异。」

但「重感知」方案,对感知能力提出了更高的要求,比如在城市的复杂交通里,最为核心的两个:一,交通警示灯和标识;二,车道线的以及正确识别正常交通车道。

了解了一些基础概念,我们就来看看毫末的技术方案。

02 毫末「进城」的技术实力如何?

依托长城汽车的量产能力,毫末智行积累了海量的行驶数据,并且通过其数据智能体系 MANA 与基于 Transformer 的超大型神经网络进行有机的结合。除了视觉数据以外,MANA 系统还包含了激光雷达数据,Transformer 神经网络被用来进行空间、时间、传感器三个维度的融合,感知算法的准确率也因此得到了显著的提升。

图 1 毫末智行提出的思想钢印以及衍生出的 MANA 数据智能体系

近日,毫末智行在 MANA 系统的基础之上进一步发布了 NOH(Navigation on HPilot 3.0)城市辅助驾驶系统。

毫末智行 CEO 顾维灏在发布会上指出,自动驾驶的基础技术近几年发生了很多变化,三个方面看:

一,芯片算力显著提升,从 2 TOPS 提升到了 1000 TOPS,增加了 500 倍; 二, Transformer 这种大规模跨模态神经网络的出现,将算法参数从百万量级提升到了千亿量级,提高了10 万倍; 三,传感器尤其是相机也在快速进化,分辨率从 100 万像素提升到了 1500 万像素,提高了 15 倍,同时相机的个数也在不断增加。

此外,激光雷达和毫米波雷达也在快速的发展,成本不断降低,空间分辨率也在不断提升。当自动驾驶的这些芯片、算法、传感器基础要素都得到了巨大提升的情况下,自动驾驶的技术方案又该有怎样的变化呢?

图2 自动驾驶发展的三大变化

毫末智行给出的答案是: 「重感知,轻(高精)地图」 。

这种方案背后的动机主要有两点:

一,感知能力提升。

这种提升来自多方面的因素,包括海量数据,大型神经网络,多传感器融合以及算力的提升。

二,高精度地图的普及度不够。

尤其是在城市场景下,高精度地图的覆盖率并不是很高,在这种情况下,想要扩展辅助驾驶系统的 ODD(运行设计域),就不能够过分依赖高精度地图。

上面说了,感知系统在没有高精度地图的帮助下,主要的难点在于: 「准确地检测环境中的静态目标」 。最为典型的场景就是,红绿灯和车道线的检测。

除了感知系统以外,决策系统也需要适应复杂的城市路况,NOH 提出采用机器学习来代替手工设计规则的方式,并引入阿里的 M6 多模态大模型来快速的获得高质量的数据,用来训练决策系统。

NOH 系统中的红绿灯检测

NOH 主要针对的是城市环境,而在城市环境中,一个非常典型的场景就是路口。路口通常来说都会有红绿灯,可靠的检测红绿灯并且识别其状态对于用户体验和安全性来说都是非常重要的,这也是城市领航系统成功的关键之一。

与其他城市领航系统进行横向对比,特斯拉目前能够检测红绿灯,但是并没有根据检测结果进行控车,蔚小理方面对红绿灯检测也还没有完全 OTA。

红绿灯的检测是一个典型的小目标检测问题,而且需要识别其状态的变化,比如颜色,闪烁等。红绿灯的形式也有很多,横着的、竖着的、三个的、五个的、待转的、倒计时的等等。

以上这些因素都给检测和识别带了很大难度。但是,除了检测和识别,更难的任务是确定一个灯具体管的是哪条路,哪个车道,也就是所谓的  「绑路」 。在有高精度地图辅助时,因为预先知道红绿灯的大致位置,需要考虑的空间范围就会小很多,这就降低了小目标检测部分的难度。

此外,高精度地图上已经准确的标注了车道的位置,因此绑路这个任务也就变得简单很多。

NOH 系统如何在没有高精度地图的帮助下,提升检测识别和绑路这两个任务的准确度。

检测和识别

对于红绿灯这种小目标检测来说,无论算法如何设计,视觉传感器的原始分辨率始终都是一个决定性的因素。随着自动驾驶芯片算力的不断提升, 目前车辆上已经可以配置和处理 800 万像素甚至更高分辨率的相机,这就为小目标的准确检测提供了基本的前提条件 。

有了高分辨率图像作为保障,接下来就需要考虑红绿灯这个类别巨大的类内差异,也就是前文提到的红绿灯的不同形式和不同状态。在深度学习时代,解决这个问题最自然和最有效的方法就是收集大量数据用来训练模型。

但是真实场景数据的收集和标注都非常的费时和费力,而且具有所谓的长尾效应,也就是说 corner case 的样本非常少。为了能够快速的获得大规模并且具有多样性的数据和标注,一个有效的方法就是: 采用合成图像 。

目前的 3D 图像仿真引擎已经可以提供接近于真实场景的数据,我们可以通过这种方法获得大量不同光照、不同背景、不同状态和形式的红绿灯数据。这些合成图像可以有效的扩大训练数据规模,也可以弥补真实数据样本分布不均衡的问题, 也就是长尾效应问题 。

合成图像虽然在人眼看来与真实图像非常相似, 但是对于视觉感知算法来说细微的差别还是会导致检测准确率的显著下降 。合成图像和真实图像的差异,主要表现在 特征空间及概率分布的不一致 。

特征空间不一致主要是由于合成图像很难模拟真实环境下的一些随机因素,比如破损,被雨水或尘土覆盖等。

即使可以做到合成图像与真实图像完全一致,保证了两个数据源特征空间一致,合成图像也很难完全还原真实场景的分布规律,导致其概率的分布出现不匹配的情况。

图 3 红绿灯识别中对合成数据的利用

如何有效的使用合成数据来提升系统在真实数据上的准确率,这在机器学习领域中可以归结为: 迁移学习问题 。

NOH 系统中采用了迁移学习中  「领域泛化的混合迁移训练方法」 ,利用合成数据定向弥补真实场景中缺失的数据样本,并且通过不断调整训练策略,减小两者特征空间的概率分布差异。

具体来说,神经网络系统的训练需要优化一个「损失函数」,这个函数通常来说就是要最小化预测和标注之间的差异(对应图 3 中 f 函数的前半部分)。但是,这种标准的损失函数并没有考虑到不同领域的数据集之间的差异,这里就是指合成数据和真实数据。

为了在特征空间上降低两种数据的差异,需要在损失函数中增加一项来衡量两个数据集在特征空间上的距离(对应图 3 中 f 函数的后半部分)。 训练过程中同时对这两部分的损失进行优化,就可以在提高预测准确率的同时,也拉近两个数据集之间的距离。当两个数据集逐渐处于同一分布上时,训练过程对不同数据的利用也就更加有效,系统在真实数据上的预测准确率也可以得到相应的提升 。

绑路问题

数据的问题解决以后,就可以针对检测和绑路问题进行优化了。NOH 系统中采用了一个双流感知模型,将红绿灯检测和绑路问题分解成两个通路: 「What」通路和「Where」通路 。

这两个通路类似于人脑视觉感知通路中的 腹侧通路(Ventral stream)和背侧通路(Dorsal stream) 。前者的主要功能是 识别物体 ,也就是说解决「What」的问题;后者的主要功能是 识别空间位置和运动 ,也就是说解决「Where」的问题。

在 NOH 的双流模型中, What 通路主要负责红绿灯的检测和识别 ,需要输出灯箱的位置、灯的类别、形状、朝向以及灯当前的颜色状态。这部分其实就是环境感知中最常见的目标检测任务,无论有没有地图的辅助我们都需要完成这个任务。

在没有高精度地图时,我们虽然可以仅仅通过感知系统就得到红绿灯的位置,但是这里存在两个问题:一,由于环境的复杂性,感知系统可能会出现的错误检测;二,如何将红绿灯与目标车道进行结合。

当然,一种最简单直观的办法就是根据车道线检测的结果识别出当前车道的位置,然后将红绿灯检测的结果与其进行空间的匹配。但是这种做法其实是把两个任务割裂开来处理,没有考虑到二者之间的联系,而现实环境中红绿灯和道路的相对位置和绑定信息是具有很多联系的。

图 4 基于双流模型的红绿灯识别和绑路

NOH 中的「where」通路就是通过学习红绿灯和道路在现实场景中的联系,从而同时提高红绿灯检测的准确率和解决红绿灯的绑路问题。

这部分起到的作用类似于地图,也就说可以输出红绿灯在场景中分布的概率 。这种概率的分布以一种热力图形式呈现(Heat Map 或者 Feature Map)。

图 4 的热力图中,不同颜色表明了不同的分布概率。热力图所表示的概率分布其实可以认为是先验概率分布,而 what 通路中红绿灯检测的结果可以认为是特定场景下出现目标的条件概率。

根据贝叶斯公式,我们可以由先验概率和条件概率来推测后验概率。对应绑路的例子,就是在红绿灯检测结果的基础上更新红绿灯先验分布的热力图,在 NOH 系统中通过空间注意力的机制来完成这个步骤。

简单来说, 就是在出现检测结果的热力图位置上增加其概率值,这里注意力机制的作用是平衡目标检测和先验热力图的权重 。这个模块最终的输出就是融合了目标检测和先验知识的热力图,也就是图 4 种紫色的特征图。

图 5 常见的路口红绿灯场景

这个特征图提供两个信息:

具有经过增强之后的目标位置信息; 提供了红绿灯与当前道路的绑定关系,也就是负责当前道路的红绿灯的大致位置。

在合成数据和双流模型的支持下,NOH 可以在不同城市、不同距离、不同转向、不同光线的条件下,单纯依靠感知系统准确地识别出红绿灯的位置并与道路进行绑定。图 5 种是几种常见的测试场景,包括红绿灯的左转、直行、红灯等待、夜间、白天等等。

NOH 系统中的车道线检测

在之前的发布会中,毫末智行已经介绍了以 Transformer 神经网络为代表的大模型可以很好地适应目前自动驾驶系统的发展趋势。

关于「Transformer」的概念,我们此前专门写过一篇文章:「 」。这里面详细介绍了 Transformer 这里不再赘述。

城市 NOH 系统中采用了基于 Transformer 的大型神经网络来融合来自多个相机的数据,并在时序上进行有效的融合,从而提高城市道路环境下车道线检测的能力。

在高速公路的场景下,车道线一般来说比较整齐,很少出现破损的情况。在城市环境下,车道线的结构就会复杂很多,比如潮汐车道,新旧车道线交替重叠,甚至是严重的破损等。

面对城市场景下复杂的车道线检测问题, Transformer 这种基于注意力机制的大模型就会体现出明显的优势 。

Transfomer 在多传感器和时序融合中的优势

毫末智行 CEO 顾维灏曾经提出: 目前的多传感器融合感知系统中普遍存在着时间上的感知不连续、空间上的感知碎片化问题 。

空间上的不连续是,由多个传感器所在的不同空间坐标系导致的,对于多个相机来说,由于安装位置和角度不同,导致其可视范围(FOV)也不尽相同。每个相机的 FOV 都是有限的,需要把多个相机的数据融合在一起,才可以得到车身周围 360 度的感知能力,这对于 L2 以上级别的自动驾驶系统来说是非常重要的。

尤其是对于车道线这种在空间上跨度较大的目标,单个相机很可能只能看到目标的一部分,就无法根据残缺的信息做出正确的检测,后续的融合效果也就无法保证。

时间上的不连续是, 由于系统按照帧为单位进行处理,而两帧之间的时间间隔可能会有几十毫秒 。系统更多地关注单帧的处理结果,将时间上的融合作为后处理的步骤,比如采用单独的目标跟踪模块来单帧的目标检测结果串联起来。这也是一种后融合策略,因此无法充分利用时序上的有用信息。

那么如何解决这两个问题呢?

毫末智行在城市 NOH 系统中给出的答案是,用 Transformer 做空间和时间上的前融合。

空间上的前融合

与 Transformer 在一般的视觉任务(比如图像分类和物体检测)中扮演的角色不同,Transformer 在空间前融合中的主要作用并 不是提取特征,而是进行坐标系的变换 。

比如,需要将来自多个摄像头的图像转换到三维空间坐标系(BEV),那么系统需要做的是找到三维坐标系中每个点与图像像素的对应关系。传统的基于几何变换的方法会将三维坐标系中的一个点映射到图像坐标系中的一个点,并利用该图像点周围一个小的邻域(比如 3x3 像素)来计算三维点的像素值。

图 7 采用 Transformer 进行图像坐标系到三维空间坐标系的转换

而 Transformer 则会建立三维点到每个图像点的联系,并通过自注意力机制,也就是相关性计算,来决定哪些图像点会被用来进行三维点的像素值。如图 7 所示,Transformer 首先编码图像特征,然后将其解码到三维空间,而坐标系变换已经被嵌入到了自注意力的计算过程中。

这种思路打破的传统方法中对邻域的约束,算法可以看到场景中更大的范围,通过对场景的理解来进行坐标变换。同时,坐标变换的过程在神经网络中进行,可以由后端所接的具体任务来自动调整变换的参数。因此,这个变换过程是完全由数据驱动的,也是任务相关的。在拥有超大数据集的前提下,基于 Transformer 来进行空间坐标系变换是完全可行的。

图 8 NOH 中基于 Transformer 多相机融合的车道线检测

具体到城市 NOH 中的车道线检测的任务,6 个相机分别看到了侧面的,前面的和后面车道线。Transformer 可以把这些来自于不同视角的图像变换到统一的 BEV 坐标系下,从而很容易的拼接多个图像。

如果不通过模型学习,完全按照几何信息进行后处理,那就无法纠正实际系统中不可避免的传感器标定误差,以及图像本身的畸变,导致车道线拼接后出现不连续性 。

在城市 NOH 系统中, 对于来自单个相机的 2D 图像,首先会采用常用的 ResNet 和 FPN 金字塔结构进行特征提取,然后使用 Transformer 将特征图变换到统一的 BEV 坐标下,这一步也称作 BEV Mapping 。

激光雷达的点云通常都采用 BEV 坐标表示,因此,当视觉特征转换到 BEV 坐标之后,就天然具备了与 LiDAR 模型的融合能力,这时候视觉感知和激光雷达感知的融合就会变得简单很多。

时间上的前融合

这个比空间上的前融合更容易理解一些,因为 Transformer 在设计之初就是为了处理时序数据的。图8 中的 Feature Queue 就是空间融合模块在时序上的输出,可以理解为一个句子中的多个单词,这样就可以自然的采用 Transformer 来提取时序特征。

相比特斯拉采用循环神经网络(RNN)来进行时序融合的方案,Transformer 的特征提取能力更强,但是在运行效率上会稍低一些。从图中来看,毫末的方案中也提到了 RNN,相信目前也在进行两种方案的对比,甚至是进行某种程度的结合,以充分利用两者的优势。

除此之外, 由于激光雷达的加持,城市 NOH 中采用了 SLAM 跟踪以及光流算法,可以快速的完成自身定位和场景感知,更好的保证时序上的连贯性 。

毫末 CEO 顾维灏表示:

对于复杂的车道线,尤其是在没有地图提供先验信息的时候,车道线经常会因为感知的噪声而发生跳变。比如说,上一帧这个地方车道线在车身左侧 50 厘米,一秒钟之后的检测结果,这个车道线就跳到左侧 45 厘米,导致的结果就是看到车道线在不停的抖动。

简单说就是, 采用了时序融合之后,在车辆行驶过程当中,整个车道线是非常稳定的,不会出现跳变。Transformer 通过注意力机制,在空间上和时间上将多个相机进行有效的拼接,就可以修正这种由感知系统本身引发的噪声,从而得到更加稳定的输出。

NOH 系统中的决策系统

上面我们介绍的是NOH系统针对城市场景在感知模块中所做的改进。自动驾驶系统中的另外一个重要模块,也就是决策系统,在复杂的城市环境下同样面临着巨大的挑战。

举个例子:当我们试图左转过路口时需要等待前方掉头的车辆,同时还需观察对向直行车辆的动态以及和其它右转车进行交互。

对于这种复杂的场景,之前普遍的做法都是需要写非常多的规则式场景判定和参数设定。当规则越来越多的时候,就会引发逻辑爆炸,越来越难以维护和调试。即使设计好了规则,当突然加入一个新的交通参与者或者扰动因素时,系统也很可能会失效,因此鲁棒性受到很大的影响。

毫末的城市 NOH 中采用了神经网络的模型来替换这些手写的规则。通过从大量真实场景中的学习,神经网络系统不仅可以处理前面提到的左转场景,还能处理更多复杂的小场景,比如环岛、汇入、压速变道等。

也就是, 这种基于神经网络的方式也可以通过大数据来提高模型对不同场景的适用性和鲁棒性。

MANA 系统中提供了一个车端的决策模型,这个模型需要大量人类驾驶的真实数据去进行训练。一个模型想要超过规则的前提就是它能拿到大量有意义的数据,它学出来的效果才能比规则要好。

那么这些大量有意义的数据从哪里来呢?

图 9 基于神经网络的决策模型

首先毫末智行依托量产系统,可以得到大量真实的驾驶数据。这些数据规模足够大,但是包含很多的「噪声」。

也就是说,并不是所有的驾驶数据都来自于正确良好的驾驶风格,我们需要对数据进行清洗和过滤,只保留符合人类驾驶习惯的,符合社会公序良俗的数据,用来训练决策模型。

如果采用人工的方式来清洗这些海量数据,那必然会带来不可承受的工作量。因此,毫末智行与阿里进行合作,采用阿里的 M6 大规模多模态预训练模型来对驾驶场景进行可解释的文本标注。

M6 模型是目前中文社区里最大的多模态预训练模型,参数规模达到了 10 万亿以上。它主要是针对的是图片、文本在电商领域的应用,包括视频理解、自然语言处理、图像生成等。毫末智行和阿里共同探索,将这种预训练的多模态大模型在自动驾驶领域进行应用。

具体来说,对于每一个驾驶数据,M6 模型可以对司机的动作给出一个文本集的解释,而这个文本集是人类可以理解的。对这些文本数据进行后处理,就可以对这些可解释的问题进行归类,从而对数据进行清洗和筛选。

图 10 采用阿里的 M6 大模型来提高驾驶数据的可解释性

结果用一句话解释就是:通过 M6 大模型进行数据的训练,可以让自动驾驶系统更加真实理解整个交通场景中其他参与者的意图,从而让自身达到「类人」的驾驶能力,在特殊场景做出更好的判断。

综上所述,技术是复杂的,路径也有很多,但每家公司对技术路径的选择可以体现出核心的一点是,解决自动驾驶的向上升级,光靠硬件补盲、信息补充是有开发上限的,基于算法深度挖掘硬件的能力可能是最优解。

写在最后

随着算法,数据,芯片等基础能力的提升,自动驾驶系统逐渐从简单的高速公路场景向复杂的城市道路场景演进。各家自动驾驶的头部公司近期都推出了城市辅助驾驶系统,

这个领域的竞争可谓空前激烈。由于城市场景复杂性以及高精度地图的覆盖率不高,自动驾驶系统中的核心模块,也就是感知和决策模块都需要提升自身的适应能力。

毫末智行首先在城市环境下提出了「重感知」的理念,并以此推出了 NOH 城市辅助驾驶系统。在没有高精度地图辅助的情况下,感知系统中受到影响较大的是红绿灯和车道线的识别。

NOH 在这两个方面分别进行了有效的改进。

红绿灯识别方面的改进主要体现在合成数据的使用和双流模型解决红绿灯绑路问题; 车道线方面的改进则在于采用 Transfomer 神经网络融合多个视觉传感器以及多帧的图像数据; 在决策系统方面,NOH 也采用了机器学习系统代替手工设计规则的形式,并采用阿里的 M6 大模型来辅助数据筛选,从而能够快速的获得大规模有意义的训练数据。

相比于其他竞争对手,比如特斯拉,蔚小理等,毫末智行的 NOH 率先在城市场景下对感知和决策系统的适应性进行了卓有成效的探索。

在高精度地图无法快速普及的背景下,这种探索独树一帜且非常具有实用价值,对于城市辅助驾驶系统能够尽快的量产上路,也起到了非常好的示范作用。

  • 全部评论
  • 只看作者
  • 最热
  • 最新
  • 最早

前排沙发空着~

还没有人评论哦,快抢沙发吧!