舒振宇,秦昊
(中南民族大学 电子信息工程学院,武汉 430074)
飞机无论是作为民用的出行交通工具还是应用在军事上的打击作战武器,都已经得到了广泛的应用[1].随着我国经济和军事能力的发展,高准确度的飞机识别系统可以帮助航空中心精准识别飞机型号、有效协助地面航站中心指挥飞机起降,也可以应用于军队监测敌情、打击目标等作战任务.
近年来,飞机类型识别任务作为一种复杂的图像细粒度分类任务,已有许多学者对其进行了深入研究.李萍等[2]利用红外信息和特征融合对飞机红外图像进行目标识别.邵大培等[3]使用基于主成分分析和模板匹配的方法对飞机进行识别.这些传统的飞机识别算法往往需要人工手动对特征进行处理或选择,复杂度大,准确率也比较低.
目前通过AlexNet[4]等深度学习方法对飞机类型识别的研究还较少.文献[5]提出了一种自监督机制网络,利用导航网络等多网络合作方法,定位信息丰富的区域,该网络在MAJI等建立的FGVC-Aircraft数据集[6]上取得了91.4%的识别准确率.文献[7]提出了一个基于多粒度空间混乱的细粒度图像分类算法,提出将输入图像进行切分、打乱、组合的方法,使模型聚焦于多尺寸下的判别性局部区域并进行分类,在FGVC-Aircraft 数据集上取得了92.8%的识别准确率.文献[8]通过联合损失函数从低分辨率的飞机遥感图像中生成具有判别能力的高分辨率图像来提高识别能力,建立起面向飞机遥感图像的飞机识别框架SRARNet,在飞机遥感图像数据集MTARSI[9]上取得了93.4%的识别准确率.
飞机类型识别任务作为一项细粒度分类任务,面临“类间差距小、类内差异大”这一难题,不同类别飞机图像中会因为目标姿态、角度相似而差异较小,而同一类别的飞机图像中会因为背景杂乱、部件更换、历史外观变化等众多因素导致差异较大.为解决这一难题,多数学者采用注意力机制[10]学习图像中的显著局部特征,抑制其他区域不重要的背景特征.为了有效发挥注意力机制在特征提取中的功效,本文以ResNeXt101[11]网络为基础网络,将改进的SKNet注意力[12]嵌入基础网络中以增强网络的特征提取能力.此外,对数据集中的训练数据采取数据增广的方式进行处理,让网络在学习目标特征的过程中兼顾局部特征和整体特征,增强了网络在复杂背景下对目标总体信息的表达能力.
CBAM[13]是基于通道和空间的混合域注意力机制,本文对其修改后提出了改进后的并行通道空间注意力机制(图1).CBAM注意力结构如图1所示.
图1 CBAM注意力结构Fig.1 CBAM attention structure
CBAM 属于混合域的注意力机制,它将特征图在空间维度和通道维度上的信息重新赋予不同的权重.在CBAM 注意力模块中输入特征图F首先通过通道注意力机制加权得到F1,再将F1作为输入串行接入空间注意力加权得到F2,其过程表示如下:
其中MC(F)为F经过通道注意力的输出权值,MS(F1)为F1经过空间注意力的输出权值.
由于CBAM注意力机制中通道注意力和空间注意力属于一种串联的关系,输入特征图会依次经过两次注意力权重分配的过程.然而,第二次注意力权重分配部分的输入是第一次的输出结果而非原输入特征图,这会导致第二次注意力作用的对象是经过第一次注意力权重分配修改后的特征图,这会在一定程度上扰乱第二次注意力提取相应维度重要特征的过程,致使预测准确度不佳.
为解决上述问题,将CBAM 注意力机制的注意力连接方式由串行改为并行得到PCSA 注意力机制,使输入特征图无需关注空间注意力和通道注意力顺序,由两条支路并行经过通道注意力和空间注意力进行权重分配,将输出的两个权重特征向量与原特征图加权得到输出特征图,其网络结构如图2.
图2 PCSA注意力结构Fig.2 PCSA attention structure
在PCSA注意力模块中,输入特征图F分别经过通道、空间注意力得到相应权值,随后将权值直接与原特征图加权得到输出特征图F*,其过程如下:
其中MC(F)为F经过通道注意力的输出权值,MS(F)为F经过空间注意力的输出权值.
SKNet 网络的设计思路是让网络从多个尺度大小的感受野中提取输入图像的特征信息,使图像经过不同尺度的卷积核并生成相同尺度的特征图,以增强网络的类别表征能力.本文将PCSA 注意力机制与SKNet 网络相结合提出PCSA-SK 注意力机制,经实验验证,该机制相比SKNet 取得了更好的效果.
1.2.1 可选择卷积核网络SKNet
SKNet 将注意力机制思想应用到卷积核上,让网络动态选择合适的卷积核,通过Split、Fuse、Select操作使网络自适应地调节感受野大小,兼顾多个尺度的特征信息.其中SKBlock结构如图3所示.
图3 SKBlock结构Fig.3 SKBlock structure
1.2.2 PCSA-SK注意力机制
为了在SKNet 的基础上进一步过滤无用信息,提取重要特征,受文献[14]中采用方法的启发,本文提出了PCSA-SK 注意力机制,其模块化网络结构如图4 所示.它将分解阶段产生的多个分支特征信息与PCSA 注意力机制结合,让每个分支的特征图通过并行的通道-空间注意力机制,使每个分支的特征图都能在原Select 操作前进行一次基于通道和空间维度的注意力权值分配,增强了模型在不同尺度分支上特征提取的能力.
图4 PCSA-SK注意力结构Fig.4 PCSA-SK attention structure
在PCSA-SK 注意力机制中,Split 阶段与SKNet网络相同,生成基于不同尺度卷积核的两个分支的特征图.在Fuse阶段每个分支的特征图会通过PCSA注意力,得到输出;两个分支特征图融合相加输出U经过全局平均池化、全连接层和Softmax 操作得到基于原始SKNet网络的注意力特征向量a、b,分别与进行相乘加权在Select 阶段将结果进行特征相加得到最终特征图V,其过程如下所示:
其中Fca表示通道注意力机制,Fsa表示空间注意力机制,分别是分支特征图经过PCSA 模块后产生的输出,ac、bc分别表示两个注意力权重a、b的第c个元素,Vc是最终特征图V的第c个通道,分别为2 个支路产生的输出特征的第c个通道.
数据增广是计算机视觉领域常使用的一种数据正则化方法,可以缓解训练数据不足带来的模型过拟合的问题[15].常用数据增广方法有翻转、裁剪等,主要通过预先设置的概率值对原始数据进行变换,但未考虑到网络更关注于原始数据中的目标主体信息.以常用的随机裁剪为例,裁去的部分可能含有对分类具有判别性作用的关键信息,这样产生的增广数据很难提升模型的分类性能.
卷积神经网络如ResNet[16]、VGG-Net[17]等在最后一个卷积层产生的特征图中包含图像丰富的分类信息和定位信息,受文献[18]的启发,神经网络在初始数据集上经过初次训练后,再次将训练集的图像输入网络,经过特征提取阶段能够得到目标位置信息丰富的特征图,将特征提取阶段得到的特征图进行通道维度叠加得到目标激活图.在神经网络训练的过程中,由于反向传播和特征提取阶段的作用,网络会增强特征图中目标信息的表达,使得特征图中目标区域的数值高于其他区域,因此经过通道维度叠加后得到的目标激活图能够明显地反映原图像中目标区域的位置信息.将目标激活图中目标位置明确的区域映射到原图像中的对应区域,裁剪原图像中的对应区域并将得到的图像加入初始数据集的训练集中以实现数据增广.网络能够在新的数据集上充分学习全局特征与局部特征信息,从而较精确地提取原始图像中的目标信息,排除背景噪声干扰.数据增广的流程图如图5所示.
图5 数据增广结构Fig.5 Data augmentation structure
得到原始样本的目标激活图后,采用合适的裁剪映射算法得到含有目标信息的增广样本.首先对目标激活图P∈RH×W进行均值计算,过程如下:
P(u,v)表示目标激活图P在第u行第v列的响应值,P*(u,v)代表目标激活图中目标区域的判断依据.
本文算法引入了一个激活系数m,当P*大于裁剪阈值m时M(u,v)=1,否则M(u,v)=0.寻找一组最小的边界框来覆盖这些位置得到激活图中含有目标信息的区域[19].将这组边界框按照目标激活图与原图像的尺寸比例放大到原图像中并依据放大后的边界框信息对原图像进行裁剪,就得到了细节信息更丰富、目标信息更准确的数据增广图像.让网络同时训练增广图像与原输入图像,能够使网络同时学习到图像的全局和目标信息,增强了模型对不同尺度图像识别过程中的鲁棒性和准确性.
目标激活图中像素值高于均值的区域是目标信息最显著的区域,但是某些边缘区域的非目标位置可能会被误判为目标区域而导致裁剪效果较差.为了使裁剪产生的增广数据只包含主体的目标信息,减少背景信息的干扰,通过调节并选择激活系数m的最优值,来保证通过裁剪产生的增广数据中只含有目标信息.如图6所示,激活系数过大或过小都会对提取目标区域产生影响,选取合适的激活系数可以保证生成的增广数据中目标主体信息具有最明确的判别性特征.
图6 m取值效果对比图Fig.6 Comparison chart of m value effect
本文模型在ResNeXt101 网络的基础上实现飞机类型识别,并通过改进的可选择卷积核注意力和数据增广方法提高模型的多类别分类效果,图7 为本文模型的总体框架,可分为特征提取阶段、数据增广阶段和分类器阶段.
(2)数据增广阶段.它属于特征提取阶段的一个并行分支部分.特征图经过Conv3 得到512 的特征图之后,将Conv4 和Conv5 阶段中下采样层的步长stride 由1 改为2,使得特征图通过Conv4和Conv5时尺寸保持在,进行目标区域裁剪,保存为新的增广数据样本,与原始数据样本一同参与模型训练.
(3)分类器阶段.将由特征提取阶段所提取到的特征经过一个全局平均池化以及Dropout 减少参数量,防止出现过拟合;然后经过一个全连接层得到40 个类别的分数信息;之后经过Softmax 函数对各个类别的信息映射为0到1的概率值.
Ubuntu18.04系统,Python3.8、Cuda11.1、Pytorch1.8.1构建框架.CPU Intel i5-3470,内存8 GB,显卡Nvidia GeForce RTX 3060,显存12 GB.
本文使用的是细粒度识别挑战比赛FGComp 2013 中FGVC-Aircraft 飞机细粒度视觉分类数据集.FGVC-Aircraft 包括客机、军用战斗机、轻型飞机等多种构型,总共包含了10000张图片,其中每张图片都含有对应的类别信息.数据集中存在多种类别之间相似度高、同一类别中差距较大的情况.这些问题给模型的训练和识别带来一定的困难.FGVCAircraft数据集按飞机型号分为70个类别,部分数据图像及样本类别分布如图8、图9所示.
图8 部分数据图像Fig.8 Partial data images
图9 样本类别分布Fig.9 Sample class distribution
实验中,将数据集按照7∶3 的比例分为训练集和验证集,70%作为训练数据,30%作为验证数据,并且两者之间没有数据交集.该数据集存在样本较少、各个类别对应样本不均衡、图片背景混乱以及目标姿态各异等问题,这在一定程度上会影响飞机分类的性能.为了能够增强模型的泛化能力以及鲁棒性,本文采取了一系列数据增强手段,包括等比缩放、随机噪声、随机裁剪、Mixup、Cutmix等.
实验中,将输入图像大小调整为288×288,Batchsize 设置为16,训练50 个epoch.为了防止出现过拟合的现象,在最后全连接层添加了dropout,其系数设置为0.4.实验采用SGD 作为优化函数,初始学习率设置为0.01,使用ReduceLROnPlateau 进行学习率调整优化.
本文以Top-1 准确率作为模型的主要评价指标,其计算方式如下:其含义为识别正确的图片数在总的测试的图片数中所占的百分比.
本文采用交叉熵损失函数(CrossEntropyLoss)对模型进行优化,其算法如下:
其中class代表相应类别.
为了充分验证本模型的综合性能,从各个方面进行综合对比实验,具体如下.
(1)基准网络的优越性.在该组实验中,对当前热门的分类网络在飞机分类任务上的表现进行对比实验,其中包括ResNet101[16]、ResNeXt50_32×4 d[11]以及本文采用的基准网络ResNeXt101_32×8 d[11].为了能够更快拟合出高精度的模型,对各个网络在ImageNet上训练的预训练模型在飞机分类数据集上进行微调,每种网络训练30 个epoch,训练的过程和结果如图10所示,准确率对比见表1.
表1 基准网络分类准确率对比Tab.1 Comparison of benchmark network classification accuracy
图10 基准网络对比实验Fig.10 Benchmark network comparison experiment
当模型的训练过程趋于稳定后,ResNeXt101_32×8 d 相比于其他两种网络精度要高,并且网络的深度和宽度都会影响模型的参数量和每秒浮点运算量.由于分类任务需要选择识别效果更好的基准网络,在不考虑硬件资源限制的情况下,本文选择精度最高的ResNeXt101_32×8 d网络.
(2)PCSA 模块的有效性.为了证明PCSA 模块的有效性,本文将基准网络结合PCSA-SK 注意力机制的网络与把网络中PCSA注意力机制替换为CBAM注意力机制的网络进行对比,其他网络结构均不发生改变,训练过程如图11 所示.ResNeXt101_32×8 d_PCSA-SK 代表基准网络结合PCSA-SK 注意力机制的网络训练曲线,ResNeXt101_32×8 d_CBAM-SK代表将网络中PCSA 注意力机制替换为CBAM 注意力机制的网络训练曲线.准确率对比见表2.
表2 模块有效性准确率对比Tab.2 Comparison of module effectiveness and accuracy
图11 模块有效性对比实验Fig.11 Module effectiveness comparison experiment
在网络中使用PCSA 模块在整个训练过程中精度曲线都比较平稳,而在网络中使用CBAM模块时会产生震荡现象.在网络中使用PCSA 模块得到的测试精度高于在相同网络结构条件下使用CBAM 模块,说明在飞机识别任务中PCSA 模块采用并行通道-空间注意力处理信息的方式解决了串行结构中两种注意力无法在原始特征图上进行学习带来的不稳定和干扰,有助于模型学习到原始特征图上最正确的特征信息,提高网络对相应类别识别的精度.由于PCSA 模块与CBAM 模块只在通道、空间注意力的排列方式上不同,所以以上两种网络的参数量和每秒浮点运算量是一致的.
(3)显著性验证.在该组实验中,将本文网络与其他在ResNeXt101_32×8 d 网络中嵌入注意力机制的网络进行对比实验,其中包括SKNet、SE block[20]、CBAM block,训练过程如图12 所示,ResNeXt101_32×8 d_SE代表基准网络中添加SE注意力的训练曲线,ResNeXt101_32×8 d_CBAM代表基准网络中添加CBAM 注意力机制的网络训练曲线,ResNeXt101_32×8 d_SK 代表基准网络中添加SK 注意力机制的网络训练曲线.准确率对比见表3.
表3 网络显著性准确率对比Tab.3 Network saliency accuracy comparison
图12 网络显著性对比实验Fig.12 Network saliency comparison experiment
通过与其他嵌入注意力机制的网络进行对比试验发现,相较于原始网络,嵌入注意力机制对模型准确度的提升有一定的效果,本文采用的注意力结合数据增广的网络架构结合了PCSA、SKNet 注意力机制,相较于使用其他注意力机制的网络具有较高的参数量和每秒浮点运算量,但在忽略硬件资源限制的条件下对模型准确率的提升效果更为显著.
(4)消融实验.对本文提出的网络的各部分进行消融实验,其中包括基准网络ResNest101_32×8 d、只含PCSA-SK注意力机制的网络、只使用数据增广方法的网络以及本文网络,训练过程如图13所示.ResNeXt101_32×8 d 代表基准网络训练曲线,ResNeXt101_32×8 d_PCSA-SK 代表基准网络中只添加PCSA-SK 注意力机制的网络训练曲线,ResNeXt101_32×8 d_DA 代表基准网络中只添加数据增广方法的网络训练曲线.准确率对比见表4.
表4 网络消融实验对比Tab.4 Comparison of network ablation experiments
图13 各模块消融实验Fig.13 Ablation experiment of each module
从消融实验对比结果可以看出,相较于原始网络,本文采用的加入PCSA-SK 注意力机制以及使用数据增广的方法对网络的收敛以及精度都有一定的提升效果.由于数据增广的方法是在数据集上对网络模型准确率的优化,因此在提高准确率的同时不会带来额外的参数量和每秒浮点运算量的提升.本文在模型中将两者结合起来同时使用提升效果更为明显,在测试集上达到93.57%的准确率,优于其他方法,进一步证明了本文提出网络的有效性.
本文提出的基于改进SKNet注意力与数据增广的飞机类型识别网络在飞机类型识别任务中,总体的识别准确率相较于其他对比方法有显著的提升,与其他设计了复杂模块的方法相比,分类效果更好.
针对当前飞机类型识别作为一种细粒度分类任务存在的类间差异小、类内差异大、分类精度低等问题,在ResNeXt101 网络的基础上结合改进的SKNet注意力即PCSA-SK 注意力机制和数据增广的方法,帮助模型学习到飞机不同类别中具有区分度的关键信息.与其他当前具有代表性的模型结构相比,本文采用注意力机制与数据增广结合的方法在常用的飞机类型识别数据集FGVC-Aircraft 上取得了较好的识别效果,分类效果提升,可以基本满足当前各领域对飞机类型识别任务的需求.