算法是决定自动驾驶车辆感知能力的核心要素。当前主流的自动驾驶模型框架分为感知、规划决策和执行三部分。从设计角度上讲,以上三个层面的驾驶模型处理通常可以是基于传统的规则的算法进行设计控制,为了适应更多的驾驶场景,泛化适配更多的场景处理能力,当前很多主机厂或者 tier1 也开始研究基于 AI 模型处理的自动驾驶算法策略。AI 模型的研究方向主要包括如下三个方面:
1、基于 Transformer BEV 的算法在自动驾驶设计中的应用趋势日益明显;
2、城市领航辅助驾驶趋向于“去高精地图”,替代的沿用轻地图方案;
3、AI 模型需要大数据、大算力对模型进行有效的训练和驱动。
基于 AI 模型控制的感知算法
从感知角度讲,前期很多算法模型都是以传统的计算机视觉为基础且基于基础神经网络模型(如 DNN、CNN、RNN 为代表的小模型)。
这三者模型的区别简单的说就是 DNN 是通过对像素级别进行逐个对比,通过图像特征进行识别。而 CNN 则是通过通过将整幅图进行按照按兴趣区域 ROI 进行特征分割后,分别对 ROI 进行局部像素对比识别。这样看起来 CNN 实际是在 DNN 全链接层之前做了适当的降维(其方法是先通过卷积层、池化层)后再处理的,因此 CNN 将使得整个计算更加高效。但是,卷积层和池化层都是提前通过利用一定的卷积核对原始图像进行遍历后生成局部特征,这一过 程虽然能够在短时间内获取到一些有价值且感兴趣的信息,但是也容易忽略局部与整体之间的关联性。
比如进行前景和背景的提取过程中,如果多次池化,就可能导致所感兴趣的车辆最后提取出来并不在我们所感兴趣的车道内。亦或者把最边缘的锥桶最后识别为在自车道前方,这些都不是我们所愿意看到的。
相比于 CNN 只是针对单幅图像的神经网络处理来说,我们在自动驾驶中,实际上是需要 对连续视频进行连续处理的。也就是说这类处理要从二维图像扩展到三维视频处理上,从这点上讲,就需要从时序上做更深层次的延展。而 RNN 就是针对 CNN 在时间上的扩展,其处理过程是对时间连续输出的状态处理。
这里我们举个非常典型的例子说明 RNN 相对于 CNN 的好处。在自动驾驶系统中,比较极端的场景是很多时候无法解决鬼探头的问题,也就是对于跟踪的目标如果在前一时刻还能看到,而当前时刻如果被大车遮挡,下一时刻的预测如果不能结合前一时刻的运动估计,那么 该目标可能碰撞的趋势将无法被预测到,这也就是无法及时做出提前控制减速避撞的原因。RNN 在隐藏层引入了循环核提取对应的时间特征,从而将需要识别的图像序列在时序上进行了有效关联和预测。不难看出循环核是需要存储历史状态的,且存储的历史状态越多,其要求的存储量更大。基于这一特性就使得 RNN 很难用于长时间长距离下的依赖关系处理。这也 就导致了 RNN 在并行计算能力上非常受限。
简单的说,这类小模型神经网络是一种受生物神经元启发而产生的深度学习方法,由众多的感知机构成。感知机类似于生物学中的神经元,输入信号经过加权平均运算,若超过某一个阈值则向后传递信号,否则被抑制。不同的神经网络模型实际就是对感知机之间设定不同的逻辑关系。在自动驾驶感知模块中输入数据为图像,而图像通常是多维计算单元,因此,感知神经元对其识别时需要设置大量输入神经元以及多个中间层,模型参数量大且难以训练且消耗算力高,并可能带来过拟合的问题。
其独有的长序列处理能力和并行计算效率,使得 Transformer 拥有了更强的泛化能力。为什么这么说呢?比如针对自动驾驶系统识别来说,如果是针对前方车辆目标识别跟踪而言, CNN 主要是通过先验信息提前进行相似性对比,并通过将该模型输入到学习模型中,实现该物体的识别任务。而 Transformer 则通过注意力机制,找到了该目标车周围更多的基本元素及元素之间的多个维度关联关系,这样,及时模型中本身并未存储该目标的基础学习模型, 也可以通过周边元素的泛化能力提升对该模型的识别能力。同时,Transformer 通过在时域范围内寻找对应数据帧之间的关系,可以在通过存储帧间的变化关系,从而通过帧间变换实现对各帧之间的约束。因此,可以说 Transformer 模型具有更高的并行计算效率并且可以学习到长时间距离的依赖关系。
多方面讲述精细化感知融合方案
自动驾驶配备多个传感器可以实现感知冗余和信息互补的作用。感知后端是融合部分,对于原始感知而言需要在后端进行前融合、特征融合及后融合。
基于以上分析,前融合 特征级融合 后融合的分阶段处理成为了整个感知处理的主流方案。如下图所示表示了典型的融合处理架构框图。
以上三种融合方式在设置融合策略上分别有不同的方式。对于整体的融合策略来说,一般是针对相同类型的传感器而言,比如前视、侧视摄像头这类行车摄像头的融合。针对这类同源摄像头来说,融合策略针对不同的感知区域进行权重分配。比如如果识别本车道目标, 则一般对前视摄像头分配更大的权重。如果是识别旁车道目标,则对侧视摄像头分配更大的权重。此外,按照识别距离来看,也会区分行泊车摄像头识别的融合权重。如果车速较低, 识别距离较近,则通常会将泊车摄像头分配更多的权重。同时,如果考虑雷达回拨干扰,在低速近距离情况下,也会降低对 Radar 的分配权重。此外,考虑到不同目标的运动特性,对于横向移动的目标,由于摄像头识别横向移动过程精准度远大于 Radar,因此,在融合过程中,也会给摄像头识别的横向移动目标分别更大的权重。最后,如果将环境天气等要素纳入进来考虑,就业需要针对性对传感器的特性采用不同的权重分配。比如,粉尘、雨天等场景, 摄像头对运动目标的识别能力显然远不如 Radar、Lidar 等传感源。此时,通常会对如上传感器分配更多的权重实现对应的感知融合功能。
综合起来,可以总结出如下不同维度的传感器融合方案。
BEV 空间结合 Transformer 如何提升特征级融合效果呢?
BEV 一种对真实感知世界的表达方式,实际是基于规则的算法如逆透视投影变换 IPM 将摄像头所采集到的 2D 图像呈现在 3D 场景中。这里需要注意对智能驾驶比较典型的两种识别场景:车道线和目标级识别,该两种环境场景模型的识别实际会在 BEV 模型处理过程中产生不同的性能预期。
对于车道线来说,由于透视关系可能产生出近大远小的情况,这样在真实世界中平行的车道线就会呈现出不平行的情况。而 BEV 在 IPM 变换过程中,会提前通过两个有带有重叠区域的摄像头信息求得对重叠区域下 2 维到 3 维的投影矩阵,这个投影矩阵将 3 维世界坐标系下的环境模型变换到 2 维图像坐标系下可以完全消除 3 维物体在视角下的失真。因此,BEV 对真实场景下的车道线还原能力是远优于单目识别能力的。然而,BEV 在环境立体目标的识别能力却可能产生不太理想的效果,比如在环境中的车辆、锥桶等障碍物在 BEV 视角下可能产生较大程度的扭曲。原因如下:BEV 强依赖于对投影矩阵的精确计算,然而投影矩阵的计算需要提前标定各个相机在世界坐标系下的外参矩阵。不难看出,这样的投影矩阵需要提前对地面做出强烈的假设需求。假设一旦标定了投影矩阵,地面就应该维持标定时刻的平整状态。一旦地面发生凹凸不平导致车辆颠簸或高差变化,那么整个投影矩阵将会发生较大的变化,如果仍然利用之前的投影矩阵进行计算的话,就有可能造成较大的图像失真。此外,由于投影矩阵实际是对有一定视差的两个相机进行同一目标的识别来计算的。因此,这就在很大程度上会缩短对于环境目标的识别距离。
为了解决以上问题,通常采用在 BEV 空间中基于深度学习的方法做特征级融合。具体来说就是构建共享主干网络分别对来自于不同感知源数据进行处理,处理过程需要很好的提取到数据特征值图。随后,这些特征图需要输入到 BEV 空间中进行特征融合,该融合的过程需要充分考虑不同的感知源数据,比如视觉中的像素数据和雷达中的点云数据。此时,对于固 定在某一时刻的场景图像已经有个初步的雏形了,但是对于智驾系统来说,环境肯定不是动 态不变的,各个目标会随着时间的推移产生一定的变化。如果分割视频图像为前景和背景区域而言,我们对于大部分的背景区域,采用以上 BEV 处理网络已经能够完全描绘出整体的场景感知。然而涉及前景区域,比如运动的车辆、行人等信息,则需要进行实时的规划更新, 因此,还需要考虑在该融合过程中还需要加入时序处理网络中的时间信息形成 4D 空间模型。加入时序处理的过程实际是融合 RNN 和 Transformer 的过程。其中,Transformer 的交叉注意力机制可以很好的提高 BEV 空间中的适配度。因为,交叉注意力中的 Query 和 Key/Value 来源不同,可以天然适配于不同域之间的数据转换。
到底 Transformer 和 BEV 怎么结合呢
为了解决如上问题,智驾领域引入了 Transformer 的自注意力机制,该机制通过寻找各 个基本元素之间的多维度相关性,从而推理出各元素之间的相似规律。
自注意力机制实际上是针对性的关注环境目标图像中需要关注的信息。相比于 RNN 的全信息存储处理模型而言,Transformer 只全量处理和存储首帧数据,后续的处理过程只存储关注的信息部分,也可以称之为“前景部分”。这样通过只存储图像帧之间的变化量数据, 通过编码该变化量数据,从而大大减少了对图像信息的全量存储消耗。这样在解码端实际上 可以通过首帧数据和存储的变化量信息,自恢复对应的全量数据也非常快了。
具体说来,在 Transformer 模型中,有三种注意力元素。注意力机制中最主要的三个 元素分别是 query、key 和 value。输入元素需要经过三次线性变换,分别得到查询向量 Q (Query)、键向量 K(Key)和值向量 V(Value)。这三个向量均代表了同一个输入元素, 但经过不同的线性变换后,它们的表示和功能都有所不同。
比如识别到环境中的同一辆汽车,其关注点有不同几个方向。其一是其目标类型,其二 是目标位置,其三是目标大小、其四是目标运动快慢等。因此,对于这一相同的目标实际上需要从多方向进行跟踪和关注。在 Transformer 里面这叫做多头注意力机制,也叫并行计算注意力方法。这样可以针对性对每一个头进行不同特征的跟踪关注。如果关注目标位置信息, 引用以上三种向量 Q、K、V 则可以表示为:通过 V 表示实际车辆位置信息,而 K 则是检索与该位置周边相近的其他元素(该车周围有多少其他目标注意要素),则 Q 是表示这些元素的具体信息(如周边车辆要素类型、位置等) 。
最后,输出向量可以表示为:
如上图所示:Transformer 的交叉注意力机制整体的处理步骤如下:
阶段 1:计算查询向量与键向量的点积,得到注意力得分,点积结果越大表明相似度越 高,注意力得分越高;
阶段 2:对注意力得分进行缩放和归一化为概率分布;
阶段 3:用归一化后的注意力得分对值向量进行加权求和,得到输出向量。
因此,将 Transformer 算法模型应用在需要大量计算量的 BEV 模型计算中就可以很好的生成不同的计算效果。
写在最后
自动驾驶向更高等级迈进,城市领航辅助驾驶落地在即。城市领航辅助驾驶的落地需 求对自动驾驶模型的泛化能力提出更高的要求,同时考虑到成本、算法复杂度、实时性、高效性等处理因素的约束,优秀的感知融合方案在应用 AI 大模型提高泛化能力 降低/控制车端硬件成本是自动驾驶算法演变的核心脉络。这对于提升城市场景下复杂路况增强处理场景异质性,提升对自动驾驶遇到的 Corner case 的处理能力都是很大的帮助。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved