亿欧汽车始终关注智能电动汽车领域的技术进展与商业动态,特此撰写BEV+Transformer系列文章,从技术、商业、趋势三个维度分别入手,深度剖析自动驾驶感知模块发展的新浪潮。
实现高级辅助驾驶乃至自动驾驶的第一步就是感知,如何更准确、高效地感知到路面信息是智驾系统良好运转的起点。路面信息包括静态和动态两类,静态信息包括墙壁、立杆、车道线、车位线、斑马线等,以及其他路面障碍物,动态信息则是指行人、车辆等其他交通参与方。
正如时任特斯拉Autopilot负责人Andrej Karpathy在2021年Tesla AI DAY上所讲,自动驾驶研发像是“从头开始合成人造动物”,从人眼所及到大脑所感,信息在人类头脑中经历了2D到3D的转换,而这一转换同样是高阶智能驾驶的感知模块所需要学习的能力。
二、感知路线:纯视觉与多模态融合两条路线并行
从感知角度来划分,目前高阶智能驾驶领域分为两派,一派为特斯拉和mobileye坚持的纯视觉感知技术路线,其余则大多选择多传感器融合的技术路线。
纯视觉感知方案只需将摄像头收集到的图像数据进行特征提取、处理、转化为3D数据;而多传感器融合的方案采用摄像头与激光雷达相结合,通过多种工作原理提升感知精度,也能在某一设备失效的情况下起到冗余的安全防护作用。但多传感器方案中,不同工作原理下,传感器收集到的数据类型、所处坐标系都不同,摄像头收集到的视觉数据属于2D图像空间,激光雷达获得的点云数据属于3D空间,处理与融合这些数据的策略及路径成为有效保留数据信息的关键。
具体来讲,基于融合的不同位置,可以分为前、中、后融合三种方式,三种方式分别发生在数据处理的不同阶段,在信息保留、算力使用、通信速率等多方面也具有不同特征。
a. 后融合:应用广泛但存在先验式局限
在BEV大范围应用前,最常用的是后融合方案,也称为“目标级融合”。
顾名思义,后融合方案中,不同传感器获得的数据通过不同网络算法独立处理,处理后得到各自的目标数据,再将目标数据在决策层由主处理器进行融合。
可见,在融合之前,不同数据处于各自的处理通道中,算法只需适配对应类型的数据,融合模块设置不同场景、不同传感器的置信度,最终输出融合结果用于决策。整体更易解耦,既易于整车厂自主研发,也便于Tier 1按照下游需求进行模块化定制。
但是,正是由于后融合方式是基于规则处理的,因而存在“从结果反推过程”的先验式思路,无论是不同数据处理过程中的目标识别,还是对传感器置信度的设置,都是以预设结果为导向的,不仅会造成信息损耗、成本升高,也难以突破当下认知局限。
与之对应的,是传感器前融合方案,也称为“数据级融合”。
前融合方案将融合步骤前置,所有传感器的识别结果连同其他自动驾驶所需数据,统一融合到为一整组数据,再将融合后的所有数据依据目标进行感知。
前融合方案下,相当于不同的传感器组合为一个更加超级、多能的传感器,既能看图、又能探测,感知算法无需区分数据来源与类型,直接进行综合处理。
显然,前融合方案的逻辑更加类似于人眼到大脑的工作方式,将所有数据整体分析,增强了数据关联性,也减少了信息丢失。
但与此同时,异构数据的融合对于算法也有着极大的考验。首先庞大的数据量对于存储能力、算力都有较高要求,而且由于坐标系的不同,不同数据间的转换效率和效果也需要不同的算法逻辑来实现。
基于架构特性和操作可行性,目前业内更青睐中融合方案,即“特征级融合”,这一方案也更适合BEV视角。
相较于前、后融合,中融合将特征提取置于融合之前,但将数据感知置于融合之后。换言之,中融合方案先通过神经网络提取数据有效特征,将有效特征与BEV空间特征相融合,最终输出BEV视角下的整套数据,用于决策层的感知和输出。
中融合方案中,数据处理更直接,信息损耗更少,相应地,算力需求也一定程度降低,研发重点来到了神经网络模型的更新上。随着深度学习的发展,Transformer的应用突破了过往算法依赖人为规则所带来的认知局限和逻辑上的反复。
不同融合方案的选择和迭代的背后,是感知视角的根本性转换。
在此之前,传统的自动驾驶技术可以概括为“2D 直视图+CNN”时代,路况感知信号由相机收集到的 2D 图像和雷达收集到的 3D 图像组成,感知数据基于每个传感器的位置形成放射图像,不同感知结果通过 CNN(卷积神经网络)进行后融合,通过大量计算统一升维到 3D,符合 3D 状态下车机行驶的坐标系。
这样的方式存在很多欠缺和隐患:
在这种情况下,感知的思路是将“所见”与“所学”相对应,试图成功“认出”路上有什么,就难免出现“挡住了所以没看见”“看见了但认错了”“不认识就当不存在”这些看似好笑、实则危险的情况。
1)路径:从2D到3D到4D,算法推动端到端优化
BEV+Transformer方案应运而生。
BEV(Bird's Eye View),是指一种鸟瞰式的视角或坐标系,可以立体描述感知到的现实世界,相当于在车辆正上方10-20米处向下俯视车辆及周围环境,也被叫做“上帝视角”。相对应的,BEV也代指将视觉信息由图像空间端到端地转换到BEV空间下的技术。
在BEV视图中,道路信息自上而下展示在以自车为中心的坐标系中,避免了原先前视放射视角下的尺度、遮挡等感知问题,信息展示更加全面。但视角变化后深度的估计难度增大,前融合方案的处理难度增大,如何创新算法,将不同特征最优化表达是目前BEV研究中的重点。
尽管各家研发进度和细节略有不同,但BEV+Transformer方案的整体思路基本一致:“输入-提取-转换-融合-时序-输出”,并在这个过程中完成“2D到3D到4D”的转换。
输入:将多个摄像头数据输入到共享的骨干网络(Backbone)
提取:骨干网络提取摄像头数据中的特征(feature)
转换:所有源于摄像头数据的特征转换到BEV空间中(2D->3D)
融合:图像数据特征与其他传感器数据特征融合
时序:增加时序信息,形成具有时空连续性的感知信息(3D->4D)
输出:输出感知结果,包括静态语义地图、动态目标检测以及运动预测等,用于决策规控
Transformer作为一种新型神经网络架构,相比传统神经网络(如CNN),可以直接进行2D、3D不同序列之间的转换。Transformer采用交叉注意力机制,并行训练数据,在跨模态融合以及时序融合过程中,能够更加全面地在空间时序上建模,形成时序融合下的4D空间信息,从而使感知结果更加连续、稳定。
在此基础上,BEV算法进一步迭代为Occupancy Networks(占用网络),更加直接地打造3D空间。有别于感知2D图像、提取像素(pixel)转化为3D特征,Occupancy Networks直接感知3D空间中的体素(voxel),也就是将世界划分为多个大小一致的立方体,快速识别每个体素是否被占用,继而判断车辆是否要躲避。Occupancy Networks可以在10ms内完成计算,感知更高效、结果更精准,将BEV空间在高度上进行了进一步扩展。
2)优势:全局视野、4D时空,感知更稳定,预测更可靠
整体来讲,基于Transformer的BEV感知技术,对过往感知过程中的弊病给出了不同思路的解决方案,具有明显优势。
3)应用:处理多类长尾场景,加速去高精地图
因此,BEV+Transformer方案能够处理多种自动驾驶的corner case场景。
更重要的是,BEV+Transformer的方案将静态道路信息与动态道路参与方统一到了同一个坐标系下,通过实时感知与转换,在行驶中即可实时生成“活地图”,推动自动驾驶中“感知-决策-规划”的任务进行。
这也就意味着高精地图不再成为强需求。
对于车企来讲,使用高精地图一直面临着“资质门槛高、采购成本高、维护成本高”的“三高”难题,如果能够将BEV+Transformer上车使用,摆脱高精地图将指日可待,在当下“以价换量”的市场竞争中,又能向前一大步。
总结:
首先受益者是视觉系统厂家,车辆至少要增加4-6个摄像头,不过目前新兴造车企业都已经准备好了这些硬件基础,此外需要6-8个加串行芯片,2-3个解串行芯片,加串行与解串行的市场基本被德州仪器和ADI旗下的美信垄断,美信独占了中高端市场,这些芯片价格随着像素的上升也大幅度增加,数量也增加了,最终成本几乎与主SoC一样价格,让ADI业绩大涨。
其次是英伟达这样的强大数据训练系统厂家,Transformer就是暴力美学,参数量动辄十亿百亿千亿,万亿也不罕见,层数动辄上千层,根本不是老旧数据训练中心能支撑的,需要大量购买英伟达或AMD的上万美元级的训练芯片。以前做训练的RTX3090,现在只能做推理用了。毫无疑问这让研发成本暴增。
再次是存储系统,Transformer模型体积惊人,动辄GB起,这需要芯片上的L2缓存大增,实际就是消耗大量的SRAM,对数据训练中心和嵌入式系统来说就是芯片价格暴涨,如果用不起昂贵的SRAM,数据中心这一级也要用HBM。对推理的嵌入式系统来说,HBM的价格太高,消费级的汽车市场是无法接受的,只能退一步选择LPDDR5或GDDR5/6,容量要大幅度增加,至少32GB起,成本自然也大幅增加。
激光雷达和传统AI芯片也将受到影响。BEV+Transformer让纯视觉更加强大,接近以前激光雷达制造BEV的效果,厂家都一窝蜂地拥抱BEV+Transformer,冷落激光雷达。之前的AI芯片大多是针对CNN的,对Transformer的适应性会比较差,毕竟Transformer是源自自然语言处理(NLP)的,数据的串行性很显著,并行性不佳,这需要AI芯片做出对应的改变,并且是硬件上的改变,这可能意味着推倒重来,或者用更强的Host来对数据整形,也就是标量运算即CPU要加强,Cortex-A55恐怕是无法胜任的。原本智能驾驶AI专用芯片都特别针对INT8精度,但Transformer简单量化为8位后性能显著下降,这主要是由于普通的激活函数量化策略无法覆盖全部的取值区间。参数越多,量化后的效果就越差。引入BF16非常有必要,而以前设计的AI芯片大多没考虑BF16。所以推理芯片也将受到影响。