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

一种图像识别方法、装置、存储介质及设备与流程

2021-11-09 22:46:00 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,尤其涉及一种图像识别方法、装置、存储介质及设备。


背景技术:

2.随着人工智能技术的不断突破和各种智能终端设备的日益普及,需要处理的图像数量呈现几何级别的增长。在图像处理领域中,最为常见的一个任务便是图像识别任务。在如imagenet等图像识别数据集中,包括了如飞机、汽车、鸟、猫、鹿等1000多个图像类别,共计1500万张图像。图像识别任务在本质上就是一个分类任务,通常需要求解出一个有效的分类器,来准确地将一张图像分类到它所属的真实类别中。
3.传统的图像识别方法通常是采用当前主流的神经网络进行识别,如卷积神经网络(convolution neural network,cnn)等,但这些主流的神经网络通常是以其复杂的结构及超大的参数量为基础,才能取得优异的识别效果,而复杂的结构及超大的参数量要求相应的硬件必须具备超强的运算能力。面对日益增多的多功能智能终端的任务需求,超强的算力要求严重限制了这些主流神经网络算法在终端设备的部署。由此,为了能够在取得准确的识别结果的情况下,降低大网络参数量及运算量,需要通过网络剪枝的方式,移除大网络中的冗余参数,以有效降低网络前向推理的计算成本,最终成功实现端上设备的网络部署。目前的网络剪枝方法是采用l1正则化对代表神经元的重要程度的比例因子进行优化,以将比例因子低于一定阈值的神经元直接移除,从而实现神经网络的结构化剪枝,但这种剪枝方式,是利用l1正则化无差别的将所有比例因子向0推进,导致比例因子大量的集中在0附近,难以选择出合理的分割阈值,导致网络识别精度严重下降,同时剪枝过程的不稳定还会造成剪枝后网络性能下降,而且还需要对剪枝后的网络进行进一步微调,也会造成算力资源浪费。
4.因此,如何对图像识别网络进行更高效的剪枝,使得在取得准确的识别结果的情况下,能够降低网络参数量,提高图像的识别效率是目前亟待解决的技术问题。


技术实现要素:

5.本技术实施例的主要目的在于提供一种图像识别方法、装置、存储介质及设备,能够对图像识别网络进行更高效的剪枝,以实现在保持优异的识别效果的情况下,有效提高图像的识别效率。
6.本技术实施例提供了一种图像识别方法,包括:
7.获取待识别的目标图像;
8.将所述目标图像输入至预先构建的图像识别模型,识别得到所述目标图像的特征向量;所述图像识别模型是根据神经元的算力进行自适应剪枝,并利用对抗训练和知识蒸馏的方式训练得到的神经网络模型;
9.根据所述目标图像的特征向量,对所述目标图像进行识别,得到所述目标图像的
识别结果。
10.一种可能的实现方式中,所述图像识别模型的构建方式如下:
11.获取样本图像和教师图像识别模型;所述教师图像识别模型是基于样本图像训练得到的神经网络模型;
12.将所述样本图像输入所述教师图像识别模型,得到第一样本特征向量及其所属的第一分类概率;将所述样本图像输入初始学生图像识别模型,得到第二样本特征向量及其所属的第二分类概率;所述初始学生图像识别模型为由所述教师图像识别模型中的神经元与初始比例因子相乘后得到的神经神经网络模型;
13.根据所述第一样本特征向量及其所属的第一分类概率、所述第二样本特征向量及其所属的第二分类概率、以及预设的判别器,利用对抗训练和知识蒸馏的方式,对所述初始学生图像识别模型进行训练,生成学生图像识别模型;
14.根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的图像识别模型作为最终的图像识别模型。
15.一种可能的实现方式中,所述根据所述第一样本特征向量及其所属的第一分类概率、所述第二样本特征向量及其所属的第二分类概率、以及预设的判别器,利用对抗训练和知识蒸馏的方式,对所述初始学生图像识别模型进行训练,生成学生图像识别模型,包括:
16.利用所述初始学生图像识别模型中神经元的算力,计算所述初始学生图像识别模型对应的剪枝损失,作为第一目标函数;所述第一目标函数用于优化所述初始学生图像识别模型中神经元对应的比例因子;
17.计算所述第一分类概率和第二分类概率之间的kl散度损失,作为第二目标函数;所述第二目标函数用于提升所述初始学生图像识别模型的输出结果与所述教师图像识别模型的输出结果之间的相似度;
18.计算所述第二分类概率和所述样本图像对应的真实分类结果之间的交叉熵损失,作为第三目标函数;所述第三目标函数用于提升所述初始学生图像识别模型的输出结果与所述样本图像对应的真实分类结果之间的相似度;
19.将所述第一样本特征向量和所述第二样本特征向量输入预设的判别器进行对抗训练,得到二者的对抗损失,作为第四目标函数;所述第四目标函数用于实现所述第一样本特征向量与所述第二样本特征向量的最大化相似;
20.根据所述第一目标函数、第二目标函数、第三目标函数以及第四目标函数对所述初始学生图像识别模型进行训练,生成学生图像识别模型。
21.一种可能的实现方式中,所述根据所述第一目标函数、第二目标函数、第三目标函数以及第四目标函数对初始学生图像识别模型进行训练,生成学生图像识别模型,包括:
22.将所述第一目标函数、第二目标函数、第三目标函数以及第四目标函数进行加权求和,并根据所述和值,对所述初始学生图像识别模型进行训练,生成学生图像识别模型。
23.一种可能的实现方式中,所述根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的学生图像识别模型作为最终的图像识别模型,包括:
24.根据所述学生图像识别模型的比例因子分布,确定低于预设阈值的比例因子;
25.将低于预设阈值的比例因子所对应的神经元从所述学生图像识别模型中移除,得
到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
26.一种可能的实现方式中,所述根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的学生图像识别模型作为最终的图像识别模型,包括:
27.根据所述学生图像识别模型的比例因子分布,确定比例因子的移除阈值;
28.将低于所述移除阈值的比例因子所对应的神经元从所述学生图像识别模型中移除,得到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
29.一种可能的实现方式中,在所述根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的学生图像识别模型作为最终的图像识别模型之后,所述方法还包括:
30.判断所述图像识别模型的参数量和理论计算量是否满足预设的硬件需求,若是,则利用所述预设的判别器对所述图像识别模型参数进行微调,并将调整后的图像识别模型作为最终的图像识别模型。
31.一种可能的实现方式中,所述方法还包括:
32.获取验证图像;
33.将所述验证图像输入所述图像识别模型,获得所述验证图像的分类识别结果;
34.当所述验证图像的分类识别结果与所述验证图像对应的分类标签结果不一致时,将所述验证图像重新作为所述样本图像,对所述图像识别模型进行更新。
35.本技术实施例还提供了一种图像识别装置,包括:
36.第一获取单元,用于获取待识别的目标图像;
37.第一识别单元,用于将所述目标图像输入至预先构建的图像识别模型,识别得到所述目标图像的特征向量;所述图像识别模型是根据神经元的算力进行自适应剪枝,并利用对抗训练和知识蒸馏的方式训练得到的神经网络模型;
38.第二识别单元,用于根据所述目标图像的特征向量,对所述目标图像进行识别,得到所述目标图像的识别结果。
39.一种可能的实现方式中,所述装置还包括:
40.第二获取单元,用于获取样本图像和教师图像识别模型;所述教师图像识别模型是基于样本图像训练得到的神经网络模型;
41.第一获得单元,用于将所述样本图像输入所述教师图像识别模型,得到第一样本特征向量及其所属的第一分类概率;将所述样本图像输入初始学生图像识别模型,得到第二样本特征向量及其所属的第二分类概率;所述初始学生图像识别模型为由所述教师图像识别模型中的神经元与初始比例因子相乘后得到的神经神经网络模型;
42.训练单元,用于根据所述第一样本特征向量及其所属的第一分类概率、所述第二样本特征向量及其所属的第二分类概率、以及预设的判别器,利用对抗训练和知识蒸馏的方式,对所述初始学生图像识别模型进行训练,生成学生图像识别模型;
43.剪枝单元,用于根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的图像识别模型作为最终的图像识别模型。
44.一种可能的实现方式中,所述训练单元包括:
45.第一计算子单元,用于利用所述初始学生图像识别模型中神经元的算力,计算所
述初始学生图像识别模型对应的剪枝损失,作为第一目标函数;所述第一目标函数用于优化所述初始学生图像识别模型中神经元对应的比例因子;
46.第二计算子单元,用于计算所述第一分类概率和第二分类概率之间的kl散度损失,作为第二目标函数;所述第二目标函数用于提升所述初始学生图像识别模型的输出结果与所述教师图像识别模型的输出结果之间的相似度;
47.第三计算子单元,用于计算所述第二分类概率和所述样本图像对应的真实分类结果之间的交叉熵损失,作为第三目标函数;所述第三目标函数用于提升所述初始学生图像识别模型的输出结果与所述样本图像对应的真实分类结果之间的相似度;
48.第一训练子单元,用于将所述第一样本特征向量和所述第二样本特征向量输入预设的判别器进行对抗训练,得到二者的对抗损失,作为第四目标函数;所述第四目标函数用于实现所述第一样本特征向量与所述第二样本特征向量的最大化相似;
49.第二训练子单元,用于根据所述第一目标函数、第二目标函数、第三目标函数以及第四目标函数对所述初始学生图像识别模型进行训练,生成学生图像识别模型。
50.一种可能的实现方式中,所述第二训练子单元具体用于:
51.将所述第一目标函数、第二目标函数、第三目标函数以及第四目标函数进行加权求和,并根据所述和值,对所述初始学生图像识别模型进行训练,生成学生图像识别模型。
52.一种可能的实现方式中,所述剪枝单元包括:
53.第一确定子单元,用于根据所述学生图像识别模型的比例因子分布,确定低于预设阈值的比例因子;
54.第一移除子单元,用于将低于预设阈值的比例因子所对应的神经元从所述学生图像识别模型中移除,得到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
55.一种可能的实现方式中,所述剪枝单元包括:
56.第二确定子单元,用于根据所述学生图像识别模型的比例因子分布,确定比例因子的移除阈值;
57.第二移除子单元,用于将低于所述移除阈值的比例因子所对应的神经元从所述学生图像识别模型中移除,得到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
58.一种可能的实现方式中,所述装置还包括:
59.调整单元,用于在所述根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的学生图像识别模型作为最终的图像识别模型之后,判断所述图像识别模型的参数量和理论计算量是否满足预设的硬件需求,若是,则利用所述预设的判别器对所述图像识别模型参数进行微调,并将调整后的图像识别模型作为最终的图像识别模型。
60.一种可能的实现方式中,所述装置还包括:
61.第三获取单元,用于获取验证图像;
62.第二获得单元,用于将所述验证图像输入所述图像识别模型,获得所述验证图像的分类识别结果;
63.更新单元,用于当所述验证图像的分类识别结果与所述验证图像对应的分类标签结果不一致时,将所述验证图像重新作为所述样本图像,对所述图像识别模型进行更新。
64.本技术实施例还提供了一种图像识别设备,包括:处理器、存储器、系统总线;
65.所述处理器以及所述存储器通过所述系统总线相连;
66.所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述图像识别方法中的任意一种实现方式。
67.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述图像识别方法中的任意一种实现方式。
68.本技术实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述图像识别方法中的任意一种实现方式。
69.本技术实施例提供的一种图像识别方法、装置、存储介质及设备,首先获取待识别的目标图像,然后再将目标图像输入至预先构建的图像识别模型,识别得到目标图像的特征向量;其中,图像识别模型是根据神经元的算力进行自适应剪枝,并利用对抗训练和知识蒸馏的方式训练得到的神经网络模型;接着,可以根据目标图像的特征向量,对目标图像进行识别,得到目标图像的识别结果。可见,由于本技术实施例预先构建的图像识别模型是利用神经元的算力进行自适应剪枝,从而提高了剪枝效率,稳定了剪枝训练流程,并且通过对抗训练和知识蒸馏的训练方式还能够使得图像识别模型有效继承当前主流神经网络模型所包含的知识,进而保证了该图像识别模型能够一直维持着最大化的识别性能效果,且无需在剪枝完成后再进行效果微调,避免造成算力资源的浪费,这样,通过对图像识别网络模型更高效的剪枝,不仅能够保持模型对图像识别的优异效果,还能够有效提升图像的识别效率。
附图说明
70.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
71.图1为目前的网络剪枝方法中采用l1正则化对比例因子进行优化的分布示例图;
72.图2为本技术实施例提供的一种图像识别方法的流程示意图;
73.图3为本技术实施例提供的构建图像识别模型的流程示意图;
74.图4为本技术实施例提供的构建图像识别模型的网络结构示意图;
75.图5为本技术实施例提供的对比例因子进行优化后的分布示例图;
76.图6为本技术实施例提供的一种图像识别装置的组成示意图。
具体实施方式
77.随着智能识别技术的快速发展,越来越多的场景需要对图像进行识别。传统的图像识别方法通常是采用cnn等当前主流的神经网络进行识别,但这些主流的神经网络通常是以其复杂的结构及超大的参数量为基础,才能取得优异的识别效果,而复杂的结构及超大的参数量要求相应的硬件必须具备超强的运算能力。面对日益增多的多功能智能终端的任务需求,超强的算力要求严重限制了这些主流神经网络算法在终端设备的部署。由此,为
了能够在取得准确的识别结果的情况下,降低大网络参数量及运算量,需要通过网络剪枝的方式,移除大网络中的冗余参数,以有效降低网络前向推理的计算成本,最终成功实现端上设备的网络部署。
78.目前的网络剪枝方法主要分为两种:一种是非结构化修剪,其以神经网络每个可优化参数为单位,实现权值级剪枝;另一种是结构化剪枝,其以神经元(通道)为单位,实现网络结构层面的剪枝。虽然非结构化修剪通常比结构化修剪减少更多的权值,但它的缺点是得到的权值矩阵是稀疏的,在没有专用的硬件或加速库的情况下无法实现有效的加速。因此,当前常用的网络剪枝方法是结构化剪枝方法,其不需要额外的硬件或加速库即能有效减少在通用gpu/cpu设备上的计算量。
79.对于当前图像识别网络采用的结构化剪枝方案来说,通常是将每个神经元与其对应的比例因子相乘,实现二者间的相互关联,并在网络训练中通过正则化的方式优化更新这些比例因子数值,其中每个比例因子数值大小即代表了其对应神经元的重要程度。当训练完成时,每个比例因子数值反应了其对应神经元的重要程度,再将比例因子低于一定阈值的神经元直接移除,从而实现神经网络结构化剪枝。具体来讲,目前在剪枝过程中,通常采用l1正则化对代表神经元的重要程度的比例因子进行优化,但l1正则化会无差别的将所有比例因子向0推进,如图1所示,优化后的比例因子会大量的集中在0附近,难以选择合理的分割阈值,用以将修剪后的神经元与保留的神经元分开,且不合理的阈值修剪会导致精度严重下降。同时,虽然每次剪枝的神经元的重要性相对较低,但仍会产生推理误差,造成剪枝及训练过程的不稳定,影响待剪枝的神经元的选择,进而使得剪枝后网络性能下降。此外,目前在完成剪枝后,还需要对剪枝后的网络进行进一步的微调,这也会造成一部分的算力资源浪费。
80.所以,当前对图像识别网络进行剪枝的方法不够高效,剪枝阈值的筛选难度较大,且容易造成网络识别精度下降和算力资源的浪费,进而会导致图像识别效率较低且识别结果不够准确。
81.为解决上述缺陷,本技术提供了一种图像识别方法,首先获取待识别的目标图像,然后再将目标图像输入至预先构建的图像识别模型,识别得到目标图像的特征向量;其中,图像识别模型是根据神经元的算力进行自适应剪枝,并利用对抗训练和知识蒸馏的方式训练得到的神经网络模型;接着,可以根据目标图像的特征向量,对目标图像进行识别,得到目标图像的识别结果。可见,由于本技术实施例预先构建的图像识别模型是利用神经元的算力进行自适应剪枝,从而提高了剪枝效率,稳定了剪枝训练流程,并且通过对抗训练和知识蒸馏的训练方式还能够使得图像识别模型有效继承当前主流神经网络模型所包含的知识,进而保证了该图像识别模型能够一直维持着最大化的识别性能效果,且无需在剪枝完成后再进行效果微调,避免造成算力资源的浪费,这样,通过对图像识别网络模型更高效的剪枝,不仅能够保持模型对图像识别的优异效果,还能够有效提升图像的识别效率。
82.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
83.第一实施例
networks,简称dnn)结构等。
95.然后,利用每一样本图像对原始图像识别模型进行当前轮训练,并利用交叉熵损失(crossentry)作为目标函数,来构建教师图像识别模型,并更新模型的网络参数,以提高模型对于样本图像的识别准确率,在经过多轮参数更新后(即满足训练结束条件后,比如达到预设训练轮数或交叉熵损失变化量小于预设阈值等),便可训练得到教师图像识别模型。
96.具体地,一种可选的实现方式是,在训练过程中,每次迭代从训练集中随机采样若干幅(如16幅)样本图像,结合数据增强策略生成固定大小(如224x224)的原始输入图像,并采用小批量随机梯度下降(mini

batch sgd)优化策略完成教师图像识别模型的训练,且在将教师图像识别模型练完毕后,不再进行模型更新。
97.或者,也可以利用现有的已经通过其他图像训练好的模型作为本实施例的教师图像识别模型进行训练,只要保证是利用准确的分类图像训练得到即可。
98.步骤b:将样本图像输入教师图像识别模型,得到第一样本特征向量及其所属的第一分类概率;将样本图像输入初始学生图像识别模型,得到第二样本特征向量及其所属的第二分类概率。
99.在本实施例中,通过步骤a获取到样本图像和教师图像识别模型后,进一步可以将样本图像输入教师图像识别模型,得到样本图像对应的特征向量(此处将其定义为第一样本特征向量)及其所属的图像类别分类概率(此处将其定义为第一分类概率),如图4所示。同时,还需要将同样的样本图像输入初始学生图像识别模型,以通过该模型识别得到该样本图像对应的特征向量(此处将其定义为第二样本特征向量)及其所属的图像类别分类概率(此处将其定义为第二分类概率)。
100.其中,初始学生图像识别模型是由教师图像识别模型中的神经元与初始比例因子相乘后得到的神经神经网络模型。初始比例因子的取值可以根据实际情况进行选择,本技术实施例对此不进行限定,比如初始比例因子可以在0.5~1中随机采样得到。
101.步骤c:根据第一样本特征向量及其所属的第一分类概率、第二样本特征向量及其所属的第二分类概率、以及预设的判别器,利用对抗训练和知识蒸馏的方式,对初始学生图像识别模型进行训练,生成学生图像识别模型。
102.在本实施例中,通过步骤b得到第一样本特征向量及其所属的第一分类概率、第二样本特征向量及其所属的第二分类概率后,进一步可以根据第一样本特征向量及其所属的第一分类概率、第二样本特征向量及其所属的第二分类概率、以及预设的判别器,利用对抗训练和知识蒸馏的方式,对初始学生图像识别模型进行训练,生成学生图像识别模型。
103.具体来讲,一种可选的实现方式是,本步骤c的实现过程具体可以包括下述步骤c1

c5:
104.步骤c1:利用初始学生图像识别模型中神经元的算力,计算初始学生图像识别模型对应的剪枝损失,作为第一目标函数;其中,第一目标函数用于优化初始学生图像识别模型中神经元对应的比例因子。
105.需要说明的是,由于目前的网络剪枝方法是直接将l1正则化损失(即)应用于所有神经元(即一般神经网络中的特征通道,例如cnn中的filter)对应比例因子,进行比例因子的优化,即,将l1正则化无差别的将所有比例因子向0推进,如
图1所示。这使得不同神经元的算力需求与比例因子间的关联性降低,影响了剪枝阈值的选择,比如,若将0.1作为阈值,在将图1中低于0.1的比例因子对应的神经元删除,会造成删除的神经元数量过多,产生推理误差并造成剪枝及训练过程的不稳定,导致剪枝后的图像识别模型的识别精度和网络性能均下降。
106.对此,为了构建网络识别精度更高和网络性能更强的图像识别模型,本技术在充分考虑了初始学生图像识别模型中神经元的算力需求和比例因子的关联后,提出了根据神经元的算力进行自适应剪枝的方式,即利用初始学生图像识别模型中神经元的算力,计算初始学生图像识别模型对应的剪枝损失,作为第一目标函数,用以执行后续步骤c5。其中,第一目标函数用于优化初始学生图像识别模型中神经元对应的比例因子,第一目标函数的具体计算公式如下:
[0107][0108]
其中,l
wre
表示第一目标函数;n表示初始学生图像识别模型中神经元的总数;s
i
表示第i个神经元对应的比例因子;α
i
表示当前轮训练中第i个神经元的计算量占整个网络模型总计算量的比重,即,其中,表示比例因子s
i
对应的第i个神经元在当前轮训练中的计算量。
[0109]
在使用上述公式(1)中的第一目标函数对初始学生图像识别模型进行训练时,可以根据l
wre
值的变化,对比例因子进行优化,使得无用神经元对应的比例因子逐渐减小,直至l
wre
值满足要求,比如变化幅度很小,则停止进行优化,从而降低了这些神经元对整体网络识别效果的影响,以便在后续步骤d中的剪枝阶段,可以直接移除这部分神经元,实现高效剪枝。
[0110]
可见,利用第一目标函数进行训练,能够充分考虑待剪神经元算力与效果间的均衡,在优化过程中,将算力要求高且移除后效果影响小的神经元对应的比例因子逐渐向0拉近,从而产生不同簇的比例因子分布,如图3所示,这样,在后续步骤d中的剪枝阶段,只需直接移除靠近0的比例因子簇所对应的神经元,从而大大降低剪枝阈值的筛选难度。由于其联合优化了算力与效果,故能够在维持剪枝后网络的识别效果的同时还能够最大化剪枝比例,防止剪枝后网络识别精度出现严重下滑。
[0111]
步骤c2:计算第一分类概率和第二分类概率之间的kl散度损失,作为第二目标函数;其中,第二目标函数用于提升初始学生图像识别模型的输出结果与教师图像识别模型的输出结果之间的相似度。
[0112]
需要说明的是,在模型训练过程中,虽然每轮剪枝都是仅将比例因子接近0的重要性较低的神经元移除,但仍然会产生一定推理误差,造成剪枝过中模型参数更新的不稳定,导致剪枝后网络性能的下降。
[0113]
为了解决上述缺陷,提高剪枝后网络的性能,本技术提出采用知识蒸馏的方式对初始学生图像识别模型进行训练,以使得剪枝后的学生图像识别模型能够有效继承教师图像识别模型所包含的知识,从而才能够维持学生图像识别模型的网络性能,提升剪枝的稳定性。
[0114]
具体来讲,在将样本图像输入教师图像识别模型和初始学生图像识别模型,分别
得到第一分类概率和第二分类概率后,进一步可以计算出第一分类概率和第二分类概率之间的kl散度损失,作为第二目标函数,用以执行后续步骤c5。其中,第二目标函数用于度量第一分类概率和第二分类概率分布之间的差异程度,利用第二目标函数对初始学生图像识别模型进行训练,有助于提升初始学生图像识别模型的输出结果与教师图像识别模型的输出结果之间的相似度,第二目标函数的具体计算公式如下:
[0115][0116]
其中,l
kl
表示第二目标函数;k表示参与训练的样本图像的总数量;x
i
表示第i个样本图像;表示将第i个样本图像x
i
输入教师图像识别模型后得到的第一分类概率;表示将第i个样本图像x
i
输入初始学生图像识别模型后得到的第二分类概率。
[0117]
在使用上述公式(2)中的第二目标函数对初始学生图像识别模型进行训练时,可以根据l
kl
值的变化,对模型参数进行不断更新,使得初始学生图像识别模型的输出结果与教师图像识别模型的输出结果更加相似,直至l
kl
值满足要求,比如变化幅度很小,则停止进行优化。
[0118]
步骤c3:计算第二分类概率和样本图像对应的真实分类结果之间的交叉熵损失,作为第三目标函数;其中,第三目标函数用于提升初始学生图像识别模型的输出结果与样本图像对应的真实分类结果之间的相似度。
[0119]
在本实现方式中,为了提高学生图像识别模型的识别准确度,在将样本图像输入初始学生图像识别模型,得到第二分类概率后,进一步可以计算出第二分类概率和样本图像对应的真实分类结果之间的交叉熵损失,作为第三目标函数,用以执行后续步骤c5。其中,利用第三目标函数对初始学生图像识别模型进行训练,有助于提升初始学生图像识别模型的输出结果与样本图像对应的真实分类结果之间的相似度,第三目标函数的具体计算公式如下:
[0120][0121]
其中,l
ce
表示第三目标函数;k表示参与训练的样本图像的总数量;x
i
表示第i个样本图像;y
i
表示第i个样本图像x
i
对应的真实分类结果(如真是分类标签等);表示将第i个样本图像x
i
输入初始学生图像识别模型后得到的第二分类概率。
[0122]
在使用上述公式(3)中的第三目标函数对初始学生图像识别模型进行训练时,可以根据l
ce
值的变化,对模型参数进行不断更新,使得初始学生图像识别模型的输出结果与样本图像对应的真实分类结果更加相似,直至l
ce
值满足要求,比如变化幅度很小,则停止进行优化。
[0123]
步骤c4:将第一样本特征向量和第二样本特征向量输入预设的判别器进行对抗训练,得到二者的对抗损失,作为第四目标函数;其中,第四目标函数用于实现第一样本特征向量与第二样本特征向量的最大化相似。
[0124]
需要说明的是,虽然通过上述步骤c2,利用上述公式(2)中的第二目标函数可以对初始学生图像识别模型进行知识蒸馏式的训练,以使得初始学生图像识别模型的输出结果与教师图像识别模型的输出结果更加相似,但仍然无法将学生图像识别模型的输出结果的
网络性能进行最大化,这是因为上述公式(2)中的蒸馏损失会导致知识迁移的不足,即,仅仅实现的是初步的知识迁移。
[0125]
对此,为了实现教师图像识别模型的网络性能知识的最大化迁移,本技术采用对抗训练的方式辅助进行知识蒸馏训练。具体实现过程为:如图4所示,在模型训练过程中加入判别器进行对抗训练,将教师图像识别模型输出的第一样本特征向量和初始学生图像识别模型输出的第二样本特征向量,均输入该判别器中,对于第一样本特征向量,该判别器的输出为1,对于第二样本特征向量,该判别器的输出为0,利用该判别器可以将教师图像识别模型的输出与学生图像识别模型的输出很好的区分开。其中,判别器可以采用任一标准的二分类网络,如支持向量机(support vector machine,简称svm)等。
[0126]
在此基础上,每轮训练,均可以将教师图像识别模型输出的第一样本特征向量和学生识别模型输出的第二样本特征向量输入预设的判别器,以根据判别器的输出进行对抗训练,得到二者的对抗损失,作为第四目标函数,用以执行后续步骤c5。其中,利用第四目标函数对初始学生图像识别模型和教师图像识别模型进行对抗训练,有助于实现第一样本特征向量与第二样本特征向量的最大化相似,即,实现教师图像识别模型的网络性能知识最大化的迁移到学生图像识别模型。第四目标函数的具体计算公式如下:
[0127][0128]
其中,l
adv
表示第四目标函数;表示将第i个样本图像x
i
输入教师图像识别模型后得到的第一分类概率;表示将第i个样本图像x
i
输入初始学生图像识别模型后得到的第二分类概率;p
z
(z)表示高斯分布,通常是由加入的噪声产生的;d表示判别器。
[0129]
在使用上述公式(4)中的第四目标函数对初始学生图像识别模型和教师图像识别模型进行对抗训练时,可以根据l
adv
值的变化,对模型参数进行不断更新,直至l
adv
值满足要求,比如变化幅度很小,从而使得判别器对于初始学生图像识别模型的输出结果(即第一样本特征向量)的判定(即判别器的输出)更接近于1,进而使得初始学生图像识别模型输出的第一样本特征向量与教师图像识别模型输出的第二样本特征向量更能够最大化的相似,实现了更加充分的知识迁移,则可以停止进行优化。
[0130]
步骤c5:根据第一目标函数、第二目标函数、第三目标函数以及第四目标函数对初始学生图像识别模型进行训练,生成学生图像识别模型。
[0131]
在本实现方式中,为了综合优化学生图像识别模型的整体网络参数,可以将上述公式(1)、(2)、(3)、(4)中的四个目标函数进行整合,得到最终模型优化目标函数如下公式所示:
[0132]
loss=a*l
kl
b*l
ce
c*l
adv
d*l
wre
ꢀꢀꢀꢀꢀꢀ
(5)
[0133]
其中,a、b、c、d分别表示l
kl
、l
ce
、l
adv
、l
wre
的权重,a、b、c、d的具体取值可根据实际情况和经验值来确定,本技术实施例对此不进行限定。但需要说明的是,如果将a和c的取值设置偏大,则最终学生图像识别模型的识别效果更接近教师图像识别模型的识别效果,但剪枝的效率相对偏低,即每次剪枝的力度不够;反之则最终学生图像识别模型的识别效果略微下降,但剪枝效率相对较高,从而能够提高图像的识别效率。由此,本技术优先采用的取值为:a=0.3,b=0.3,c=0.2,d=0.2,但也不限于此取值组合。
[0134]
这样,通过上述对抗训练和知识蒸馏的方式不断促使剪枝后的学生图像识别模型
的输出与教师图像识别模型的输出更加相似,从而实现剪枝过程中不断的进行教师图像识别模型网络知识的迁移,这使得最终保留的剪枝后学生图像识别模型能够一直维持着最大化的性能效果,从而避免了传统剪枝方案中在剪枝完成后需进一步进行效果微调造成的算力资源的浪费。
[0135]
步骤d:根据学生图像识别模型的比例因子分布,对学生图像识别模型进行剪枝,并将剪枝后的学生图像识别模型作为最终的图像识别模型。
[0136]
在本实施例中,通过步骤c生成学生图像识别模型后,进一步可以根据由上述公式(1)中的第一目标函数l
wre
确定的比例因子的分布(例如图5所示),对学生图像识别模型进行剪枝,并将模型中算力要求高且移除后效果影响小的神经元进行移除,得到剪枝后的学生图像识别模型,进而可以将其作为最终的图像识别模型。
[0137]
具体来讲,一种可选的实现方式是,本步骤d的具体实现过程为:首先根据学生图像识别模型的比例因子分布,确定低于预设阈值的比例因子,然后再将低于预设阈值的比例因子所对应的神经元从学生图像识别模型中移除,得到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
[0138]
在本实现方式中,剪枝的依据是预先设置的比例因子阈值(即预设阈值),其指的是用于界定是否将对应的神经元移除的临界值,具体取值可根据实际情况进行设定,本技术实施例对此不进行限定,比如可以将预设阈值取值为0.12等。当比例因子超过该临界值,则表明该比例因子对应的神经元的重要程度较高,不能将其移除,反之,当比例因子未超过该临界值,则表明该比例因子对应的神经元的重要程度较低,可以将其移除,实现网络剪枝。
[0139]
另一种可选的实现方式是,本步骤d的具体实现过程为:首先根据学生图像识别模型的比例因子分布,确定比例因子的移除阈值,然后再将低于移除阈值的比例因子所对应的神经元从学生图像识别模型中移除,得到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
[0140]
在本实现方式中,学生图像识别模型往往会产生不同簇的比例因子分布,例如图5所示,由此,可以将根据比例因子的分布确定出移除阈值作为剪枝的依据,用以界定是否将对应的神经元移除,通常是将靠近0且集中了大部分比例因子的上限值作为移除阈值。并将移除阈值作为界定是否将对应的神经元移除的临界值,当比例因子超过该临界值,则表明该比例因子对应的神经元的重要程度较高,不能将其移除,反之,当比例因子未超过该临界值,则表明该比例因子对应的神经元的重要程度较低,可以将其移除,实现网络剪枝,以得到算力要求更小但识别结果仍足够准确的图像识别模型。
[0141]
举例说明:假设学生图像识别模型的比例因子的分布如图5所示,则可以看出有大部分比例因子靠近0且低于0.1,这部分比例因子对应的神经元的数量较大且重要程度较低,此时,为了保证模型的识别准确率并提高模型的识别效率,可以将0.1确定为移除阈值(即图5中的threshold指示位置),并将比例因子低于0.1的神经元移除,从而实现了对于学生图像识别模型的高效剪枝,得到算力要求更小但识别结果仍足够准确的图像识别模型。
[0142]
通过上述步骤a

d,可以根据样本图像训练生成图像识别模型,进一步的,还可以利用验证图像对生成的图像识别模型进行验证。具体验证过程可以包括下述步骤(1)

(3):
[0143]
步骤(1):获取验证图像。
[0144]
在本实施例中,为了实现对图像识别模型进行验证,首先需要获取验证图像,如可以从imagenet中获取50000幅图像作为验证图像,其中,验证图像指的是可以用来进行图像识别模型验证的图像信息,在获取到这些验证图像及每幅验证图像对应的分类标签后,可继续执行后续步骤(2)。
[0145]
步骤(2):将验证图像输入图像识别模型,获得验证图像的分类识别结果。
[0146]
通过步骤(1)获取到验证图像后,进一步的,可以将验证图像输入图像识别模型,获得验证图像的分类识别结果,用以执行后续步骤(3)。
[0147]
步骤(3):当验证图像的分类识别结果与验证图像对应的分类标签结果不一致时,将验证图像重新作为样本图像,对图像识别模型进行更新。
[0148]
通过步骤(2)获得验证图像的分类识别结果后,若验证图像的分类识别结果与验证图像对应的真实分类结果(如人工标注的分类标记结果)不一致,则可以将验证图像重新作为样本图像,对图像识别模型进行参数更新。
[0149]
通过上述实施例,可以利用验证图像对图像识别模型进行有效验证,当验证图像的分类识别结果与验证图像对应的真实分类结果(如人工标注的分类标记结果)不一致时,可以及时调整更新图像识别模型,进而有助于提高识别模型的识别精度和准确性。
[0150]
在此基础上,进一步的,一种可选的实现方式是,在构建了图像识别模型后,还可以判断图像识别模型的参数量和理论计算量是否满足预设的硬件需求(如端上的内存容量、算力等),若是,即图像识别模型的参数量和理论计算量是端上设备可以满足的,则可以利用预设的判别器对图像识别模型参数进行微调,以进一步提高模型的识别效率和识别结果的准确率,并将调整后的图像识别模型作为最终的图像识别模型,进而可将其部署在终端设备上进行图像识别;若否,则重复执行上述步骤b

d,重新构建图像识别模型,以满足预设的硬件需求,进而再实现其的端上部署。
[0151]
其中,图像识别模型的理论计算量指的是完成训练后模型中所有神经元的总计算量,可以采用浮点运算数(floating point operations,简称flops)进行衡量,具体计算过程与现有方法一致,在此不再赘述。
[0152]
s203:根据目标图像的特征向量,对目标图像进行识别,得到目标图像的识别结果。
[0153]
在本实施例中,通过步骤s202得到目标图像的特征向量后,进一步可以通过对该特征向量进行处理,并根据处理结果,对目标图像进行识别,得到目标图像的分类识别结果。比如,可以将目标图像的特征向量输入全连接层进行识别,并对进行softmax处理,以得到目标图像属于各个图像类别的概率,进而可将其中每一最大概率值对应的类别作为目标图像所属的图像类别,并将其作为目标图像的最终的分类识别结果。
[0154]
综上,本实施例提供的一种图像识别方法,首先获取待识别的目标图像,然后再将目标图像输入至预先构建的图像识别模型,识别得到目标图像的特征向量;其中,图像识别模型是根据神经元的算力进行自适应剪枝,并利用对抗训练和知识蒸馏的方式训练得到的神经网络模型;接着,可以根据目标图像的特征向量,对目标图像进行识别,得到目标图像的识别结果。可见,由于本技术实施例预先构建的图像识别模型是利用神经元的算力进行自适应剪枝,从而提高了剪枝效率,稳定了剪枝训练流程,并且通过对抗训练和知识蒸馏的训练方式还能够使得图像识别模型有效继承当前主流神经网络模型所包含的知识,进而保
证了该图像识别模型能够一直维持着最大化的识别性能效果,且无需在剪枝完成后再进行效果微调,避免造成算力资源的浪费,这样,通过对图像识别网络模型更高效的剪枝,不仅能够保持模型对图像识别的优异效果,还能够有效提升图像的识别效率。
[0155]
第二实施例
[0156]
本实施例将对一种图像识别装置进行介绍,相关内容请参见上述方法实施例。
[0157]
参见图6,为本实施例提供的一种图像识别装置的组成示意图,该装置600包括:
[0158]
第一获取单元601,用于获取待识别的目标图像;
[0159]
第一识别单元602,用于将所述目标图像输入至预先构建的图像识别模型,识别得到所述目标图像的特征向量;所述图像识别模型是根据神经元的算力进行自适应剪枝,并利用对抗训练和知识蒸馏的方式训练得到的神经网络模型;
[0160]
第二识别单元603,用于根据所述目标图像的特征向量,对所述目标图像进行识别,得到所述目标图像的识别结果。
[0161]
在本实施例的一种实现方式中,所述装置还包括:
[0162]
第二获取单元,用于获取样本图像和教师图像识别模型;所述教师图像识别模型是基于样本图像训练得到的神经网络模型;
[0163]
第一获得单元,用于将所述样本图像输入所述教师图像识别模型,得到第一样本特征向量及其所属的第一分类概率;将所述样本图像输入初始学生图像识别模型,得到第二样本特征向量及其所属的第二分类概率;所述初始学生图像识别模型为由所述教师图像识别模型中的神经元与初始比例因子相乘后得到的神经神经网络模型;
[0164]
训练单元,用于根据所述第一样本特征向量及其所属的第一分类概率、所述第二样本特征向量及其所属的第二分类概率、以及预设的判别器,利用对抗训练和知识蒸馏的方式,对所述初始学生图像识别模型进行训练,生成学生图像识别模型;
[0165]
剪枝单元,用于根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的图像识别模型作为最终的图像识别模型。
[0166]
在本实施例的一种实现方式中,所述训练单元包括:
[0167]
第一计算子单元,用于利用所述初始学生图像识别模型中神经元的算力,计算所述初始学生图像识别模型对应的剪枝损失,作为第一目标函数;所述第一目标函数用于优化所述初始学生图像识别模型中神经元对应的比例因子;
[0168]
第二计算子单元,用于计算所述第一分类概率和第二分类概率之间的kl散度损失,作为第二目标函数;所述第二目标函数用于提升所述初始学生图像识别模型的输出结果与所述教师图像识别模型的输出结果之间的相似度;
[0169]
第三计算子单元,用于计算所述第二分类概率和所述样本图像对应的真实分类结果之间的交叉熵损失,作为第三目标函数;所述第三目标函数用于提升所述初始学生图像识别模型的输出结果与所述样本图像对应的真实分类结果之间的相似度;
[0170]
第一训练子单元,用于将所述第一样本特征向量和所述第二样本特征向量输入预设的判别器进行对抗训练,得到二者的对抗损失,作为第四目标函数;所述第四目标函数用于实现所述第一样本特征向量与所述第二样本特征向量的最大化相似;
[0171]
第二训练子单元,用于根据所述第一目标函数、第二目标函数、第三目标函数以及第四目标函数对所述初始学生图像识别模型进行训练,生成学生图像识别模型。
[0172]
在本实施例的一种实现方式中,所述第二训练子单元具体用于:
[0173]
将所述第一目标函数、第二目标函数、第三目标函数以及第四目标函数进行加权求和,并根据所述和值,对所述初始学生图像识别模型进行训练,生成学生图像识别模型。
[0174]
在本实施例的一种实现方式中,所述剪枝单元包括:
[0175]
第一确定子单元,用于根据所述学生图像识别模型的比例因子分布,确定低于预设阈值的比例因子;
[0176]
第一移除子单元,用于将低于预设阈值的比例因子所对应的神经元从所述学生图像识别模型中移除,得到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
[0177]
在本实施例的一种实现方式中,所述剪枝单元包括:
[0178]
第二确定子单元,用于根据所述学生图像识别模型的比例因子分布,确定比例因子的移除阈值;
[0179]
第二移除子单元,用于将低于所述移除阈值的比例因子所对应的神经元从所述学生图像识别模型中移除,得到剪枝后的学生图像识别模型,并将其作为最终的图像识别模型。
[0180]
在本实施例的一种实现方式中,所述装置还包括:
[0181]
调整单元,用于在所述根据所述学生图像识别模型的比例因子分布,对所述学生图像识别模型进行剪枝,并将剪枝后的学生图像识别模型作为最终的图像识别模型之后,判断所述图像识别模型的参数量和理论计算量是否满足预设的硬件需求,若是,则利用所述预设的判别器对所述图像识别模型参数进行微调,并将调整后的图像识别模型作为最终的图像识别模型。
[0182]
在本实施例的一种实现方式中,所述装置还包括:
[0183]
第三获取单元,用于获取验证图像;
[0184]
第二获得单元,用于将所述验证图像输入所述图像识别模型,获得所述验证图像的分类识别结果;
[0185]
更新单元,用于当所述验证图像的分类识别结果与所述验证图像对应的分类标签结果不一致时,将所述验证图像重新作为所述样本图像,对所述图像识别模型进行更新。
[0186]
进一步地,本技术实施例还提供了一种图像识别设备,包括:处理器、存储器、系统总线;
[0187]
所述处理器以及所述存储器通过所述系统总线相连;
[0188]
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述图像识别方法的任一种实现方法。
[0189]
进一步地,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述图像识别方法的任一种实现方法。
[0190]
进一步地,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述图像识别方法的任一种实现方法。
[0191]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式
体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本技术各个实施例或者实施例的某些部分所述的方法。
[0192]
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0193]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0194]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献