APP下载

驾驶环境感知算法研究

2022-09-14梁兴碧

科学技术创新 2022年25期
关键词:多任务分支车道

梁兴碧

(广东工业大学计算机学院,广东 广州 510000)

随着深度学习算法的不断发展,在目标检测、语义分割和车道线检测等领域皆积累了丰富的研究成果。例如,Faster R-CNN[1]和YOLOv4[2]等是较为经典的目标检测算法;U-Net[3]、FCN[4]、SegNet[5]和PSPNet[6]等是较为经典的语义分割算法;SCNN[7]和SADENet[8]等是较为经典的车道线检测算法。尽管这些算法都有出色的性能表现,但若一个接一个地处理这些任务会比一次同时处理所有任务需要花费更多的时间。

交通场景理解中的不同任务往往有很多相关信息可以互补。比如,车道线往往是可行驶区域的边界线,而可行驶区域通常紧密地围绕着车辆。因此多任务网络模型更适用于这种场景,主要原因有两个:(1)它可以通过同时并行处理多个任务而不是按顺序逐个处理,从而加速了推理速度。(2)它可以在多个任务之间共享信息,这样一定程度上会缓解模型的过拟合,提高了模型的泛化能力。对于驾驶环境感知系统,高精度和实时性是最关键的两个要求,这关系到无人驾驶系统能否做出准确及时的决策以确保安全行驶。然而,对于实际的无人驾驶系统,计算资源往往是有限的。因此,在实际场景中同时考虑这两个要求是非常具有挑战性的。为了在获得高精度和高效率的同时解决驾驶环境感知网络的多任务问题,即目标检测、可行驶区域分割和车道线检测,本文设计了一种简单有效的网络架构。本研究使用CSPDarknet 作为编码器从图像中提取特征,然后将这些特征图输入到特征融合模块,该模块主要由FPN 和PAN 组成,最后将融合后的特征图分别输入到三个解码器以完成各自的任务。

1 算法设计

1.1 特征提取和特征融合网络

本文选择CSPDarknet[9]作为特征提取网络,它支持特征传播和特征重用,解决了优化过程中的梯度重复问题,从而显著减少了参数和计算量,有利于保证网络的实时性。本文的特征融合网络主要由空间金字塔池(SPP)模块、特征金字塔网络(FPN)模块和路径聚合网络(PAN)模块组成。SPP 模块可以提取并融合不同尺度的特征,FPN 模块可以自上而下地融合不同语义层次的特征,而PAN 模块可以自下而上地融合不同语义层次的特征。这三个模块结合可以获得更好的特征融合效果,使得提取到的特征包含多尺度、多语义层次的信息。

1.2 目标检测分支网络

本研究目标检测分支网络结构见图1。文献[10]在目标检测模型的检测头中引入了多种自注意力机制:尺度感知、空间感知和任务感知,显着提高了检测头的表示能力。本研究借鉴该方案,在本研究的目标检测分支网络中引入了自注意力机制。其中,尺度感知模块可根据目标的尺度在适当的层次上增强特征,使得特征图对不同尺度变得更加敏感;空间感知模块可在相同的空间位置聚合不同层次的特征,使得特征图变得更加稀疏并且聚焦于不同位置的目标;任务感知模块可根据目标的不同卷积核的响应,引导不同通道的特征图分别支持不同的任务,比如分类、边框回归等。

图1 目标检测分支网络结构图

1.3 可行驶区域分割分支网络

本研究将FPN 的底层特征图输入到可行驶区域分割分支网络,其输入大小为(W/8,H/8,256)。首先经过GAU 模块,该模块可提供全局上下文信息,来指导低层特征选择类别定位信息。然后经过三个上采样过程,将输出特征图恢复为(W,H,2)的大小,表示输入图像中每个像素对于可行驶区域和背景的预测概率。此外,本研究在上采样层中使用最近邻插值法,而不是反卷积,降低了计算成本。

1.4 车道线检测分支网络

本研究车道线检测分支网络采用与可行驶区域分割分支网络相同的网络结构。

1.5 多任务网络

本研究的多任务网络结构见图2。首先通过共享的卷积层提取图像特征,其次经过颈部的特征融合模块,得到语义信息表征能力更强的特征图,最后分别输入三个任务各自的解码器,每个解码器都结合了注意力模块,以提高解码器的表征能力。

图2 多任务网络结构图

1.6 损失函数

1.6.1 目标检测损失函数Ldet

本研究目标检测损失函数Ldet是置信度损失、分类损失和边界框损失的加权和,公式如下所示:

其中Lclass和Lconf采用Focal Loss 损失函数,该损失函数有助于解决样本不均衡问题,提高模型的性能。而Lbox采用CIOU 损失函数,它考虑了预测框与标签之间的中心点距离、重叠率和长宽比的相似度,有助于进一步提高检测性能。α1、α2、α3可以调整对应损失的权重大小以平衡损失。

1.6.2 可行驶区域分割损失函数Lda-seg

可行驶区域分割损失函数采用带有Logits 的交叉熵损失函数,旨在最小化网络输出像素与实际标签之间的分类误差。该损失函数的计算流程由两步组成:第一步是对网络的最后一层输出做一个softmax,求取输出属于可行驶区域的概率;第二步则是对softmax 的输出和样本的实际标签求一个交叉熵。

1.6.3 车道线检测损失函数Lll-seg

车道线检测损失函数采用同样带有Logits 的交叉熵损失函数。

1.6.4 多任务网络损失函数Lall

本研究多任务网络损失函数是以上三种损失函数的加权和,公式如下所示:

其中γ1、γ2、γ3可以调整各损失权重以平衡总损失,有助于模型更好更快地收敛。

2 实验

2.1 数据集简介

BDD100K 数据集包含10 万个高清视频序列,是目前规模最大的无人驾驶数据集。该数据集涵盖不同时间、不同天气条件(包括晴天、阴天和雨天,以及白天和晚上的不同时间)和驾驶场景,其数据规模大,多样性丰富。

2.2 实验设置

为了使目标检测器能够获得更多关于交通场景中车辆的先验知识,本研究使用k-means 聚类算法从数据集的所有视频帧中获取先验锚点。使用Adam 作为优化器来训练模型,初始学习率设置为0.001,并在训练过程中使用warm-up 和余弦退火算法来调整学习率,旨在引导模型更快更好地收敛。本研究还采用了一些较为常用的数据增强方法来增加图像的多样性,比如随机旋转、缩放、平移、剪切等。

2.3 实验结果

2.3.1 目标检测分支网络

见表1,本研究使用精确率、召回率和mAP50 作为检测准确率的评价指标。实验结果表明,本研究目标检测分支网络在检测精度上超过了Faster R-CNN、MultiNet[11]和DLT-Net[12]模型,并且与YOLOv5 模型的性能相当。由于其他任务的信息共享,本研究目标检测分支网络不会将远离道路(即非可行驶区域)的物体误识别为车辆,预测结果更加准确。

表1 车辆检测结果

2.3.2 可行驶区域分割分支网络

本研究使用准确率和mIoU 作为指标来评估不同模型的分割性能,结果见表2。可以看出,本研究可行驶区域分割分支网络的分割性能均优于其他三个模型。本研究可行驶区域分割分支网络在分割靠近车辆或车道线的边缘区域方面要好得多,这主要是因为另外两个任务都为这个任务提供了边缘信息。

表2 可行驶区域分割结果

2.3.3 车道线检测分支网络

本研究使用像素精度和mIOU 作为评估指标。见表3,本研究车道线检测分支网络的性能大大超过了其他三个模型。借助其他两个任务共享的信息,本研究车道线检测分支网络几乎不会将某些车辆所在或可行驶的区域误认为车道线。

表3 车道线检测结果

3 结论

本研究提出了一种简单有效的多任务学习网络用于驾驶环境感知,可以同时处理目标检测、可行驶区域分割和车道线检测三个任务。该网络由一个用于特征提取的编码器和三个用于处理特定任务的解码器组成,并且可以进行端到端的训练。经实验验证,目标检测、可行驶区域分割和车道线检测三个任务具有较高的相关性,进行多任务学习能互相促进彼此的性能,最终提高模型的整体性能,并且一次执行多任务比依次执行单个任务能节省大量时间。

猜你喜欢

多任务分支车道
数字时代的注意困境:媒体多任务的视角*
一类离散时间反馈控制系统Hopf分支研究
结合自监督学习的多任务文本语义匹配方法
北斗+手机实现车道级导航应用
软件多分支开发代码漏合问题及解决途径①
避免跟车闯红灯的地面车道线
面向多任务的无人系统通信及控制系统设计与实现
浅谈MTC车道改造
巧分支与枝
斑马线前该如何礼让