李琳辉 袁世伟 连静 顾汤鹏
(1.大连理工大学,汽车工程学院,大连 116024;2.大连理工大学,工业装备结构分析国家重点实验室,大连 116024)
主题词:车位检测 协作注意力 图神经网络 轻量化
自动泊车作为自动驾驶的基础应用之一,近年来得到了越来越多学者的关注[1-2]。自动泊车的实现离不开感知系统的配合,其中,基于车载环视(Around View Monitor,AVM)系统[3]的停车位检测系统能够利用安装在车身周围的摄像头,通过图像处理算法检测并识别目标车位的标记线,从而提取空停车位,在自动泊车任务中起到了重要作用。
基于视觉的停车位检测算法主要可以分为传统的车位检测算法和基于深度学习的车位检测算法。传统的车位检测算法可以分为基于线的停车位检测算法[4-5]和基于标记点的停车位检测算法[6-7],但对环境变化敏感、鲁棒性差,不适用于复杂的现实环境。
为提高复杂环境下车位识别的准确性,研究人员提出了多种基于深度学习的车位检测算法。Huang等[8]在基于深度卷积神经网络的停车位检测算法(Deep convolutional neural networks based Parking-Slot detection approach,DeepPS)[9]的基础上进行优化,使用新的卷积神经网络提取车位标记点的方向、坐标和形状,并利用设计好的几何规则过滤和匹配成对标记点;Wu 等[10]为解决车位检测中先验知识不足的问题,提出了以圆形描述符来回归停车位顶点坐标的方法,并开发了一个两阶段的模型用于检测停车位;Chen等[11]在图神经网络的使用过程中放弃复杂且不便的后处理环节,以端到端的方式直接对车位进行推理,在公共数据集PS2.0[9]上得到了优异的结果,然而,由于该算法模型较大,推理速度慢,导致其实时性较差。
基于以上分析,本文综合考虑车位检测实时性和有效性的任务需求,提出一种基于协作注意力与图神经网络的轻量化车位检测算法:使用改进的轻量化神经网络结构,减少模型训练过程的开销,加快模型推理速度;使用协作注意力机制和图神经网络配合的方法,整合多头注意力的冗余信息,并加强车位标记点间的内在联系;采用端到端的训练方式,不需人工设定规则的复杂后处理过程。最后,将该算法在公共数据集PS2.0上进行训练,并与当前的主流算法进行对比。
通常,车位可以由4 个标记点表示,参考采用定向标记点回归的车位检测(Parking-Slot detection using Directional Marking-Point Regression,DMPR-PS)[8]方法,本文将车位识别的问题表述为对车位入口线上标记点的检测问题。首先将给定的车位环视图像输入改进的MobileNetV3 模型,提取特征图后,利用深度可分离卷积得到车位标记点的位置信息和特征编码信息,并输出标记点的回归损失。其次,利用双线性插值的方法将标记点位置信息与特征信息相结合,输出标记点特征。然后,将得到的标记点特征与经多层感知机变换后的位置信息相结合,构成图神经网络中的节点信息,即融合的标记点特征V。本文将图像中的所有车位标记点连接,形成全连通的图,标记点间的连接关系作为图边E。根据图节点V和图边E的关系构建图神经网络G=(V,E),将其与协作注意力机制相结合,推断标记点间的内在联系。经过协作注意力与图神经网络的处理变换,由车位推理层对输出的标记点特征进行判别,判定其能否形成车位,并输出误差损失,更新算法的参数。
本文算法的总体结构如图1所示。
图1 基于协作注意力和图神经网络的车位检测算法总体结构
为了减少训练以及实际算法部署的开销,轻量化神经网络的构建尤为重要。本文将协作注意力与图神经网络相结合探究车位标记点的内在关联,增加了算法计算复杂度,故使用轻量化的神经网络来获取图像特征,以提高算法的推理速度。
本文改进了MobileNetV3 网络作为特征提取网络,其结构如图2 所示,其中hswish 表示h-swish 激活函数。该网络保留MobileNetV1 的深度可分离卷积、MobileNetV2 的倒残差结构以及挤压和激励(Squeezeand-Excitation,SE)注意力通道模块,并利用神经结构搜索方法来搜索网络的配置和参数。MobileNetV3[12]的核心模块为Bneck 模块,也是构成该网络的基本模块。为提高模型的表达能力,本文将Bneck 模块中的SE 注意力通道模块替换为平铺挤压和激励(Tiled Squeezeand-Excite,TSE)注意力通道模块[13]。
图2 改进的MobileNetV3网络结构
TSE注意力通道模块用平均池化(Average Pooling,AvgPool)层替代了SE 注意力通道模块的全局平均池化(Global Average Pooling,GAP)层,将输入的张量划分成多个大小相等的非重叠块。此外,TSE 注意力通道模块采用一维卷积层而非SE 注意力通道模块的全连接(Fully Connected,FC)层,以缩小非重叠块的通道,再通过批归一化(Batch Normalization,BatchNorm)和激活函数线性整流函数(Rectified Linear Unit,ReLU)进行处理,然后使用一维卷积层将非重叠块的通道放大。最后,TSE 注意力通道模块通过最近邻插值(Nearest Neighbor Interpolation,NNI)的方式将通过激活函数S 型函数(Sigmoid Function)的所有非重叠块拼接在一起,并将其输出尺寸调整为输入张量的尺寸。SE 注意力通道模块与本文使用的TSE 注意力通道模块的具体结构如图3所示。
图3 SE注意力通道模块与本文使用的TSE注意力通道模块结构对比
TSE 注意力相比于SE 注意力机制,在挤压过程中使用较小的内核进行共享,从而减小了操作所需要的内存,并在保持精度的同时为终端平台上的深度学习部署提供了优化解决方案。
将特征提取网络得到的特征图分别传递至标记点检测器和标记点编码器,以提取标记点位置信息和特征编码信息。
标记点检测器由深度可分离卷积层构成,输出特征图,用于提取车位标记点的横、纵坐标x、y以及置信度c的信息;检测器同时计算出标记点回归损失用于网络的迭代计算,从而提高模型的表达能力。标记点编码器同样由深度可分离卷积层构成,输出特征图后,通过双线性插值的方式对检测到的数量为N的车位标记点位置进行逐点卷积,得到车位标记点的特征F。为增强特征的表达能力,本文参考变换神经网络(Transformer)[14]位置编码方式,利用多层感知机模型将车位标记点坐标信息(x,y)升维,通过相加的方式与特征F逐位结合:
式中,Mlp为多层感知机模型;Fi为F中的第i个初始标记点特征;Vi为获得的第i个标记点的融合特征;xi、yi分别为第i个标记点的横、纵坐标。
将输出的融合特征Vi作为协作注意力与图神经网络的输入,并联合标记点信息和位置信息进行车位推理。
为提高网络的推理速度、减少算法训练以及部署的开销,本文使用深度可分离卷积层[12]替代标准的二维卷积层,用于提取标记点位置信息和特征编码信息。深度可分离卷积[12]主要由2个部分组成,即深度卷积和逐点卷积。深度可分离卷积相比普通卷积缩减了计算总量,假设输入特征图大小为DF×DF×M、输出特征图大小为DF×DF×O,卷积核尺寸为DA×DA,其中,DF为特征图的宽度和高度,M为输入通道数量,O为输出通道数量。
对于标准的二维卷积,其计算量为:
对于深度可分离卷积,其计算量为:
深度可分离卷积和标准卷积计算量的比值为:
由此可见,在同等条件下,相比于标准卷积,深度可分离卷积能够大幅降低计算量,可以有效减少模型的参数数量,加快实时推理的速度。
根据前文中得到的融合特征V,本文构建全连接图神经网络G=(V,E)。该图神经网络中的节点V表示数量为N的车位特征标记点,图边E表示为每个标记点间的连接关系。
为了提高模型的表达能力,本文用协作注意力[15]来整合不同头部之间的信息。协作注意力相比于标准的多头注意力[14],更关注所有注意力头捕捉的通用信息,并将这些信息作为共享权重,从而加强了多个头部间的作用与理解,并修剪了冗余的参数,实现了轻量化注意力的功能。
标准的多头注意力机制通过直接拼接的方式整合不同注意力:
式中,Q、K、V分别为查询向量、键向量和值向量;X、Y分别为2个不同的输入矩阵;WQ、WK、WV分别为Q、K、V的权重矩阵;H(i)为第i个头的注意力表示;Attention为自注意力机制;softmax为归一化指数函数,作为激活函数;Nh为注意力头的数量;dk为每个注意力头中键向量的列空间维度;MultiHead为多头注意力机制;concat为拼接函数,将多个注意力头部的计算结果在最后一个维度上进行拼接;WO为输出的权重参数矩阵。
定义Dk=Nhdk为键向量的列空间总维度。引入传统的注意力机制可以提高检测的准确性和模型的表达能力,然而这些注意力头部之间捕捉的信息存在冗余,头部与头部间的通用信息较多。
式中,、分别为查询向量、键向量的共享权重矩阵;为第i个注意力头的值相量的权重矩阵;CollabHead为协作注意力机制。
其中,、被所有注意力头部共同学习,用于捕捉所有注意力头间的通用信息,而mi则帮助捕捉各头部的单独信息,这种注意力的整合算法作用是:增加头部注意力的自适应表达性,头部注意力可以根据注意力模式的复杂程度相应增加或减少维度;使得参数的计算更加高效,所有注意力头共享学习和,所以每轮训练只需计算1次。
根据上述分析,可以推理出标准的多头注意力机制在计算注意力评分时,其混合矩阵M的每列对应不同的头部,因此本文设计了对应的混合矩阵用以捕捉所有头部的通用信息,并对其进行压缩。图4 所示为标准多头注意力与本文使用的协作多头注意力的对比示意。
图4 标准注意力机制与本文采用的协作注意力机制
本文构建的图神经网络由3 层组成,首先,协作注意力将所有节点组成的边的特征信息聚合,然后迭代更新模型,第(l+1)层的第i个节点的图节点特征可以表示为:
式中,[ ||Collab]表示由协作注意力对所有头部特征点信息进行聚合;为图节点i根据图网络中的一阶邻居节点Ei所聚合的特征信息。
根据协作注意力和图神经网络得到的节点特征,利用车位推理层判断车位标记点对是否形成完整车位。车位推理层将不同的车位标记点进行连接,并计算其形成入口线的概率,如图5 所示,车位推理层由一维卷积(Conv1d)层、随机失活(Dropout)层和Sigmoid 激活层组成,其中Dropout层仅在训练时使用。
图5 车位推理层结构
最后,协作注意力图神经网络输出N×N×5的矩阵,其中N×N表示形成的车位标记点对数,5包括x1、x2、y1、y2、p,其中(x1,y1)和(x2,y2)为车位标记点位置坐标,p为车位标记点形成入口线的概率。
参考注意力图神经网络车位检测(attentional Graph neural network for Parking-slot detection,Gcn-Parking)算法[11],为端到端地训练整个神经网络,本文损失函数的计算方法为:
式中,lspoint为标记点回归损失;lsline为入口线分类损失;α1、α2分别为lspoint、lsline的系数。
考虑到标记点检测的准确性直接影响车位的划分,本文利用图神经网络来探究标记点的内在联系,取α1=100、α2=1,此时检测效果最优。
标记点回归损失lspoint是车位标记点预测与真值间的平方差之和,标记点检测器的输出层被划分为S×S大小单元的网格,故其计算过程为:
式中,lsc为置信度的回归损失;lsxy为标记点坐标的回归损失;ci为标记点预测的置信度;(xi,yi)为标记点投影的坐标;、(,)分别为标记点预测的置信度和标记点投影的坐标对应的真值;1i为对标记点投影坐标的判断值,当投影坐标为真值时,取值为1,否则为0。
入口线分类损失lsline的计算公式为:
式中,lij为第i个和第j个标记点形成车位入口线的预测概率;为lij对应的真值。
本文在PS2.0[9]的公共环视图像数据集上评估所提出的停车位检测算法。PS2.0 数据集由9 827 帧训练图像和2 338帧测试图像组成,分别包含9 476个停车位和2 168个停车位。根据DMPR-PS[8]方法,选择7 780帧图像构成训练集、2 290帧图像作为测试图像。PS2.0数据集中的图像采集自不同环境条件下的典型室内外场景,分辨率为600像素×600像素,对应10 m×10 m的现实地面区域。
本文在Ubuntu18.04 操作系统、GeForce RTX 3060显卡,Pytorch 10.0 框架环境下进行试验。训练批量大小为16,训练次数为200轮。本文训练时选用的学习率为0.003、权重衰减率为0.01、优化器为Adam_Onecycle,图6所示为PS2.0数据集下检验后的可视化图片。
图6 PS2.0数据集下检验后的可视化图片
本文对算法进行了综合评估,包括推理效率和检测有效性。推理效率指标包括每幅图片推理时间和模型大小,检测有效性指标包括精确率、召回率和微观F1(Micro-F1),其中Micro-F1 为本文引入的参数,同时兼顾了分类模型的精确率和召回率,最大值为1,最小为0。
精确率P为正确预测的正样本数量与预测为正样本的全部样本数量的比值,召回率R为正确预测的正样本数量与所有正样本数量的比值:
式中,TP为预测为正的正样本数量;FP为预测为正的负样本数量;FN为预测为负的正样本数量。
对于本文的二分类问题,Micro-F1的计算方法为:
使用PS2.0 中的测试集对本文的车位检测算法进行测试,并与当前车位检测的主流算法进行比较,结果如表1所示。
表1 PS2.0数据集下的有效性对比结果 %
从表1中可以看出,本文提出的车位检测算法在召回率和Micro-F1 指标上优于当前的主流算法,这表明利用协作注意力和图神经网络的结构可以在复杂环境下学习并提取图像中车位的更多特征。其中:前3种算法为利用图像特征检测车位的传统算法,其准确度和召回率均低于基于深度学习的算法;DeepPS、DMPR-PS、基于深度学习的空车位检测方法(Vacant Parking Slot detection method based on deep learning,VPS-Net)、车位检测方法(Parking Slot Detection,PSDet)为二阶段检测算法;用于实时停车位检测的选择修剪全卷积网络(Select and Prune the Fully Convolutional Networks for real-time parking slot detection,SPFCN)、文献[18]算法、Gcn-Parking 和本文算法为端到端的单阶段检测算法。本文算法既保留了单阶段神经网络的优点,又省去了复杂的后处理操作,同时提升了检测的有效性。相比于传统算法中精度最高的基于学习的车位检测算法(Parking-Slot Detection based on Learning,PSD_L),本文准确率提高了1.31 百分点,召回率提高了12.54 百分点;相比于单阶段算法中精度最高的Gcn-Parking,本文精确率提高了0.19 百分点,召回率提高了0.08 百分点;相比于二阶段算法中精度最高的VPS-Net,本文精确率提高了0.12百分点,召回率提高了0.19百分点。
考虑到一些算法未提供模型大小与推理速度,选取部分算法进行比较,如表2 所示,相比于目前优秀的车位检测算法VPS-Net 和Gcn-Parking,本文算法的模型大小分别为前者的34.2%、后者的16.63%,每帧图像的运行时间与前者相比缩短了9.95 ms,与后者相比缩短了15.2 ms。可见本文算法相比于其他车位检测算法模型具有参数数量少、运行时间短、推理速度快的优点,在实际部署时具有一定的优势。
表2 PS2.0数据集下的推理效率对比结果
为验证修改后网络的优越性,本文进行了对比试验,在本文算法的总体架构下,将特征提取网络替换为主流的特征提取网络和一些轻量化的特征提取网络模型,用于进行比较。本文试验以模型复杂度、精确率、召回率和Micro-F1 作为评价指标,其测试结果如表3 所示。
表3 不同特征提取网络的性能指标比较
由表3可知,本文修改后的骨干网络不仅达到了较高的精确率和召回率,同时模型参数数量少、运行速度快,优于其他方案。
为了研究本算法的各改进部分在整体算法中发挥的作用,利用消融试验对整体算法进行研究。以MobileNetV3 特征提取网络和图神经网络为基础,逐步加入深度可分离卷积、协作注意力机制,以及TSE 注意力机制,对方案优化改进,并在PS2.0 数据集上进行检测试验,结果如表4所示。
表4 消融试验结果
当损失函数选取不同的系数时,得到的检测结果如表5所示。
表5 不同损失系数的结果
由表4和表5可知,本算法经过消融试验后,通过对算法的不断优化,在实时性方面,每帧图像处理时间为10.1 ms,并将模型大小缩减至77.4 MB,在有效性方面,达到了99.75%的精确率、99.50%的召回率和99.62%的Micro-F1指标,有效地平衡了算法的实时性和准确性。
本文提出了一种基于协作注意力和图神经网络的轻量化车位检测算法,利用协作注意力和图神经网络加深了车位标记点间的内在联系,保证了车位识别的精确率和召回率,同时,针对计算繁琐、模型参数数量多的卷积神经网络算法和图神经网络算法在实车部署上的困难,使用轻量化的网络结构,并对协作注意力和图神经网络算法加以改进,最后,在PS2.0 车位数据集上进行了对比试验和消融试验,验证了算法的可行性。结果表明,本文算法优于当前的大部分主流车位检测算法,满足更快、更准确的检测需要,符合时间紧迫的自动泊车任务要求。