自动驾驶技术3-端对端智能驾驶
当前位置:关于美仑>资讯
更新时间: 2023/01/12

一、前言


1.png


在今年4月28日,百度、小马智行均成为《北京智能网联汽车政策先行区乘用车无人化道路测试与示范应用管理实施细则》的获批企业。在之前自动驾驶试运营是需要有安全员的,在各企业经过大量测试后,现在驾驶席已不需要安全员,乘客的安全完全由自动驾驶系统来把握。


2.png


在前期文章中有对传统自动驾驶路线进行过介绍,(《自动驾驶技术1-感知》与《自动驾驶技术2-决策规划》,感兴趣的朋友可以去了解下),本文对自动驾驶技术中另一种实现路线进行介绍。


二、本期文章相关专业词语介绍


为了方便一些不是很了解对端自动驾驶技术的读者朋友后续阅读,在本节先对一些专业名字或英文缩写进行说明。


1、人工神经网络,简称神经网络,(Neural Network,NN),是机器学习的一部分,通过不同连接方式构成不同结构的网络结构,下图为神经网络构型,


3.png


神经元之间表示连接强度的权重值是神经网络训练学习的参数,神经元是构成神经网络的基本单元,一般在输入一组数据后能经过激活函数产生输出值,下图为神经元结构


4.png


2、深度学习,(Deep Learning,DL),是人工神经网络的进一步发展,本质是能够有效训练深层结构,很多研究表明深层相比浅层神经网络具有更好的表达能力和泛化性。


自此以后,卷积神经网络,循环神经网络,长短时记忆网络等深度学习模型在语音识别、图像分类等领域取得众多突破性成果。


3、卷积,可以从物理意义上简单说明卷积(Convolutional)这个概念,他的物理意义可以表示为,一个函数在另一个函数上有权叠加,即输入信号的每个位置,叠加一个单位响应,就可以得到输出信号,主要作用是用来消除噪音和特征增强。


4、卷积神经网络,(Convolutional Neural Networks,CNN),可以看作是具有局部连接、权值共享和子采样特性的特殊深层前馈神经网络,可以有效减少参数训练的数量,主要可以用来处理图像数据和时间序列数据具有类似网格结构的数据,广泛用于图像识别,图像分类,予以分割,目标检测以及自然语言处理等优势,准确率远远超过其他神经网络模型。


5.png


标准的卷积神经网络一般由输入层、卷积层、池化层、全连接层和输出层构成,其中卷积层和池化层可以有多个层结构,卷积层的主要作用是提取局部特征,池化层又称子采样层,处于卷积层之间,作用是有效缩小节点矩阵的尺寸,降低特征维数,压缩数据和参数的数量,加快网络计算速度,防止过拟合,例如输入的是图像,池化层压缩图像,对图像数据进行压缩时,会把数据中冗余及无关的信息过滤掉,留下最重要的特征信息。


6.png


与全连接前馈神经网络不同,卷积神经网络采用卷积代替了全连接,只在最后几层保留全连接,使得卷积神经网络需要训练学习的参数量减少,有效地加快了模型的训练,其中卷积层与全连接层最大的不同有两点:局部连接和权重共享。


7.png


5、长短时记忆网络(Long Short-Term Memory,LS),一种增加了记忆功能的具有特殊结构的循环神经网络。


循环神经网络在训练过程中会出现梯度消失和梯度爆炸的问题,而LSTM通过引入可控自循环,使得梯度在训练时能够在长序列中传递下去,达到记忆长期信息的目的,LSTM网络的主要是通过引入门控机制来有效控制单元状态c的信息传递。


门控机制一共包含三个“门”,分别是输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate),这三个“门”的结构相同,主要是由 sigmoid 函数和点积操作构成,利用 sigmoid函数特性来控制信息传递。


8.png


6、循环神经网络(Recurrent Neural Network,RNN),一种具有短期记忆能力的反馈神经网络,与前馈神经网络相比,两者最大的区别是循环神经网络中的神经元可以接受自身传递的信息,构成环路的网络结构。


循环神经网络主要是用于处理和预测时序数据,而在这方面恰恰是前馈神经网络的薄弱之处,循环神经网络能够充分挖掘和利用数据中的时序信息和语义信息,在语音识别、语言模型、机器翻译以及自然语言生成等方面取得众多突破。


9.png


一个典型的循环神经网络结构,按照时间对其进行了展开,整个结构由输入层、隐藏层和输出层组成,隐藏层做一个自循环。上图中的隐藏层模块为一个循环神经网络单元(RNN-cell),RNN-cell结构如下图所示,RNN-cell 为网络的主体结构。


循环神经网络一个重要的概念是时刻,它会对每一时刻的输入结合之前的状态给出一个输出。


10.png


7、端到端,思路是放弃传统多模块合成自动驾驶技术,改为采集人为操作车辆的控制参数数据(参数包括方向盘转角、油门、刹车和速度等)以及形式过程中由摄像头采集到的道路场景图像,以图像数据作为神经网络中的输入,控制参数作为端到端模型的标签进行神经网络模型的学习训练。最后得到的深度学习模型以道路场景图像作为输入,控制参数作为输出。


三、端对端智能驾驶技术


自动驾驶技术通常可以分为两种(有些研究人员划分为3类,分别是间接感知方法即传统主流驾驶方案、行为反射方法即端到端系统,采用监督学习人类驾驶动作建立传感器与驾驶动作之间直接映射关系、和直接感知方法,介于前两者之间,在间接感知方法上优化,降低计算成本,但又具备一些可解释性,也被成为中间方法,个人将他划分为第一种)。


1、是通过多个工程模块进行组合完成智能驾驶任务,


该种方式中多模块合成智能驾驶技术通常包括感知模块和规划决策模块,之后通过控制模块控制执行单元动作,在运行过程中通过对每个模块参数的分别调试,来适应各种各样的驾驶场景,实现智能车安全平稳的行驶。(如《自动驾驶技术1-感知》与《自动驾驶技术2-决策规划》中分别介绍)


2、是基于深度神经网络的端到端智能驾驶技术,


仅仅需要较低资金消费的相机来进行智能驾驶技术的研究吸引大量科研单位以及企业公司的广泛关注,通过利用摄像头采集驾驶场景的信息,将其作为深度卷积神经网络模型的输入,在不断的对网络模型进行训练,得到学习好的网络参数,从而对智能车方向盘转角进行预测。


11.png


与传统的自动驾驶技术相比,端到端模型通过训练深度卷积神经网络,将由相机采集的道路场景信息直接作为模型输入,通过学习获得对智能车方向盘转角的预测,可以有效地避免传统智能驾驶技术中的感知模块单独去检测车辆,车道线,以及行人,动物等物体,仅仅需要一个相机采集智能车道路场景信息,就能够模拟人类驾驶员做出恰当的决策行为。


而端到端学习模型因为省略了大量繁琐的中间步骤,其中关键点在于设计出合适的深度神经网络架构,从而能够在输入的道路场景信息中有效提取影响驾驶决策的关键场景特征,进而针对每一帧场景图像,通过计算得到对应的驾驶行为的决策值,该过程具体流程如下图所示。


12.png


端到端模型能够预测智能车方向盘转角进而控制智能车自主行驶,模型能够直接优化车辆决策控制的所有部分,因为模型不仅仅能够学习到明显的特征,同时能够检测微小的特征。


此外,通过利用并行图像处理单元(GPU),深度卷积神经网络能够大大节省运算时间,这在实际智能车研究应用中是至关重要的。由于智能车行驶在时间上具有一定的连续性,往往需要根据对历史场景信息的分析与理解,进而对当下智能驾驶行为作出很好的预测。


端对端系统中也是有多种类型的,传统的端到端智能驾驶技术,仅仅利用一个前视相机采集道路场景信息,较小的感知视野产生的视觉盲区导致智能车无法精确检测视角边缘处移动物体的位置以及预测运动轨迹,同时没有利用空间信息给予一定的约束来提高端到端学习模型的空间特征检测能力,给自动驾驶任务带来很大的困难,在此种情况下可以通过扩大智能车前方感知视野来进行分析,通过利用多个相机采集智能车前方道路场景信息,同时对多个视角提取特征的权重进行学习,在学习过程中增加关键视角信息的比例,并且在模型中增加空间位置关系进行约束来进行优化。


以下以英伟达和特斯拉公司的自动驾驶方法进行简单说明,并在最后说明一种场景特征融合的时空约束端到端自动驾驶技术。


四、英伟达端到端自动驾驶算法简介


NVIDIA在2016年提出的端到端自动驾驶模型对整个自动驾驶的研究具有重大的推动作用,它的研究工作表明神经网络能够通过端到端学习完整的车道保持任务,训练好的模型能够在多种不同路况上完成车辆的横向控制。


通过DAVE-2系统采集训练数据,DAVE-2的结构图如下图所示。采用左、中、右三个摄像头采集道路场景数据,同时通过CAN总线来记录驾驶员驾驶车辆时的方向盘转角数据。


13.png


模型训练过程如下图所示,将训练集中的道路场景图像输入到卷积神经网络模型中,CNN计算出转向命令,然后通过最小化预测值与真实值之间的误差,采用反向传播算法更新CNN中的权重参数,训练完成后,使得模型能够根据中间摄像头预测出正确的转向命令,完成车辆的横向控制。


14.png


NVIDIA采用的卷积神经网络模型一共是九层,包括1个归一化层、5个卷积层和3个全连接层,模型结构如下图所示。


15.png


模型输入为高66像素、宽200像素的3通道RGB 图像(66×200×3),经过归一化处理后,进行了5次卷积操作。


前3次进行卷积操作所使用的是尺寸大小为 5×5 的卷积核,卷积核个数分别为 24、36和48,卷积步长为2×2,2×2的步长使得在做卷积操作的同时也进行了池化操作,经过3次卷积之后特征图的维度由66×200降到了5×22,因此在5个卷积层之间便取消了池化层,不再进行池化操作,精简了模型结构。


后面两次进行卷积操作所使用的是尺寸大小为3×3的卷积核,卷积核个数为64,完成卷积操作后特征图维度为1×18。特征提取完成之后,将特征图进行展开(Flatten),把多维的输入一维化,从卷积层过渡到全连接层,展开后节点数为1164,之后再连接3个全连接层,节点数分别为100、50和10,最后输出控制参数转向角预测值。


五、特斯拉端对端自动驾驶简介


特斯拉在2021年的AI Day上展示了一个纯视觉的FSD(Full Self Driving)系统。虽然说只能算是L2级别,但如果只是横向对比L2级的自动驾驶系统,FSD的表现是非常不错的。


特斯拉视觉感知系统任务通过以下,


1、先在图像空间中完成所有的感知任务,然后将结果映射到向量空间,最后融合多个摄像头的结果;


2、先将图像特征转换到向量空间,然后融合来自多个摄像头的特征,最后在向量空间中完成所有的感知任务,两种方法来实现将图像空间中的信息转化为向量空间中的信息。


由于1.透视投影,图像中看起来不错的感知结果在向量空间中精度很差,特别是远距离区域;2.在多目系统中,由于视野的限制,单个摄像头可能无法看到完整的目标,这可能便是特斯拉直接在向量空间中完成融合和感知的原因,也是FSD感知系统的核心思路。


为了实现FSD核心思路,需要解决两个重要的问题:一个是如何将特征从图像空间变换到特征空间,另一个是如何得到向量空间中的标定数据。


特斯拉将特征从图像空间变换到特征空间方案中核心的有三点,


1、通过Transformer和Self-Attention的方式建立图像空间到向量空间的对应关系,简单来理解的话,向量空间中每一个位置的特征都可以看作图像所有位置特征的加权组合,当然对应位置的权重肯定大一些。但是这个加权组合的过程通过Self-Attention和空间编码来自动的实现,不需要手工设计,完全根据需要完成的任务来进行端对端的学习。


2、在量产应用中,每一辆车上摄像头的标定信息都不尽相同,导致输入数据与预训练的模型不一致。因此这些标定信息需要作为额外的输入提供给神经网络。简单的做法可以将每个摄像头的标定信息拼接起来,通过MLP编码后再输入给神经网络。但是,一个更好的做法是将来自不同摄像头的图像通过标定信息进行校正,使不同车辆上对应的摄像头都输出一致的图像。


3、视频多帧输入被用来提取时序信息,以增加输出结果的稳定性,更好的处理遮挡场景,并且预测目标的运动。这部分还有一个额外的输入就是车辆自身的运动信息,以支持神经网络对比不同时间点的特征图。时序信息的处理可以采用3D卷积,Transformer或者RNN。FSD的方案中采用的是RNN。


而向量空间中的标注数据,特斯拉的做法是利用来自多个摄像头的图像重建3D场景,并在3D场景下进行标注。标注者只需要在3D场景中进行一次标注,就可以实时地看到标注结果在各个图像中的映射,从而进行相应的调整。


六、场景特征融合的时空约束端到端自动驾驶技术


若采用前视方向的三个摄像头采集为感知设备(采集的场景图像分辨率大小为640*480),采集的道路场景信息作为模型的感知信息输入;


图像经过步长为4的卷积层提取空间特征,之后对每一层提取的三路空间特征进行加权融合,将融合后得到的特征作为输入进行下一层空间特征的提取;


在多层卷积网络空间特征提取并且融合后,将特征所携带的场景信息进一步传输到LSTM网络,由于LSTM拥有强大的记忆能力,这样操作可以在时序上保存一定的场景变化信息。


16.png


在空间特征提取后,通过设置三个全连接层得到仅仅进行空间约束的损失函数,经过LSTM进行特征提取后,同样得到整个时空联合网络的输出,将其与基础值一起作为损失函数的输入,通过这样的操作,模型能够保证在空间特征更加精确的条件下,保持时序上下文的动态性,模型网络框架的详细参数如下表所示。


17.png


自动驾驶行为是通过不断与周围道路环境进行交互实现的,在车行驶过程中,感知得到的信息是不断变化的,因此历史信息的存在能够为驾驶行为的判断提供一定的依据。


如果通过三个前视相机采集道路场景图像,来扩大前方感知视野获得更丰富的场景信息,那么道路场景在驾驶过程中不断变化,各个视角的重要性也在不断地变化。


一般情况下,前视场景中间相机采集的是智能车正前方视野的道路信息,因此是最重要的视角。


在畅通的高速路,人类驾驶员通常不会过度关注周围的驾驶环境,这个时候仅仅一个前视相机就能够满足安全驾驶的需求。但是如果在车辆换道,转弯,或者是当两侧相机中有车辆或者行人在移动的时候,两侧相机采集的道路信息同样非常重要。


对三个相机采集的道路场景视频序列经过卷积神经网络提取的特征进行融合,之后将融合后的特征输入到下一层卷积神经网络继续提取特征,经过多层特征提取以及特征融合,最后输入到LSTM网络层获取时序特征信息,从而更好地驾驶车辆。


每个输入视频序列对应的卷积神经网络能够有效的辅助决策网路进行决策,加权特征的融合能够针对实际场景对输入的视频序列进行评估,更好的理解道路场景信息来促进决策网络的学习,多个视角特征融合过程具体如下图所示。


18.png


最后会通过几层全连接层对得到的特征信息进行分类和识别,利用加权求和,将其映射到样本标签空间,得到输出结果转向角预测值。