CN114418030B - 图像分类方法、图像分类模型的训练方法及装置 - Google Patents

图像分类方法、图像分类模型的训练方法及装置 Download PDF

Info

Publication number
CN114418030B
CN114418030B CN202210102561.7A CN202210102561A CN114418030B CN 114418030 B CN114418030 B CN 114418030B CN 202210102561 A CN202210102561 A CN 202210102561A CN 114418030 B CN114418030 B CN 114418030B
Authority
CN
China
Prior art keywords
vector
local
vectors
image
attention
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210102561.7A
Other languages
English (en)
Other versions
CN114418030A (zh
Inventor
宋奕兵
梁有为
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210102561.7A priority Critical patent/CN114418030B/zh
Publication of CN114418030A publication Critical patent/CN114418030A/zh
Application granted granted Critical
Publication of CN114418030B publication Critical patent/CN114418030B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

本申请实施例提供了一种图像分类方法、图像分类模型的训练方法及装置,涉及人工智能领域。该方法包括:将待分类图像输入至预先训练的图像分类模型的编码层,进行向量提取,得到特征向量,特征向量包括多个局部向量,每个局部向量对应待分类图像中的一个子图像;利用编码层中的注意力机制层,对局部向量进行筛选,得到剩余局部向量;基于剩余局部向量得到待分类图像的分类结果。本申请实施例在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,还适用于不同分辨率的图像,增强了方案的适应性。

Description

图像分类方法、图像分类模型的训练方法及装置
技术领域
本申请涉及人工智能技术领域,具体而言,本申请涉及一种图像分类方法、图像分类模型的训练方法及装置。
背景技术
深度学习模型中的计算通常存在冗余。为了在移动设备上部署深度神经网络,必须减少神经网络(neural network)的内存和计算开销。
相关技术中有一些方法用来减小深度神经网络的计算负担。例如Rao et al.所提出的DynamicViT(Vision Transformer,视觉变形器),它引入了一种减少已经训练好的ViT的token数量的方法。具体来说,DynamicViT向ViT添加一个额外的可学习的神经网络以选择输入token的一个子集,丢弃没有入选的token,从而减低计算量。
DynamicViT需要一个训练好的ViT来初始化自身的Transformer模型,而训练一个完整的ViT需要很多计算资源,所以DynamicViT需要较大的计算量来获得一个较好的ViT模型。并且,DynamicViT只能应用于固定图像分辨率输入的ViT模型,一旦确定输入图像的分辨率,就不能改变,适应性较差。
发明内容
本申请实施例提供了一种图像分类方法、图像分类模型的训练方法及装置,可以解决现有技术的上述问题。技术方案如下:
根据本申请实施例的第一个方面,提供了一种图像分类方法,该方法包括:
将待分类图像输入至预先训练的图像分类模型的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;
利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
基于所述剩余局部向量得到所述待分类图像的分类结果。
作为一种可能的实现方式,利用所述编码层的注意力机制层,对所述局部向量进行筛选,包括:
根据所述注意力机制层生成的注意力地图,对所述局部向量进行筛选。
作为一种可能的实现方式,特征向量中还包括与待分类图像对应的全局向量;
根据注意力机制层生成的注意力地图,对所述局部向量进行筛选,包括:
获取注意力机制层生成的注意力地图;
根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力;
根据注意力从大到小的顺序保留特征向量中预设比例的局部向量。
作为一种可能的实现方式,注意力机制层包括多个注意力网络;
根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力,包括:
获取每个注意力网络生成的第一注意力地图,第一注意力地图中包括全局向量在相应注意力网络中对各局部向量的初始注意力;
对于每个局部向量,将全局向量在所有注意力网络中对局部向量的初始注意力求平均值,获得全局向量对局部向量的注意力。
作为一种可能的实现方式,根据注意力从大到小的顺序保留特征向量中预设比例的局部向量,之后还包括:
对于预设比例以外的所有待删减局部向量,根据全局向量对待删减局部向量的注意力对相应的待删减局部向量进行加权,根据加权结果获得融合向量;
将融合向量置于删减后的特征向量中。
根据加权结果获得融合向量,包括:
将所有加权结果的和作为所述融合向量;或者
将所有加权结果的平均值作为所述融合向量。
作为一种可能的实现方式,图像分类模型包括多个编码层,多个编码层中包括至少一个目标编码层;
其中,利用编码层的注意力机制层,对局部向量进行筛选,得到剩余局部向量,包括:
利用目标编码层的注意力机制层,对局部向量进行筛选,得到剩余局部向量。
作为一种可能的实现方式,目标编码层满足以下至少一个条件:
首个所述目标编码层不位于多个编码层中的第一层;
任意两个目标编码层不相邻。
根据本申请实施例的第二个方面,提供了一种图像分类模型的训练方法,包括:
将样本图像输入至图像分类模型中的编码层,进行向量提取,得到特征向量,特征向量包括多个局部向量,每个局部向量对应样本图像中的一个子图像;
利用所述编码层的注意力机制层,对局部向量进行筛选,得到剩余局部向量;
基于剩余局部向量确定模型损失,对图像分类模型进行迭代训练至模型损失收敛。
作为一种可能的实现方式,利用所述编码层的注意力机制层,对所述局部向量进行筛选,包括:
根据所述注意力机制层生成的注意力地图,对局部向量进行筛选。
作为一种可能的实现方式,特征向量中还包括与样本图像对应的全局向量;
根据多头注意力机制层生成的注意力地图,对局部向量进行筛选,包括:
获取多头注意力机制层生成的注意力地图;
根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力;
根据注意力从大到小的顺序保留特征向量中预设比例的局部向量。
作为一种可能的实现方式,多头注意力机制层包括多个注意力网络;
根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力,包括:
获取每个注意力网络生成的第一注意力地图,第一注意力地图中包括全局向量在相应注意力网络中对各局部向量的初始注意力;
对于每个局部向量,将全局向量在所有注意力网络中对局部向量的初始注意力求平均值,获得全局向量对局部向量的注意力。
作为一种可能的实现方式,根据注意力从大到小的顺序保留特征向量中预设比例的局部向量,之后还包括:
对于预设比例以外的所有待删减局部向量,根据全局向量对待删减局部向量的注意力对相应的待删减局部向量进行加权,根据加权结果获得融合向量;
将融合向量置于删减后的特征向量中。
作为一种可能的实现方式,根据加权结果获得融合向量,包括:
将所有加权结果的和作为所述融合向量;或者
将所有加权结果的平均值作为所述融合向量。
作为一种可能的实现方式,图像分类模型包括多个编码层,多个编码层中包括至少一个目标编码层;
其中,利用所述编码层的注意力机制层,对局部向量进行筛选,得到剩余局部向量,包括:
利用目标编码层的注意力机制层,对局部向量进行筛选,得到剩余局部向量。
作为一种可能的实现方式,目标编码层满足以下至少一个条件:
首个目标编码层不位于多个编码层中的第一层;
任意两个目标编码层不相邻。
作为一种可能的实现方式,将样本图像输入至预先训练的图像分类模型中,之前还包括:
获取初始样本图像,对初始样本图像通过插值增加分辨率,获得样本图像。
根据本申请实施例的第三个方面,提供了一种图像分类装置,该装置包括:
第一向量提取模块,用于将待分类图像输入至预先训练的图像分类模型的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;
第一筛选模块,用于利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
分类模块,用于基于所述剩余局部向量得到所述待分类图像的分类结果。
根据本申请实施例的第四个方面,提供了一种图像分类模型的训练装置,包括:
第二向量提取模块,用于将样本图像输入至图像分类模型中的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应样本图像中的一个子图像;
第二筛选模块,用于利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
参数调整模块,用于基于所述剩余局部向量确定模型损失,对所述图像分类模型进行迭代训练至所述模型损失收敛。
根据本申请实施例的第五个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现第一方面或第二方面的方法。
根据本申请实施例的第六个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面或第二方面的方法。
根据本申请实施例的第七个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现第一方面或第二方面的方法。
本申请实施例提供的技术方案带来的有益效果是:
通过将待分类图像输入至预先训练的图像分类模型中的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;基于所述剩余局部向量得到所述待分类图像的分类结果,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,而是利用模型本身的信息筛选出局部向量,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的实施环境示意图;
图2为本申请实施例提供的一种图像分类方法的流程示意图;
图3为本申请实施例提供的另一种图像分类方法的流程示意图;
图4为本申请实施例提供的一种获得初始编码向量的示意图;
图5为本申请实施例提供的一种Transformer Encoder的结构示意图;
图6为本申请实施例提供的一种移除部分局部向量剩余的patch的示意图;
图7为本申请实施例提供的一种MHSA层的运算机理的示意图;
图8为本申请实施例提供的一种目标编码层的运算机理示意图;
图9为本申请实施例提供的一种图像分类模型的训练方法的流程示意图;
图10为本申请实施例提供的一种图像分类装置的结构示意图;
图11为本申请实施例提供的一种图像分类模型的训练装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
1)Self-attention:自注意力计算机制。
2)MHSA:multi-head self-attention.多头自注意力机制,包含多个self-attention网络。
3)FNN/MLP:feed-forward network/multi-layer perceptron,前馈神经网络,在本申请实施例中可以由两层全连接层构成,激活函数是GELU(Gaussian Error LinerarUnits)。
4)Transformer:变形器,一种深度神经网络模型,由MHSA和FNN交替堆叠而成。
5)ViT:Vision Transformer[2],视觉变形器,用于处理图像,是Transformer在计算机视觉上的变体。
6)Patch:图像上的一个矩形区域,是ViT处理图像的基本单元。
7)Token:Transformer内部信息表示的基本单元,通常由一个高维向量构成,用于表示图像上的一个矩形区域(patch),本申请实施例中也称之为局部向量。
8)Class token(CLS):一种特别的token,不用于表示图像的某个区域,而是用来汇总图像token的信息,最终用于计算图像的预测结果,例如图像所包含物体的类别,本申请实施例中也称之为全局向量。
9)Attention map:自注意力图。
10)inference:推理,是指Transformer处理图像从而得到预测结果的计算过程。
11)Throughput:吞吐量,即模型每秒钟能够处理的图像的数量,是衡量模型推理速度的重要标准。
12)DeiT:ViT的一种变体,DeiT-S表示DeiT-small,即较小的DeiT模型。
13)EViT:特指本申请实施例所采用的用于加速图像分类模型的计算方法。
14)人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
15)计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、定位和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
16)机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
17)自动驾驶技术通常包括高精地图、环境感知、行为决策、路径规划、运动控制等技术,自定驾驶技术有着广泛的应用前景。
深度学习模型中的计算通常存在冗余。为了在移动设备上部署深度神经网络,必须减少神经网络(neural network)的内存和计算开销。文献中有许多方法用来减小深度神经网络的计算负担。例如,参数裁剪(parameter pruning)去掉神经网络中对最终性能不敏感的冗余参数。其他一些方法利用知识蒸馏(knowledge distillation)来获得一个小而紧凑的模型,使小模型包含一个较大模型的蒸馏知识。但是这些模型加速策略仅限于卷积神经网络(convolutional neural network),在ViT上鲜有应用。还有一些尝试加速Transformer模型计算的方法,包括提出更快速的注意力机制和压缩Transformer结构。这些方法主要侧重于通过人工设计的模块来降低网络架构的复杂性。
ViT加速的另一种方法是减少ViT推理中涉及的token数量。例如,Wang et al.提出了一种动态确定图像上划分的patch数量的方法。如果ViT对中间层(intermediatelayer)输出的预测有足够的置信度(confidence),它就停止对输入图像的进一步计算,从而降低平均计算量。
另一项相关工作是Rao et al.所提出的DynamicViT,它引入了一种减少已经训练好的ViT的token数量的方法。具体来说,DynamicViT向ViT添加一个额外的可学习的神经网络以选择输入token的一个子集,丢弃没有入选的token,从而减低计算量。所引入的额外的神经网络对每一个token都会产生一个数值,数值越大表示保留该token的概率越大,在训练时,DynamicViT将每个token对应的数值输入到Gumbel-Softmax来计算保留该token的概率,然后通过多项分布(multinomial distribution)来随机抽出适当数目的token,使得梯度能够反向传播(gradient back-propagation)。
但DynamicViT存在以下问题:
第一,DynamicViT需要增加一个辅助网络来选择保留哪些token,但这样会引进更多的参数,增加了内存消耗量。
第二,DynamicViT需要一个训练好的ViT来初始化自身的Transformer模型,而训练一个完整的ViT需要很多计算资源,所以DynamicViT需要较大的计算量来获得一个较好的ViT模型
第三,DynamicViT只能应用于固定图像分辨率输入的ViT模型,当训练时样本图像的分辨率确定下来,后续在利用模型进行图像分类时,也只能采用与样本图像的分辨率相同的待分类图像,不能改变,大大限制了模型的应用场景。
本申请提供的图像分类模型的训练方法、图像分类方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
视觉变形器(ViT)将所有图像上的所有patch变为token作为输入,并在token之间构建多头自注意力(MHSA)。完全利用这些图像token会带来冗余计算,因为并非所有token都对预测有用。例如,语义信息量较少的图像背景的token对ViT的视觉识别没有积极贡献。基于此,本申请的图像分类模型的训练方法的发明构思如下:
在ViT模型的前向推理计算过程中重新组织图像token。token重组(tokenreorganization)方法在训练期间被集成到ViT中。对于每次前向推理,在MHSA和FFN(即前馈网络)之间识别出注意力集中的图像token。图像token的注意力识别由相应的classtoken引导。然后,通过保留高注意力的图像token并融合低注意力的token来重新组织图像token,以加快后续的MHSA和FFN计算。
本申请实施例从两个角度改进了ViT。首先,在输入相同数量的图像token情况下,本申请实施例减少了MHSA和FFN的计算量以实现高效推理。经验证,本申请实施例可以把DeiT-S的推理速度提高了50%,而模型在ImageNet分类的识别准确率仅降低了0.3%。其次,通过保持相同的计算量,本申请实施例使ViT能够将更多图像token作为输入以提高识别精度,其中图像token来自更高分辨率的图像。经验证,本申请实施例可以将DeiT-S的ImageNet分类识别准确率提高了1%,而计算成本与普通的DeiT-S相同。并且,本申请实施例没有给ViT增加参数量的负担。在标准数据集上的实验已证明本申请实施例的有效性。
本申请实施例的方案适用于加速ViT的计算,而ViT可以应用于诸多计算机视觉领域,包括图像识别(例如人脸识别),目标检测(object detection)和语义分割(semanticsegmentation),所以本申请实施例能够广泛加速多种应用场景的计算。
1、为安全部门提供图像检索服务
当利用本申请实施例提供的图像识别模型的训练方法和图像识别方法为用户提供图像检索服务时,图像检索方法可以实现成为独立的信息检索程序,并安装在计算机设备或者提供信息检索服务的后台服务器中。
在该场景下,安全部门将想要查询的信息(例如目标人物的面部图像等)输入计算机设备,计算机设备根据检索信息,利用图像识别模型从海量的图像确定出具有目标人物的成像区域的图像,或者将检索信息发送至后台服务器,由后台服务器确定出具有目标人物的图像返回至天眼查询界面。
2、辅助医生进行疾病预测和治疗
当利用本申请实施例提供的图像识别模型的训练方法和图像识别方法帮助用户进行疾病预测时,该方法可以实现成为独立的线上诊断类应用程序或健康类应用程序,并安装在用户使用的计算机设备或者提供医学文本搜索服务的后台服务器中,方便用户使用该程序对疾病进行查询。
在该场景下,医生在应用程序界面输入患者的医疗图像,例如B超、彩超等,计算机设备将医疗图像输入图像分类模型,得到图像分类结果,并将该结果返回对应的应用程序界面,提示用户可能患有的疾病。
3、辅助驾驶员/自动驾驶车辆进行道路安全预警
当利用本申请实施例提供的图像识别模型的训练方法和图像识别方法帮助驾驶员/自动驾驶车辆进行疾病预测时,该方法可以实现成为独立的导航类应用程序或自动驾驶类应用程序,并安装在用户使用的车载终端设备或者提供导航服务/自动驾驶服务的后台服务器中,帮助车辆安全行驶。
在该场景下,车载摄像头采集车辆前方的道路图像,将道路图像传输至车载终端或后台服务器,车载终端或后台服务器将道路图像输入图像分类模型根据道路图像识别出路上的行人等影响车辆正常行驶的对象,车载终端或后台服务器推送提示信息,提示驾驶员或控制车辆避让。
当然,除了应用于上述场景外,本申请实施例提供方法还可以应用于其他需要图像分类的场景,本申请实施例并不对具体的应用场景进行限定。
本申请实施例提供的图像分类方法可以应用于终端或者服务器等计算机设备中。在一种可能的实施方式中,本申请实施例提供的图像分类方法可以实现成为应用程序或应用程序的一部分,并被安装到终端中,使终端具备根据图像进行分类识别的功能;本申请实施例提供的图像分类方法可以应用于应用程序的后台服务器中,从而由服务器进行模型训练和更新。为了方便表述,下述各个实施例中,以图像分类模型的训练方法和图像分类方法应用于计算机设备为例进行说明,但并不对此构成限定。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的实施环境示意图,该实施环境中包括终端110和服务器120。
终端110是具有图像采集功能的电子设备,该电子设备可以是配置有摄像头的智能手机、平板电脑、个人计算机,或者识别设备(比如智能摄像头或者道路识别探头)等等。图1中,终端110是设置有摄像头的手机。
可选的,终端110中安装有具有图像分类功能的预设应用程序,或者,关注有提供图像分类服务的社交账号(比如公众号),或者,运行有依赖于其它应用程序的小程序(miniprogram)(比如即时通信应用程序中的小程序)。当需要进行图像分类时,终端110即通过预设应用程序、社交账号或者小程序上传待分类的图像。
终端110与服务器120之间通过有线或无线网络相连。
服务器120是一台服务器、若干台服务器构成的服务器集群或云计算中心。在一种可能的实施方式中,服务器120是终端110中预设应用程序的后台服务器、社交账号的后台服务器或者小程序的后台服务器。
本申请实施例中,服务器120用于进行图像分类。可选的,服务器120中存储有用于进行图像分类的图像分类模型。
在一种可能的应用场景下,如图1所示,终端110通过摄像头采集待分类图像,并将待分类图像发送至服务器120。服务器120将待分类图像输入图像分类模型,得到图像分类模型121输出的图像分类结果,并将图像分类结果反馈给终端110。
在另一种可能的应用场景下,当终端110中存储有图像分类模型时,终端110可以借助本地图像分类模型得到待分类图像的分类结果,并将分类结果上传至服务器120。
可选的,终端110或服务器120通过神经网络芯片实现图像分类功能。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
应该理解,图1中的终端设备和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备和服务器。比如服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
本申请实施例的服务器的执行方法可以以云计算(cloud computing)的形式完成,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
请参见图2,其示例性地示出了本申请一个实施例的图像分类方法的流程示意图,如图所示,该方法包括:
S101、将待分类图像输入至预先训练的图像分类模型的编码层,进行向量提取,得到特征向量;
本申请实施例的图像分类模型包括编码层,通过将待分类图像输入至编码层,编码层可以将待分类图像划分为多个不重合的矩形区域(称之为patch),也即子图像,通过确定子图像的特征信息,能够获得待分类图像的特征向量,该特征向量包括多个局部向量,每个局部向量对应所述待分类图像中的一个子图像。
S102、利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量。
本申请实施例的编码层在进行向量提取的过程中采用了注意力机制,概括来说,注意力机制通过扫描全局图像,获得需要重点关注的区域,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息,注意力机制的相关执行步骤具体由注意力机制层执行。本申请通过注意力机制层在向量提取中确定的、针对各子图像的注意力,对各子图像对应的局部向量进行筛选,将注意力较低的局部向量筛除,本申请的图像分类方法由于完全利用模型内部的参数进行局部向量的筛选,相比现有技术需要额外的神经网络
应当理解的是,当编码层的个数为多个时,当前一个编码层筛除了一部分局部向量,那么后一个编码层将利用剩余局部向量继续进行向量提取,从而在运算过程中逐渐减少向量的数量。
S103、基于所述剩余局部向量得到所述待分类图像的分类结果。
本申请实施例可以基于剩余局部向量,通过预设的激活函数,例如softmax函数,确定出多分类结果相应的概率,将概率最高的分类结果作为待分类图像的分类结果。
本申请实施例通过将待分类图像输入至预先训练的图像分类模型中的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;基于所述剩余局部向量得到所述待分类图像的分类结果,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,而是利用模型本身的信息筛选出局部向量,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
请参见图3,其示例性地示出了本申请另一个实施例的图像分类方法的流程示意图,如图所示,该方法包括:
S201、将待分类图像输入至预先训练的图像分类模型中,图像分类模型包括多个编码层,每个编码层包括多头注意力机制层和前馈神经网络层。
在将样本图像输入至图像分类模型后,首先图像分类模型会将样本图像划分为不重合的矩形区域(称之为patch),并将每个patch通过矩阵运行进行线性映射到固定长度的向量(称为局部向量,该向量是字符级token向量),从而获得输入至第一个编码层的编码向量(初始编码向量)。
具体地,请参见图4,其示例性地示出了本申请实施例获得初始编码向量的示意图,如图所示,首先将图像分割成一个个patch,然后将每个patch reshape(区域重塑)成一个向量,得到flattened patch向量。若图像是H×W×C维的,P×P大小的patch去分割图像可以得到N个patch,那么每个patch的shape就是P×P×C,转化为向量后就是P2C维的向量,将N个patch对应的flattened patch向量concat(合并)在一起,就得到了一个N×(P2C)的二维矩阵。
从上面的过程可以看出,当patch的大小变化时(即P变化时),每个patch对应的flattened patch向量的长度也会变化。为了避免模型结构受到patch size的影响,可以对上述过程得到的flattened patch向量做Linear Projection处理,将不同长度的flattened patch向量转化为固定长度的向量(原始局部向量,记做D维向量)。
由于transformer模型本身是没有位置信息的,和自然语言处理(NLP,NaturalLanguage Processing)中一样,需要用position embedding将位置信息加到模型中去。
如图4所示,编号有0-9的灰色框表示各个位置的position embedding,而每个灰色框旁边的白色框则是经过linear projection之后的原始局部向量。本申请实施例采用将position embedding(即图中灰色框)和patch embedding(即图中白色框表示的局部向量)相加的方式结合position信息,从而获得局部向量。
S202、通过所有编码层依次进行编码处理,根据最后一层编码层输出的编码向量,获得图像分类模型输出的分类结果;
本申请的图像分类模型中包括Transformer Encoder,Transformer Encoder可以包括多个编码层。请参见图5,其示例性地示出了本申请实施例的一种TransformerEncoder的结构示意图,如图所示,该Transformer Encoder包括L层编码层,对于Encoder的第l层,记其输入为zl-1,输出为zl-,则计算过程为:
其中MSA为Multi-Head Self-Attention(多头注意力机制层),MLP为Multi-LayerPerceptron(多层感知器),LN为Layer Norm(层归一化)。
Encoder第一层的输入Z0是通过下面的公式得到的:
其中,即未Linear Projection后的patch embedding(都是P2C维),右乘P2C×D维的矩阵E表示Linear Projection,得到的/> 都是D维向量;N个D维向量和同样是D维向量的Xclass合并就得到了(N+1)×D维矩阵。加上N+1个D维positionembedding拼成的(N+1)×D维矩阵Epos,即得到了Encoder的原始输入Z0
本申请实施例的众多编码层中存在一些特殊的编码层,以下称之为目标编码层,本申请实施例在目标编码层中删减一定数量的信息量较小的token,因为删掉的局部向量一般对应样本图像的背景或者是一些纹理简单的patch,并且视觉识别任务一般不依赖于这些patch,所以去掉它们几乎不会影响识别精度。
具体的,对于目标编码层,本申请实施例在将注意力机制层根据上一层编码层的编码向量输出的特征向量,输入至前馈神经网络层之前,还包括:
根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,以使得前馈神经网络层基于前馈机制对删减后的特征向量进行处理,获得编码向量;
每个局部向量与待分类图像中的一个矩形区域唯一对应。也就是说,随着图像分类模型中各编码层的运算,局部向量将越来越少,相应的patch也越少,那么越靠后的编码层需要编码的patch也越少,处理效率也越高。
应当理解的是,每一层编码层(前馈神经网络层)输出的编码向量,都会作为下一层编码层的输入,也即下一编码层中多头注意力机制层的输入,对于最后一层编码层输出的编码向量,图像分类模型可以通过预设函数对编码向量进行运算,获得分类结果。
本申请在确定需要删减的局部向量时并不需要像相关技术那样引入额外的辅助网络和参数,而是直接利用了多头注意力机制层生成的注意力地图,由于注意力地图记录了不同局部向量间的注意力大小,因此本申请实施例可以基于注意力地图确定出注意力较小的局部向量,从而从特征向量中删除,获得删减后的特征向量。
请参见图6,其示例性地示出了本申请实施例移除部分token后对应的图像patch的示意图,如图所示,输入图像显示了一个小狗蹲在草丛前,可以看出本申请实施例删除局部向量的过程是渐进的,当一个目标编码层对图像中的patch删除后(删除的patch在图中为黑色矩形块),会间隔至少一个编码层再设置一个目标编码层,并且第一层编码层并没有对图像中patch进行删除,这是因为如果在第一层编码层就删除局部向量,很可能会错误地删除一些对视觉理解具有重要影响的局部向量,在图6中,本申请的EViT分别在第4、7、10层删除了上一层30%数量的局部向量。综上,原本图像中的背景对应的patch在运算过程逐渐被移除,最终剩下的局部向量对应的patch基本上只剩下图像中对分类识别起关键作用的小狗。
在上述各实施例的基础上,作为一种可选实施例,本申请的目标编码层在所有编码层中的位置满意以下至少一个条件:
(1)首个目标编码层不位于多个编码层中的第一层。
条件1能够避免在第一层编码层就删除局部向量,错误地删除一些对视觉理解具有重要影响的局部向量的弊端,从而在运算开端上保证筛选局部向量的准确性。
(2)任意两个目标编码层不相邻。
一方面由于本申请中的目标编码层的作用是删除局部向量,也即删除图像中的部分patch,且一旦删除后续的编码层并不能相应的恢复,保留的局部向量/patch都会越来越少,另一方面,图像编码是一个连续的过程,之所以要设置多个编码层,也是因为每一个编码层在提取每一个patch中的特征(局部向量)都会有所差异,因此通过将任意两个目标编码层不相邻设置——例如在图6中,目标编码层分别为4、7、10层,第一个目标编码层和第二个目标编码层之间间隔了两个普通的编码层(也即不对局部向量进行删减的编码层),第二个目标编码层和第三个目标编码层之间也间隔了两个普通的编码层,这样就使得每个目标编码层在确定需要删除的局部变量前,每个patch都可以经过多次编码以充分挖掘出该patch是否具有对图像分类具有重要影响的可能性。
本申请实施例的图像分类方法,通过将待分类图像输入至预先训练的图像分类模型中,图像分类模型包括多个编码层,每个编码层包括多头注意力机制层和前馈神经网络层;通过所有编码层依次进行编码处理,根据最后一层编码层输出的编码向量,获得图像分类模型输出的分类结果,并且存在至少一个目标编码层,在将注意力机制层根据上一层编码层的编码向量输出的特征向量,输入至前馈神经网络层之前,根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,以使得前馈神经网络层基于前馈机制对删减后的特征向量进行处理,获得编码向量,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
在上述各实施例的基础上,作为一种可选实施例,特征向量中还包括与样本图像对应的全局向量。
在图4中,存在一个带星号的白色框(即0号灰色框)右侧的白色框,该框所代表的向量(全局向量)不是通过某一个patch产生的,而是基于图像的全局信息生成的,该向量是一个learnable embedding(记作Xclass),其作用类似于BERT中的[class]token。在BERT中,[class]token经过encoder后对应的结果作为整个句子的表示;类似地,这里Xclass经过encoder后对应的结果也作为整个图的表示。
之所以每一层编码层的特征向量中还包括与图像对应的全局向量,是因为如果人为地指定一个embedding(例如本文中某个patch经过Linear Projection得到的embedding)经过Encoder得到的结果作为整体的表示,则不可避免地会使得整体表示偏向于这个指定embedding的信息(例如图像的表示偏重于反映某个patch的信息)。而这个新增的向量没有语义信息(即在句子中与任何的词无关,在图像中与任何的patch无关),所以不会造成上述问题,能够比较公允地反映全图的信息。
根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,包括:
S301、获取多头注意力机制层生成的注意力地图。
请参见图7,其示例性地示出了本申请实施例的MHSA层的运算机理的示意图,如图所示,在MHSA层中,每个局部向量被线性映射到3个矩阵Q,K,V上,然后进行Scaled Dot-Product Attention运算。其中,多头可以理解为多个Scaled Dot-Product Attention(注意力网络)并行运算,每个head里面的Q,K,V都与其他head的Q,K,V不同。MHSA在数学上的运算可以用公式(1)和(2)表示。
注意力地图是公式(1)中的中间计算结果,如下式:
S302、根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力。
应当理解的是,注意力地图是一个矩阵,其中第一行是全局向量对其他局部向量的注意力,本申请通过注意力地图的第一行信息,获得全局向量对其他局部向量的注意力(attention),根据该注意力确定需要保留的局部向量,因为全局向量是最终用于视觉识别任务的向量,对识别结果有着直接的影响,所以如果全局向量对某个局部向量的注意力较高,那么该局部向量对识别结果就比较重要,所以保留该局部向量进行后续的计算。相应的移除注意力较少的局部向量。
因此,本申请实施例可以根据注意力地图的第一行信息确定特征向量中全局向量对各局部向量的注意力。
S303、根据注意力从大到小的顺序保留特征向量中预设比例的局部向量。
本申请实施例可以根据注意力的大小值进行排序,然后保留其中注意力最大的若干个局部向量,保留的比例为ρ。ρ通常从0.5到0.9不等,本申请实施例对于ρ的具体值不作具体限定。
在上述各实施例的基础上,作为一种可选实施例,由于多头注意力机制网络中每个head(注意力网络)都会对应一个注意力地图,因此一个多头注意机制网络会生成多个注意力地图,因此,本申请实施例根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力,包括:
S401、获取每个注意力网络生成的第一注意力地图,第一注意力地图中包括全局向量在相应注意力网络中对各局部向量的初始注意力;
S402、对于每个局部向量,将全局向量在所有注意力网络中对局部向量的初始注意力求平均值,获得全局向量对局部向量的注意力。
例如,若MHSA层包括3个注意力网络,全局向量在注意力网络1中对局部向量1的初始注意力为a,全局向量在注意力网络2中对局部向量1的初始注意力为b,全局向量在注意力网络3中对局部向量1的初始注意力为c,则全局向量对局部向量1的注意力为:(a+b+c)/3。
在上述各实施例的基础上,作为一种可选实施例,根据注意力从大到小的顺序保留特征向量中预设比例的局部向量,之后还包括:
S501、对于预设比例以外的所有待删减局部向量,根据全局向量对待删减局部向量的注意力对相应于待删减局部向量进行加权,根据加权结果获得融合向量;
S502、将融合向量置于删减后的特征向量中。
本申请实施例为了充分利用所有的局部向量所包含的信息,同时避免无谓增加模型的运算开销,对于预设比例以外的所有待删减的局部向量,利用前序步骤已经计算出的全局向量对其的注意力,对待删减的局部向量进行加权,并根据加权结果整合为一个融合向量,将融合向量置于删减后的特征向量中,使得删减后的特征向量中既包括未删减的局部向量,还包括由删减的局部向量获得的融合向量。
具体地,本申请实施例根据加权结果获得融合向量,包括两种方式:
方式一:将所有加权结果的和作为所述融合向量;可采用以下公式计算:
其中,N表示待删除局部向量的总数;xi和ai分别表示第i个待删除的局部向量的值及对应的注意力;xfused表示融合向量。
方式二:将所有加权结果的平均值作为所述融合向量;可采用以下公式计算:
xfused=(∑i∈Naixi)/N
其中,N表示待删除局部向量的总数;xi和ai分别表示第i个待删除的局部向量的值及对应的注意力;xfused表示融合向量。
本申请实施例将上述融合向量跟保留的局部向量一起输入到下一步计算(即FFN/MLP中),接下来在FFN/MLP中的计算跟普通Encoder的FFN/MLP的计算是相同的(除了局部向量的数目不同)。这样就完成了token重组的过程(token reorganization)。
请参见图8,示例性地示出了本申请实施例目标编码层的运算机理示意图,如图所示,目标编码层首先通过MHSA层接收上一编码层输入的编码向量,该编码向量中包括经过上一编码层基于前向反馈处理后的多个局部向量和一个全局向量,每个局部向量均唯一对应图像中的一个patch,将编码向量输入到MHSA层进行计算,与残差相加(Add)和层归一化(Layer Normalization)的操作,这一步与普通的encoder的运算相同,获得当前编码层的特征向量,之后利用MHSA层生成的注意力地图,确定需要保留的局部向量(attentivetoken)以及需要删除的局部向量(inattentivetoken),对需要删除的局部向量以注意力进行加权求和,获得融合向量,将所有需要保留的局部向量以及融合向量输入至FFN(Feed Forward Network)层,本申请实施例的FFN层可以包括多个全连接层,也即通过全连接层将需要保留的局部向量和融合向量进行全连接处理,将处理后的编码向量进行Add&Norm处理发送至下一层编码层。其中,Add为residule block(残差模块),数据在这里进行residule connection(残差连接)。而Norm即为Normalization(标准化)模块。Transformer中采用的是Layer Normalization(层标准化)方式。常用的标准化方法有Batch Normalization,Layer Normalization,Group Normalization,InstanceNormalization等。
本申请实施例提供的一种图像分类模型的训练方法,如图9所示,该方法包括:
S601、将样本图像输入至图像分类模型中的编码层,进行向量提取,得到特征向量,特征向量包括多个局部向量,每个局部向量对应样本图像中的一个子图像;
S602、利用所述编码层的注意力机制层,对局部向量进行筛选,得到剩余局部向量;
S603、基于剩余局部向量确定模型损失,对图像分类模型进行迭代训练至模型损失收敛。
本申请实施例的训练方法,通过将样本图像输入至图像分类模型中,的编码层进行向量提取,得到特征向量,特征向量包括多个局部向量,每个局部向量对应待分类图像中的一个子图像,利用所述编码层的注意力机制层,对局部向量进行筛选,得到剩余局部向量,基于剩余局部向量确定模型损失,对图像分类模型进行迭代训练至模型损失收敛,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
在上述各实施例的基础上,作为一种可选实施例,本申请的图像分类模型的训练方法,包括:
S701、将样本图像输入至图像分类模型中,图像分类模型包括多个编码层,每个编码层包括多头注意力机制层和前馈神经网络层;
S702、通过所有编码层依次进行编码处理,根据最后一层编码层输出的编码向量确定模型损失,对图像分类模型进行迭代训练至模型损失收敛。
其中,在将注意力机制层根据上一层编码层的编码向量输出的特征向量,输入至前馈神经网络层之前,还包括:
根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,以使得前馈神经网络层基于前馈机制对删减后的特征向量进行处理,获得编码向量。
本申请实施例的图像分类模型的训练方法,图像分类模型包括多个编码层,并且每个编码层中均包括一个多头注意力层,通过将样本图像输入图像分类模型,获得图像分类模型中最后一层编码层输出的目标特征向量,根据目标特征向量确定模型损失,对图像分类模型进行迭代训练至模型损失收敛;并且多个编码层中存在至少一个目标编码层,基于目标编码层中的多头注意力机制层生成的注意力地图,保留多头注意力机制层输出的特征向量中的部分局部向量,以获得目标编码层输出的删减后的特征向量,首先无需辅助网络,也没有引入更多的参数,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,更重要的是,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
在上述各实施例的基础上,作为一种可选实施例,特征向量中还包括与样本图像对应的全局向量;
根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,包括:
获取多头注意力机制层生成的注意力地图;
根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力;
根据注意力从大到小的顺序保留特征向量中预设比例的局部向量。
在上述各实施例的基础上,作为一种可选实施例,多头注意力机制层包括多个注意力网络;
根据注意力地图,确定特征向量中的全局向量对各局部向量的注意力,包括:
获取每个注意力网络生成的第一注意力地图,第一注意力地图中包括全局向量在相应注意力网络中对各局部向量的初始注意力;
对于每个局部向量,将全局向量在所有注意力网络中对局部向量的初始注意力求平均值,获得全局向量对局部向量的注意力。
在上述各实施例的基础上,作为一种可选实施例,根据注意力从大到小的顺序保留特征向量中预设比例的局部向量,之后还包括:
对于预设比例以外的所有待删减局部向量,根据全局向量对待删减局部向量的注意力对相应的待删减局部向量进行加权,根据加权结果获得融合向量;
将融合向量置于删减后的特征向量中。
在上述各实施例的基础上,作为一种可选实施例,根据加权结果获得融合向量,包括:
将所有加权结果的和作为所述融合向量;或者
将所有加权结果的平均值作为所述融合向量。
在上述各实施例的基础上,作为一种可选实施例,首个目标编码层不位于多个编码层中的第一层。
在上述各实施例的基础上,作为一种可选实施例,任意两个目标编码层不相邻。
在上述各实施例的基础上,作为一种可选实施例,将样本图像输入至预先训练的图像分类模型中,之前还包括:
获取初始样本图像,对初始样本图像通过插值方法增加分辨率,获得样本图像。
为了进一步提高EViT的性能,本申请实施例可以利用高分辨率的图像进行计算,因为EViT可以减少参与计算的局部向量的数目,所以即使用高分辨率的图像计算(包含更多的局部向量),EViT仍然能够保持比较高的推理速度,并且提高识别精度。
本申请实施例可以将低分辨率的图像通过插值方法(例如bicubicinterpolation方法)来增加分辨率,以获得高分辨率的样本图像。
本申请实施例提供了一种图像分类装置,如图10所示,该图像分类装置可以包括:第一向量提取模块101、第一筛选模块102和分类模块103,其中,
第一向量提取模块101,用于将待分类图像输入至预先训练的图像分类模型的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;
第一筛选模块102,用于利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
分类模块103,用于基于所述剩余局部向量得到所述待分类图像的分类结果。
本申请实施例的装置可执行本申请实施例所提供的图像分类方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的图像分类方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例的图像分类装置,通过将待分类图像输入至预先训练的图像分类模型中的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;基于所述剩余局部向量得到所述待分类图像的分类结果,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,而是利用模型本身的信息筛选出局部向量,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
本申请实施例提供了一种图像分类模型的训练装置,如图11所示,该图像分类装置可以包括:第二向量提取模块201、第二筛选模块202以及参数调整模块203,其中,
第二向量提取模块201,用于将样本图像输入至图像分类模型中的编码层,进行向量提取,得到特征向量,所述特征向量包括多个局部向量,每个局部向量对应样本图像中的一个子图像;
第二筛选模块202,用于利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
参数调整模块203,用于基于所述剩余局部向量确定模型损失,对所述图像分类模型进行迭代训练至所述模型损失收敛。
本申请实施例的装置可执行本申请实施例所提供的图像分类模型的训练方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的训练方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现图像分类方法或者图像分类模型的训练方法的步骤,与相关技术相比可实现:通过将待分类图像输入至预先训练的图像分类模型中,图像分类模型包括多个编码层,每个编码层包括多头注意力机制层和前馈神经网络层;通过所有编码层依次进行编码处理,根据最后一层编码层输出的编码向量,获得图像分类模型输出的分类结果,并且存在至少一个目标编码层,在将注意力机制层根据上一层编码层的编码向量输出的特征向量,输入至前馈神经网络层之前,根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,以使得前馈神经网络层基于前馈机制对删减后的特征向量进行处理,获得编码向量,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,更重要的是,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
在一个可选实施例中提供了一种电子设备,如图12所示,图12所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比,通过将待分类图像输入至预先训练的图像分类模型中,图像分类模型包括多个编码层,每个编码层包括多头注意力机制层和前馈神经网络层;通过所有编码层依次进行编码处理,根据最后一层编码层输出的编码向量,获得图像分类模型输出的分类结果,并且存在至少一个目标编码层,在将注意力机制层根据上一层编码层的编码向量输出的特征向量,输入至前馈神经网络层之前,根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,以使得前馈神经网络层基于前馈机制对删减后的特征向量进行处理,获得编码向量,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,更重要的是,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比,通过将待分类图像输入至预先训练的图像分类模型中,图像分类模型包括多个编码层,每个编码层包括多头注意力机制层和前馈神经网络层;通过所有编码层依次进行编码处理,根据最后一层编码层输出的编码向量,获得图像分类模型输出的分类结果,并且存在至少一个目标编码层,在将注意力机制层根据上一层编码层的编码向量输出的特征向量,输入至前馈神经网络层之前,根据多头注意力机制层生成的注意力地图,保留特征向量中的部分局部向量,以使得前馈神经网络层基于前馈机制对删减后的特征向量进行处理,获得编码向量,本方案在缩减局部向量的过程中首先无需辅助网络,也没有引入更多的参数,其次由于可以从头训练一个轻量级的图像分类模型,因此能够降低计算量,再次本申请实施例能够适用于不同分辨率的图像,增强了方案的适应性,更重要的是,由于减少了参与推理计算的局部向量数目,能够大幅降低了训练(training)和测试(testing)的时间,增加了每秒钟的图像吞吐量(throughput),同时保持识别精度接近原来ViT模型的水平。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (13)

1.一种图像分类方法,其特征在于,包括:
将待分类图像输入至预先训练的图像分类模型的编码层,进行向量提取,得到特征向量,所述特征向量包括与所述待分类图像对应的全局向量以及多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;
利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
基于所述剩余局部向量得到所述待分类图像的分类结果;
其中,所述利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量,包括:
获取所述注意力机制层生成的注意力地图;
根据所述注意力地图,确定所述特征向量中的全局向量对各局部向量的注意力;
根据注意力从大到小的顺序保留所述特征向量中预设比例的局部向量。
2.根据权利要求1所述的图像分类方法,其特征在于,所述注意力机制层包括多个注意力网络;
所述根据所述注意力地图,确定所述特征向量中的全局向量对各局部向量的注意力,包括:
获取每个注意力网络生成的第一注意力地图,所述第一注意力地图中包括所述全局向量在相应注意力网络中对各局部向量的初始注意力;
对于每个局部向量,将所述全局向量在所有注意力网络中对所述局部向量的初始注意力求平均值,获得所述全局向量对所述局部向量的注意力。
3.根据权利要求1所述的图像分类方法,其特征在于,所述根据注意力从大到小的顺序保留所述特征向量中预设比例的局部向量,之后还包括:
对于所述预设比例以外的所有待删减局部向量,根据所述全局向量对所述待删减局部向量的注意力对相应的待删减局部向量进行加权,根据加权结果获得融合向量;
将所述融合向量置于删减后的特征向量中。
4.根据权利要求3所述的图像分类方法,其特征在于,所述根据加权结果获得融合向量,包括:
将所有加权结果的和作为所述融合向量;或者
将所有加权结果的平均值作为所述融合向量。
5.根据权利要求1所述的图像分类方法,其特征在于,所述图像分类模型包括多个编码层,所述多个编码层中包括至少一个目标编码层;
其中,所述利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量,包括:
利用所述目标编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量。
6.根据权利要求5所述的图像分类方法,其特征在于,所述目标编码层满足以下至少一个条件:
首个所述目标编码层不位于多个编码层中的第一层;
任意两个所述目标编码层不相邻。
7.一种图像分类模型的训练方法,其特征在于,包括;
将样本图像输入至图像分类模型中的编码层,进行向量提取,得到特征向量,所述特征向量包括与待分类图像对应的全局向量以及多个局部向量,每个局部向量对应所述样本图像中的一个子图像;
利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
基于所述剩余局部向量确定模型损失,对所述图像分类模型进行迭代训练至所述模型损失收敛;
其中,所述利用所述编码层中的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量,包括:
获取所述注意力机制层生成的注意力地图;
根据所述注意力地图,确定所述特征向量中的全局向量对各局部向量的注意力;
根据注意力从大到小的顺序保留所述特征向量中预设比例的局部向量。
8.根据权利要求7所述的训练方法,其特征在于,所述将样本图像输入至图像分类模型中的编码层,之前还包括:
获取初始样本图像,对所述初始样本图像通过插值增加分辨率,获得所述样本图像。
9.一种图像分类装置,其特征在于,包括:
第一向量提取模块,用于将待分类图像输入至预先训练的图像分类模型的编码层,进行向量提取,得到特征向量,所述特征向量包括与所述待分类图像对应的全局向量以及多个局部向量,每个局部向量对应所述待分类图像中的一个子图像;
第一筛选模块,用于利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
分类模块,用于基于所述剩余局部向量得到所述待分类图像的分类结果;
其中,所述第一向量提取模块具体用于:
获取所述注意力机制层生成的注意力地图;
根据所述注意力地图,确定所述特征向量中的全局向量对各局部向量的注意力;
根据注意力从大到小的顺序保留所述特征向量中预设比例的局部向量。
10.一种图像分类模型的训练装置,其特征在于,包括;
第二向量提取模块,用于将样本图像输入至图像分类模型中的编码层,进行向量提取,得到特征向量,所述特征向量包括与待分类图像对应的全局向量以及多个局部向量,每个局部向量对应待分类图像中的一个子图像;
第二筛选模块,用于利用所述编码层的注意力机制层,对所述局部向量进行筛选,得到剩余局部向量;
参数调整模块,用于基于所述剩余局部向量确定模型损失,对所述图像分类模型进行迭代训练至所述模型损失收敛;
其中,所述第二向量提取模块具体用于:
获取所述注意力机制层生成的注意力地图;
根据所述注意力地图,确定所述特征向量中的全局向量对各局部向量的注意力;
根据注意力从大到小的顺序保留所述特征向量中预设比例的局部向量。
11.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
CN202210102561.7A 2022-01-27 2022-01-27 图像分类方法、图像分类模型的训练方法及装置 Active CN114418030B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210102561.7A CN114418030B (zh) 2022-01-27 2022-01-27 图像分类方法、图像分类模型的训练方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210102561.7A CN114418030B (zh) 2022-01-27 2022-01-27 图像分类方法、图像分类模型的训练方法及装置

Publications (2)

Publication Number Publication Date
CN114418030A CN114418030A (zh) 2022-04-29
CN114418030B true CN114418030B (zh) 2024-04-23

Family

ID=81279852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210102561.7A Active CN114418030B (zh) 2022-01-27 2022-01-27 图像分类方法、图像分类模型的训练方法及装置

Country Status (1)

Country Link
CN (1) CN114418030B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115147669B (zh) * 2022-06-24 2023-04-18 北京百度网讯科技有限公司 基于视觉转换器模型的图像处理方法、训练方法和设备
CN115100509B (zh) * 2022-07-15 2022-11-29 山东建筑大学 基于多分支块级注意力增强网络的图像识别方法及系统
CN116051848B (zh) * 2023-02-10 2024-01-09 阿里巴巴(中国)有限公司 图像特征提取方法、网络模型、装置及设备
CN117036788B (zh) * 2023-07-21 2024-04-02 阿里巴巴达摩院(杭州)科技有限公司 图像分类方法、训练图像分类模型的方法及装置
CN116911954B (zh) * 2023-09-12 2024-01-05 深圳须弥云图空间科技有限公司 基于兴趣和流行度推荐物品的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110135406A (zh) * 2019-07-09 2019-08-16 北京旷视科技有限公司 图像识别方法、装置、计算机设备和存储介质
CN110580482A (zh) * 2017-11-30 2019-12-17 腾讯科技(深圳)有限公司 图像分类模型训练、图像分类、个性化推荐方法及装置
CN110598029A (zh) * 2019-09-06 2019-12-20 西安电子科技大学 基于注意力转移机制的细粒度图像分类方法
CN111325271A (zh) * 2020-02-18 2020-06-23 Oppo广东移动通信有限公司 图像分类方法及装置
CN113469283A (zh) * 2021-07-23 2021-10-01 山东力聚机器人科技股份有限公司 一种图像分类方法、图像分类模型的训练方法及设备
CN113674334A (zh) * 2021-07-06 2021-11-19 复旦大学 基于深度自注意力网络和局部特征编码的纹理识别方法
CN113723159A (zh) * 2021-02-26 2021-11-30 腾讯科技(深圳)有限公司 场景识别模型训练方法、场景识别方法及模型训练装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162799B (zh) * 2018-11-28 2023-08-04 腾讯科技(深圳)有限公司 模型训练方法、机器翻译方法以及相关装置和设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580482A (zh) * 2017-11-30 2019-12-17 腾讯科技(深圳)有限公司 图像分类模型训练、图像分类、个性化推荐方法及装置
CN110135406A (zh) * 2019-07-09 2019-08-16 北京旷视科技有限公司 图像识别方法、装置、计算机设备和存储介质
CN110598029A (zh) * 2019-09-06 2019-12-20 西安电子科技大学 基于注意力转移机制的细粒度图像分类方法
CN111325271A (zh) * 2020-02-18 2020-06-23 Oppo广东移动通信有限公司 图像分类方法及装置
CN113723159A (zh) * 2021-02-26 2021-11-30 腾讯科技(深圳)有限公司 场景识别模型训练方法、场景识别方法及模型训练装置
CN113674334A (zh) * 2021-07-06 2021-11-19 复旦大学 基于深度自注意力网络和局部特征编码的纹理识别方法
CN113469283A (zh) * 2021-07-23 2021-10-01 山东力聚机器人科技股份有限公司 一种图像分类方法、图像分类模型的训练方法及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Facial expression recognition with grid-wise attention and visual transformer;Qionghao Huang,Changqin Huang,Xizhe Wang,Fan Jiang;Information Sciences;20211130;第580卷;全文 *
基于集成迁移学习的细粒度图像分类算法;吴建;许镜;丁韬;;重庆邮电大学学报(自然科学版);20200615(第03期);全文 *

Also Published As

Publication number Publication date
CN114418030A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
CN114418030B (zh) 图像分类方法、图像分类模型的训练方法及装置
CN110175671B (zh) 神经网络的构建方法、图像处理方法及装置
WO2020228376A1 (zh) 文本处理方法、模型训练方法和装置
EP4064130A1 (en) Neural network model update method, and image processing method and device
US20220215227A1 (en) Neural Architecture Search Method, Image Processing Method And Apparatus, And Storage Medium
CN113688855A (zh) 数据处理方法、联邦学习的训练方法及相关装置、设备
CN111079532A (zh) 一种基于文本自编码器的视频内容描述方法
CN112639828A (zh) 数据处理的方法、训练神经网络模型的方法及设备
CN112308200A (zh) 神经网络的搜索方法及装置
CN110222718B (zh) 图像处理的方法及装置
AU2021354030B2 (en) Processing images using self-attention based neural networks
CN115512005A (zh) 一种数据处理方法及其装置
US20240046067A1 (en) Data processing method and related device
WO2023125628A1 (zh) 神经网络模型优化方法、装置及计算设备
CN114612902A (zh) 图像语义分割方法、装置、设备、存储介质及程序产品
US20220222934A1 (en) Neural network construction method and apparatus, and image processing method and apparatus
CN117217280A (zh) 神经网络模型优化方法、装置及计算设备
CN114861859A (zh) 神经网络模型的训练方法、数据处理方法及装置
CN113128285A (zh) 一种处理视频的方法及装置
EP3588441A1 (en) Imagification of multivariate data sequences
CN115115910A (zh) 图像处理模型的训练方法、使用方法、装置、设备及介质
CN117058498B (zh) 分割图评估模型的训练方法、分割图的评估方法及装置
US11983903B2 (en) Processing images using self-attention based neural networks
Vasilyev et al. Classification via compressed latent space
CN116127301A (zh) 模型的训练方法、数据处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant