一种图像分类方法、装置、存储介质及终端与流程

文档序号:30061431发布日期:2022-05-17 23:42阅读:170来源:国知局
一种图像分类方法、装置、存储介质及终端与流程

1.本发明涉及机器学习技术领域,特别涉及一种图像分类方法、装置、存储介质及终端。


背景技术:

2.随着机器学习的进步,基于训练得到的图像分类模型,能够根据图像中的内容对图像进行分类。而对图像进行分类的精确度通常与图像分类模型的训练程度相关。
3.在现有技术中,当前在监督学习下的深度学习在很多任务上都获得了成功的进展,一般需要通过大规模的有标签数据进行预训练,然后再通过少量特定场景下的有标签数据对下游任务进行针对性训练。虽然此学习方式下的深度学习模型在特定任务上表现优异,但其需要相应场景的有标签数据才能进行训练,而数据的标注往往需要大量人力去参与,因此实际情况下仅有少部分数据可被标注并用于训练,大量无标签数据无法得到应用,进而导致模型容易陷入局部最优解,而非全局最优解,同时也造成了数据利用率低问题,从而降低了模型的分类精度。


技术实现要素:

4.本技术实施例提供了一种图像分类方法、装置、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
5.第一方面,本技术实施例提供了一种图像分类方法,方法包括:
6.获取待分类的目标图像;
7.将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;
8.输出目标图像对应的图像类别。
9.可选的,按照以下步骤生成预先训练的图像分类模型,包括:
10.获取数据集;其中,数据集包括无标签数据集和有标签数据集;
11.创建分类模型,并基于分类模型的模型参数构建编码器和动量编码器;
12.根据无标签数据集、编码器和动量编码器进行自监督学习,得到训练后的编码器;
13.将训练后的编码器的参数加载到分类模型上,并初始化分类模型的全连接层,得到第一分类模型;
14.将有标签数据集输入到第一分类模型进行监督学习,得到训练后的第一分类模型;
15.预处理训练后的第一分类模型,得到预处理后的第一分类模型;
16.将有标签数据集输入到预处理后的第一分类模型进行半监督学习,得到预先训练的图像分类模型。
17.可选的,根据无标签数据集、编码器和动量编码器进行自监督学习,得到训练后的编码器,包括:
18.初始化预设大小的队列;
19.将无标签数据集划分为多个子数据集;
20.在多个子数据集中确定出一个目标子数据集;
21.对目标子数据集进行图像变换,得到第一变换数据和第二变换数据;
22.将第一变换数据和第二变换数据分别输入到编码器和动量编码器中,输出第一嵌入式表征结果和第二嵌入式表征结果;
23.对第一嵌入式表征结果和第二嵌入式表征结果分别进行维度扩张,得到第一扩张结果和第二扩张结果;
24.根据第一扩张结果和第二扩张结果计算正样本特征相似度;
25.将队列中的特征进行置换后得到置换矩阵,并根据置换矩阵与第一嵌入式表征结果计算负样本特征相似度;
26.根据正样本特征相似度和负样本特征相似度计算自监督学习损失值,并当自监督学习损失值到达预设值时,得到训练后的编码器。
27.可选的,当自监督学习损失值到达预设值时,得到训练后的编码器,包括:
28.当自监督学习损失值未到达预设值时,根据自监督学习损失值对编码器进行反向传播,以更新编码器参数;
29.继续执行在多个子数据集中确定出一个目标子数据集的步骤,直到自监督学习损失值到达预设值。
30.可选的,预处理训练后的第一分类模型,得到预处理后的第一分类模型,包括:
31.确定训练后的第一分类模型的骨干网络和第一全连接层;
32.构建与第一全连接层结构相同的第二全连接层;
33.将第二全连接层连接在骨干网络的最后一层,得到第二分类模型;
34.将第二分类模型中的骨干网络和第一全连接层参数进行固定,并开启第二分类模型中的所有dropout层,得到预处理后的第一分类模型。
35.可选的,将有标签数据集输入到预处理后的第一分类模型进行半监督学习,得到预先训练的图像分类模型,包括:
36.将有标签数据输入到预处理后的第一分类模型中进行多次并行计算,输出多个第一目标预测值;
37.根据每个第一目标预测值计算第一均值和第一标准差,并根据第一均值和第一标准差计算半监督学习损失值;
38.当半监督学习损失值到达预设值时,得到第三分类模型;
39.开启第三分类模型中的第二全连接层中的dropout层;
40.关闭第三分类模型中的除第二全连接层之外其它层中的dropout层,得到预处理后的第三分类模型;
41.将无标签数据输入预处理后的第三分类模型中进行多次并行计算,输出多个第二
目标概率值和偶然不确定性参数;
42.根据每个第二目标概率值计算出第二均值和第二标准差;
43.根据偶然不确定性参数、第二均值和第二标准差得到伪标签数据集;
44.当伪标签符合预设多个条件时,将伪标签数据集加入有标签数据集中,得到目标数据集;
45.将目标数据集输入到第一分类模型进行监督学习,得到预先训练的图像分类模型。
46.可选的,当半监督学习损失值到达预设值时,得到第三分类模型,包括:
47.当半监督学习损失值未到达预设值时,继续执行将有标签数据输入到预处理后的第一分类模型中进行多次并行计算的步骤。
48.第二方面,本技术实施例提供了一种图像分类装置,装置包括:
49.图像获取模块,用于获取待分类的目标图像;
50.图像输入模块,用于将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;
51.类别输出模块,用于输出目标图像对应的图像类别。
52.第三方面,本技术实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
53.第四方面,本技术实施例提供一种终端,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
54.本技术实施例提供的技术方案可以包括以下有益效果:
55.在本技术实施例中,图像分类装置首先获取待分类的目标图像,然后将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;最后输出目标图像对应的图像类别。由于本技术先采用特定场景下的海量的无标签数据集对神经网络模型进行自监督学习,使模型尽可能“接触”到全局数据,以获得更全面的特征提取能力,然后利用特定且相同场景下少量有标签数据对预训练模型进行监督学习的方式对模型进一步调优,最后通过无标签数据集生成伪标签数据集,并结合有标签数据集对模型进一步训练,从而提升了无标签数据的利用率,使得模型的分类精度更高。
56.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
57.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
58.图1是本技术实施例提供的一种图像分类方法的流程示意图;
59.图2是本技术实施例提供的一种图像分类网络的训练方法的流程示意图;
60.图3是本技术实施例提供的一种图像分类网络的训练过程的过程示意框图;
61.图4是本技术实施例提供的一种图像分类装置的结构示意图;
62.图5是本技术实施例提供的一种终端的结构示意图。
具体实施方式
63.以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
64.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
65.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
66.在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
67.本技术提供了一种图像分类方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本技术提供的技术方案中,由于本技术先采用特定场景下的海量的无标签数据集对神经网络模型进行自监督学习,使模型尽可能“接触”到全局数据,以获得更全面的特征提取能力,然后利用特定且相同场景下少量有标签数据对预训练模型进行监督学习的方式对模型进一步调优,最后通过无标签数据集生成伪标签数据集,并结合有标签数据集对模型进一步训练,从而提升了无标签数据的利用率,使得模型的分类精度更高,下面采用示例性的实施例进行详细说明。
68.下面将结合附图1-附图3,对本技术实施例提供的图像分类方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的图像分类装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
69.请参见图1,为本技术实施例提供了一种图像分类方法的流程示意图。如图1所示,本技术实施例的方法可以包括以下步骤:
70.s101,获取待分类的目标图像;
71.在一种可能的实现方式中,待分类的目标图像为任意类型、任意格式、任意尺寸的图像,本技术实施例对此不加以限定。用户终端中存储有至少一张图像,用户终端可以直接在其存储空间中获取一张图像,将该图像确定为待分类的目标图像。用户终端还可以提供上传图像的入口,由用户基于该上传图像的入口上传一张图像,用户终端将用户上传的图像确定为待分类的目标图像。当然,还可以由其他方式获取待分类的目标图像,本技术实施
例对此不加以限定。
72.s102,将目标图像输入到预先训练的图像分类模型中;
73.其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的。
74.通常,自监督学习是一种模型训练方式,主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征;监督学习是一种从有标记的训练数据中推导出预测函数;半监督学习是利用少量带标签数据和大量无标签数据进行模型训练的机器学习方法。
75.在本技术实施例中,在生成预先训练的图像分类模型时,首先获取数据集;其中,数据集包括无标签数据集和有标签数据集,再创建分类模型,并基于分类模型的模型参数构建编码器和动量编码器,然后根据无标签数据集、编码器和动量编码器进行自监督学习,得到训练后的编码器,再将训练后的编码器的参数加载到分类模型上,并初始化分类模型的全连接层,得到第一分类模型,其次将有标签数据集输入到第一分类模型进行监督学习,得到训练后的第一分类模型,再预处理训练后的第一分类模型,得到预处理后的第一分类模型,最后将有标签数据集输入到预处理后的第一分类模型进行半监督学习,得到预先训练的图像分类模型。
76.在一种可能的实现方式中,用户终端在基于步骤s101得到待分类的目标图像后,用户终端从其存储空间中提取该目标图像分类模型,也即是用户终端获取到的预先训练的图像分类模型。该图像分类模型的训练过程以图2所示的实施例进行说明,在此不再赘述。
77.s103,输出目标图像对应的图像类别。
78.在一种可能的实现方式中,在基于目标图像分类模型对目标图像进行识别处理后,得到目标图像对应的多个参考类别以及各个参考类别的概率,可将概率值满足目标要求的参考类别,即概率最大的参考类别作为最终类别进行输出。
79.在本技术实施例中,图像分类装置首先获取待分类的目标图像,然后将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;最后输出目标图像对应的图像类别。由于本技术先采用特定场景下的海量的无标签数据集对神经网络模型进行自监督学习,使模型尽可能“接触”到全局数据,以获得更全面的特征提取能力,然后利用特定且相同场景下少量有标签数据对预训练模型进行监督学习的方式对模型进一步调优,最后通过无标签数据集生成伪标签数据集,并结合有标签数据集对模型进一步训练,从而提升了无标签数据的利用率,使得模型的分类精度更高。
80.请参见图2,为本技术实施例提供了一种图像分类模型训练方法的流程示意图。如图2所示,本技术实施例的方法可以包括以下步骤:
81.s201,获取数据集;其中,数据集包括无标签数据集和有标签数据集;
82.在一种可能的实现方式中,数据集为某特定场景下的大规模数据集d={dn,
l
},其
中dn为无标签数据集,d
l
为有标签数据,dn的样本数量sizen远大于d
l
的样本数量size
l

83.s202,创建分类模型,并基于分类模型的模型参数构建编码器和动量编码器;
84.在一种可能的实现方式中,首先创建分类模型m,该分类模型m由骨干网络b和全连接层fc组成,骨干网络负责提取样本特征,全连接层负责基于样本特征进行类别概率预测。然后初始化两个结构与分类模型m的骨干网络部分参数相同的模型,其中一个为编码器be,另一个为动量编码器b
me
,最后初始化一个大小为k的队列用于保存b
me
提取的嵌入式表征,表示为f
queue
∈r
k*c
,c为b
me
最后输出的通道维度。
85.s203,根据无标签数据集、编码器和动量编码器进行自监督学习,得到训练后的编码器;
86.在本技术实施例中,进行自监督学习时,首先将无标签数据集划分为多个子数据集,并在多个子数据集中确定出一个目标子数据集,然后对目标子数据集进行图像变换,得到第一变换数据和第二变换数据,再将第一变换数据和第二变换数据分别输入到编码器和动量编码器中,输出第一嵌入式表征结果和第二嵌入式表征结果,其次对第一嵌入式表征结果和第二嵌入式表征结果分别进行维度扩张,得到第一扩张结果和第二扩张结果,再根据第一扩张结果和第二扩张结果计算正样本特征相似度,并将队列中的特征进行置换后得到置换矩阵,并根据置换矩阵与第一嵌入式表征结果计算负样本特征相似度,最后根据正样本特征相似度和负样本特征相似度计算自监督学习损失值,并当自监督学习损失值到达预设值时,得到训练后的编码器。
87.进一步地,当自监督学习损失值未到达预设值时,根据自监督学习损失值对编码器进行反向传播,以更新编码器参数,并继续执行在多个子数据集中确定出一个目标子数据集的步骤,直到自监督学习损失值到达预设值。
88.在一种可能的实现方式中,将无标签数据集dn随机分成多个相同大小的子数据集x,对模型进行最小批次训练,每计算完一个子数据集x,模型则对参数进行一次更新。
89.在x输入至模型之前,需要先使用任意两种不同的图像增强(如水平翻转,垂直翻转,对比度调整,亮度调整,裁剪等等)对x进行图像变换,分别得到xq和xk,公式可表示为xq=aug0(x),xk=aug1(x),aug0和aug1分别代表两种随机且不同的图像增强操作。其中,第i个样本xi与基于其进行增强的样本和相互视为正样本,与其余和(j≠i)样本相互视为负样本。
90.将xq和xk分别输入至be和b
me
,分别得到嵌入式表征和fk∈r
n*c
,其中n为子数据集样本数量,c表示be和b
me
最后输出的通道维度,公式可表示为fq=be(xq),fk=b
me
(xk)。
91.对fq和fk进行维度扩张,得到f
′q∈r
n*1*c
和f
′k∈r
n*c*1
,公式可表示为f
′q=expdim(fq,1),f
′k=expdim(fk,2),expdim(input,dim)指维度扩展,input为需要扩展的张量,dim是指扩展维度的位置(从0开始)。
92.计算f
′q·f′k得到正样本特征相似度s
positive
∈r
n*1
,公式可表示为s
positive
=f
′q·f′k;计算fq·fqueuet
得到负样本特征相似度s
negative
∈r
n*k
,公式可表示为s
negative
=fq·fqueuet
,f
queuet
表示将队列中的特征矩阵进行转置操作。
93.基于s
positive
和s
negative
结合infonce损失函数计算出自监督学习损失值l,计算公
式为:τ是温度设定值,根据不同情况进行自行设定;损失值l仅对be进行梯度反向传播更新参数,公式为α为动量控制因子,一般设定值近似于1,b
me
则采用动量更新方式更新其参数,公式为最后把f
queue
中最旧的表征删除,并将当前fk放入其中;在自监督学习损失值l未到达预设值时,继续选择一个子数据集x进行训练,直到自监督学习损失值l到达预设值,即模型训练收敛完成,最后将训练后的编码器作为预训练骨干模型b
pre

94.s204,将训练后的编码器的参数加载到分类模型上,并初始化分类模型的全连接层,得到第一分类模型;
95.在一种可能的实现方式中,在得到预训练骨干模型b
pre
后,将b
pre
的参数加载到分类模型m的骨干网络b上,然后初始化分类模型m的全连接层参数,最终得到第一分类模型。
96.s205,将有标签数据集输入到第一分类模型进行监督学习,得到训练后的第一分类模型;
97.在一种可能的实现方式中,在得到第一分类模型后,可将有标签数据集输入到第一分类模型中,输出监督学习损失值,当监督学习损失值到达预设阈值时,进入步骤s206,否则继续执行将有标签数据集输入到第一分类模型中的步骤。
98.具体的,利用有标签数据d
l
,按照传统的有监督学习方法对分类模型m进行调优,直至收敛,最终得到调优后的分类模型m0。
99.s206,预处理训练后的第一分类模型,得到预处理后的第一分类模型;
100.在本技术实施例中,在预处理训练后的第一分类模型时,首先确定训练后的第一分类模型的骨干网络和第一全连接层,然后构建与第一全连接层结构相同的第二全连接层,再将第二全连接层连接在骨干网络的最后一层,得到第二分类模型,最后将第二分类模型中的骨干网络和第一全连接层参数进行固定,并开启第二分类模型中的所有dropout层,得到预处理后的第一分类模型。
101.在一种可能的实现方式中,在分类模型m0发骨干网络最后一层额外接上一个和全连接层fc结构相同的全连接层fc

,得到分类模型m
′0此fc

除了负责对类别概率进行预测,还需要输出偶然不确定性σ2;对m
′0中的骨干网络b和全连接层fc参数进行固定,所有dropout层开启。
102.s207,将有标签数据集输入到预处理后的第一分类模型进行半监督学习,得到预先训练的图像分类模型。
103.在本技术实施例中,在进行半监督学习时,首先将有标签数据输入到预处理后的第一分类模型中进行多次并行计算,输出多个第一目标预测值,再根据每个第一目标预测值计算第一均值和第一标准差,并根据第一均值和第一标准差计算半监督学习损失值,然后当半监督学习损失值到达预设值时,得到第三分类模型,再开启第三分类模型中的第二全连接层中的dropout层,其次关闭第三分类模型中的除第二全连接层之外其它层中的dropout层,得到预处理后的第三分类模型,再将无标签数据输入预处理后的第三分类模型中进行多次并行计算,输出多个第二目标概率值和偶然不确定性参数,并根据每个第二目标概率值计算出第二均值和第二标准差,以及根据偶然不确定性参数、第二均值和第二标
准差得到伪标签数据集,再当伪标签符合预设多个条件时,将伪标签数据集加入有标签数据集中,得到目标数据集,最后将目标数据集输入到第一分类模型进行监督学习,得到预先训练的图像分类模型。
104.进一步地,当半监督学习损失值未到达预设值时,继续执行将有标签数据输入到预处理后的第一分类模型中进行多次并行计算的步骤。
105.在一种可能的实现方式中,将有标签数据d
l
输入至m
′0中,m
′0并行计算t次,获得t个预测值,然后计算t个预测值的均值和标准差接着计算偶然不确定性损失函数la,最后通过梯度反向传播更新全连接层fc

;其中,偶然不确定性损失函数la为:
[0106][0107][0108]
其中,fw为网络参数为w时的输出,σw为偶然不确定性(相当于噪声),ε
t
为第t次模型预测时的服从的高斯噪声,其是模型本身具有的参数;t为模型预测次数,c和c

为类别。从以上损失函数可看到,在学习偶然不确定性σw时,是无需标签监督,其相当于一个自适应权重,会根据某个样本是否难以预测正确来调整自身大小。
[0109]
进一步地,完成m
′0的训练后,仅开启全连接层fc

中的dropout层,其余的dropout层关闭,然后将无标签数据dn输入至m
′0,并行计算t次。由于骨干网络b和全连接层fc的dropout是关闭了,因此全连接层fc输出t个类别预测概率y
fc
是相同的,而全连接层fc

输出t个类别预测概率y
fc

不相同,接着需要根据t个类别预测概率y
fc

计算出均值和标准差除此之外,全连接层fc

还输出偶然不确定性最终,根据此步中所有输出,得到伪标签,以及伪标签的不确定性(和伪标签的可靠性成反比),则可利用相关规则对伪标签进行判定伪标签是否用于下一轮训练。规则是:若签进行判定伪标签是否用于下一轮训练。规则是:若且且则将伪标签纳入下一轮的训练集中,否则不将其纳入;以上规则中的argmax(y)是找出最大类别概率的类别,ct为类别置信度阈值,ut是不确定性阈值。
[0110]
具体的,在伪标签生成时,首先,贝叶斯神经网络和当前主流的判定式神经网络在原理上有着非常明显的区别:判定式神经网络的优化目标是神经网络中的参数,目的是使得神经网络模型参数最优化;贝叶斯神经网络的优化目标是神经网络的参数分布,目的是将一个简单的参数分布在不断地优化过程中逼近神经网络的目标参数分布,其优化的对象不再是某一个参数,而是控制着神经网络参数分布的相关参数。例如,某模型中所使用的参数分布是高斯分布,那其优化的对象则为高斯分布中的均值μ和标准差σ。
[0111]
贝叶斯网络神经网络的定义也是基于贝叶斯推断公式贝叶斯网络神经网络的定义也是基于贝叶斯推断公式假定模型参数服从一个高斯先验分布同时给定观测数据集x={x0,...,xn},相应标注为y={y0,...,yn},可以使用贝叶斯推断计算模型参数的后验分布p(w|x,y),即模型的目标参数分布。对于分类任务,通常p(w|x,y)=softmax(fw(x)),其中fw为模型的输出。虽然贝叶斯神经网络容易定义,但是在推断过程中存在着困难,主要原因是真实数据的边缘
分布p(y|x)在现实世界里是几乎不可能计算得到的,因此目前的方案是通过近似方法来解决贝叶斯推断存在的问题。其中,dropout变分推断是一种常用的近似方法,经实验证明,dropout可使参数分布服从伯努利分布。此发明中将采用此mc-dropout(其中一种dropout变分推断方法)实现认知不确定性的计算。
[0112]
除此之外,此发明还涉及了贝叶斯网络神经网络中存在的两种不确定性,一种称之为偶然不确定性,是由于观测数据中的固有噪声导致的。这种不确定性是无法被消除的。另外一种称之为感知不确定性,与模型相关,是由于训练不完全导致的。如果给它更多的训练数据来弥补现有模型知识上的不足,这种不确定性从理论上来说是可以消除的。此发明通过结合两种不确定性,解决伪标签可靠性评估问题。
[0113]
例如图3所示,图3是本技术提供的一种图像分类模型训练过程的过程示意图,首先通过无标签数据进行基于对比学习的自监督学习,然后采用有标签数据进行监督学习,最后基于贝叶斯神经网络的半监督学习确定出伪标签数据,并将伪标签数据加入有标签数据中,继续进行下一轮有标签数据进行监督学习的步骤,最后得到预先训练的图像分类模型。
[0114]
在本技术实施例中,图像分类装置首先获取待分类的目标图像,然后将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;最后输出目标图像对应的图像类别。由于本技术先采用特定场景下的海量的无标签数据集对神经网络模型进行自监督学习,使模型尽可能“接触”到全局数据,以获得更全面的特征提取能力,然后利用特定且相同场景下少量有标签数据对预训练模型进行监督学习的方式对模型进一步调优,最后通过无标签数据集生成伪标签数据集,并结合有标签数据集对模型进一步训练,从而提升了无标签数据的利用率,使得模型的分类精度更高。
[0115]
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
[0116]
请参见图4,其示出了本发明一个示例性实施例提供的图像分类装置的结构示意图。该图像分类装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括图像获取模块10、图像输入模块20、类别输出模块30。
[0117]
图像获取模块10,用于获取待分类的目标图像;
[0118]
图像输入模块20,用于将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;
[0119]
类别输出模块30,用于输出目标图像对应的图像类别。
[0120]
需要说明的是,上述实施例提供的图像分类装置在执行图像分类方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像分类装置与图像分类方法实施例属于同一构思,
其体现实现过程详见方法实施例,这里不再赘述。
[0121]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0122]
在本技术实施例中,图像分类装置首先获取待分类的目标图像,然后将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;最后输出目标图像对应的图像类别。由于本技术先采用特定场景下的海量的无标签数据集对神经网络模型进行自监督学习,使模型尽可能“接触”到全局数据,以获得更全面的特征提取能力,然后利用特定且相同场景下少量有标签数据对预训练模型进行监督学习的方式对模型进一步调优,最后通过无标签数据集生成伪标签数据集,并结合有标签数据集对模型进一步训练,从而提升了无标签数据的利用率,使得模型的分类精度更高。
[0123]
本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的图像分类方法。
[0124]
本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的图像分类方法。
[0125]
请参见图5,为本技术实施例提供了一种终端的结构示意图。如图5所示,终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
[0126]
其中,通信总线1002用于实现这些组件之间的连接通信。
[0127]
其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
[0128]
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
[0129]
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
[0130]
其中,存储器1005可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功
能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及图像分类应用程序。
[0131]
在图5所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的图像分类应用程序,并具体执行以下操作:
[0132]
获取待分类的目标图像;
[0133]
将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;
[0134]
输出目标图像对应的图像类别。
[0135]
在一个实施例中,处理器1001在生成预先训练的图像分类模型时,具体执行以下操作:
[0136]
获取数据集;其中,数据集包括无标签数据集和有标签数据集;
[0137]
创建分类模型,并基于分类模型的模型参数构建编码器和动量编码器;
[0138]
根据无标签数据集、编码器和动量编码器进行自监督学习,得到训练后的编码器;
[0139]
将训练后的编码器的参数加载到分类模型上,并初始化分类模型的全连接层,得到第一分类模型;
[0140]
将有标签数据集输入到第一分类模型进行监督学习,得到训练后的第一分类模型;
[0141]
预处理训练后的第一分类模型,得到预处理后的第一分类模型;
[0142]
将有标签数据集输入到预处理后的第一分类模型进行半监督学习,得到预先训练的图像分类模型。
[0143]
在一个实施例中,处理器1001在执行根据无标签数据集、编码器和动量编码器进行自监督学习,得到训练后的编码器时,具体执行以下操作:
[0144]
初始化预设大小的队列;
[0145]
将无标签数据集划分为多个子数据集;
[0146]
在多个子数据集中确定出一个目标子数据集;
[0147]
对目标子数据集进行图像变换,得到第一变换数据和第二变换数据;
[0148]
将第一变换数据和第二变换数据分别输入到编码器和动量编码器中,输出第一嵌入式表征结果和第二嵌入式表征结果;
[0149]
对第一嵌入式表征结果和第二嵌入式表征结果分别进行维度扩张,得到第一扩张结果和第二扩张结果;
[0150]
根据第一扩张结果和第二扩张结果计算正样本特征相似度;
[0151]
将队列中的特征进行置换后得到置换矩阵,并根据置换矩阵与第一嵌入式表征结果计算负样本特征相似度;
[0152]
根据正样本特征相似度和负样本特征相似度计算自监督学习损失值,并当自监督
学习损失值到达预设值时,得到训练后的编码器。
[0153]
在一个实施例中,处理器1001在执行当自监督学习损失值到达预设值时,得到训练后的编码器时,具体执行以下操作:
[0154]
当自监督学习损失值未到达预设值时,根据自监督学习损失值对编码器进行反向传播,以更新编码器参数;
[0155]
继续执行在多个子数据集中确定出一个目标子数据集的步骤,直到自监督学习损失值到达预设值。
[0156]
在一个实施例中,处理器1001在执行预处理训练后的第一分类模型,得到预处理后的第一分类模型时,具体执行以下操作:
[0157]
确定训练后的第一分类模型的骨干网络和第一全连接层;
[0158]
构建与第一全连接层结构相同的第二全连接层;
[0159]
将第二全连接层连接在骨干网络的最后一层,得到第二分类模型;
[0160]
将第二分类模型中的骨干网络和第一全连接层参数进行固定,并开启第二分类模型中的所有dropout层,得到预处理后的第一分类模型。
[0161]
在一个实施例中,处理器1001在执行将有标签数据集输入到预处理后的第一分类模型进行半监督学习,得到预先训练的图像分类模型时,具体执行以下操作:
[0162]
将有标签数据输入到预处理后的第一分类模型中进行多次并行计算,输出多个第一目标预测值;
[0163]
根据每个第一目标预测值计算第一均值和第一标准差,并根据第一均值和第一标准差计算半监督学习损失值;
[0164]
当半监督学习损失值到达预设值时,得到第三分类模型;
[0165]
开启第三分类模型中的第二全连接层中的dropout层;
[0166]
关闭第三分类模型中的除第二全连接层之外其它层中的dropout层,得到预处理后的第三分类模型;
[0167]
将无标签数据输入预处理后的第三分类模型中进行多次并行计算,输出多个第二目标概率值和偶然不确定性参数;
[0168]
根据每个第二目标概率值计算出第二均值和第二标准差;
[0169]
根据偶然不确定性参数、第二均值和第二标准差得到伪标签数据集;
[0170]
当伪标签符合预设多个条件时,将伪标签数据集加入有标签数据集中,得到目标数据集;
[0171]
将目标数据集输入到第一分类模型进行监督学习,得到预先训练的图像分类模型。
[0172]
在一个实施例中,处理器1001在执行当半监督学习损失值到达预设值时,得到第三分类模型时,具体执行以下操作:
[0173]
当半监督学习损失值未到达预设值时,继续执行将有标签数据输入到预处理后的第一分类模型中进行多次并行计算的步骤。
[0174]
在本技术实施例中,图像分类装置首先获取待分类的目标图像,然后将目标图像输入到预先训练的图像分类模型中;其中,预先训练的图像分类模型是依次经过自监督学习、监督学习和半监督学习训练生成的;自监督学习是基于有标签数据集训练的,监督学习
是基于无标签数据集训练的,半监督学习时基于伪标签数据集和有标签数据集共同训练的;伪标签数据集是基于无标签数据集生成的;最后输出目标图像对应的图像类别。由于本技术先采用特定场景下的海量的无标签数据集对神经网络模型进行自监督学习,使模型尽可能“接触”到全局数据,以获得更全面的特征提取能力,然后利用特定且相同场景下少量有标签数据对预训练模型进行监督学习的方式对模型进一步调优,最后通过无标签数据集生成伪标签数据集,并结合有标签数据集对模型进一步训练,从而提升了无标签数据的利用率,使得模型的分类精度更高。
[0175]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,图像分类的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
[0176]
以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1