一种基于Transformer的细粒度图像分类方法

文档序号:30577424发布日期:2022-06-29 10:04阅读:384来源:国知局
一种基于Transformer的细粒度图像分类方法
一种基于transformer的细粒度图像分类方法
技术领域
1.本发明涉及图像分类技术领域,具体涉及细粒度图像分类,尤其涉及基于transformer的细粒度图像分类方法。


背景技术:

2.细粒度图像分类是一项具有实际意义的、并且有挑战性的计算机视觉任务,它的目的是识别同一类别下的不同子类别。近年来,随着深度学习以及人工智能技术的飞速发展,该任务得到了极大的推动,在病毒识别、商品零售、库存管理以及自动驾驶等领域均获得广泛应用。许多工作采用卷积神经网络来学习图像中的具有可区分度的特征,但卷积神经网络受制于卷积核的大小,无法构建整张图像的语义信息,因此细粒度图像分类任务的准确度提升遇到了瓶颈。视觉transformer的诞生,彻底打破了这一限制,大幅提升了该任务的分类准确度。它将图像序列化成类似自然语言处理任务中的令牌,通过构建令牌间的关系,完成计算机视觉的各项任务。不同于卷积神经网络仅能构建相邻区域像素的关系,视觉transformer通过图建模机制,拥有更加强健的构建图像全局表征的能力,但将transformer迁移至细粒度图像分类任务还存在一些问题。首先,transformer具备强大的全局建模能力,势必导致它学习物体细节的能力差,而具有可区分度的细节特征对于正确识别细粒度图像类别至关重要。其次,随着transformer结构层数的增加,整个网络提取到的特征过度平滑,导致网络无法捕捉多样性的辨识性特征。第三,忽略网络提取到的多粒度特征的融合,导致模型性能的损失。第四,没有考虑到细粒度图像分类的难点,即子类别间对象外观极其相似,特征差异较小;由于光照、姿态和遮挡等外界环境因素导致子类别内对象外观差异较大,特征相似性小。


技术实现要素:

3.为了克服上述问题,本发明的目的在于提供一种基于transformer的细粒度图像分类方法,及电子设备和存储介质。首先,从transformer的编码器层中选取包含信息量最多的图像块令牌特征,组合成从低层到高层的多层次图像特征表示。其次,采用双分支架构,显示地学习细粒度区域内的具有可区分性的特征,增强模型捕捉细微差异的能力。第三,交换两个分支的分类令牌,融合全局和局部信息。第四,通过中心损失函数约束样本特征距离,从而缓解类内特征差距大,类间特征差异小的难点。我们的方法使得网络获得显著的性能增益,从而完成了本发明。
4.为了实现本发明的目的,本发明采用以下步骤:
5.1)将样本图像输入线性映射和编码器层中提取多层令牌特征{z1,

,zn-2};
6.2)通过令牌特征选择模块作用于编码器提取的多层令牌特征{z1,

,zn-2},以此获取对分类结果更有效的具有区分度的多层级特征;
7.3)通过语义部件生成模块作用于第一层令牌特征z1,获取包含辨识性视觉图案的局部区域,利用局部分支学习该区域内对象的细节信息;
8.4)将两个分支的分类令牌交换,编码器作用于交换后的分类令牌与当前分支的图像块令牌,简单且有效地融合全局分支提取的图像完整信息与局部分支获取的关键区域的细节信息;
9.5)通过中心损失函数,进一步约束细粒度对象类内特征距离,间接地增大类间特征距离;
10.6)连接两个分支的分类令牌,输入到分类器,从而实现对输入图像的分类。
11.一种服务器,包括存储器和处理器,计算机程序存储在所述存储器中,所述处理器执行所述计算机程序,所述计算机程序包括用于执行上述方法中各步骤的指令。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述方法的步骤。
13.本发明所具有的有益效果包括:
14.1)本发明提出一种新的双分支transformer模型,包含三个模块,分别为:令牌特征选择、语义部件生成和特征融合模块;
15.2)本发明提供的基于transformer的细粒度图像分类方法,可以在细粒度图像分类算法的基线上获得显著的性能提升。特别地,在三个基准数据集(cub-200-2011、nabirds和inat2017)中,取得了当前最好的分类效果。
附图说明
16.图1为本发明实施例所述的基于transformer的细粒度图像分类方法流程;
17.图2示出了本发明所述的基于transformer的细粒度图像分类方法框架;
18.图3示出了编码器的结构图。
具体实施方式
19.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明做进一步的详细描述。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
20.实施例1
21.本发明所述的基于transformer的细粒度图像分类方法包括以下步骤:
22.步骤s1:构建线性映射和编码器层,并在大规模分类数据集imagenet上进行预训练,用于提取输入图像的多层级令牌特征{z1,

,z
n-2
},具体过程如下所示:
23.如图2所示,首先,线性映射将输入图像切分成n个图像块x
p
,通过隐层空间e,将图像块x
p
转换为图像块令牌x
p
e。接着,手动添加与图像块令牌x
p
e特征维度相同的的分类令牌分类令牌是transformer结构中最重要的令牌,分类器对分类令牌进行分类,从而完成对输入图像的分类。最后,因为图像被序列化成一维序列,致使图中像素丢失空间位置信息。因此,额外添加一个位置特征向量e
pos
,从而保留图像块间的位置信息。输入编码器层1的令牌特征,如下所示:对应分类令牌,j=1,2

n分别对应n个图像块令牌。
[0024][0025]
接着,通过图3所示的编码器层,交互令牌间的有效信息,transformer结构中每层编码器结构相同。每个编码器层由多头注意力机制和多层感知机构成,信息交互过程如下
所示:编码器层w(w∈[1,n-2])的输入数据为编码器层(w-1)的输出z
w-1
,输出数据为zw。多头注意力机制(msa)作用于经层正则化(ln)处理后的令牌特征z
w-1
,实现令牌间的信息交互,残差连接作用于z
w-1
和msa(ln(z
w-1
))。多层感知机(mlp)作用于经ln处理后的z
′w,残差连接作用于z
′w和mlp(ln(z
′w))。
[0026]z′w=msa(ln(z
w-1
))+z
w-1
[0027]zw
=mlp(ln(z
′w))+z
′w[0028]
步骤s2:构建令牌特征选择模块。首先,多头注意力机制将令牌特征划分入k个子空间,在每个子空间内,建模令牌间的交互信息,使得每个令牌的特征表示拥有k个不同空间分布。然后,在每个子空间内,选择与分类令牌关联程度最高的图像块令牌特征,从而,能够获取第1层到第n-2层每一层的令牌特征(w∈[1,n-2])。值得注意的是,不同子空间内与分类令牌关联程度最高的图像块令牌并不是同一个。例如,在第i个子空间内,第m个图像块令牌与分类令牌最相似,而在第j个子空间,第n个图像块令牌与分类令牌最相似。最后,将从第1到第n-2层挑选的令牌特征与第n-2层的分类令牌拼接起来,利用编码器层n-1将被选取的关键性特征所携带的多层级信息融合到分类令牌上。
[0029]
步骤s3:构建语义部件生成模块。对于步骤s1获得第一层令牌特征z1,根据与分类令牌的关联程度的高低,选择与分类令牌关联程度大于阈值θ的图像块令牌,阈值θ为经过多次实验选取的经验值,计算包含所选择的全部图像块令牌的矩形区域的四个顶点坐标。然后从输入图像中裁切该矩形,获得包含语义部件的局部区域。
[0030]
步骤s4:通过局部分支显示地捕捉语义部件上的细微差异。其原理为,该分支的输入为仅包含语义部件的局部区域。因此,局部分支相较于全局分支,能够重点关注语义部件上具有差异性的细节。局部分支结构与全局分支结构相同,均由线性映射、编码层以及令牌特征选择模块构成。虽然二者结构相同,但参数不共享,从而保证两个分支能够专注于提取相应尺度的特征表示。
[0031]
步骤s5:构建特征融合模块。首先,直接交换两个视觉transformer分支倒数第二层输出的令牌特征中的分类令牌。接着,将分类令牌与当前分支倒数第二层输出的令牌特征中的图像块令牌特征拼接起来,通过编码器层n,交互分类令牌与图像块令牌信息。最后,将全局分类令牌和局部分类令牌拼接起来,通过分类器中的全连接层处理所获特征,使得两个分类令牌包含更丰富的有助于分类的信息。
[0032]
步骤s6:通过中心损失函数紧凑细粒度对象类内特征距离,扩大类间特征间距。中心损失函数公式如下所示。其中x对应拼接起来的全局分类令牌和局部分类令牌,中心特征向量c为与x特征维度相同的向量,其初始化服从正态分布。通对中心损失函数,在训练迭代过程中,不断更新中心特征向量c且约束样本特征x靠近中心特征向量。
[0033]
l
ct
=‖x-c‖2[0034]
步骤s7:通过梯度下降算法训练网络。当达到提前规定的轮数时,整个网络停止训练。
[0035]
步骤s8:网络测试。将待分类的图像,送入已训练好的网络模型中,得到分类器将目标图像分类为每个类别的概率值,最高概率值所在的类别,为目标图像最终的类别标签。
[0036]
实施例2
[0037]
本发明实施例2提供一种电子设备,包括存储器和处理器,其特征在于,存储有基
于transformer的细粒度图像分类程序被处理器执行时,使得处理器执行基于transformer的细粒度图像分类方法,该方法包括如下步骤:
[0038]
1)使用预训练的编码器层提取输入图像的多层级特征;
[0039]
2)采用令牌特征选择模块从每层特征表示中选取包含信息量最多的图像块令牌特征;
[0040]
3)定位语义部件,送入局部分支,提取该区域内对分类有效的信息;
[0041]
4)置换两个分支的分类令牌,聚合全局和局部信息;
[0042]
5)利用中心损失函数减小类内样本特征距离,增大类间样本特征间距。最后,分类器作用于分类令牌,输出预测类别概率,最大概率值所在类别,为网络预测细粒度图像的类别。
[0043]
实施例3
[0044]
本发明实施例3提供一种计算机可读存储介质,其特征在于,所述程序被处理器执行时,使得处理器执行基于transformer的细粒度图像分类方法,该方法包括如下步骤:
[0045]
1)使用预训练的编码器层提取输入图像的多层级特征;
[0046]
2)采用令牌特征选择模块从每层特征表示中选取包含信息量最多的图像块令牌特征;
[0047]
3)定位语义部件,送入局部分支,提取该区域内对分类有效的信息;
[0048]
4)置换两个分支的分类令牌,聚合全局和局部信息;
[0049]
5)利用中心损失函数减小类内样本特征距离,增大类间样本特征间距。最后,分类器输出预测的细粒度图像的类别。
[0050]
以上所述仅为本公开的优选实例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1