图像分类方法及装置与流程

文档序号:31701489发布日期:2022-10-01 08:28阅读:57来源:国知局
图像分类方法及装置与流程

1.本发明涉及人工智能技术领域,尤其涉及一种图像分类方法及装置。


背景技术:

2.随着人工智能技术的发展,视觉transformer(vision transformer,vit)模型在图像处理领域得到了广泛的应用。vit模型在很多视觉任务上可以取得优异的性能,例如,利用vit模型进行图像分类等。
3.由于利用vit模型进行图像分类时,需要较大规模的数据集对vit模型进行训练。因此,人们侧重于设计更复杂的、层数更多的模型架构来提高vit模型对数据的处理效率。
4.然而,随着vit模型层数的加深,会导致图像分类的精度大幅降低。因此,如何基于vit模型提高图像分类的精度是目前业界亟待解决的重要课题。


技术实现要素:

5.针对现有技术存在的问题,本发明是实施例提供一种图像分类方法及装置。
6.本发明提供一种图像分类方法,包括:
7.获取待分类图像,对所述待分类图像进行预处理得到嵌入输入向量序列;
8.将所述嵌入输入向量序列输入至视觉transformer模型的编码器,输出所述待分类图像对应的编码向量序列,其中,所述编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接,l为正整数,m大于等于2,小于等于l;
9.基于所述编码向量序列确定所述待分类图像对应的特征向量,将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
10.可选地,所述编码块还包括第一归一化层、第二归一化层及前馈层;
11.所述将所述嵌入输入向量序列输入所述编码器,输出所述待分类图像对应的编码向量序列,包括:
12.将所述嵌入输入向量序列输入所述第一归一化层进行归一化处理,生成处理后的嵌入输入向量序列;将所述处理后的嵌入输入向量序列输入所述残差多头自注意力层,生成第一向量序列;
13.将所述第一向量序列输入所述第二归一化层和所述前馈层,生成第二向量序列;
14.将所述第二向量序列输入至所述第一归一化层进行l次循环迭代,得到所述前馈层输出的所述待分类图像对应的编码向量序列。
15.可选地,所述残差多头自注意力层包括第一线性层、加权残差缩放点积注意力层、第二线性层,其中,所述加权残差缩放点积注意力层包括h个自注意力头,第m个加权残差缩放点积注意力层的自注意力层输出图与第m-1个加权残差缩放点积注意力层的自注意力图之间以残差方式连接,h为正整数;
16.所述将所述处理后的嵌入输入向量序列输入所述残差多头自注意力层,生成第一向量序列,包括:
17.将所述处理后的嵌入输入向量序列输入所述第一线性层,生成所述待分类图像对应的索引向量序列、键向量序列、值向量序列;
18.将所述索引向量序列、所述键向量序列、所述值向量序列输入所述加权残差缩放点积注意力层,生成h个自注意力头对应的自注意力结果;
19.将h个注意力头对应的自注意力结果进行拼接,并将拼接结果输入所述第二线性层,生成所述第一向量序列。
20.可选地,将所述索引向量序列、所述键向量序列、所述值向量序列输入所述加权残差缩放点积注意力层,生成h个自注意力头对应的自注意力结果,包括:
21.针对每一个自注意力头,基于所述索引向量序列以及所述键向量序列生成第m层自注意力层输出图;
22.基于第m-1层自注意力图及第m层自注意力层输出图,生成目标自注意力图;
23.基于所述目标自注意力图及所述值向量序列,生成每一个自注意力头对应的自注意力结果。
24.可选地,所述对所述待分类图像进行预处理得到嵌入输入向量序列,包括:
25.将所述待分类图像拆分为多个图像块,并基于所述图像块生成图像块嵌入向量序列;
26.针对所述图像块嵌入向量序列分别添加一个类别嵌入向量和位置嵌入向量,生成所述嵌入输入向量序列。
27.可选地,所述基于所述编码向量序列确定所述待分类图像对应的特征向量,包括:
28.将所述类别嵌入向量确定为所述待分类图像对应的特征向量。
29.可选地,所述分类器是利用交叉熵损失函数进行训练得到的。
30.本发明还提供一种图像分类装置,包括:
31.预处理模块,用于获取待分类图像,对所述待分类图像进行预处理得到嵌入输入向量序列;
32.编码模块,用于将所述嵌入输入向量序列输入至视觉transformer模型的编码器,输出所述待分类图像对应的编码向量序列,其中,所述编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接,l为正整数,m大于等于2,小于等于l;
33.分类模块,用于基于所述编码向量序列确定所述待分类图像对应的特征向量,将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
34.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述图像分类方法。
35.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述图像分类方法。
36.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器
执行时实现如上述任一种所述图像分类方法。
37.本发明提供的图像分类方法及装置,通过将嵌入输入向量序列输入至包括残差多头自注意力层的视觉transformer模型的编码器中,其中,编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接。基于以残差方式连接的自注意力图和自注意力层输出图,可以有效地增强编码块之间的信息交换,缓解视觉transformer模型的网络退化问题,将嵌入输入向量序列输入至该视觉transformer模型,可以得到更全面的待分类图像对应的编码向量序列,基于该编码向量序列对图像进行分类,可以有效提高图像分类的准确率。
附图说明
38.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1是本发明提供的图像分类方法的流程示意图之一;
40.图2是本发明提供的视觉transformer模型的结构示意图;
41.图3是本发明提供的图像分类方法的流程示意图之二;
42.图4是本发明提供的图像分类装置的结构示意图;
43.图5是本发明提供的电子设备的实体结构示意图。
具体实施方式
44.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.随着人工智能技术的发展,vit模型在图像处理领域得到了广泛的应用。与卷积神经网络(convolutional neural networks,cnn)依靠卷积来处理局部特征不同,vit模型利用自注意力机制来建立图像块嵌入tokens之间的关系,这种聚合全局信息的性质大大增加了vit模型的性能。transformer在很多视觉任务上可以取得不错的性能,包括图像分类、图像增强、物体检测和视频处理等。
46.然而,虽然vit模型能够建立全局信息,在学习图像表征方面比cnn模型更灵活,但是由于vit模型容量较大,这也导致vit模型需要较大规模的数据集进行预训练。因此,研究人员通过设计更复杂的网络架构或训练方法来提高vit模型的数据效率。
47.值得注意的是,vit模型的自注意力(sa)机制是vit模型能够聚合全局信息的关键因素。在vit模型的自注意力sa模块中,每个token根据自注意力图聚合所有tokens的特征进行更新,通过这种方式,tokens之间能够充分地交换信息,从而提供强大的表达能力。
48.但是,随着vit模型层数的加深,vit模型会出现网络退化问题,进而导致基于vit模型进行图像分类的精度大幅降低。
49.基于上述问题,为了增强vit模型层之间的信息交换,缓解网络退化的问题,进而提高基于vit模型提高图像分类的精度,本发明提供了一种图像分类方法,从而能够有效地增强vit模型层之间的信息交换,缓解视觉transformer模型的网络退化问题,进而有效地提高图像分类的准确率。
50.下面结合图1-图3对本发明提供的图像分类方法进行详细说明。
51.参见图1,图1是本发明提供的图像分类方法的流程示意图之一,具体包括步骤101-步骤103。
52.步骤101、获取待分类图像,对所述待分类图像进行预处理得到嵌入输入向量序列。
53.具体地,在本实施例中,待分类图像是指需要进行分类的图像,其待分类图像的格式可以为多种,例如可以是jpg格式、png格式、tif格式等,也可以pdf格式,本发明对待分类图像的格式不做限定。
54.在获取到待分类图像之后,需要对待分类图像进行预处理得到嵌入输入向量序列,其中,嵌入输入向量序列是输入至视觉transformer模型的序列。
55.可选地,对待分类图像进行预处理得到嵌入输入向量序列,具体可以通过以下方式实现:
56.将所述待分类图像拆分为多个图像块,并基于所述图像块生成图像块嵌入向量序列;
57.针对所述图像块嵌入向量序列分别添加一个类别嵌入向量和位置嵌入向量,生成所述嵌入输入向量序列。
58.具体地,在本实施例中,在获取到待分类图像之后,首先需要将待分类图像拆分为多个图像块,并基于图像块生成图像块嵌入向量序列。
59.在实际应用中,例如给定一个尺寸为x∈rh×w×c的待分类图像,首先将该待分类图像拆分为n个p
×
p的正方形图像块patch,并将这些patch重塑为序列,即每个patch可以表示为其中,h、w分别为待分类图像的高度和宽度,即(h,w)为待分类图像的分辨率;(p,p)为每个patch的分辨率;c为图像的通道数(例如c=3);n为patch的数目,可以通过以下公式(1)表示:
60.n=hw/p2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
61.在将n个patch重塑为序列之后,需要使用线性投影层对patch对应的序列进行降维,即,将维度为p2·
c映射到d维,进而生成图像块嵌入向量序列x
p
e∈rn×d。
62.在生成图像块嵌入向量序列之后,需要针对图像块嵌入向量序列分别添加一个类别嵌入向量和位置嵌入向量,进而生成嵌入输入向量序列,其中,类别嵌入向量用于对待分类图像进行分类,位置嵌入向量用于表征图像块之间的空间位置信息。
63.例如,对于给定长度为n的图像块嵌入向量序列,需要在该图像块嵌入向量序列的首部位置添加一维可学习的嵌入向量作为用于分类的类别嵌入向量,进而生成了添加了类别嵌入向量之后的图像块嵌入向量序列,此时该图像块嵌入向量为r
(n+1)
×d,其中,该图像块嵌入向量的总长度为n+1;可学习嵌入向量在训练时随机初始化。
64.需要注意的是,将该类别嵌入向量输入至视觉transformer模型之后的输出特征用作图像表示,也就是说,将输入至视觉transformer模型的分类器(也称分类头(classification head))可以对图像进行分类。
65.在生成添加了类别嵌入向量之后的图像块嵌入向量序列的同时,还需要为其添加位置嵌入向量,进而生成嵌入输入向量序列。
66.具体地,可以在图像块嵌入向量序列中加入图像块的位置嵌入向量e
pos
,以保留输入图像块之间的空间位置信息。此处采用标准可学习的1-d位置编码,将图像块嵌入向量和位置嵌入向量按元素相加即可。
67.在针对图像块嵌入向量序列分别添加一个类别嵌入向量和位置嵌入向量之后,进而生成嵌入输入向量序列。
68.即,由图像块嵌入向量序列类别嵌入向量x
class
、位置嵌入向量e
pos
构成嵌入输入向量序列z0,具体地,z0可以通过以下方式表示:
69.其中,e
pos
∈r
(n+1)
×d。
70.在上述实施方式中,针对图像块嵌入向量序列添加一个类别嵌入向量,可以实现对待分类图像进行分类;针对图像块嵌入向量序列添加位置嵌入向量,可以表征图像块之间的空间位置信息,从而提高图像分类的准确率。
71.步骤102、将所述嵌入输入向量序列输入至视觉transformer模型的编码器,输出所述待分类图像对应的编码向量序列,其中,所述编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接,l为正整数,m大于等于2,小于等于l。
72.具体地,在本实施例中,在对待分类图像进行预处理得到嵌入输入向量序列之后,需要将嵌入输入向量序列输入至视觉transformer模型的编码器,从而输出待分类图像对应的编码向量序列。
73.需要说明的是,该视觉transformer模型的编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,并且第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接。
74.在实际应用中,残差连接是深度网络中的一种有效策略,该连接方式可以增强模型层之间的信息交换,减少深度网络学习过程中的网络退化问题。
75.具体地,参见图2,图2是本发明提供的视觉transformer模型的结构示意图。
76.在图2中,(a)示出了视觉transformer模型的结构示意图,在(a)中,视觉transformer模型分为transformer编码器和分类器,其中,编码器包括l个transformer编码块,每个编码块都包含一个残差多头自注意力层(msa)和一个前馈神经网络层(即前馈层fnn),残差多头自注意力层和前馈神经网络层都有一个以残差方式连接的归一化层,需要说明的是,fnn层中包含两个全连接层(fc),第一个fc用于对特征维度进行变换,第二个fc用于将特征维度恢复为变化前的维度,中间的非线性激活函数均采用高斯误差线性单元激
活函数(gaussian error linear unit,gelu)。
77.可选地,在本发明实施例一种可能的实现方式中,视觉transformer模型的编码器还包括第一归一化层、第二归一化层及前馈层,具体可以参见图2中的(a)所示,第一归一化层与残差多头自注意力层连接、第二归一化层与前馈层连接。
78.所述将所述嵌入输入向量序列输入所述编码器,输出所述待分类图像对应的编码向量序列,具体可以通过以下方式实现:
79.将所述嵌入输入向量序列输入所述第一归一化层进行归一化处理,生成处理后的嵌入输入向量序列;将所述处理后的嵌入输入向量序列输入所述残差多头自注意力层,生成第一向量序列;
80.将所述第一向量序列输入所述第二归一化层和所述前馈层,生成第二向量序列;
81.将所述第二向量序列输入至所述第一归一化层进行l次循环迭代,得到所述前馈层输出的所述待分类图像对应的编码向量序列。
82.具体地,在本实施例中,参见图2中的(a)所示,在针对图像块嵌入向量序列分别添加一个类别嵌入向量和位置嵌入向量,生成嵌入输入向量序列之后,便将嵌入输入向量序列输入至视觉transformer模型编码块中的第一归一化层进行归一化处理,从而生成处理后的嵌入输入向量序列,可以理解的是,对嵌入输入向量序列进行归一化,其目的是为了对嵌入输入向量序列进行标准化处理。
83.在生成处理后的嵌入输入向量序列之后,便将其输入至残差多头自注意力层,生成第一向量序列;然后将第一向量序列输入至第二归一化层和前馈层,生成第二向量序列,最后将第二向量序列输入至第一归一化层进行l次循环迭代,得到前馈层输出的待分类图像对应的编码向量序列。
84.也就是说,在将嵌入输入向量序列输入视觉transformer模型的编码器进行编码时,先将嵌入输入向量序列输入该编码器第一个编码块的第一归一化层,生成处理后的嵌入输入向量序列;然后将处理后的嵌入输入向量序列输入至残差多头自注意力层生成第一向量序列;然后将第一向量序列输入至第二归一化层和前馈层;
85.然后将第一个编码块的前馈层的输出作为第二个编码块的第一归一化层的输入,将第二个编码块的前馈层的输出作为第三个编码块的第一归一化层的输入;依次迭代执行n次,直到将第l-1个编码块的前馈层的输出作为第l个transformer编码块的第一归一化层的输入,便可得到第l个transformer编码块的前馈层输出的待分类图像对应的编码向量序列。
86.在上述实施方式中,将嵌入输入向量序列输入编码块,并对编码块进行循环迭代,可以有效地增强编码器中编码块之间的信息交换,缓解视觉transformer模型的网络退化问题,将嵌入输入向量序列输入至该视觉transformer模型,可以得到更全面的待分类图像对应的编码向量序列。
87.可选地,在本发明实施例一种可能的实现方式中,所述残差多头自注意力层包括第一线性层、加权残差缩放点积注意力层、第二线性层,其中,所述加权残差缩放点积注意力层包括h个自注意力头,第m个加权残差缩放点积注意力层的自注意力层输出图与第m-1个加权残差缩放点积注意力层之间以残差方式连接,h为正整数;
88.所述将处理后的嵌入输入向量序列输入所述残差多头自注意力层,生成第一向量
序列,具体可以通过以下方式实现:
89.将所述处理后的嵌入输入向量序列输入所述第一线性层,生成所述待分类图像对应的索引向量序列、键向量序列、值向量序列;
90.将所述索引向量序列、所述键向量序列、所述值向量序列输入所述加权残差缩放点积注意力层,生成h个自注意力头对应的自注意力结果;
91.将h个注意力头对应的自注意力结果进行拼接,并将拼接结果输入所述第二线性层,生成所述第一向量序列。
92.具体地,在本实施例中,将处理后的嵌入输入向量序列输入残差多头自注意力层,生成第一向量序列的过程具体可以参见图2中的(b)所示:
93.在将处理后的嵌入输入向量序列输入残差多头自注意力层的情况下,首先将处理后的嵌入输入向量序列输入第一线性层进行线性变换,生成待分类图像对应的索引向量序列(query,q)、键向量序列(key,k)以及值向量序列(value,v),其中,q、k、v对应的权重系数分别为w
iq
,w
ik
,w
iv

94.然后将q、k、v输入至加权残差缩放点积注意力层,生成h个自注意头对应的自注意力结果;其中,加权残差缩放点积注意力层包括h个自注意力头,第m个加权残差缩放点积注意力层的自注意力层输出图与第m-1个加权残差缩放点积注意力层之间以残差方式连接,h为正整数;
95.具体地,第i个自注意力头的输出可以通过以下公式(2)表示:
96.headi=wrsa(qwi
iq
,kw
ik
,vw
iv
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
97.其中,i=1,2,...,h;wrsa表征加权残差自注意力结果(也称加权残差自注意力图);并且,每次q、k、v进行线性变换的参数w是不一样的。
98.在将q、k、v输入至加权残差缩放点积注意力层,生成h个自注意头对应的自注意力结果之后,需要将h个注意力头对应的自注意力结果进行拼接,并将拼接结果输入第二线性层,进而生成第一向量序列。
99.具体地,将h个注意力头对应的自注意力结果进行拼接可以通过以下公式(3)表示:
100.multihead(q,k,v)=concat(head1,

,headh)woꢀꢀ
(3)
101.其中,wo是第二线性层的权重参数。
102.在上述实施方式中,基于加权残差缩放点积注意力层中以残差方式连接的自注意力图和自注意力层输出图,可以有效地增强编码块之间的信息交换,缓解视觉transformer模型的网络退化问题;同时,加权残差缩放点积注意力层包括h个自注意力头,利用h个注意力头可以使得视觉transformer模型可以学习到待分类图像不同空间的相关信息,从而提高图像分类的准确率。
103.可选地,在本发明实施例一种可能的实现方式中,将线性变换后的索引向量序列、键向量序列、值向量序列输入所述加权残差缩放点积注意力层,生成h个自注意力头对应的自注意力结果,具体可以通过以下方式实现:
104.针对每一个自注意力头,基于所述索引向量序列以及所述键向量序列生成第m层自注意力层输出图;
105.基于第m-1层自注意力图及第m层自注意力层输出图,生成目标自注意力图;
106.基于所述目标自注意力图及所述值向量序列,生成每一个自注意力头对应的自注意力结果。
107.具体地,在本实施例中,将q、k、v输入加权残差缩放点积注意力层,生成h个自注意力头对应的自注意力结果的过程具体可以参见图2中的(c)所示:
108.针对每一个自注意力头,首先基于q以及k生成第m层自注意力层输出图。
109.具体地,首先将q以及k进行张量乘法,然后再进行缩放;利用归一化指数函数将缩放后的q、k进行归一化操作,进而生成第m层的自注意力层输出图att

(m)

110.在生成第m层自注意力层输出图之后,需要基于第m-1层自注意力图及第m层自注意力层输出图,生成目标自注意力图。
111.具体地,在生成第m层的自注意力层输出图att

(m)
之后,将第m-1层自注意力图att
(m-1)
与att

(m)
以残差方式进行连接,并和att

(m)
进行加权求和,进而得到第m层最终的目标自注意力图att
(m)

112.最后,基于目标自注意力图及值向量序列,生成每一个自注意力头对应的自注意力结果。
113.具体地,需要将目标自注意图att
(m)
值向量序列v进行张量乘法,进而生成每个自注意力头对应的自注意力结果。其中,每个自注意力头对应的自注意力结果可以通过以下公式(4)表示:
114.wrsa(q,k,v)=(att
(m)
+αmatt
(m-1)
)v
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
115.其中,dk使用k的维度,起到调节作用,使得q和k的内积不至于太大,可以使训练过程中具有更稳定的梯度;αm为可学习的常量,对αm进行初始化时,αm=1。
116.在上述实施方式中,基于加权残差缩放点积注意力层中以残差方式连接的自注意力图att
(m-1)
和自注意力层输出图att

(m)
,可以有效地增强编码块之间的信息交换,缓解视觉transformer模型的网络退化问题,将嵌入输入向量序列输入至该视觉transformer模型,可以得到更全面的待分类图像对应的编码向量序列。
117.步骤103、基于所述编码向量序列确定所述待分类图像对应的特征向量,将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
118.具体地,在本实施例中,在将嵌入输入向量序列输入至视觉transformer模型的编码器,得到待分类图像对应的编码向量序列之后,需要基于编码向量序列确定待分类图像对应的特征向量,其中,特征向量是用于对待分类图像进行分类的向量。
119.可选地,在本发明实施例一种可能的实现方式中,所述基于所述编码向量序列确定所述待分类图像对应的特征向量,具体可以通过以下方式实现:
120.将所述类别嵌入向量确定为所述待分类图像对应的特征向量。
121.具体地,在本实施例中,将类别嵌入向量确定为待分类图像对应的特征向量。
122.可以理解的是,将类别嵌入向量确定为待分类图像对应的特征向量,是因为待分类图像对应的编码向量序列中的类别嵌入向量是可学习的,该向量中包含有待分类图像的所有特征信息。
123.因此,在实际应用中可以将类别嵌入向量确定为待分类图像对应的特征向量。
124.在确定待分类图像对应的特征向量之后,便将特征向量输入至视觉transformer模型的分类器,得到待分类图像的分类结果。
125.具体地,transformer模型的分类器加入了一个归一化层和两个全连接层。在确定待分类图像对应的特征向量之后,便将特征向量输入至训练好的分类器中,进而得到待分类图像的分类结果。
126.可选地,在本发明实施例一种可能的实现方式中,所述分类器是利用交叉熵损失函数进行训练得到的。
127.具体地,在本实施例中,将待分类图像对应的特征向量输入分类器,利用交叉熵损失函数对分类器进行训练,直至损失值达到预设阈值,表示分类器训练完成。
128.在实际应用中,交叉熵损失函数可以通过以下公式(5)表示:
[0129][0130]
其中,l表示交叉熵损失值,yi表示样本i的标签,正类为1,负类为0;pi表示样本i预测为正类的概率。
[0131]
在上述实施方式中,基于编码向量序列确定待分类图像对应的特征向量,并将特征向量输入至视觉transformer模型的分类器,可以有效提高图像分类的准确率。
[0132]
本发明提供的图像分类方法,通过将嵌入输入向量序列输入至包括残差多头自注意力层的视觉transformer模型的编码器中,其中,编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接。基于以残差方式连接的自注意力图和自注意力层输出图,可以有效地增强编码块之间的信息交换,缓解视觉transformer模型的网络退化问题,将嵌入输入向量序列输入至该视觉transformer模型,可以得到更全面的待分类图像对应的编码向量序列,基于该编码向量序列对图像进行分类,可以有效提高图像分类的准确率。
[0133]
参见图3,图3是本发明提供的图像分类方法的流程示意图之二,具体包括步骤301-步骤310:
[0134]
步骤301、获取待分类图像。
[0135]
步骤302、将待分类图像拆分为多个图像块,并基于图像块生成图像块嵌入向量序列;针对图像块嵌入向量序列分别添加一个类别嵌入向量和位置嵌入向量,生成嵌入输入向量序列。
[0136]
步骤303、将嵌入输入向量序列输入视觉transformer模型编码块中的第一归一化层进行归一化处理,生成处理后的嵌入输入向量序列。
[0137]
在残差多头自注意力层中,执行步骤304-308:
[0138]
步骤304、将处理后的嵌入输入向量序列输入第一线性层,生成待分类图像对应的索引向量序列、键向量序列、值向量序列。
[0139]
步骤305、针对加权残差缩放点积注意力层中每一个自注意力头,基于索引向量序列以及键向量序列生成第m层自注意力层输出图,m大于等于2,小于等于l。
[0140]
步骤306、基于第m-1层自注意力图及第m层自注意力层输出图,生成目标自注意力图。
[0141]
步骤307、基于目标自注意力图及值向量序列,生成每一个自注意力头对应的自注意力结果。
[0142]
步骤308、将h个注意力头对应的自注意力结果进行拼接,并将拼接结果输入第二线性层,生成第一向量序列。
[0143]
步骤309、将第一向量序列输入第二归一化层和前馈层,生成第二向量序列;将第二向量序列输入至第一归一化层进行l次循环迭代,得到前馈层输出的待分类图像对应的编码向量序列。
[0144]
步骤310、将类别嵌入向量确定为待分类图像对应的特征向量;将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
[0145]
下面对本发明提供的图像分类装置进行描述,下文描述的图像分类装置与上文描述的图像分类方法可相互对应参照。
[0146]
图4是本发明提供的图像分类装置400的结构示意图。
[0147]
预处理模块401,用于获取待分类图像,对所述待分类图像进行预处理得到嵌入输入向量序列;
[0148]
编码模块402,用于将所述嵌入输入向量序列输入至视觉transformer模型的编码器,输出所述待分类图像对应的编码向量序列,其中,所述编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接,l为正整数,m大于等于2,小于等于l;
[0149]
分类模块403,用于基于所述编码向量序列确定所述待分类图像对应的特征向量,将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
[0150]
本发明提供的图像分类装置,通过将嵌入输入向量序列输入至包括残差多头自注意力层的视觉transformer模型的编码器中,其中,编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接。基于以残差方式连接的自注意力图和自注意力层输出图,可以有效地增强编码块之间的信息交换,缓解视觉transformer模型的网络退化问题,将嵌入输入向量序列输入至该视觉transformer模型,可以得到更全面的待分类图像对应的编码向量序列,基于该编码向量序列对图像进行分类,可以有效提高图像分类的准确率。
[0151]
可选地,所述编码块还包括第一归一化层、第二归一化层及前馈层;
[0152]
编码模块402,进一步用于:
[0153]
将所述嵌入输入向量序列输入所述第一归一化层进行归一化处理,生成处理后的嵌入输入向量序列;将所述处理后的嵌入输入向量序列输入所述残差多头自注意力层,生成第一向量序列;
[0154]
将所述第一向量序列输入所述第二归一化层和所述前馈层,生成第二向量序列;
[0155]
将所述第二向量序列输入至所述第一归一化层进行l次循环迭代,得到所述前馈层输出的所述待分类图像对应的编码向量序列。
[0156]
可选地,所述残差多头自注意力层包括第一线性层、加权残差缩放点积注意力层、第二线性层,其中,所述加权残差缩放点积注意力层包括h个自注意力头,第m个加权残差缩
放点积注意力层的自注意力层输出图与第m-1个加权残差缩放点积注意力层的自注意力图之间以残差方式连接,h为正整数;
[0157]
编码模块402,进一步用于:
[0158]
将所述处理后的嵌入输入向量序列输入所述第一线性层,生成待分类图像对应的索引向量序列、键向量序列、值向量序列;
[0159]
将所述索引向量序列、所述键向量序列、所述值向量序列输入所述加权残差缩放点积注意力层,生成h个自注意力头对应的自注意力结果;
[0160]
将h个注意力头对应的自注意力结果进行拼接,并将拼接结果输入所述第二线性层,生成所述第一向量序列。
[0161]
可选地,编码模块402,进一步用于:
[0162]
针对每一个自注意力头,基于所述索引向量序列以及所述键向量序列生成第m层自注意力层输出图;
[0163]
基于第m-1层自注意力图及第m层自注意力层输出图,生成目标自注意力图;
[0164]
基于所述目标自注意力图及所述值向量序列,生成每一个自注意力头对应的自注意力结果。
[0165]
可选地,预处理模块401,进一步用于:
[0166]
将所述待分类图像拆分为多个图像块,并基于所述图像块生成图像块嵌入向量序列;
[0167]
针对所述图像块嵌入向量序列分别添加一个类别嵌入向量和位置嵌入向量,生成所述嵌入输入向量序列。
[0168]
可选地,分类模块403,进一步用于:
[0169]
将所述类别嵌入向量确定为所述待分类图像对应的特征向量。
[0170]
可选地,所述分类器是利用交叉熵损失函数进行训练得到的。
[0171]
图5是本发明提供的电子设备500的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行图像分类方法,该方法包括:获取待分类图像,对所述待分类图像进行预处理得到嵌入输入向量序列;将所述嵌入输入向量序列输入至视觉transformer模型的编码器,输出所述待分类图像对应的编码向量序列,其中,所述编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接,l为正整数,m大于等于2,小于等于l;基于所述编码向量序列确定所述待分类图像对应的特征向量,将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
[0172]
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施
例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0173]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的图像分类方法,该方法包括:获取待分类图像,对所述待分类图像进行预处理得到嵌入输入向量序列;将所述嵌入输入向量序列输入至视觉transformer模型的编码器,输出所述待分类图像对应的编码向量序列,其中,所述编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接,l为正整数,m大于等于2,小于等于l;基于所述编码向量序列确定所述待分类图像对应的特征向量,将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
[0174]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的图像分类方法,该方法包括:获取待分类图像,对所述待分类图像进行预处理得到嵌入输入向量序列;将所述嵌入输入向量序列输入至视觉transformer模型的编码器,输出所述待分类图像对应的编码向量序列,其中,所述编码器包括l个transformer编码块,每个编码块包括残差多头自注意力层,第m个编码块的残差多头自注意力层对应的自注意力层输出图与第m-1个编码块的残差多头自注意力层对应的自注意力图之间以残差方式连接,l为正整数,m大于等于2,小于等于l;基于所述编码向量序列确定所述待分类图像对应的特征向量,将所述特征向量输入至视觉transformer模型的分类器,得到所述待分类图像的分类结果。
[0175]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0176]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0177]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1