图像分类主要为了分别出不同类别的对象,如人和车,包括场景识别[1]、对象识别[2]、人脸识别[3]等.细粒度图像信噪比很低,区分度信息存在细微局部区域,例如车的品牌、鸟的品种.细粒度图像分类根据网络训练是否需要人工额外的标注信息,分为强监督图像分类和弱监督图像分类[4],强监督图像分类算法需要图像类别标签和额外的人工标注与位置区域.Wei等[5]提出Mask-CNN模型借助全卷积网络的语义分割(fully convolutional networks for semantic segmentation,FCN)学习部分分割模型,真实标记通过部位标注点得到部分区域的最小外接矩阵,但真实标记矩形框与获取信息存在差异,影响最终结果.弱监督图像分类仅需要类别标签,舍弃人工标记的信息.Zhu等[6]提出基于卷积神经网络(convolution neural networks,CNN)注意力模型,没有强监督信息的指导下,两级注意力在很多情况下无法准确定位到有用区域.Lin等[7]设计了一种双线性卷积网络(bilinear convolution neural networks,B-CNN)模型,B-CNN可看作A网络对图像进行局部区域的定位,B网络对定位到的局部区域进行特征提取.A和B网络之间发挥相互协调、互补的作用,模型在整个网络中完成了端到端的训练过程.从AlexNet[8]的广泛应用到图像分类,以及VGG[9]和ResNet[10]等卷积神经网络的发展,CNN已经开始在计算机视觉等领域占主导地位.基于CNN框架的网络模块形式变得更加多样化[11],同时也出现了多种类连接方式[12]、复杂多样的卷积操作[13]和多种类特征融合方法[14].此外,基于视觉注意力[15]的方法也被应用于计算机视觉领域.虽然CNN的滤波器关注的是图像中部分像素,上述方法能一定程度上弥补CNN对图像的全局建模能力的不足,但是仍未获得较好的效果.Transformer最开始因其强大的学习能力在自然语言处理(natural language processing,NLP)领域被广泛应用[16],研究人员逐渐将其扩展到计算机视觉任务[17]中.Wan等[18]将图像进行下采样和像素聚类,将缺失的图像转化为表征序列作为输入补全像素.Carion等[17]将Transformer整合为检测pipeline中心构建块的目标检测框架,利用Transformer来进行物体检测和分割.Liu等[19]通过Transformer的非局部相互作用以自我注意机制来捕捉更为细长结构和上下文信息进行自动驾驶车道标记检测.Vision Transformer[20]利用全局注意力应用到全尺寸图像上.Transformer相比于CNN的优势在于对全局信息的把握更好,能弥补CNN对于图像全局依赖性的不足.针对CNN对于细粒度图像局部区分细微差异可能定位不准和有效特征信息不能充分利用的问题,本研究结合B-CNN信息互补的特点和Transformer网络能提取全局信息的优势,设计并提出了双线性Transformer网络用于细粒度图像分类.1 双线性网络方法本节介绍用于细粒度图像分类的双线性Transformer网络结构,利用Transformer对全局特征提取的特点,来获得更多的有效特征,确保区分区域不会遗漏,将图像输入到双线性网络中以获得最后的分类结果.1.1 网络架构图BT-Net使用双线性Transformer分支并行结合的组成方式来对细粒度图像进行分类,网络架构图如图1所示.对于图像数据格式[H,W,C]而言,输入图像首先经过不同的卷积层,然后将其展平为二维图像β∈RS×(P2C),其中:(H,W)为原始图像分辨率;C为通道数;(P,P)为每个图像块的分辨率;S=HW/P2为每个图像分成的总块数.再通过线性映射得到编码向量Ei∈R1,i∈{1,2,⋯,10.13245/j.hust.240213.F001图1网络架构图S}.计算公式为Ei=[H,W,C]*β.将编码向量输入Transformer Encoder编码器前,须要分别加入维度不同的位置编码向量然后与之前编码向量进行拼接.即Ei+Pi∈R1,Pi为加入的位置编码.假设网络B映射后的向量比网络A映射后的向量长度大.之后通过Transformer Encoder层堆叠不同次数的编码器块Block层提取特征向量,将不同网络的特征向量进行融合送到全连接层,最后得到最终的分类结果.1.2 Transformer EncoderTransformer Encoder编码器层会分别重复堆叠编码器块Block不同的次数,以此让模型去关注不同方面信息.如图2所示,编码器块(Block)由归一化(Layer Norm)层、多头注意力(Multi-head Attention)、正则化(Dropout)层和多层感知块(MLP Block)组成.而MLP Block是由全连接层、GELU激活函数和正则化(Dropout)层组成,在MLP Block层中第一个全连接层会把输入节点的个数增加4倍,在下一个全连接层还原原节点个数.BT-Net的编码器Encoder分别堆叠了12个Blocks和24个Blocks模块组成,然后把各个注意力的信息综合,有助于网络获得更多更加丰富的特征信息,不仅可以减少信息的损失和防止梯度消失,还能对同一层网络的输出进行一个标准化的处理.Transformer Encoder层输出的维度与输入的维度保持不变,只须要分别提取出对应插入的用于分类的可训练的参数class[token],然后再进行向量融合.向量融合是为了达到与不同空间维度特征交互的目的,以此得到图像更多有效的特征.最后将得到的向量输入到Linear全连接层得到最后的分类结果.10.13245/j.hust.240213.F002图2编码器块Multi-head Attention能使模型在不同位置上关注来自不同表示子空间的信息,有助于网络能捕捉到更加丰富的特征信息.首先将Embedding层的输出映射到αi,再分别通过三个变换矩阵MX,MY和MZ得到对应的xi,yi,zi,(xi,yi,zi)T=αi(MX,MY,MZ)T.然后再根据使用的关注头(head)的数目h进一步将xi,yi,zi均分成D份,即Di=N(XMiX,YMiY,ZMiZ).多头注意力函数N将单头分成多份作为注意力,其中X为输出的信息,X=(x1,x2,⋯,xi)T,Y和Z同理可得.MiX为第i个学习矩阵,MiY和MiZ同理可得.Y是匹配到的信息,x提取的信息和每一个y进行匹配,y会被每个x匹配,z从α中提取.对每个head进行Softmax处理,即N(X,Y,Z)=Softmax(XYT/dY)Z,式中dY为向量Y的长度,为了将注意力矩阵变为标准正态分布.最后将每一个head得到的结果进行拼接(cat),将拼接后的结果通过M O可学习参数进行融合得到最终的结果K(X,Y,Z)=cat(D1,D1,⋯,Dh)MO,式中Dh为第h个关注头.向量融合是一种融合不同尺度特征提高性能的手段,用现有的特征向量,将其在同一阶进行拼接,旨在得到更多有效特征信息.本方案用特征向量直接拼接的方式进行向量拼接.多头注意力机制函数把双分支提取的特征进行综合,然后应用于分类的特征函数T:L×I→RG×D,图像L和位置区域I通过映射到G×D维向量.使用矩阵向量直接拼接的方式进行向量融合,得到双线性组合特征向量,b(l,I,TA,TB)=cat(TA(l,I),TB(l,I)),式中:b为双线性操作;l为区域面积的子区域;TA和TB分别为双线性网络A和B的特征提取函数.最后整合所有位置特征的双线性组合,以获得全局图像μ(I),即μ(I)=∑l∈Lb(l,I,TA,TB).将得到的全局图像在第一个用于分类参数的U处取出,然后进行分类,最后将U应用至全连接层输出分类的概率,即μ(I)=[U;μ(I1);μ(I2);⋯;μ(In)];P0=LN(U),式中:P0为预测的分类概率;LN为全连接层;Iq为位置区域的第q个区域,q∈{1,2,⋯,n}.损失函数也是影响分类结果一个重要的因素.本研究使用交叉熵损失函数,评估真实样本标签δ(x)和预测概率ρ(x).损失函数可以表示为Lloss=-∑xδ(x)log ρ(x).2 实验对比与分析BT-Net基于开源的Pytorch深度学习框架来实现,在处理器Intel®Core™ i9-9900K CPU @3.60 GHz×16,TITAN RTX/PCIe/SSE2上进行训练与测试.输入图片的大小归一化为224×224,采用随机梯度下降(SGD)作为整体优化器和反向传播算法实现对整个网络模型的训练.为了防止出现过拟合的现象,用增强数据的策略来提高性能,在训练阶段使用随机裁剪与随机翻转.初始学习速率设置为0.001,动量因子为0.9,权重衰减为5×10-5,最大迭代次数为100,对所有的数据集设置的批次大小为16.2.1 数据集介绍实验部分采用常用的3个细粒度图像分类的数据集进行实验评估,即CUB-200-2011鸟类数据集、Cars196汽车数据集[21]和Stanford Dogs狗类数据集.CUB-200-2011数据集包含200种不同种类的鸟类图片,共有1.178 8×104张图片,其中5 994张图片用于进行训练,5 794张图片用于进行测试.Cars196数据集包含196种不同型号和品牌的汽车图片,共有1.618 5×104张图片,其中8 144张图片用于进行训练,8 041张图片用于进行测试.Stanford Dogs数据集包含120种品种狗类,一共有2.058 0×104张不同种类狗类图片,其中1.022 3×104张图片用于进行训练,1.035 7×104张图片用于进行测试.当训练模型时,仅使用数据集提供的类别标签,不使用数据集提供的任何人工标注框和局部区域位置等标注信息.3个数据集的部分图像如图3所示.10.13245/j.hust.240213.F003图3部分数据集图像2.2 算法性能分析为了方便对提出的方法进行观察和评价,采用分类精度作为评价指标,分类精度(A)定义为分类正确的图像与总图像数量的比值,即A=TPTP+FP,式中:TP为正样本被正确识别的数量;FP为误报负样本的数量.为了验证此方案的优越性,分析BT-Net网络的分类性能,将本文算法与近年来利用双线性卷积神经网络算法模型在细粒度数据集上进行对比,结果对比如表1所示.在CUB200-2011鸟类数据集的分类准确率为89.4%,比BCNN,MaxEnt[22],PC[23]分别提高了5.3%,4.1%,3.8%.在Car196汽车数据集上的分类准确率为92.5%.在Stanford Dogs狗类数据集上的分类准确率为94.8%,比BCNN,MaxEnt[22],PC[23]分别提高了12.7%,11.6%,11.8%.表明双线性Transformer网络比双线性卷积网络能够提取到更多有效特征,相比于双线性卷积网络,双线性Transformer效果较好.可以看出BT-Net相较细粒度分类算法具有一定的优势.10.13245/j.hust.240213.T001表1不同方案分类精度结果对比方法CUB-200-2011Cars196DogsBCNN[15]84.191.382.1MaxEnt[22]85.392.883.2PC[23]85.692.483.0BT-Net89.492.594.8%在传统的双线性卷积网络方法中,为了能够获取足够多有效且互补的特征,大多数都是对不同通道的特征进行外积操作,因为卷积神经网络针对局部特征进行提取,而非全局特征,以此对特征向量进行外积操作转换为同一维度的特征信息,目的是增强双分支的特征互补,加强不同网络分支之间的联系,获取更多更有效的特征.BT-Net提取全局特征,使用向量拼接的方式对不同通道的不同向量进行连接融合.不同特征向量处理方式的分类精度对比结果如表2所示,可以看出:向量拼接比向量外积融合能够得到更好的分类效果,在3个数据集上的准确率分别高了0.8%,4.1%,6.1%.10.13245/j.hust.240213.T002表2不同特征向量处理方式的分类精度对比向量处理CUB-200-2011Cars196Dogs外积融合88.688.488.7向量拼接89.492.594.8%表3为双线性网络与单分支网络精度结果对比,可以看出:使用双线性网络的分类精度优于使用单分支网络,说明双线性网络可以提取到更多有效的特征信息,该特征信息存在互补关系.Block参数的选择对于实验结果也至关重要,表4为单分支网络不同编码块分类精度对比.10.13245/j.hust.240213.T003表3双线性网络与单分支网络分类精度结果对比网络CUB-200-2011Cars196DogsA网络89.089.689.0B网络88.691.890.1BT-Net89.492.594.8%10.13245/j.hust.240213.T004表4单分支网络不同编码块分类精度对比编码块CUB-200-2011Cars196DogsA网络1289.089.689.01689.489.690.21889.289.790.7B网络1688.190.084.81888.390.185.32488.691.890.1%双线性网络参数的选择决定最终的分类精度,表5为不同编码块组合分类精度结果对比,可以看出:通过对不同编码块数的组合比较,BT-Net选取〈12,24〉组合为最佳方案,说明A,B网络的编码块数量会影响最终的分类结果.10.13245/j.hust.240213.T005表5〈A,B〉网络不同编码块组合分类精度结果对比编码块组合CUB-200-2011Cars196Dogs〈12,24〉89.492.594.8〈16,24〉88.389.890.1〈18,24〉88.089.786.1〈12,18〉89.491.087.9〈16,18〉88.991.088.4〈18,18〉88.690.387.4〈12,16〉89.491.389.7〈16,16〉89.390.787.6%3 结语本研究提出了一种基于Transformer的双线性细粒度图像分类网络,该网络通过结合Transformer的优点,在获得全局特征的同时还能保留丰富的细粒度特征信息.双线性Transformer也能在不同通道进行特征融合处理时,加强通道之间的联系,以此学习到更多的特征信息.BT-Net相比于BCNN能提取细粒度特征信息更多,同时提高了仅使用类别标签的数据集图像分类精度.实验验证了提出网络的有效性,该网络适用于种类多、数据量大的数据集.从实验结果可以看出:Stanford Dogs狗类数据集在各方面数据对比中均得到了更好的分类结果.后续将以挖掘狗类数据集与其他数据集的不同点为基础做出改进,以及在中间层加入CNN提取部分区域特征同时,结合Transformer和CNN的优点以获得图像更多不同特征方面进行研究.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读