一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于图像块评分的细粒度图像分类方法和装置与流程

2022-04-13 23:50:28 来源:中国专利 TAG:


1.本发明涉及一种图像分类技术领域,尤其涉及一种基于图像块评分的细粒度图像分类方法和装置。


背景技术:

2.细粒度分类是建立在同一大类图像基础上,进行更精细的子类划分,如划分鸟的品种、衣服的款式、狗的种类等。在实际生活中,识别不同子类存在着巨大的应用需求,例如在生态环境中识别不同类别的生物用于更高效地生态保护;零售行业中自动识别商品被顾客拿取/试穿次数,统计数据支撑产品迭代;监控行业中通过对过往车辆类型进行分类,实现更好的城市管理。细粒度分类任务广泛的应用价值使其成为计算机视觉领域一个火热的研究方向,由此在细粒度图像分析方向产生了诸多经典数据集,包括:狗类数据集stanford dogs、花类数据集oxford flowers、飞机数据集aircrafts、汽车数据集stanford cars等等。
3.同大类物种的不同子类往往仅在细微局部存在微小区别,如鸟的嘴巴,而相同子类往往因为姿态、背景、光照、遮挡等影响导致较大的差异。细粒度图像较大的类内差异和类间相似的特点加大了其分类任务的难度和挑战。目前现有的细粒度分类方法主要从两方面考虑:基于定位区域的方法和基于特征编码的方法。基于定位区域的方法主要是利用强监督或者弱监督方法定位有助于区分子类的判别性区域,将这些判别性区域从原图中扣取出来重新送入网络,再将判别性区域特征和图像全局特征融合用于分类。基于特征编码的方法多使用双线性池化方法获取图像高阶信息,从而获取图像更多细节特征。这些方法主要用传统卷积神经网络进行分类,获取有助于细粒度分类的判别性区域和编码特征都需要分别额外构建较复杂的分支结构。且卷积神经网络中,整体特征尺度随网络深度加深而下降,获取的判别性区域需要重新从原图或浅层特征中扣取并送入网络结构进一步提取信息,导致模型复杂度高、耗时大。
4.近年来,transformer网络结构多头自注意力机制的长程依赖能力弥补了传统卷积神经网络难以捕捉全局特征的不足,不少研究都开始尝试将transformer模型强大的建模能力应用到计算机视觉领域,在计算机视觉领域实现了一场革新。目前,transformer已经在分类、检测、分割等多个视觉任务上展示了其强大的性能,超分辨、以图搜图、图文互搜等任务也正在成为transformer的热门研究方向。关于transformer网络如何有效应用于细粒度分类已有了初步研究,然而现有的方法虽然考虑到利用transformer的自注意力机制优选出利于细粒度分类的判别性区域,但是并未考虑transformer网络存在的一个固有缺陷:当网络输入的图像块序列较长时,自注意力机制的长程依赖关系捕捉能力将会受限,对判别性区域判断能力下降,细粒度分类的准确性能下降。
5.为此,我们设计了一种基于图像块评分的细粒度图像分类方法和装置以此解决上述技术问题。


技术实现要素:

6.本发明的目的在于提供一种基于图像块评分的细粒度图像分类方法和装置,主要解决类内差异大、类间相似程度高的细粒度图像分类的问题。
7.本发明采用的技术方案如下:一种基于图像块评分的细粒度图像分类方法,包括以下步骤:步骤s1:获取待分类的目标图像,构建分类数据集;步骤s2:将所述分类数据集分割为若干个不交叠的图像块,对所述图像块编码构建局部标识;步骤s3:利用所述局部标识构建分类标识;步骤s4:将所述局部标识和所述分类标识共同送入transformer网络,利用transformer网络中除最后一个transformer层以外的网络层获得用于表征所述分类标识的图像分类特征信息和用于表征各个图像块的局部标识的图像块特征信息;步骤s5:根据所述图像分类特征信息和所述图像块特征信息,确定所述局部标识和所述分类标识的关联性,并挑选与所述分类标识关联性的大小靠前的若干个所述局部标识以构建所述分类标识的关联性局部标识;步骤s6:构建图像块评分系统,对所述关联性局部标识评分,基于所述评分获得的分值将所述关联性局部标识的特征叠加,生成选择标识;步骤s7:将所述分类标识和所述选择标识的特征拼接,送入所述transformer网络中的最后一个transformer层做特征处理;步骤s8:利用所述步骤s7的特征处理结果构建全连接层和交叉熵损失并进行分类训练,同时利用步骤s6中所述关联性局部标识的分值分布构建相对熵散度损失函数进行辅助训练;步骤s9:对所述步骤s8训练完的模型,固定所述transformer网络中除最后一个transformer层外的其他网络层,仅对所述transformer网络中的最后一个transformer层进行微调操作,所述微调操作过程中,将所述分类标识和所述关联性局部标识拼接,训练最后一个transformer 层。
8.进一步地,所述步骤s1中,所述分类数据集包括样本和属性分类标签。
9.进一步地,所述步骤s2中,所述分类数据集通过滑动窗口的方式分割为若干个不交叠的图像块,并对所述图像块做卷积操作构建局部标识,卷积层的核宽、核高、步长和所述图像块宽、高相等。
10.进一步地,所述步骤s3中,构建尺寸和所述局部标识一致的可训练分类标识作为分类标识。
11.进一步地,所述步骤s5中,确定所述局部标识和所述分类标识的关联性的方法为通过transformer网络的注意力机制判断。
12.进一步地,所述步骤s6中,包括以下子步骤:步骤s61:所述transformer网络中额外构建一个transformer层和一个输出为维度为1的全连接层;步骤s62:将所述关联性局部标识送入所述额外构建的transformer层和所述输出为维度为1的全连接层,输出的结果进行自注意力操作;
步骤s63:所述自注意力操作后的值作为所述关联性局部标识的分值,基于所述分值将所述关联性局部标识的特征叠加,生成选择标识。
13.进一步地,所述步骤s8进行训练前,利用所述步骤s7的特征处理结果,随机选取一个图像块进行若干次不同的随机预处理得到预处理图像块,若干个所述预处理图像块仅亮度、对比度、饱和度存在差异,所述预处理图像块作为网络输入,构建全连接层和交叉熵损失并进行分类训练。
14.进一步地,所述微调操作为使用交叉熵损失函数进行微调操作。
15.本发明还提供一种基于图像块评分的细粒度图像分类装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述任一项所述的一种基于图像块评分的细粒度图像分类方法。
16.本发明还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述任一项所述的一种基于图像块评分的细粒度图像分类方法。
17.本发明的有益效果是:本发明用transformer结构作为分类基础结构,利用transformer网络全程把图像切分成多个图像块、图像整体尺寸不会随网络深度加深而下降的特点,用transformer 结构中的自注意力机制关联全局特征与局部特征,筛选出对子类划分有促进作用的图像块。针对transformer结构的自注意力机制在长程依赖关系捕捉能力不够准确的问题,本发明构建评分系统,对筛选出的图像块进行二次精细化评分,再根据各个图像块分值融合全局特征和各个图像块特征做分类。本发明方法实现简单,在transformer网络中即插即用,效果提升明显。
附图说明
18.图1为本发明一种基于图像块评分的细粒度图像分类方法的结构示意图;图2为本发明一种基于图像块评分的细粒度图像分类方法的可解释性分析对比图;图3为vit基础结构和本发明一种基于图像块评分的细粒度图像分类方法在cub鸟类数据集上的测试结果;图4为本发明一种基于图像块评分的细粒度图像分类装置的结构图。
具体实施方式
19.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.见图1,为本发明一种基于图像块评分的细粒度图像分类方法的结构示意图,本发明方法在训练过程中,对经过l-1层后得到的特征,利用transformer结构自有的自注意力机制筛选出对分类影响最大的top-n个局部标识,再对筛选出的top-n个局部标识利用图像块评分机制进行判别性精细化评分,利用分值融合top-n个局部标识,生成选择标识。再将分类标识和选择标识拼接在一起,共同送入最后一个transformer层。
token)关联性的大小靠前的若干个所述局部标识(part token)以构建所述分类标识的关联性局部标识;确定所述局部标识(part token)和所述分类标识(class token)的关联性的方法为通过transformer网络的注意力机制判断,挑选与所述分类标识(class token)关联性最大的top-n(本实施例中n=100)个所述局部标识(part token)构建关联性局部标识;在第l-1层利用transformer网络结构自有的query-key-value的自注意力机制判断分类标识(class token)和局部标识(part token)的关联性,挑选与分类标识(class token)关联性最大的top-n(本实施例中n=100)个局部标识。
27.一个transformer层包含一个多头自注意力机制(multi-head self-attention msa)和多层感知机机制(multi-layer perceptron mlp),公式如下:mlp),公式如下:其中表示第层transformer层的输出结果,第层transformer层的特征输入, 表示第层transformer层的输出结果。,共m 1个序列,每个序列特征768维。表示多层感知机操作,本实施例中为两个连续全连接操作。标识多头自注意力操作,本实施例中头数为12,则将输入的做特征转换,生成12头序列为m 1,维度为64(768=12*64)的特征,12头特征分别做自注意力操作。
28.具体query-key-value自注意力操作公式如下:value自注意力操作公式如下:value自注意力操作公式如下:,,,上式中,表示自注意力操作,表示第层transformer层的特征输入,有个序列,维度为768。表示将转化成多头特征后的结果,头数为12,序列数为,特征维度为64。表示的特征维度,为64。、、分别表示三个针对的全连接操作, 、、分别表示对使用全连接操作后的三个矩阵特征,矩阵特征的行数都为序列数,列数都为特征数,表示的转置操作。
29.上述公式运算后,的维度为[,],其中的第一行的向量大小为[],表示分类标识(class token)与所有标识的关联程度,其中表示分类标识(class token)和所有局部标识(part token)的关联程度,对向量进行排序操作,获取值最大的top-n个局部标识(part token)。
[0030]
步骤s6:构建图像块评分系统,对所述关联性局部标识评分,基于所述评分获得的分值将所述关联性局部标识的特征叠加,生成选择标识;对已挑选出的top-n个图像块对应的局部标识(part token)进行评分,基于分值将top-n个局部标识(part token)特征叠加,生成选择标识(select_token);
所述步骤s6中,包括以下子步骤:步骤s61:所述transformer网络中额外构建一个transformer层和一个输出为维度为1的全连接层;步骤s62:将所述关联性局部标识送入所述额外构建的transformer层和所述输出为维度为1的全连接层,输出的结果进行softmax(自注意力)操作;步骤s63:softmax(自注意力)后的值作为所述关联性局部标识的分值,基于所述分值将所述关联性局部标识的特征叠加,生成选择标识。
[0031]
额外构建一个transformer层和一个输出维度为1的全连接层,将关联性局部标识送入该transformer层和全连接层,输出的top-n维的向量进行softmax(自注意力)操作,softmax(自注意力)操作后的结果作为局部标识分值。根据分值所述关联性局部标识的特征叠加,生成选择标识(select_token);征叠加,生成选择标识(select_token);其中softmax(*)表示softmax(自注意力操作),表示挑选出的与分类标识(class token)关联性最大的前top-n个局部标识(part token)中的第个局部标识(part token)的分值, 表示top-n值,本实施例中为100。表示softmax(自注意力操作)后的前top-n个局部标识中的第个局部标识(part token)的分值,表示第层、前top-n个局部标识(part token)中的第个局部标识(part token)的特征信息,表示基于分值将top-n个局部标识(part token)的特征累加后的选择标识(select_token)。
[0032]
步骤s7:将所述分类标识(class token)和所述选择标识(select_token)的特征拼接,送入所述transformer网络中的最后一个transformer层做特征处理;上式中,表示第l-1层transformer层输出特征中的全局标识,表示步骤s4中获取的选择标识(select_token)。表示最后一层transformer层的特征输入,序列数为2,维度为768。
[0033]
步骤s8:利用所述步骤s7的特征处理结果构建全连接层和交叉熵损失并进行分类训练,同时利用步骤s6中所述关联性局部标识的分值分布构建相对熵散度损失函数进行辅助训练;对同一张图像缩放到600*600的尺寸大小后,随机从中抠取出448*448大小的图像。对抠取获得的图像做两次不同的随机预处理获得网络输入,预处理后的两张网络输入仅亮度、对比度、饱和度存在差异。网络训练过程中,对同一张图像不同随机预处理后得到的网络输入,针对关联性局部标识的分值分布构建相对熵(kl)散度损失函数,针对全局标识构建全连接层和交叉熵损失:识构建全连接层和交叉熵损失:
其中,表示相对熵(kl)散度损失函数,表示交叉熵损失函数,表示本实施例训练损失函数,其为相对熵(kl)散度损失函数和交叉熵损失函数的累加。表示全连接层,表示训练数据,表示数据类别,表示的独热编码形式。分别表示经过两次不同预处理的数据,经历本实施例网络前向后得到的top-n个局部标识(part token)分值分布。、分别表示经过两次不同的预处理的数据,经历本实施例网络后得到的两个特征,l表示本实施例网络transformer 层数(l=12)。表示超参权重,本实施例为1。
[0034]
训练结束后,网络不仅能够实现细粒度分类,且根据步骤s6的更准确地获取与分类标识(class token)关联性高的局部标识,即能够更准确地判断出判别性图像块。
[0035]
步骤s9:对所述步骤s8训练完的模型,固定所述transformer网络中除最后一个transformer层外的其他网络层,仅对所述transformer网络中的最后一个transformer层进行finetune(微调)操作,所述finetune(微调)操作过程中,将所述分类标识和所述关联性局部标识拼接,训练最后一个transformer 层:其中,表示网络finetune(微调)过程中,第l个transformer block层的特征输入,其包含一个全局标识和m=50个局部标识(part token),序列数为m 1,特征维度为768。 表示第l-1层transformer层输出特征中的全局标识,表示步骤s6的向量中最大的m个值对应的局部标识。
[0036]
对同一个所述图像块做若干次不同的随机预处理得到预处理图像块,若干个所述预处理图像块仅亮度、对比度、饱和度存在差异。
[0037]
见图2,为本发明一种基于图像块评分的细粒度图像分类方法的可解释性分析对比图。图中第一列为原始鸟类图像;第二列为用transformer自注意力机制中局部标识(part token)与分类标识(class token)的关联程度作为各个局部标识分值,基于分值构建的热度图;第三列为使用transformer自注意力机制中局部标识(part token)与分类标识(class token)的关联程度作为各个局部标识分值,将分值最大的前100的局部标识标1,100以外的局部标识标0生成二值图,基于此二值图构建的热度图;第四列为本实施例方法生成的热度图。由图2的第二、第三列可以看出,transformer自注意力机制虽然对目标(本实施例指鸟类)更关注,分值前100的局部标识(part token)涵盖了整个目标,但是其中却包含了很多背景图像块对应的局部标识(part token),且背景图像块对应的局部标识(part token)分值甚至高于目标图像块对应的局部标识(part token)的分值,干扰了细粒度分类。比对图中的第二列和第四列可以看出,本实施例方法先利用transformer自注意力机制中分类标识(class token)与局部标识(part token)的关联程度,对有助于图像细粒度分类的可判别性局部标识(part token)做初步筛选,再利用图像块评分机制对挑选出的局部标识(part token)做进一步精细化评分,相较于第二列热度图,本实施例方法得到的热度图更稳定地排除背景图像块对应的局部标识(part token),将注意力都集中在目标图
像块对应的局部标识(part token)上,更有助于细粒度分类。
[0038]
见图3,为vit基础结构和本实施例一种基于图像块评分的细粒度图像分类方法在cub鸟类数据集上的测试结果;同时展示了本发明方法中的相对熵(kl)散度损失函数和finetune(微调)操作对数据的精度提升情况。由图3中的相对熵(kl)散度的消融实验可以看出,使用相对熵(kl)散度损失函数相较于不使用相对熵(kl)散度损失函数,准确率提升0.2%,这是由于相对熵(kl)散度损失函数引导同一张图像块的不同预处理操作结果经历网络前向后,局部标识(part token)与分类标识(class token)的关联分布情况一致,使局部标识(part token)与分类标识(class token)的关联分布与图像的亮度、对比度、饱和度无关,强化网络的泛化性能;由图3中的finetune(微调)消融实验可以看出,针对最后一个transformer层做多个局部标识(part token)拼接的finetune(微调)操作相较于不做finetune(微调)操作,准确率提升0.15%,这是由于训练过程中使用的选择标识(select_token)将所有对分类有用、对分类无用的局部标识(part token)都以累加的方式融合在一起,某种程度上降低了特征的可用性,不如仅挑选有助于分类的局部标识(part token)有意义。
[0039]
与前述一种基于图像块评分的细粒度图像分类方法的实施例相对应,本发明还提供了一种基于图像块评分的细粒度图像分类装置的实施例。
[0040]
参见图4,本发明实施例提供的一种基于图像块评分的细粒度图像分类装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的一种基于图像块评分的细粒度图像分类方法。
[0041]
本发明一种基于图像块评分的细粒度图像分类装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明一种基于图像块评分的细粒度图像分类装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0042]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0043]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0044]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于图像块评分的细粒度图像分类方法。
[0045]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0046]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献