会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 视觉识别系统 / 视觉识别模型训练、视觉识别方法、系统、终端及介质

视觉识别模型训练、视觉识别方法、系统、终端及介质

申请号 CN202410147519.6 申请日 2024-02-02 公开(公告)号 CN117689961A 公开(公告)日 2024-03-12
申请人 深圳大学; 人工智能与数字经济广东省实验室(深圳); 发明人 黄惠; 李梦柯; 刘烨;
摘要 本发明公开了一种视觉识别模型训练、视觉识别方法、系统、终端及介质,通过使用可训练的视觉提示词来微调预训练的视觉Transformer模型,使用随机锐度感知最小化方法更新视觉识别模型的模型参数,平衡地提升视觉识别模型在头类和尾类上的泛化能力。将提示词信息与视觉Transformer模型输出的类编码信息进行融合,充分利用提示词信息来提升模型的分类性能。训练好的视觉识别模型对长尾分布数据的识别精度较高。
权利要求

1.视觉识别模型训练方法,所述视觉识别模型中设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器,所述视觉提示词被配置为采用视觉提示词微调方法插入在所述视觉Transformer模型中,其特征在于,所述训练方法包括:基于呈长尾分布的图片数据集,获取训练数据;

生成随机扰动向量,基于所述随机扰动向量和所述视觉识别模型,获得扰动后模型;

将所述训练数据输入所述扰动后模型,获得所述扰动后模型中的视觉Transformer模型的最后一层输出的类编码信息;

将所述扰动后模型中的视觉Transformer模型的视觉提示词与所述类编码信息进行融合,获得融合信息;

将所述融合信息输入所述扰动后模型中的线性分类器,获得分类结果,根据所述分类结果获得所述扰动后模型的损失值,并根据所述损失值计算梯度值;

根据所述梯度值更新所述视觉识别模型的模型参数,重新获取训练数据进行迭代训练直至所述视觉识别模型收敛,获得已训练的视觉识别模型。

2.如权利要求1所述的视觉识别模型训练方法,其特征在于,所述生成随机扰动向量,包括:采用高斯分布随机采样,获得随机向量;

将所述随机向量与预设扰动半径相乘,获得所述随机扰动向量。

3.如权利要求1所述的视觉识别模型训练方法,其特征在于,所述将所述扰动后模型中的视觉Transformer模型的视觉提示词与所述类编码信息进行融合,获得融合信息,包括:基于所述扰动后模型中的视觉Transformer模型的最后一层输入的视觉提示词,获得提示词信息;

将所述提示词信息与所述类编码信息进行融合,获得所述融合信息。

4.如权利要求1所述的视觉识别模型训练方法,其特征在于,所述基于所述随机扰动向量和所述视觉识别模型,获得扰动后模型,包括:基于所述随机扰动向量和所述视觉识别模型的模型参数,获得扰动后参数;

根据所述扰动后参数和所述视觉识别模型,获得所述扰动后模型。

5.长尾视觉识别方法,其特征在于,包括:

预先构建设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器的视觉识别模型,并采用如权利要求1‑4任意一项所述的视觉识别模型训练方法训练所述视觉识别模型,获得已训练的视觉识别模型;

将待识别的图片输入所述已训练的视觉识别模型进行识别操作,获得识别结果。

6.视觉识别模型训练系统,所述视觉识别模型中设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器,所述视觉提示词被配置为采用视觉提示词微调方法插入在所述视觉Transformer模型中,其特征在于,所述系统包括:数据加载模块,用于基于呈长尾分布的图片数据集,获取训练数据;

扰动后模型构建模块,用于生成随机扰动向量,基于所述随机扰动向量和所述视觉识别模型,获得扰动后模型;

提示词信息融合模块,用于将所述训练数据输入所述扰动后模型,获得所述扰动后模型中的视觉Transformer模型的最后一层输出的类编码信息,将所述扰动后模型中的视觉Transformer模型的视觉提示词与所述类编码信息进行融合,获得融合信息;

梯度值计算模块,用于将所述融合信息输入所述扰动后模型中的所述线性分类器,获得分类结果,根据所述分类结果获得所述扰动后模型的损失值,并根据所述损失值计算梯度值;

模型训练模块,用于根据所述梯度值更新所述视觉识别模型的模型参数,重新获取训练数据进行迭代训练直至所述视觉识别模型收敛,获得已训练的视觉识别模型。

7.如权利要求6所述的视觉识别模型训练系统,其特征在于,所述扰动后模型构建模块包括随机扰动向量生成单元,所述随机扰动向量生成单元用于采用高斯分布随机采样,获得随机向量,将所述随机向量与预设扰动半径相乘,获得所述随机扰动向量。

8.如权利要求6所述的视觉识别模型训练系统,其特征在于,所述视觉识别模型的模型参数包括所述线性分类器的参数、所述视觉提示词的参数和所述视觉Transformer模型的参数,训练时需更新的参数为:所述线性分类器的参数和所述视觉提示词的参数。

9.智能终端,其特征在于,所述智能终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的长尾视觉识别程序,所述长尾视觉识别程序被所述处理器执行时实现如权利要求5所述长尾视觉识别方法的步骤。

10.计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有长尾视觉识别程序,所述长尾视觉识别程序被处理器执行时实现如权利要求5所述长尾视觉识别方法的步骤。

说明书全文

视觉识别模型训练、视觉识别方法、系统、终端及介质

技术领域

[0001] 本发明涉及计算机视觉技术领域,尤其涉及的是一种视觉识别模型训练、视觉识别方法、系统、终端及介质。

背景技术

[0002] 现实世界的数据大多服从长尾分布,即少量的常见类别(头类)囊括了数据集的大部分样本,而大量的稀有类别(尾类)只拥有极少的数据。这种数据分布不平衡的问题使得视觉识别模型倾向于优先正确分类头类而在尾类上的表现极差,故而严重限制了视觉识别模型的性能。
[0003] 针对长尾分布的数据,目前主要采用类别重采样、重加权等重平衡方法以及调整分类的决策边界使尾类得到更大的决策边界等方法训练视觉识别模型,提升长尾视觉识别任务上的性能。然而,这些方法在提升视觉识别模型对尾类的分类性能时会牺牲头类的分类精度,导致视觉识别模型对长尾分布数据的识别精度不高。

发明内容

[0004] 本发明的主要目的在于提供一种视觉识别模型训练方法及训练系统、长尾视觉识别方法、智能终端及存储介质,能够解决目前视觉识别模型对长尾分布数据的识别精度不高的问题。
[0005] 为了实现上述目的,本发明第一方面提供一种视觉识别模型训练方法,所述视觉识别模型中设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器,所述视觉提示词被配置为采用视觉提示词微调方法插入在所述视觉Transformer模型中,所述训练方法包括:基于呈长尾分布的图片数据集,获取训练数据;
生成随机扰动向量,基于所述随机扰动向量和所述视觉识别模型,获得扰动后模型;
将所述训练数据输入所述扰动后模型,获得所述扰动后模型中的视觉
Transformer模型的最后一层输出的类编码信息;
将所述扰动后模型中的视觉Transformer模型的视觉提示词与所述类编码信息进行融合,获得融合信息;
将所述融合信息输入所述扰动后模型中的线性分类器,获得分类结果,根据所述分类结果获得所述扰动后模型的损失值,并根据所述损失值计算梯度值;
根据所述梯度值更新所述视觉识别模型的模型参数,重新获取训练数据进行迭代训练直至所述视觉识别模型收敛,获得已训练的视觉识别模型。
[0006] 可选的,所述生成随机扰动向量,包括:采用高斯分布随机采样,获得随机向量;
将所述随机向量与预设扰动半径相乘,获得所述随机扰动向量。
[0007] 可选的,所述将所述扰动后模型中的视觉Transformer模型的视觉提示词与所述类编码信息进行融合,获得融合信息,包括:基于所述扰动后模型中的视觉Transformer模型的最后一层输入的视觉提示词,获得提示词信息;
将所述提示词信息与所述类编码信息进行融合,获得所述融合信息。
[0008] 可选的,所述基于所述随机扰动向量和所述视觉识别模型,获得扰动后模型,包括:基于所述随机扰动向量和所述视觉识别模型的模型参数,获得扰动后参数;
根据所述扰动后参数和所述视觉识别模型,获得所述扰动后模型。
[0009] 本发明第二方面提供一种长尾视觉识别方法,其中,上述方法包括:预先构建设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器的视觉识别模型,采用任意一项上述的视觉识别模型训练方法训练所述视觉识别模型,获得已训练的视觉识别模型;
将待识别的图片输入所述已训练的视觉识别模型,获得识别结果。
[0010] 本发明第三方面提供一种视觉识别模型训练系统,所述视觉识别模型中设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器,所述视觉提示词被配置为采用视觉提示词微调方法插入在所述视觉Transformer模型中,其中,上述系统包括:数据加载模块,用于基于呈长尾分布的图片数据集,获取训练数据;
扰动后模型构建模块,用于生成随机扰动向量,基于所述随机扰动向量和所述视觉识别模型,获得扰动后模型;
提示词信息融合模块,用于将所述训练数据输入所述扰动后模型,获得所述扰动后模型中的视觉Transformer模型的最后一层输出的类编码信息,将所述扰动后模型中的视觉Transformer模型的视觉提示词与所述类编码信息进行融合,获得融合信息;
梯度值计算模块,用于将所述融合信息输入所述扰动后模型中的所述线性分类
器,获得分类结果,根据所述分类结果获得所述扰动后模型的损失值,并根据所述损失值计算梯度值;
模型训练模块,用于根据所述梯度值更新所述视觉识别模型的模型参数,重新获取训练数据进行迭代训练直至所述视觉识别模型收敛,获得已训练的视觉识别模型。
[0011] 可选的,所述扰动后模型构建模块包括随机扰动向量生成单元,所述随机扰动向量生成单元用于采用高斯分布随机采样,获得随机向量,将所述随机向量与预设扰动半径相乘,获得所述随机扰动向量。
[0012] 可选的,所述视觉识别模型的模型参数包括所述线性分类器的参数、所述视觉提示词的参数和所述视觉Transformer模型的参数,训练时需更新的参数为:所述线性分类器的参数和所述视觉提示词的参数。
[0013] 本发明第四方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的长尾视觉识别程序,上述长尾视觉识别程序被上述处理器执行时实现任意一项上述长尾视觉识别方法的步骤。
[0014] 本发明第五方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有长尾视觉识别程序,上述长尾视觉识别程序被处理器执行时实现任意一项上述长尾视觉识别方法的步骤。
[0015] 由上可见,本发明通过使用可训练的视觉提示词来微调预训练的视觉Transformer模型,使用随机锐度感知最小化方法更新视觉识别模型的模型参数,平衡地提升视觉识别模型在头类和尾类上的泛化能力;将视觉提示词与视觉Transformer模型输出的分类编码进行融合,利用提示词信息来提升模型的分类性能,已训练好的视觉识别模型对长尾分布数据的识别精度较高。

附图说明

[0016] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0017] 图1是本发明实施例提供的视觉识别模型训练方法流程示意图;图2是长尾数据分类精度对比示意图;
图3是本发明实施例提供的视觉识别模型训练系统的结构示意图;
图4是本发明实施例提供的一种智能终端的内部结构原理框图。

具体实施方式

[0018] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0019] 应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0020] 还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0021] 还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0022] 如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0023] 下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0024] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0025] 针对目前已训练的视觉识别模型对长尾分布数据的识别精度不高的问题,为了提升视觉识别模型在长尾视觉识别任务上的性能,本发明采用VPT(Visual Prompt Tuning:视觉提示词微调)微调预训练的视觉Transformer模型,将提示词信息与视觉Transformer模型输出的分类编码进行融合,最大化利用VPT学习到的知识,提升长尾视觉识别任务时视觉识别模型的分类性能;在对视觉识别模型的参数进行梯度更新时使用随机锐度最小化方法,使得训练优化时平衡地提升对头类和尾类的优化效果,能够提升视觉识别模型对长尾分布数据的识别精度。
[0026] 本发明实施例提供了一种视觉识别模型训练方法,运行在电脑终端、服务器、移动终端等各种电子设备上。视觉识别模型包括三个部分:预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器。采用视觉提示词微调方法将视觉提示词插入在预训练的视觉Transformer模型中,最后连接线性分类器,就可以构建出视觉识别模型。
[0027] 如图1所示,本实施例具体包括如下步骤:步骤S100:基于呈长尾分布的图片数据集,获取训练数据;
采集呈长尾分布的图片数据集或者从公开的图片数据集中筛选出一部分呈长尾
分布的图片数据集,从这些呈长尾分布的图片数据集中随机采样一个小批量数据,作为训练数据。
[0028] 步骤S200:生成随机扰动向量,基于随机扰动向量和视觉识别模型,获得扰动后模型;采用VPT微调,虽然视觉识别模型的分类性能得到显著提升,但是在长尾问题下,对不同类别的分类精度仍然十分不平衡。要想提升VPT在长尾视觉识别任务上的微调性能,尤其是尾类的性能,就需要提升视觉识别模型本身的泛化能力。
[0029] SAM(Sharpness‑Aware Minimization:锐度感知最小化)是一种广泛用于提升模型性能的优化技术,其核心思想是使得损失平面变得平坦,从而提高模型的泛化能力。该算法有两个步骤:第一步利用梯度方向计算扰动向量 ,具体公式为:,(1)
其中, 为扰动半径, 为损失函数关于 的梯度, 为
损失函数关于 的梯度的L2范数。
[0030] 第二步计算扰动后模型的梯度,并以此梯度进行梯度下降更新模型参数,具体公式为:,(2)
其中, 为 轮的模型参数, 为第 轮的模型参数, 为第 轮的学习
率, 为损失函数关于 的扰动梯度, 为正则化项,用于防止过拟合。
[0031] 参考公式(1),SAM第一步利用梯度方向计算扰动向量 ,当数据呈现长尾分布时,头类样本远远多于尾类样本,此时利用梯度计算出的扰动向量 会由头类主导,导致在第二步中利用公式(2)进行模型参数的梯度更新时,头类的优化效果会更好,尾类却几乎没有提升。也就是说,SAM在平衡的数据集上有非常好的优化效果,但是在长尾分布的任务上,对样本充足的头类有很好的优化效果,对于只占有少量样本的尾类却几乎起不到优化作用。因此,在长尾任务下,目前的SAM优化方法在优化模型时仍会使得头类优化效果显著而忽略了尾类。
[0032] 为了避免扰动向量 由头类主导而忽略了尾类的情况,平衡地作用于头类和尾类,本实施例提出了一种随机锐度感知最小化方法,不依赖于特定样本,即引入随机扰动向量,不需要像原来的SAM一样通过梯度计算扰动向量。得到的扰动向量不依赖于特定样本,能够平衡地提升头类和尾类的优化效果。
[0033] 具体地,从一个均值为 、方差为 的高斯分布中随机采样出一个随机向量 ,然后乘以一个预设扰动半径 ,得到了不依赖于样本的随机扰动向量 。具体公式为:。
[0034] 由公式(1)可以看出,SAM在计算扰动时需要一次前向传播和反向传播,增加了计算的时间,而本实施例将随机扰动向量应用在SAM方法上(称为RSAM:随机锐度感知最小化),减少了额外计算梯度的时间,也获得了对各类更平衡的扰动。
[0035] 经实践测试,参考图2,在长尾任务上,与SAM方式相比,RSAM能更加平衡地提升各类别的分类精度,尤其是对尾部类也具有很好的优化效果。
[0036] 本实施例训练视觉识别模型的过程与常规训练过程不同,每开始一轮训练时,先保存视觉识别模型的模型参数,然后将随机扰动向量施加在视觉识别模型的模型参数上,形成扰动后模型,训练过程中的前向传播和反向传播都是在扰动后模型上进行的,根据扰动后模型的损失值计算出梯度值后,再使用保存的模型参数复原这一轮训练开始时的视觉识别模型,然后根据梯度值更新视觉识别模型的参数,实现视觉识别模型的本轮更新。
[0037] 在一个示例中,每开始一轮训练时,生成随机扰动向量后,将随机扰动向量与视觉识别模型的模型参数相加,获得扰动后参数,将视觉识别模型的模型架构与扰动后参数相结合,获得扰动后模型。相当于根据视觉识别模型重新构建了一个新的扰动后模型,并使用新的扰动后模型进行前向传播和反向传播,然后根据扰动后模型计算出的梯度值更新视觉识别模型的参数,实现视觉识别模型的本轮更新。
[0038] 本实施例中,视觉识别模型的模型参数包括:线性分类器的参数、提示词的参数和视觉Transformer的参数。在迁移学习过程中,视觉Transformer的参数是被冻结住的,需要更新的模型参数包括两个部分:线性分类器的参数和提示词的参数。因此在施加扰动的时候只需要对需要更新的两部分模型参数进行扰动即可得到扰动后模型。
[0039] 具体地,假定训练到第 轮时的视觉识别模型的参数记为 ,根据得到的随机扰动向量 ,计算出扰动后的模型参数 (即扰动后模型的模型参数)。具体公式为:。(3)
步骤S300:将训练数据输入扰动后模型,获得扰动后模型中的视觉Transformer模型的最后一层输出的类编码信息;
视觉识别模型用于图像分类、对象检测、图像分割、人脸识别等任务,可以理解和处理视觉信息,实现自动化的图像分析和理解。近几年,预训练的视觉Transformer模型(Vision Transformer:ViT)在计算机视觉和视觉识别领域展现出了巨大潜力,通过对经大规模图像数据集预训练的视觉Transformer模型进行微调,能够显著提升长尾分布数据的视觉分类效果。因此,本实施例的视觉识别模型中采用了预训练的视觉Transformer模型。
[0040] VPT(Visual Prompt Tuning:视觉提示词微调)是一种微调预训练ViT模型的方式,该方式引入可训练的视觉提示词,从而将预训练获得的知识迁移到新的数据集(即用来进行迁移训练的呈长尾分布的图片数据集)上,VPT新引入的视觉提示词会同输入图像划分成的patch(图像块)一起送入ViT的块中做注意力计算,VPT新引入的视觉提示词会编码新数据集上特定的信息,相当于给ViT中的注意力机制额外引入与新的数据集相关的特征向量。
[0041] VPT有两种:VPT‑Shallow(Visual Prompt Tuning Shallow:视觉提示词微调浅层版本)只在ViT模型第一层插入视觉提示词;VPT‑Deep(Visual Prompt Tuning Deep:视觉提示词微调深层版本)在ViT模型的每一层都插入视觉提示词。
[0042] 本实施例采用了VPT‑Deep,可表示为:,(4)
其中, 是可训练的视觉提示词, 是类编码, 代
表输入图像划分成 个图像块之后的编码。 表示预训练ViT模型的第 层。
[0043] 将训练数据输入已插入视觉提示词的扰动后模型后,在扰动后模型中的ViT模型的每一层进行前向传播,传播到最后一层,输出类编码,得到类编码信息 。
[0044] 步骤S400:将扰动后模型中的视觉Transformer模型的视觉提示词与类编码信息进行融合,获得融合信息;参考公式(4),目前使用VPT方式微调扰动后模型中的预训练模型时,输入的图像经过模型编码之后,只将最后一层输出的 作为特征送入线性分类器中进行分类,而可训练的视觉提示词中含有大量在长尾任务中新学到的信息却没有利用上。为了最大化利用VPT学习到的知识,提升分类精度,本发明通过在扰动后模型中的视觉Transformer模型的至少一层中提取到提示词信息,然后将提示词信息与类编码信息进行加权融合,获得融合信息,使得线性分类器能够根据特征更加丰富的融合信息得到更好的分类效果。
[0045] 具体地,本实施例获取扰动后模型中的ViT模型的最后一层输入的视觉提示词,得到提示词信息,再将该提示词信息融入类编码信息 中,获得融合信息。需要强调的是,也可以从扰动后模型中的ViT模型中其他层提取提示词信息,还可以将不止一层的视觉提示词进行融合,即可以选取多个层的视觉提示词得到提示词信息,然后融入类编码信息中。
[0046] 提示词信息和类编码信息融合的表达式为:,(5)
其中, 和 两个超参数为控制融合的比例, 表示最后一层得到的提示
词信息, 表示最后一层输出的类编码信息,Merge操作表示按照 和 设定的比例,将 中的提示词与类编码信息 相加,得到最终用于分类的融合信息 。
[0047] 在一个实施例中,视觉提示词先经过MLP(多头感知层)或注意力层转化,得到提示词信息后再与类编码信息融合。
[0048] 通过将视觉提示词的信息融合进类编码信息 中后,再将 送入线性分类器中进行分类,能够有效地提升分类精度。
[0049] 步骤S500:将融合信息输入扰动后模型中的线性分类器,获得分类结果,根据分类结果获得扰动后模型的损失值,并根据损失值计算梯度值;步骤S600:根据梯度值更新视觉识别模型的模型参数,重新获取训练数据进行迭代训练直至视觉识别模型收敛,获得已训练的视觉识别模型。
[0050] 将融合信息 输入线性分类器,线性分类器输出分类结果,如图片的类别,计算输出的分类结果和预先标注的标签之间距离,获得扰动后模型的损失值。其中,计算扰动后模型的损失值的方法不做限制,为本领域的常规技术手段,在此不再赘述。
[0051] 根据扰动后模型的模型参数和损失值,采用常规的梯度下降算法就可以计算出梯度值,再根据梯度值更新视觉识别模型的模型参数。需要说明的是,实际上只需要计算扰动后模型中提示词参数的梯度、线性分类器参数的梯度,然后利用梯度相应地更新视觉识别模型中的VPT和线性分类器,得到新的VPT和线性分类器,这二者与冻结住的ViT组成更新后的视觉识别模型,然后从步骤S100开始执行,重新获取另一批训练数据训练更新后的视觉识别模型,如此进行迭代训练。当视觉识别模型收敛时,结束运行,获得已训练的视觉识别模型。
[0052] 具体地,基于扰动后的模型的模型参数 计算梯度,根据梯度更新原来的视觉识别模型的参数 ,得到第 +1轮时的视觉识别模型的参数 ,具体公式为:,(6)
其中, 为第 轮的学习率, 为关于 的梯度值,是扰动后模型
反向传播得到的梯度值。
[0053] 综上所述,本实施例的训练过程为:从长尾分布的训练集中随机采样一个小批量数据。随机采样高斯分布生成随机扰动向量,并基于随机扰动向量得到扰动后的模型。将采样的小批量数据送入扰动后的模型按照如下过程进行前向传播:将采样的数据送入已经插入了可训练提示词的预训练视觉Transformer模型中进行前向传播,直至从模型的最后一层输出。从模型的输出中选取类编码信息 ,将最后一层的提示词信息融合进类编码信息 中,再将融合了提示词信息的类编码信息 送入线性分类器中,根据线性分类器的输出和对应的标签得到本轮训练的损失。根据损失计算梯度。然后还原到扰动之前的模型,并根据梯度更新线性分类器参数和VPT中可训练提示词的参数,得到本轮迭代后的模型。不断重复进行多轮上述过程,直至模型收敛。
[0054] 通过使用VPT方式来微调预训练视觉Transformer模型,在视觉Transformer模型的每一层插入可训练的提示词,利用提示词来提高模型的分类性能;然后采用随机锐度最小化方法通过扰动后模型的梯度更新这些可训练的提示词和线性分类器,弥补SAM在长尾任务上的不足,平衡地提升模型在头类和尾类上的泛化能力;通过采用上述两种手段最终提升了已训练的视觉Transformer模型对长尾分布数据的识别精度。
[0055] 需要说明的是,得到的已训练视觉识别模型,不仅可以用于长尾分布数据,也可以用于均衡分布的数据。
[0056] 对应于上述视觉识别模型训练方法,本发明实施例还提供一种长尾视觉识别方法,预先构建好设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器的视觉识别模型,然后采用上述的视觉识别模型训练方法对视觉识别模型进行训练,获得已训练的视觉识别模型,再使用该已训练的视觉识别模型对待识别的图片进行识别操作,获得识别结果。其中,识别操作可以是图像分类、对象检测、图像分割、人脸识别等各种常规的图像识别、图像分类等操作,识别结果与识别操作相对应。
[0057] 如图3所示,对应于上述视觉识别模型训练方法,本发明实施例还提供一种视觉识别模型训练系统,所述视觉识别模型中设有预训练的视觉Transformer模型、可训练的视觉提示词和线性分类器,所述视觉提示词被配置为采用视觉提示词微调方法插入在所述视觉Transformer模型中,上述系统包括:数据加载模块600,用于基于呈长尾分布的图片数据集,获取训练数据;
扰动后模型构建模块610,用于生成随机扰动向量,基于所述随机扰动向量和所述视觉识别模型,获得扰动后模型;
提示词信息融合模块620,用于将所述训练数据输入所述扰动后模型,获得所述扰动后模型中的视觉Transformer模型的最后一层输出的类编码信息,将所述扰动后模型中的视觉Transformer模型的视觉提示词与所述类编码信息进行融合,获得融合信息;
梯度值计算模块630,用于将所述融合信息输入所述扰动后模型中的所述线性分类器,获得分类结果,根据所述分类结果获得所述扰动后模型的损失值,并根据所述损失值计算梯度值;
模型训练模块640,用于根据所述梯度值更新所述视觉识别模型的模型参数,重新获取训练数据进行迭代训练直至所述视觉识别模型收敛,获得已训练的视觉识别模型。
[0058] 可选的,所述扰动后模型构建模块包括随机扰动向量生成单元,所述随机扰动向量生成单元用于采用高斯分布随机采样,获得随机向量,将所述随机向量与预设扰动半径相乘,获得所述随机扰动向量。
[0059] 可选的,所述视觉识别模型的模型参数包括所述线性分类器的参数、所述视觉提示词的训练参数和所述视觉Transformer模型的参数,训练时需更新的参数为:所述线性分类器的参数和所述视觉提示词的参数。
[0060] 具体的,本实施例中,上述视觉识别模型训练系统的各模块的具体功能可以参照上述视觉识别模型训练方法中的对应描述,在此不再赘述。
[0061] 基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图4所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和长尾视觉识别程序。该内存储器为非易失性存储介质中的操作系统和长尾视觉识别程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该长尾视觉识别程序被处理器执行时实现上述任意一种长尾视觉识别方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
[0062] 本领域技术人员可以理解,图4中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0063] 本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有长尾视觉识别程序,上述长尾视觉识别程序被处理器执行时实现本发明实施例提供的任意一种长尾视觉识别方法的步骤。
[0064] 应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0065] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0066] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0067] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0068] 在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0069] 上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
[0070] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。