基于ViT的高速公路车辆细分类研究
2022-08-20杜显君
杜显君
(西南交通大学计算机与人工智能学院,成都 610000)
0 引言
车辆细分类问题的难点在于相似但类别不同的车辆在外形上是相近的,其主要区别在于车辆的细节部位,比如“中型货车”和“大型货车”具有类似的外观,区别在于“中型货车”具有两排车轮,而“大型货车”则具有三排或四排车轮。对于图片的粗分类问题,传统的卷积神经网络取得了较好的分类效果,例如AlexNet、VGG、ResNet和GoogleNet等著名的神经网络模型。但是传统的分类模型是对整张图片进行特征提取,没有重点关注具有细微差别的特征,使得这些分类网络在车辆细分类问题上表现一般。
为了提取具有区分度的局部细节特征,之前的许多方法需要依靠图片的局部特征标签。Part R-CNN模型基于R-CNN算法完成了局部区域的检测,并将不同区域的特征进行连接,然后通过SVM分类器进行分类训练。此外,Lin等提出的Deep LAC方法是在同一个网络中进行部分特征的定位、对齐及分类,提出了VLF函数,其能够自适应地减小分类和对齐的误差,并且更新定位结果,从而使得网络更好地提取图片的局部特征。但是以上的方法需要对目标的局部特征进行标注,这将耗费大量的人力来标注数据。
Transformer在自然语言处理任务中取得了巨大的进展,许多研究工作通过修改Transformer的部分结构,使其能够应用于计算机视觉任务中。其中,Dosovitskiy等提出的Vision Transformer(ViT)模型在不修改Transformer原始结构的情况下,通过图片分块的方法将Transformer应用于视觉领域。
针对高速公路场景下的车辆细分类任务,本文构建了一个车辆细分类数据集(Freeway Vehicle),并提出了基于ViT的车辆部件选择模型。该模型首先将一张完整的图片划分为大小相同的图片块;然后,将这些图片块输入到Transformer的编码器中,编码器将会学习各个图片块之间的自注意力权重;接着,模型根据自注意力权重来选择对分类贡献度更高的图片块;最后,将这些被选择的图片块特征输入到分类器。本文提出的采用自注意力来选择图片块的方法,可以降低不同类别车辆之间相似部位的影响,在车辆细分类数据集Freeway Vehicle上取得不错的分类效果。
1 相关技术
1.1 注意力机制
视觉注意力机制是人类大脑通过视觉对目标进行观察时,将自身注意力放在重点关注区域的机制。与此类似,通过算法实现的注意力机制,可以使得深度模型关注图片中的重要部分,从而抑制无用的信息。在基于卷积神经网络来提取特征的方法中,文献[9]提出基于特征通道的注意力来描述输入特征各个通道之间的关系,该方法通过学习特征各个通道的权重,使得模型对特征中的不同通道更具有辨识度。此外,同时融合通道注意力和空间注意力的CBAM模块对视觉注意力机制进行了更深入的优化。Vaswani等提出的自注意力方法,使得Transformer的性能在自然语言处理领域的许多任务中都优于先前基于RNN的方法。
1.2 Vision Tr ansfor mer(ViT)
Transformer是一种用于自然语言处理的网络模型,其包含Encoder(编码器)和Decoder(解码器)两个重要的部分。Encoder将输入的特征序列编码为中间特征,而Decoder根据中间特征生成一个输出序列,比如在自然语言翻译中,将输入的英文序列编码为中间特征序列,再将中间特征序列翻译为中文序列。Transformer结构中的自注意力机制可以为序列中每个元素生成一个注意力矩阵,该注意力矩阵描述序列中各个元素之间的相关关系。
随着Transformer在自然语言处理领域的广泛应用,许多研究工作开始尝试将Transformer用于计算机视觉任务中。其中,文献[8]提出的Vision Transformer(ViT)在不改变Transformer结构的条件下,将Transformer应用到图片分类任务,并且达到了与传统卷积神经网络模型相近的分类效果。ViT的网络结构如图1所示,该模型首先将原始图片裁剪成尺寸相同的图片块,再将这些图片块编码为图片序列,输入到Transformer的Encoder中,Encoder通过内部的自注意力模块和前馈神经网络模块对图片序列进行编码,最后,将Encoder输出的特征输入到分类器中。
图1 Vision Transformer结构图
本文将车辆图片划分成尺寸相同的图片块,利用ViT来提取各个图片块的特征,通过自注意力机制来获得图片块之间的权重关系。不同图片块对最终分类的重要程度是不一样的,比如包含车轮、车灯等重要部位的图片块比包含背景的图片块更重要,因此,本文提出了基于ViT的车辆部件选择模块,该模块根据每个图片块的注意力大小来选择有用的图片块,降低无用图片块的影响。
2 算法实现
本文采用ViT模型来提取图像的特征,并利用ViT中的自注意力模块来获取各个图片块特征之间的权重关系。然后,根据自注意力权重的大小来选择重要的图片块特征,并将被选中的图片块特征输入到Transformer Layer中。最后,将Transformer Layer的输出特征输入到分类器中,分类器将输出各个类别的预测结果。
模型的结构图如图2所示。由于ViT要求输入的数据为序列数据,本文将一张完整的图片分割成个大小相同的图片块,然后,通过一个线性映射层将个图片块转换为个高维度的图片块特征向量。接着,将个特征向量输入到Transformer的Encoder中,Encoder利用自身的自注意力模块来计算个特征向量之间的权重大小,并得到维度为×自注意力图。×的自注意力图表示个特征向量中各个特征向量与其他特征向量之间的相关程度,两个特征向量之间的注意力数值越大表示它们之间的相关性越强。
利用Encoder中最后一层输出的自注意力图,本文提出一个基于自注意力的车辆部件选择模块,该模块用于选择对车辆分类贡献更高的特征向量。如图2所示,个特征向量通过Encoder之后,仍然输出个特征向量,输出的个特征向量与模型输入的个图片块在关系上相对应。
图2 模型结构图
个图片块包含原始图片中的不同部分,但是不同图片块对车辆分类的贡献度是不一样的。为了获取重要的特征向量和排除无关特征向量的影响,本文提出了车辆部件模块,根据文献[11]中的方法,从自注意力图中选择第一行注意力数值,表示为1,2,…,,共个注意力数值。这个注意力表示Encoder输出的个特征向量与车辆类别的相关性。然后,从个注意力数值中选取最大的个数值所对应的下标。根据个最大数值对应的下标,可以从Encoder输出的个特征向量中选择对应的个更加重要的特征向量。接着,将被选择的个特征向量输入到最后一层Transformer Layer中。最后,将Transformer Layer输出的结果进行整合,输出到分类器中,分类器会输出图片在不同车辆类别之间的概率分布。
3 实验结果与分析
3.1 数据集
本文基于高速公路场景,构建了一个车辆细分类数据集(Freeway Vehicle),共7000张图片。本数据集包含小型货车、中型货车、大型货车、超大型货车和集装箱货车等五个类别的货车。为了保证数据的丰富性,本文收集的车辆图片具有多角度和多尺度的特点,同时在模型训练的过程中,通过随机翻转、随机裁剪等预处理手段对数据进行增广。对于这五类货车,分类的难点在于不同类别货车具有相似的外形和颜色,它们仅仅在车轮排数和车箱等细节部分有所区别。图3展示了数据集的部分图片。在本实验中,将数据集划分为训练集和测试集,其中训练集5600张图片,测试集1400张图片,比例为8∶2。
图3 数据集图片
3.2 实验设置与评价指标
根据文献[8]中ViT的设置,本文将一张图片划分为196个图片块,每一个图片块的尺寸为16×16个像素。在车辆部件选择模块中,设置超参数K为6,表示从196个特征向量中选择6个最重要的特征向量。在训练的过程中,使用SGD优化器,设置学习率为0.03,batch size为16,epoch为90。本实验采用分类精确度作为评价指标,即图片分类正确的数量占所有图片总数的百分比。
3.3 实验结果
为了与本文提出的方法对比,实验测试了ResNet34、ResNet50、Inception v3和ViT在Freeway Vehicle数据集上的分类精确度。实验结果如表1所示,本文提出的基于ViT的车辆部件选择模型的分类精确度为84.2%,比其他分类方法都要高。其中,单独使用ViT模型的分类精确度已经达到了81.9%,比其他基于卷积神经网络的分类模型都要高。ViT模型加上车辆部件选择模块后,精确度提升了2.3%,由此可见车辆部件选择模块对图片中重要的局部特征进行了较好的选择,排除了无关特征对分类的影响。
表1 实验结果
用ViT的自注意力机制,本文提出的车辆部件模块较好地解决了相似但不同类别车辆之间难以识别的问题。通过对图片块的选择,使模型更加关注对分类有利的部分,避免车辆相似部位对模型造成的负面影响。
为了进一步探究模型对哪些图片块进行了选择,本文将模型所选择的图片块的下标同步到原始的车辆图片上。如图4所示,矩形框用来标记模型所选择的图片块。图4左边的图片是“中型货车”,具有两排车轮;右边的图片是“大型货车”,具有三排车轮。从图中可以看出,模型对不同类型的货车都选择了较好的图片块,并且这些图片块都包含了车辆具有区分度的细节特征,如车轮和车头。
图4 图片块选择
4 结语
针对高速公路场景下的车辆细分问题,本文提出了一个基于ViT的车辆部件选择模型,并且构建了一个多角度和多尺度的车辆细分类数据集。本文方法中的部件选择模块利用自注意力机制来选择图片中重要的部分,减少了图片中无关区域对分类的影响,对相似但不相同类别的车辆具有不错的识别度。在本文构建的数据集上,与主流的分类模型相比,本文提出的方法具有较好的分类精确度。