掌桥专利:专业的专利平台
掌桥专利
首页

图像处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 16:09:34



技术领域

本公开涉及神经网络领域,具体涉及图像处理方法、装置、电子设备及存储介质。

背景技术

目前,卷积神经网络广泛应用在对相应的待识别图像进行处理例如手势识别,得到相应的识别结果。卷积神经网络包括的权重数量多,导致卷积神经网络处理输入到卷积神经网络中的待识别的速度即推理速度较慢,为了提升得到得到相应的识别结果的速度,经常需要对卷积神经网络中的卷积层的通道进行裁剪即对卷积层的通道数进行剪枝,得到相比于原始的卷积神经网络,推理速度更快的目标卷积神经网络,利用目标卷积神经网络对相应的待识别图像进行处理。

在相关技术中,由工程师根据经验设置裁剪比例,根据人工设置的裁剪比例,裁剪卷积神经网络中的卷积层的通道,得到目标卷积神经网络。可能存在相比于人工设置的裁剪比例使得卷积神经网络的推理速度的提升幅度更大的裁剪比例,但由于只能根据人工设置的裁剪比例,裁剪卷积神经网络中的卷积层的通道,得到目标卷积神经网络,卷积神经网络的推理速度的提升效果不佳,导致得到相应的识别结果的速度的提升效果不佳。

发明内容

本公开提供一种图像处理方法、装置、电子设备及存储介质,以至少解决相关技术中的得到相应的识别结果的速度的提升效果不佳的问题。

本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种图像处理方法,包括:

获取待识别图像;

利用目标卷积神经网络对所述待识别图像进行处理,得到所述待识别图像对应的识别结果,其中,所述目标卷积神经网络通过以最优裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到,最优裁剪比例是从多个候选裁剪比例中确定出的,所述最优裁剪比例为所述多个候选裁剪比例中的所有满足预设条件的候选裁剪比例中的最大的候选裁剪比例,预设条件为候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量小于差异量阈值,所述候选裁剪比例对应的经裁剪卷积神经网络通过以所述候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到。

根据本公开实施例的第二方面,提供一种图像处理装置,包括:

获取模块,被配置为获取待识别图像;

处理模块,被配置为利用目标卷积神经网络对所述待识别图像进行处理,得到所述待识别图像对应的识别结果,其中,所述目标卷积神经网络通过以最优裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到,最优裁剪比例是从多个候选裁剪比例中确定出的,所述最优裁剪比例为所述多个候选裁剪比例中的所有满足预设条件的候选裁剪比例中的最大的候选裁剪比例,预设条件为候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量小于差异量阈值,所述候选裁剪比例对应的经裁剪卷积神经网络通过以所述候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到。

根据本公开实施例的第三方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现如第一方面中任一项的方法。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备可以执行如第一方面中任一项的方法。

根据本公开实施例的第五方面,提供计算机程序产品,包括计算机可读代码,当所述计算机可读代码在电子设备运行时,使得所述电子设备执行如第一方面中任一项的方法。

本公开的实施例提供的技术方案可以包括以下有益效果:

利用以最优裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到得到的目标卷积神经网络对待识别图像进行处理,得到待识别图像对应的识别结果,最优裁剪比例为多个候选裁剪比例中的所有满足预设条件的候选裁剪比例中的最大的候选裁剪比例,预设条件为候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量小于差异量阈值,最优裁剪比例为多个候选裁剪比例中的可以最大幅度提升卷积神经网络的推理速度并且可以确保识别精度不会大幅度下降的裁剪比例,采用最优裁剪比例,对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,得到目标卷积神经网络,可以取得较好的推理速度的提升效果,同时,可以确保不会出现由于裁剪导致识别精度大幅度下降的情况,利用目标卷积神经网络对待识别图像进行处理,得到待识别图像对应的识别结果,取得较好的得到相应的识别结果的速度的提升效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种图像处理方法的一个实施例的流程图;

图2是根据一示例性实施例示出的一种图像处理方法的另一个实施例的流程图;

图3是根据一示例性实施例示出的一种图像处理装置的结构框图;

图4是根据一示例性实施例示出的一种电子设备的结构框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的图像处理方法的一个实施例的流程图。该方法可以由电子设备执行,该方法包括以下步骤:

步骤101,获取待识别图像。

在本实施例中,待识别图像为与目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理的类型相关的图像。

例如,目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理可以为手势识别或对多个对象进行分割。若目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理为手势识别,待识别图像为包括手势的手势图像。若目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理为对多个对象进行分割,待识别图像包括多个对象,对多个对象进行分割包括获取该多个对象中的每一个对象的预测位置信息,对象可以为人或物体。对象的预测位置信息包括:对象的预测中心点位置、对象的预测长度、对象的预测宽度。对象的预测中心点位置为预测出的对象的中心点的位置,对象的预测长度为对象的预测出的对象的长度,对象的预测宽度为预测出的对象的宽度。

步骤102,利用目标卷积神经网络对待识别图像进行处理,得到待识别图像对应的识别结果。

在利用目标卷积神经网络对待识别图像进行处理之前,预先利用训练样本集合中的训练样本和训练样本的标注识别结果训练目标卷积神经网络,以训练目标卷积神经网络学习如何对待识别图像进行处理。

例如,目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理为手势识别,训练样本为包括手势的手势图像,每一次训练,将一个训练样本输入到目标卷积神经网络中,目标卷积神经网络输出训练样本对应的预测识别结果,训练样本对应的预测识别结果为预测出的手势图像中的手势的类型,训练样本的标注识别结果为手势图像中的手势的实际类型。利用损失函数计算训练样本对应的预测识别结果与训练样本的标注识别结果之间的损失,基于该损失,更新目标卷积神经网络的参数。

例如,目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理为对多个对象进行分割,训练样本为包括多个对象的图像,每一次训练,将一个训练样本输入到目标卷积神经网络中,目标卷积神经网络输出训练样本对应的预测识别结果,训练样本对应的预测识别结果包括:预测出的每一个对象的位置信息,训练样本对应的标注识别结果包括:每一个对象的标注位置信息。利用损失函数计算训练样本对应的总损失,训练样本对应的总总损失为每一个对象对应的损失之和,对象对应的损失为对象的预测识别结果与对象的标注识别结果之间的损失,基于训练样本对应的总损失,更新目标卷积神经网络的参数。

利用目标卷积神经网络对待识别图像进行处理,得到待识别图像对应的识别结果。

例如,目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理为手势识别,待识别图像为包括手势的图像,得到待识别图像对应的识别结果为预测出的该手势的类型。

例如,目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理可以为对多个对象进行分割,待识别图像对应的识别结果包括:每一个对象的预测位置信息,对象的预测位置信息包括:对象的预测中心点位置、对象的预测长度、对象的预测宽度。

目标卷积神经网络通过以最优裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到,最优裁剪比例是从多个候选裁剪比例中确定出的,最优裁剪比例为多个候选裁剪比例中的所有满足预设条件的候选裁剪比例中的最大的候选裁剪比例,预设条件为候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量小于差异量阈值,候选裁剪比例对应的经裁剪卷积神经网络通过以该候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到。

对于原始卷积神经网络中的每一个卷积层,该卷积层包括多个滤波器(filter),该卷积层的每一个滤波器分别包括多个权重通道,每一个权重通道均为一个包括多个权重的矩阵。

在本实施例中,每一个候选裁剪比例均为一个小于1的分数。以候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,以得到该候选裁剪比例对应的经裁剪卷积神经网络。

原始卷积神经网络的每一个原始卷积层分别对应候选裁剪比例对应的经裁剪卷积神经网络中的一个裁剪后的卷积层。

对于原始卷积神经网络的任意一个原始卷积层,以一个候选裁剪比例对该原始卷积层的权重通道进行裁剪是指:去除该原始卷积层的对应于该候选裁剪比例的裁剪数量个权重通道,该原始卷积层的对应于候选裁剪比例的裁剪数量为:该候选裁剪比例与该原始卷积层包括的权重通道的数量的乘积,该原始卷积层中的被去除的权重通道可以称之待裁剪通道,可以采用已有的确定卷积层的待裁剪通道的算法确定该原始卷积层的待裁剪通道,例如,利用深度学习框架tensorflow提供的用于剪枝的接口确定该原始卷积层的待裁剪通道,将该原始卷积层的对应于候选裁剪比例的裁剪数量作为用于剪枝的接口的输入参数,由用于剪枝的接口确定出该原始卷积层的对应于候选裁剪比例的裁剪数量个待裁剪通道。

在本实施例中,可以预先设置一个预设裁剪比例序列,预设裁剪比例序列包括多个比例,预设裁剪比例序列中的每一个比例均为一个小于1的分数,预设裁剪比例序列中的每一个裁剪比例均为可能成为最优裁剪比例的裁剪比例。在预设裁剪比例序列中,各个裁剪比例按照从小至大的顺序排列。

在本实施例中,预设裁剪比例序列中的每一个裁剪比例可以分别作为一个候选裁剪比例。换言之,预设裁剪比例序列中的所有裁剪比例作为多个候选裁剪比例,最优裁剪比例是从预设裁剪比例序列中的所有裁剪比例中确定出的。

针对每一个候选裁剪比例,以该候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,得到该候选裁剪比例对应的经裁剪卷积神经网络。

针对每一个候选裁剪比例,计算该候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量。

对于任意一个候选裁剪比例,该候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量为:原始卷积神经网络的识别精度减去该候选裁剪比例对应的经裁剪卷积神经网络的识别精度。

对于任意一个候选裁剪比例,若该候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量小于差异量阈值,则该候选裁剪比例满足预设条件,差异量阈值大于0。

可以将多个候选裁剪比例中的所有满足预设条件的候选裁剪比例中的最大的候选裁剪比例确定为最优裁剪比例。

在本实施例中,可以利用多个用于测试精度的图像确定原始卷积神经网络的识别精度。

针对多个用于测试精度的图像中的每一个用于测试精度的图像,将该用于测试精度的图像输入到原始卷积神经网络中,原始卷积神经网络输出该用于测试精度的图像对应的预测识别结果,若该用于测试精度的图像对应的预测识别结果与该用于测试精度的图像的标注识别结果一致,则该用于测试精度的图像对应的预测识别结果正确,若该用于测试精度的图像对应的预测识别结果与该用于测试精度的图像的标注识别结果不一致,则该用于测试精度的图像对应的预测识别结果错误。

例如,用于测试精度的图像为包括手势的手势图像,用于测试精度的图像对应的预测识别结果为预测出的该手势的类型,用于测试精度的图像对应的标注识别结果为该手势的实际类型。若预测出的该手势的类型与该手势的实际类型相同,则该用于测试精度的图像对应的预测识别结果与该用于测试精度的图像的标注识别结果一致,该用于测试精度的图像对应的预测识别结果正确,若预测出的该手势的类型与该手势的实际类型不同,则该用于测试精度的图像对应的预测识别结果与该用于测试精度的图像的标注识别结果不一致,该用于测试精度的图像对应的预测识别结果错误。

例如,用于测试精度的图像包括多个对象,用于测试精度的图像对应的预测识别结果包括:该多个对象中的每一个对象的预测中心点位置。用于测试精度的图像对应的标注识别结果包括:该多个对象中的每一个对象的标注中心点位置,对象的标注中心点位置为对象的中心点的实际位置。确定是否对于该多个对象中的任意一个对象,该对象的预测中心点位置与该的对象的标注中心点位置之间的距离小于阈值;若是,则该用于测试精度的图像对应的预测识别结果与该用于测试精度的图像的标注识别结果一致,该用于测试精度的图像对应的预测识别结果正确;若否,则该用于测试精度的图像对应的预测识别结果与该用于测试精度的图像的标注识别结果不一致,该用于测试精度的图像对应的预测识别结果错误。

可以将对应的预测识别结果正确的用于测试精度的图像的数量除以多个用于测试精度的图像包括的用于测试精度的图像的数量,得到原始卷积神经网络的识别精度。

在本实施例中,可以利用多个用于测试精度的图像确定任意一个候选裁剪比例对应的经裁剪卷积神经网络的识别精度。利用多个用于测试精度的图像确定相应的候选裁剪比例对应的经裁剪卷积神经网络的识别精度的方式与上述利用多个用于测试精度的图像确定原始卷积神经网络的识别精度的方式同理。

将目标卷积神经网络中的卷积层称之为目标卷积层,原始卷积神经网络的每一个原始卷积层分别对应一个目标卷积层。

对于原始卷积神经网络的每一个原始卷积层,以最优裁剪比例对该原始卷积层的权重通道进行裁剪是指:去除该原始卷积层的对应于最优裁剪比例的裁剪数量个权重通道,该原始卷积层的对应于最优裁剪比例的裁剪数量为最优裁剪比例与该原始卷积层包括的权重通道的数量的乘积,该原始卷积层中的被去除的权重通道可以称之待裁剪通道,可以采用已有的确定卷积层的待裁剪通道的算法确定原始卷积层的待裁剪通道,例如,利用深度学习框架tensorflow提供的用于剪枝的接口确定原始卷积层的待裁剪通道,将该原始卷积层的对应于最优裁剪比例的裁剪数量作为用于剪枝的接口的输入参数,用于剪枝的接口确定出该原始卷积层的对应于最优裁剪比例的裁剪数量个待裁剪通道。

利用以最优裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到得到的目标卷积神经网络对待识别图像进行处理,得到待识别图像对应的识别结果,最优裁剪比例为多个候选裁剪比例中的所有满足预设条件的候选裁剪比例中的最大的候选裁剪比例,预设条件为候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量小于差异量阈值,最优裁剪比例为多个候选裁剪比例中的可以最大幅度提升卷积神经网络的推理速度并且可以确保识别精度不会大幅度下降的裁剪比例,采用最优裁剪比例,对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,得到目标卷积神经网络,可以取得较好的推理速度的提升效果,同时,可以确保不会出现由于裁剪导致识别精度大幅度下降的情况,利用目标卷积神经网络对待识别图像进行处理,得到待识别图像对应的识别结果,取得较好的得到相应的识别结果的速度的提升效果。

步骤201,获取待识别图像。

在本实施例中,待识别图像为与目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理的类型相关的图像。

例如,目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理可以为手势识别或对多个对象进行分割。若目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理为手势识别,待识别图像为包括手势的手势图像。若目标卷积神经网络对输入到目标卷积神经网络中的图像进行的处理为对多个对象进行分割,待识别图像包括多个对象。

步骤202,利用以最优裁剪比例裁剪原始卷积神经网络得到目标卷积神经网络对待识别图像进行处理,得到待识别图像对应的识别结果,在处理过程中,根据通道维度数据包括的输入值的数量,执行相应的操作。

在本实施例中,最优裁剪比例可以通过以下步骤确定:重复地执行查找操作,直至查找操作的执行次数达到次数阈值,该查找操作包括:基于该查找操作针对的上限裁剪比例和该查找操作针对的下限裁剪比例,从预设裁剪比例序列中确定出该查找操作针对的候选裁剪比例,其中,首次执行的查找操作针对的上限裁剪比例为预设裁剪比例序列中的最大裁剪比例,首次执行的查找操作针对的下限裁剪比例为预设裁剪比例序列中的最小裁剪比例,在预设裁剪比例序列中,各个裁剪比例按照从小至大的顺序排列;以该候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,得到该候选裁剪比例对应的经裁剪卷积神经网络;确定该候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量是否小于差异量阈值;若是,将该候选裁剪比例作为优选裁剪比例,将该候选裁剪比例作为下一次执行的查找操作针对的下限裁剪比例并且将该查找操作针对的上限裁剪比例作为下一次执行的查找操作针对的上限裁剪比例;若否,将该候选裁剪比例作为下一次执行的查找操作针对的上限裁剪比例并且将该查找操作针对的下限裁剪比例作为下一次执行的查找操作针对的下限裁剪比例;将在最后一次执行的查找操作结束之后作为优选裁剪比例的相应的候选裁剪比例确定为最优裁剪比例。

在本实施例中,在预设裁剪比例序列中,各个裁剪比例按照从小至大的顺序排列,将预设裁剪比例序列中的最小的裁剪比例称之为预设裁剪比例序列中的最小裁剪比例,预设裁剪比例序列中的最小裁剪比例为预设裁剪比例序列中的第一个裁剪比例,将预设裁剪比例序列中的最大的比例称之为预设裁剪比例序列中的最大裁剪比例,预设裁剪比例序列中的最大裁剪比例为预设裁剪比例序列中的最后一个比例。

在本实施例中,首次执行的查找操作针对的上限裁剪比例为预设裁剪比例序列中的最大裁剪比例,首次执行的查找操作针对的下限裁剪比例为预设裁剪比例序列中的最小裁剪比例。

在第N次执行的查找操作的执行过程中,基于第N次执行的查找操作针对的上限裁剪比例和下限裁剪比例,从预设裁剪比例序列中确定出第N次执行的查找操作针对的候选裁剪比例。

第N次执行的查找操作针对的上限裁剪比例在预设裁剪比例序列中的位置记为R,第N次执行的查找操作针对的下限裁剪比例在预设裁剪比例序列中的位置记为L,当基于第N次执行的查找操作针对的上限裁剪比例和第N次执行的查找操作针对的下限裁剪比例,从预设裁剪比例序列中确定出第N次执行的查找操作针对的候选裁剪比例时,可以将在预设裁剪比例序列中的位置位于(R+L)/2的裁剪比例确定为第N次执行的查找操作针对的候选裁剪比例,(R+L)/2可以表示对(R+L)除以2的结果向上取整。

在第N次执行的查找操作的执行过程中,以第N次执行的查找操作针对的候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,得到该候选裁剪比例对应的经裁剪卷积神经网络。

在第N次执行的查找操作的执行过程中,确定第N次执行的查找操作针对的候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量是否小于差异量阈值;若是,将该候选裁剪比例作为优选裁剪比例,将第N次执行的查找操作针对的候选裁剪比例作为第N+1次执行的查找操作针对的下限裁剪比例并且将第N次执行的查找操作针对的上限裁剪比例作为第N+1次执行的查找操作针对的上限裁剪比例;若否,将第N次执行的查找操作针对的候选裁剪比例作为第N+1次执行的查找操作针对的上限裁剪比例并且将第N次执行的查找操作针对的下限裁剪比例作为第N+1次执行的查找操作针对的下限裁剪比例。

在本实施例中,当查找操作的执行次数达到次数阈值时,不再执行查找操作,可以将在最后一次执行的查找操作结束之后作为优选裁剪比例的相应的候选裁剪比例确定为最优裁剪比例。

重复地执行查找操作直至查找操作的执行次数达到次数阈值,以查找最佳裁剪比例。每一次执行查找操作,基于该查找操作针对的上限裁剪比例和该查找操作针对的下限裁剪比例,从预设裁剪比例序列中确定出该查找操作针对的候选裁剪比例。每一次执行查找操作,从预设裁剪比例序列的子集即由该查找操作针对的上限裁剪比例、该查找操作针对的下限裁剪比例、位于该查找操作针对的上限裁剪比例与该查找操作针对的下限裁剪比例之间的裁剪比例组成的子集中确定出一个候选比例,以该候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,得到候选裁剪比例对应的经裁剪卷积神经网络,不会以该子集的其他裁剪比例对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪。相比于将预设裁剪比例序列中的每一个裁剪比例分别作为一个候选比例,无需逐一以预设裁剪比例序列中的每一个裁剪比例对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,节省确定最佳裁剪比例的过程开销。

在本实施例中,原始卷积神经网络的识别精度可以基于利用原始卷积神经网络对用于测试精度的图像进行识别得到的识别结果与用于测试精度的图像的标注识别结果的相似度确定。

用于测试精度的图像的数量可以为多个。可以针对多个用于测试精度的图像中的每一个用于测试精度的图像,计算利用原始卷积神经网络对该用于测试精度的图像进行识别得到的识别结果与该用于测试精度的图像的标注识别结果的相似度,得到该用于测试精度的图像对应的相似度。

例如,用于测试精度的图像为包括手势的手势图像。对于多个用于测试精度的图像中的任意一个用于测试精度的图像,将该用于测试精度的图像输入到原始卷积神经网络中,计算原始卷积神经网络对该用于测试精度的图像进行识别得到的识别结果与该用于测试精度的图像的标注识别结果的相似度,该用于测试精度的图像的标注识别结果为该手势的实际类型,手势类型之间的相似度可以预先设置,将该相似度作为该用于测试精度的图像对应的相似度。

例如,用于测试精度的图像包括多个对象的图像。对于任意一个用于测试精度的图像,将用于测试精度的图像输入到原始卷积神经网络中,计算原始卷积神经网络对该用于测试精度的图像进行识别得到的识别结果与该用于测试精度的图像的标注识别结果的相似度,原始卷积神经网络对用于测试精度的图像进行识别得到的识别结果包括:该用于测试精度的图像中的每一个对象的预测中心点,该用于测试精度的图像的标注识别结果包括该每一个对象的标注中心点位置,该对象的标注中心点位置为该对象的中心点的实际位置,

对于任意一个该对象,若该对象的预测中心点位置与该对象的标注中心点位置中的中心点之间的距离小于距离阈值,则可以视为该对象为预测正确的对象,可以将该用于测试精度的图像中的预测正确的对象的数量与对象的数量的比例即预测正确的对象的数量除以该用于测试精度的图像中的对象的数量作为原始卷积神经网络对该用于测试精度的图像进行识别得到的识别结果与该用于测试精度的图像的标注识别结果的相似度。

当确定原始卷积神经网络的识别精度时,在计算出每一个用于测试精度的图像对应的相似度之后,可以将用于测试精度的图像对应的相似度的平均值作为原始卷积神经网络的识别精度。

在本实施例中,候选裁剪比例对应的经裁剪卷积神经网络的识别精度可以基于利用该候选裁剪比例对应的经裁剪卷积神经网络对用于测试精度的图像进行识别得到的识别结果与用于测试精度的图像的标注识别结果的相似度确定。

用于测试精度的图像的数量可以为多个。可以针对多个用于测试精度的图像中的每一个用于测试精度的图像,计算利用候选裁剪比例对应的经裁剪卷积神经网络对该用于测试精度的图像进行识别得到的识别结果与该用于测试精度的图像的标注识别结果的相似度,得到该用于测试精度的图像对应的相似度。当确定该候选裁剪比例对应的经裁剪卷积神经网络的识别精度时,在计算出每一个用于测试精度的图像对应的相似度之后,可以将用于测试精度的图像对应的相似度的平均值作为该候选裁剪比例对应的经裁剪卷积神经网络的识别精度。

每一个利用原始卷积神经网络对用于测试精度的图像进行识别得到的识别结果与用于测试精度的图像的标注识别结果的相似度均可以参与确定原始卷积神经网络的识别精度,较为全面地评估卷积神经网络的识别精度,较为准确地确定出原始神经网络的识别精度。对于任意一个候选裁剪比例,每一个利用该候选裁剪比例对应的经裁剪卷积神经网络对用于测试精度的图像进行识别得到的识别结果与用于测试精度的图像的标注识别结果的相似度均可以参与确定该候选裁剪比例对应的经裁剪卷积神经网络的识别精度,较为全面地评估该候选裁剪比例对应的经裁剪卷积神经网络的识别精度,较为准确地确定出该候选裁剪比例对应的经裁剪卷积神经网络的识别精度。

将目标卷积层中的卷积层称之为目标卷积层,将在利用目标卷积神经网络对待识别图像进行处理的过程中,输入到目标卷积层中的数据称之为目标卷积层的输入数据。

在利用目标卷积神经网络对待识别图像进行处理的过程中,对于任意一个目标卷积层,由该目标卷积层对该目标卷积层的输入数据进行卷积处理。

对于任意一个目标卷积层,该目标卷积层对该目标卷积层的输入数据进行卷积处理实际为将该目标卷积层的输入数据对应的输入数据矩阵与该目标卷积层的权重矩阵相乘。

在利用目标卷积神经网络对待识别图像进行处理的过程中,对于任意一个目标卷积层,可以生成该目标卷积层的输入数据对应的输入数据矩阵、该目标卷积层的权重矩阵。

可以利用通用矩阵乘法(GEMM),生成该目标卷积层的输入数据对应的输入数据矩阵、该目标卷积层的权重矩阵。

对于任意一个目标卷积层,该目标卷积层的输入数据对应的输入数据矩阵包括:该目标卷积层的输入数据。

对于任意一个目标卷积层,该目标卷积层的权重矩阵包括:该目标卷积层中的每一个滤波器的权重集合,该滤波器的权重集合由该滤波器的所有权重组成。

对于一个目标卷积层,该目标卷积层的输入数据对应的输入数据矩阵记为矩阵A,目标卷积层的权重矩阵记为矩阵B。

矩阵A中的一行为各个输入通道上的同一个位置的输入值,矩阵A中的一行为该目标卷积层的一个通道维度数据。对于该目标卷积层的一个通道维度数据的每一个第一分块数据,矩阵B的用于与该通道维度数据相乘的列中的多个用于与该第一分块数据的输入值相乘的权重组成该目标卷积层的对应于该第一分块数据的权重集合。

对于任意一个目标卷积层,该目标卷积层由多个通道维度数据组成,多个通道维度数据中的每一个通道维度数据对应该目标卷积层的一个输入通道,该每一个通道维度数据对应的输入通道不同,多个通道维度数据包括的通道维度数据的数量等于该目标卷积层的输入通道数量。

在利用目标卷积神经网络对待识别图像进行处理的过程中,对于任意一个目标卷积层,若该目标卷积层的输入数据的通道维度数据包括的输入值的数量为第一加载数量的倍数,分别对该目标卷积层的输入数据的每一个通道维度数据执行第一操作。

第一加载数量可以为8,目标卷积层的输入数据的通道维度数据包括的输入值的数量为第一加载数量的倍数的情况下,目标卷积层的输入数据的通道维度数据包括的输入值的数量为可以16、24、32等数量中的一个。

用于执行本公开提供的图像处理方法的处理器可以为ARM处理器,输入值的类型可以为int8类型。

用于执行本公开提供的方法的处理器的第一寄存器为用于执行本公开提供的方法的处理器可以用于加载输入值的寄存器。

用于执行本公开提供的方法的处理器的第二寄存器为用于执行本公开提供的方法的处理器的可以用于加载权重的寄存器。

用于执行本公开提供的方法的处理器的第一寄存器可以预先从该处理的所有寄存器中选择出,用于执行本公开提供的方法的处理器的第一寄存器的数量可以为一个或多个。用于执行本公开提供的方法的处理器的第二寄存器可以预先从该处理的所有寄存器中选择出,用于执行本公开提供的方法的处理器的第二寄存器的数量可以为一个或多个。第一寄存器的数量等于第二寄存器的数量。

在本实施例中,对于一个任意一个通道维度数据,对该通道维度数据的第一操作可以包括:将该通道维度数据作为一个分块数据或者将该通道维度数据划分为多个分块数据,对于任意一个该分块数据,该分块数据包括的输入值的数量可以等于处理器的每一个第一寄存器的存储位置数量之和,处理器的每一个第一寄存器的存储位置数量之和可以称之为单次最大加载数量。

第一加载数量可以为8,目标卷积层的输入数据的通道维度数据包括的输入值的数量为第一加载数量的倍数的情况下,目标卷积层的输入数据的通道维度数据包括的输入值的数量为可以16、24、32等数量中的一个,处理器的第一寄存器的数量可以为2,单次最大加载数量可以为16。

第一寄存器的存储位置数量为第一寄存器包括的存储位置的数量,第一寄存器的存储位置数量等于第一加载数量,第一寄存器的一个存储位置存储一个输入值。第二寄存器的存储位置数量为第二寄存器包括的存储位置的数量,第二寄存器的存储位置数量等于第一加载数量,第二寄存器的一个存储位置存储一个权重;

分别对每一个该分块数据执行计算操作,对该分块数据的计算操作包括:将该分块数据加载到处理器的所有第一寄存器中,该所有第一寄存器中的每一个第一寄存器存储该分块数据中的第一加载数量个输入值;将该目标卷积层的对应于该分块数据的权重集合加载到该处理器的所有第二寄存器中,该目标卷积层的对应于该分块数据的权重集合包括的权重的数量为单次最大加载数量;由处理器的算数逻辑单元(ALU)从所有第一寄存器中读取出单次最大加载数量个输入值并且从所有第二寄存器中读取出单次最大加载数量个权重;分别将该分块数据中的每一个输入值与对应于该分块数据的权重集合中的相应的权重相乘。

在利用目标卷积神经网络对待识别图像进行处理的过程中,对于任意一个目标卷积层,若该目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且目标卷积层的输入数据的通道维度数据包括的输入值的数量为第二加载数量的倍数,分别对该目标卷积层的输入数据的每一个通道维度数据执行第二操作。

第二加载数量可以为第一加载数量的一半,例如,第一加载数量可以为8,第二加载数量可以为4,

对于一个任意一个通道维度数据,对该通道维度数据的第二操作可以包括:将该通道维度数据划分为前N个分块数据和最后一个分块数据组成,N为1或大于1的一个整数,该前N个分块数据中的每一个分块数据包括的输入值的数量为单次最大加载数量的分块数据,最后一个分块数据包括的输入值的数量为:通道维度数据包括的输入值的数量减去前N个分块数据包括的输入值的数量。

在目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且目标卷积层的输入数据的通道维度数据包括的输入值的数量为第二加载数量的倍数的情况下,该目标卷积层的输入数据的通道维度数据包括的输入值的数量为20、28、36等数量中的一个,单次最大加载数量可以为16;

分别对该前N个分块数据中的每一个分块数据执行计算操作,以及对该最后一个分块数据执行计算操作;

对该前N个分块数据中的分块数据的计算操作可以包括:将该分块数据加载到处理器的所有第一寄存器中并且将目标卷积层的对应于该分块数据的权重集合加载到处理器的所有第二寄存器中,该目标卷积层的对应于该分块数据的权重集合包括的权重的数量为单次最大加载数量;由处理器的算数逻辑单元从所有第一寄存器中读取出该分块数据并且从所有第二寄存器中读取出目标卷积层的对应于该加载分块数据的权重集合;分别将分块数据中的每一个输入值与对应于该分块数据的权重集合中的相应的权重相乘;

对该最后一个分块数据的计算操作可以包括:将该最后一个分块数据加载到一部分第一寄存器中并且将目标卷积层的对应于该非单次最大加载分块数据的权重集合加载到处理器的一部分第二寄存器中,一部分第一寄存器包括的存储位置的数量大于该最后一个分块数据包括的输入值的数量,并且该一部分第一寄存器包括的存储位置的数量与该最后一个分块数据包括的输入值的数量之间的差值小于第一加载数量。该一部分第一寄存器包括的存储位置的数量与该最后一个分块数据包括的输入值的数量之间的差值为:该一部分第一寄存器包括的存储位置的数量减去该最后一个分块数据包括的输入值的数量;

由处理器的算数逻辑单元从该一部分第一寄存器读取出该非最后一个分块数据,对于除了该一部分第一寄存器中的相应的最后一个第一寄存器之外的其他第一寄存器,该其他第一寄存器中的每一个存储位置上的数值均为与相应的权重相乘的输入值,在该其他第一寄存器中,不存在除了存储该最后一个分块数据中的相应的输入值的存储位置之外的其他存储位置,处理器的算数逻辑单元直接采用常规的读取方式即读取第一寄存器中的每一个存储位置上的数值,对于该相应的最后一个第一寄存器,控制处理器的算数逻辑单元以按位读取的方式读取出该一部分第一寄存器包括的存储位置的数量与该最后一个分块数据包括的输入值的数量之间的差值个输入值,由于控制处理器的算数逻辑单元以按位读取的方式读取出该差值个输入值,因此,除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置上的数值均不会被读取出,不会出现处理器的算数逻辑单元将读取出的其他存储位置上的数值与相应的第二寄存器中的相应的位置的数值相乘的情况,相应的,无需对除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置进行清零;由处理器的算数逻辑单元从一部分第二寄存器中目标卷积层的对应于该该最后一个分块数据的权重集合;分别将该最后一个分块数据中的每一个输入值与对应于该该最后一个分块数据的权重集合中的相应的权重相乘。

在本实施例中,在利用目标卷积神经网络对待识别图像进行处理的过程中,对于任意一个目标卷积层,若该目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且该目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第二加载数量的倍数时,分别对该目标卷积层输入数据的每一个通道维度数据执行第三操作。

对于一个目标卷积层的任意一个通道维度数据,对该通道维度数据的第三操作可以包括:将该通道维度数据划分为至少一个单次最大加载分块数据和一个非单次最大加载分块数据;

在目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且该目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第二加载数量的倍数下,该目标卷积层的输入数据的通道维度数据包括的输入值的数量为22、26、30等数量中的一个,单次最大加载数量可以为16;

该单次最大加载分块数据包括的输入值的数量可以等于单次最大加载数量即处理器的每一个第一寄存器的存储位置数量之和,非单次最大加载分块数据包括的输入值的数量小于单次最大加载数量;

分别对每一个单次最大加载分块数据执行计算操作,以及对非单次最大加载分块数据执行计算操作;

对单次最大加载分块数据的计算操作可以包括:将该单次最大加载分块数据加载到处理器的所有第一寄存器中并且将目标卷积层的对应于该单次最大加载分块数据的权重集合加载到处理器的所有第二寄存器中,该目标卷积层的对应于该分块数据的权重集合包括的权重的数量为单次最大加载数量;由处理器的算数逻辑单元从所有第一寄存器中读取出该单次最大加载分块数据并且从所有第二寄存器中读取出目标卷积层的对应于该单次最大加载分块数据的权重集合;分别将该单次最大加载分块数据中的每一个输入值与对应于该分块数据的权重集合中的相应的权重相乘;

对非单次最大加载分块数据的计算操作可以包括:将该非单次最大加载分块数据加载到至少一部分第一寄存器中并且将目标卷积层的对应于该非单次最大加载分块数据的权重集合加载到处理器的至少一部分第二寄存器中;

若单次最大加载数量与该非单次最大加载分块数据包括的输入值的数量之间的差值小于第一加载数量,则将该非单次最大加载分块数据加载到所有第一寄存器中,相应的,将目标卷积层的对应于该非单次最大加载分块数据的权重集合加载到处理器的所有第二寄存器中,所有第一寄存器由所有第一寄存器的前N个第一寄存器和所有第一寄存器的最后一个第一寄存器组成,该前N个第一寄存器中的每一个第一寄存器存储该非单次最大加载分块数据中的相应的第一加载数量个输入值,该差值为:单次最大加载数量减去该非单次最大加载分块数据包括的输入值的数量,该最后一个第一寄存器存储该非单次最大加载分块数据中的相应的该差值个输入值;

若单次最大加载数量与该非单次最大加载分块数据包括的输入值的数量之间的差值大于第一加载数量,则将该非单次最大加载分块数据加载到一部分第一寄存器中,相应的,将目标卷积层的对应于该非单次最大加载分块数据的权重集合加载到处理器的一部分第二寄存器中,一部分第一寄存器由一部分第一寄存器的前M个第一寄存器和该一部分第一寄存器的最后一个第一寄存器组成,M小于N,前M个第一寄存器中的每一个第一寄存器存储该非单次最大加载分块数据中的相应的第一加载数量个输入值,该一部分第一寄存器的最后一个第一寄存器存储该非单次最大加载分块数据中的相应的该差值个输入值;

由处理器的算数逻辑单元从至少部分第一寄存器读取出该非单次最大加载分块数据,对于除了至少部分第一寄存器中的相应的最后一个第一寄存器之外的其他第一寄存器,该其他第一寄存器中的每一个存储位置上的数值均为与相应的权重相乘的输入值,在该其他第一寄存器中,不存在除了存储非单次最大加载分块数据中的相应的输入值的存储位置之外的其他存储位置,处理器的算数逻辑单元直接采用常规的读取方式即读取第一寄存器中的每一个存储位置上的数值,对于该相应的最后一个第一寄存器,控制处理器的算数逻辑单元以按位读取的方式读取出该差值个输入值,由于控制处理器的算数逻辑单元以按位读取的方式读取出该差值个输入值,因此,除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置上的数值均不会被读取出,不会出现处理器的算数逻辑单元将读取出的其他存储位置上的数值与相应的第二寄存器中的相应的位置的数值相乘的情况,相应的,无需对除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置进行清零;由处理器的算数逻辑单元从至少部分第二寄存器中目标卷积层的对应于该非单次最大加载分块数据的权重集合;分别将非单次最大加载分块数据中的每一个输入值与对应于该非单次最大加载分块数据的权重集合中的相应的权重相乘。

在本实施例中,对于任意一个目标卷积层,在该目标卷积层的输入数据的通道维度数据包括的输入值的数量为第一加载数量的倍数的情况下,对该通道维度数据执行第一操作,考虑了在输入数据的通道维度数据包括的输入值的数量为第一加载数量的倍数的情况下,如果由工程师设置的分块数据包括的输入值的数量不是第一加载数量的倍数,需要将第一寄存器中的相应的存储位置清零,增加处理器的开销的问题,分块数据通过对通道维度数据进行划分得到。如果由工程师设置的分块数据包括的输入值的数量不是第一加载数量的倍数,将相应的分块数据加载到一个或所有第一寄存器,由于相应的第一寄存器中的除了存储分块数据中的相应的输入值的存储位置之外的存储位置上的数值不会用于与相应的权重进行相乘,在将相应的第一寄存器中的相应的输入值与相应的第二寄存器中的相应的权重相乘之前,需要将相应的第一寄存器中的除了存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零即将其他存储位置的数值设置为0,由于0值与任何权重相乘的结果都是0,因此,如果一个存储位置上的数值为0,处理器的算数逻辑单元直接确定该存储位置上的数值对应的相乘结果为0,而无需再将该存储位置上的数值与相应的权重相乘。在处理器的算数逻辑单元的常规工作方式下,处理器的算数逻辑单元是读取第一寄存器中的每一个存储位置上的值,利用读取到的相应的值进行相应的计算的,如果不对相应的第一寄存器中的除了存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零,即不将其他存储位置的数值设置为0,处理器将其他存储位置的数值与相应的第二寄存器中的相应的位置的数值相乘,得到的乘积与通道维度数据对应的结果是无关联的,得到的乘积为一个无意义的数值,将其他存储位置的数值与第二寄存器中的相应的位置的数值相乘会这一操作浪费处理器的资源,因此,在将相应的第一寄存器中的相应的输入值与相应的第二寄存器中的相应的权重相乘之前,需要对相应的第一寄存器中的除了存储相应的分块数据中的相应的输入值的存储位置之外的其他存储位置清零。然后,才能开始将相应的第一寄存器中的相应的输入值与相应的第二寄存器中的相应的权重相乘,从而,增加处理器的开销。

而在本实施例中,第一操作可以用于:在通道维度数据包括的输入值的数量为第一加载数量的倍数的情况下,无需将相应的第一寄存器中的存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零0,直接将相应的第一寄存器中的相应的输入值与相应的第二寄存器中的相应的权重相乘。通过执行第一操作,使得通道维度数据中的分块数据包括的输入值的数量等于单次最大加载数量即处理器的每一个第一寄存器的存储位置数量之和,将相应的分块数据加载到所有第一寄存器,对于任意一个第一寄存器,该第一寄存器中的每一个存储位置上的数值均为与相应的权重相乘的输入值,在该第一寄存器中,不存在除了存储分块数据中的相应的输入值的存储位置之外的其他存储位置,相应的,无需对任意一个其他存储位置进行清零,避免将相应的第一寄存器中的除了存储相应的分块数据中的相应的输入值的存储位置之外的其他存储位置清零0,增加处理器的开销的情况,节省计算资源。

在本实施例中,对于任意一个目标卷积层,在该目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且目标卷积层的输入数据的通道维度数据包括的输入值的数量为第二加载数量的倍数的情况下,对该通道维度数据执行第二操作。考虑了在通道维度数据包括的输入值的数量不是第一加载数量的倍数并且目标卷积层的输入数据的通道维度数据包括的输入值的数量为第二加载数量的倍数的情况下,需要将相应的第一寄存器中的除了存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零,增加处理器的开销的问题。例如,由工程师设置的分块数据包括的输入值的数量为单次最大加载数量,通道维度数据由前N个分块数据和最后一个分块数据组成,前N个分块数据中的每一个分块数据包括的输入值的数量为单次最大加载数量的分块数据,最后一个分块数据包括的输入值的数量为第二加载数量,单次最大加载数量为处理器的每一个第一寄存器的存储位置数量之和,最后一个分块数据包括的输入值的数量小于单次最大加载数量,在将通道维度数据中的最后一个分块数据加载到所有第一寄存器之后,在相应的第一寄存器中,存在除了存储最后一个分块数据中的相应的输入值的存储位置之外的其他存储位置,需要对相应的第一寄存器中的除了存储最后一个分块数据中的相应的输入值的存储位置之外的其他存储位置清零,从而,增加处理器的开销。

而在本实施例中,第二操作可以用于:在通道维度数据包括的输入值的数量不是第一加载数量的倍数并且目标卷积层的输入数据的通道维度数据包括的输入值的数量为第二加载数量的倍数的情况下,无需将相应的第一寄存器中的存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零0,直接将相应的第一寄存器中的相应的输入值与相应的第二寄存器中的相应的权重相乘。通过第二操作,可以将该通道维度数据划分为将该通道维度数据划分为前N个分块数据和最后一个分块数据,对于前N个分块数据中的分块数据,将该分块数据加载到处理器的所有第一寄存器中,对于任意一个第一寄存器,该第一寄存器中的每一个存储位置上的数值均为与相应的权重相乘的输入值,在该第一寄存器中,不存在除了存储该分块数据中的相应的输入值的存储位置之外的其他存储位置,相应的,无需对任意一个其他存储位置进行清零。对于该最后一个分块数据,将该最后一个分块数据加载到一部分第一寄存器,对于除了该一部分第一寄存器中的相应的最后一个第一寄存器之外的其他第一寄存器,该其他第一寄存器中的每一个存储位置上的数值均为与相应的权重相乘的输入值,在该其他第一寄存器中,不存在除了存储非单次最大加载分块数据中的相应的输入值的存储位置之外的其他存储位置,对于该相应的最后一个第一寄存器,可以控制处理器的算数逻辑单元以按位读取的方式从相应的最后一个第一寄存器中读取出控制处理器的算数逻辑单元以按位读取的方式读取出该一部分第一寄存器包括的存储位置的数量与该最后一个分块数据包括的输入值的数量之间的差值个输入值,除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置上的数值均不会被读取出,不会出现处理器的算数逻辑单元将读取出的其他存储位置上的数值与相应的第二寄存器中的相应的位置的数值相乘的情况,相应的,无需对除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置进行清零;无需对除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置进行清零,从而,无论是利用前N个分块数据进行计算,还是利用最后一个分块数据进行计算,均无需对相应的其他存储位置清零,节省计算资源。

在本实施例中,对于任意一个目标卷积层,在该目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且该目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第二加载数量的倍数的情况下,对该通道维度数据执行第三操作。考虑了在通道维度数据包括的输入值的数量不是第一加载数量的倍数并且通道维度数据包括的输入值的数量不是第二加载数量的倍数的情况下,需要将相应的第一寄存器中的相应的存储位置清零,增加处理器的开销的问题。例如,由工程师设置的分块数据包括的输入值的数量为单次最大加载数量,通道维度数据由前N个分块数据和最后一个分块数据组成,前N个分块数据中的每一个分块数据包括的输入值的数量为单次最大加载数量的分块数据,最后一个分块数据包括的输入值的数量小于单次最大加载数量,在将通道维度数据中的最后一个分块数据加载到所有第一寄存器之后,在相应的第一寄存器中,存在除了存储最后一个分块数据中的相应的输入值的存储位置之外的其他存储位置,需要对相应的第一寄存器中的除了存储最后一个分块数据中的相应的输入值的存储位置之外的其他存储位置清零,从而,增加处理器的开销。

而在本实施例中,第三操作可以用于:在通道维度数据包括的输入值的数量不是第一加载数量的倍数并且通道维度数据包括的输入值的数量不是第二加载数量的倍数的情况下,无需将相应的第一寄存器中的存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零0,直接将相应的第一寄存器中的相应的输入值与相应的第二寄存器中的相应的权重相乘。通过第三操作,可以将该通道维度数据划分为多个单次最大加载分块数据和一个非单次最大加载分块数据,对于单次最大加载分块数据,将单次最大加载分块数据加载到处理器的所有第一寄存器中,对于任意一个第一寄存器,该第一寄存器中的每一个存储位置上的数值均为与相应的权重相乘的输入值,在该第一寄存器中,不存在除了存储单次最大加载分块数据中的相应的输入值的存储位置之外的其他存储位置,相应的,无需对任意一个其他存储位置进行清零。对于非单次最大加载分块数据,将非单次最大加载分块数据加载到至少部分第一寄存器,对于除了至少部分第一寄存器中的相应的最后一个第一寄存器之外的其他第一寄存器,该其他第一寄存器中的每一个存储位置上的数值均为与相应的权重相乘的输入值,在该其他第一寄存器中,不存在除了存储非单次最大加载分块数据中的相应的输入值的存储位置之外的其他存储位置,对于该相应的最后一个第一寄存器,可以控制处理器的算数逻辑单元以按位读取的方式从相应的最后一个第一寄存器中读取出单次最大加载数量与该非单次最大加载分块数据包括的输入值的数量之间的差值个输入值,无需对除了该差值个输入值中的输入值所在的存储位置之外的其他存储位置进行清零,从而,无论是利用单次最大加载分块数据进行计算,还是利用非单次最大加载分块数据进行计算,均无需对相应的其他存储位置清零,节省计算资源。

在本实施例中,对于一个目标卷积层的任意一个通道维度数据,对该通道维度数据的第一操作可以包括:将该通道维度数据划分为多个第一分块数据,其中,第一分块数据包括的输入值的数量为第一加载数量;分别对每一个第一分块数据执行第一子操作,对该第一分块数据的第一子操作包括:将该第一分块数据加载到处理器的第一寄存器中并且将该目标卷积层的对应于该第一分块数据的权重集合加载到处理器的第二寄存器中,第一加载数量等于第一寄存器的存储位置数量;由处理器的算数逻辑单元执行第一读取指令并且分别将该第一分块数据中的每一个输入值与对应于该第一分块数据的权重集合中的相应的权重相乘,其中,第一读取指令用于从处理器的第一寄存器中读取出第一加载数量个输入值并且从处理器的第二寄存器中读取出第一加载数量个权重。

第一加载数量可以等于处理器的第一寄存器的存储位置数量。

第一加载数量可以为8,第一寄存器的存储位置数量可以为8。

对于任意一个通道维度数据,对该通道维度数据的第一操作可以包括:将该通道维度数据划分为多个第一分块数据,其中,第一分块数据包括的输入值的数量为第一加载数量;分别对每一个第一分块数据执行第一子操作。

对于任意一个第一分块数据,对该第一分块数据的第一子操作包括:将该第一分块数据加载到处理器的第一寄存器中并且将目标卷积层的对应于该第一分块数据的权重集合加载到处理器的第二寄存器中;由处理器的算数逻辑单元执行第一读取指令并且分别将该第一分块数据中的每一个输入值与对应于该第一分块数据的权重集合中的相应的权重相乘,其中,第一读取指令用于从处理器的第一寄存器中读取出第一加载数量个输入值并且从处理器的第二寄存器中读取出第一加载数量个权重。

对于任意一个第一分块数据,由于第一读取指令用于从处理器的第一寄存器中读取出第一加载数量个输入值并且从处理器的第二寄存器中读取出第一加载数量个权重,因此,在将该第一分块数据加载到处理器的第一寄存器中并且将目标卷积层的对应于该第一分块数据的权重集合加载到处理器的第二寄存器中之后,处理器的算数逻辑单元执行第一读取指令,可以从第一寄存器中读取出该第一分块数据并且从第二寄存器中读取出对应于该第一分块数据的权重集合。

对于任意一个第一分块数据,当由处理器的算数逻辑单元分别将该第一分块数据中的每一个输入值与对应于该第一分块数据的权重集合中的相应的权重相乘时,对于对应于该第一分块数据的权重集合中的每一个权重,由处理器的算数逻辑单元将该权重与该第一分块数据中的对应于该权重的输入值相乘。

第一读取指令为处理器的算数逻辑单元的指令集中的指令,第一读取指令通常为当算数逻辑单元从寄存器读取数据时默认执行的数据读取指令。

在通道维度数据包括的输入值的数量为第一加载数量的倍数的情况下,通过第一操作,可以使得第一分块数据包括的输入值的数量为第一加载数量,将第一分块数据加载到第一寄存器,第一寄存器中的每一个存储位置上的数值均为需要与相应的权重相乘的输入值,不存在除了存储第一分块数据中的相应的输入值的存储位置之外的其他存储位置,无需将相应的存储位置上的数值设置为0,避免将相应的第一寄存器中的存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零0,增加处理器的开销的情况,节省计算资源。在针对相应的第一分块数据的第一子操作的执行过程中,可以仅利用一个寄存器即第一寄存器,因此,可以使用同一个第一寄存器,依次对一个相应的通道维度数据中的每一个第一分块数据执行第一子操作,在对一个相应的通道维度数据进行处理期间,仅需占用一个寄存器,进一步节省计算资源。

在本实施例中,对于一个目标卷积层的任意一个通道维度数据,对该通道维度数据的第二操作可以包括:将该通道维度数据划分为多个第二分块数据,其中,第二加载数量为第一加载数量的一半,第二分块数据包括的输入值的数量为第二加载数量;分别对每一个该第二分块数据执行第二子操作,对该第二分块数据的第二子操作包括:将该第二分块数据加载到处理器的第一寄存器中并且将该目标卷积层的对应于该第二分块数据的权重集合加载到处理器的第二寄存器中;由处理器的算数逻辑单元执行第二读取指令并且分别将该第二分块数据中的每一个输入值与对应于该第二分块数据的权重集合中的相应的权重相乘,其中,第二读取指令用于从处理器的第一寄存器中读取出第二加载数量个输入值并且从处理器的第二寄存器中读取出所述第二加载数量个权重。

在本实施例中,对于任意一个通道维度数据,对该通道维度数据的第二操作包括:将该通道维度数据划分为多个第二分块数据,其中,第二分块数据包括的输入值的数量为第二加载数量;分别对每一个第二分块数据执行第二子操作。

在本实施例中,对于任意一个第二分块数据,对该第二分块数据的第二子操作包括:将该第二分块数据加载到处理器的第一寄存器中并且将该目标卷积层的对应于该第二分块数据的权重集合加载到处理器的第二寄存器中;由处理器的算数逻辑单元执行第二读取指令并且分别将该第二分块数据中的每一个输入值与对应于该第二分块数据的权重集合中的相应的权重相乘,其中,第二读取指令用于从处理器的第一寄存器中读取出第二加载数量个输入值并且从处理器的第二寄存器中读取出所述第二加载数量个权重。

在本实施例中,第二读取指令为处理器的算数逻辑单元的指令集中的指令。

对于任意一个第二分块数据,由于第二读取指令用于从处理器的第一寄存器中读取出第二加载数量个输入值并且从处理器的第二寄存器中读取出第二加载数量个权重,因此,在将该第二分块数据加载到处理器的第一寄存器中并且将该目标卷积层的对应于该第二分块数据的权重集合加载到处理器的第二寄存器中之后,处理器的算数逻辑单元执行第二读取指令,可以从处理器的第一寄存器中读取出该第二分块数据并且从处理器的第二寄存器中读取出对应于该第二分块数据的权重集合。

对于任意一个第二分块数据,当由处理器的算数逻辑单元分别将该第二分块数据中的每一个输入值与对应于该第二分块数据的权重集合中的相应的权重相乘时,对于对应于该第二分块数据的权重集合中的每一个权重,将该第二分块数据中的对应于该权重的输入值与该权重相乘。

在通道维度数据包括的输入值的数量不是第一加载数量的倍数并且通道维度数据包括的输入值的数量不是第二加载数量的倍数的情况下,通过第二操作,可以使得第二分块数据包括的输入值的数量为第二加载数量,将第二分块数据加载到第一寄存器,由于控制处理器的算数逻辑单元执行第二读取指令,可以从处理器的第一寄存器中读取出该第二分块数据,因此,第一存储器中的除了存储该第二分块数据中的相应的输入值的存储位置之外的其他存储位置上的数值均不会被读取出,不会出现处理器的算数逻辑单元将读取出的其他存储位置上的数值与相应的第二寄存器中的相应的位置的数值相乘的情况,相应的,无需对第一存储器中的除了存储该第二分块数据中的相应的输入值的存储位置之外的其他存储位置进行清零。避免将相应的第一寄存器中的存储分块数据中的相应的输入值的存储位置之外的其他存储位置清零0,增加处理器的开销的情况,节省计算资源。在针对相应的第二分块数据的第二子操作的执行过程中,仅利用一个寄存器即第一寄存器,因此,可以使用同一个第一寄存器,依次对一个相应的通道维度数据中的每一个第二分块数据进行第二子操作,在对一个相应的通道维度数据进行处理期间,仅需占用一个寄存器,进一步节省计算资源。

在本实施例中,对于一个目标卷积层的任意一个通道维度数据,对该通道维度数据的第三操作可以包括:将该通道维度数据划分为多个第三分块数据和一个第四分块数据,其中,该第三分块数据包括的输入值的数量为第一加载数量,该第四分块数据包括的输入值的数量小于第一加载数量;分别对每一个该第三分块数据执行第三子操作,以及对该第四分块数据执行第四子操作。

对于一个目标卷积层的任意一个通道维度数据,对通道维度数据的第三操作包括:将该通道维度数据划分为多个第三分块数据和一个第四分块数据,其中,该第三分块数据包括的输入值的数量为第一加载数量,该第四分块数据包括的输入值的数量小于第一加载数量;分别对每一个该第三分块数据执行第三子操作,以及对该第四分块数据执行第四子操作。

该分块数据包括的输入值的数量可以等于处理器的每一个第一寄存器的存储位置数量之和,处理器的每一个第一寄存器的存储位置数量之和可以称之为单次最大加载数量。

对该第三分块数据的第三子操作可以包括:将该第三分块数据加载到分配给该第三分块数据的第一寄存器中,由处理器的算数逻辑单元从第一寄存器中读取出单次最大加载数量个输入值并且从第二寄存器中读取出单次最大加载数量个权重;分别将该分块数据中的每一个输入值与对应于该分块数据的权重集合中的相应的权重相乘。

对该第四分块数据的第四子操作可以包括:将该第四分块数据加载到该第一寄存器中并且将目标卷积层的对应于该第四分块数据的权重集合加载到处理器的第二寄存器中;由处理器的算数逻辑单元执行第一读取指令以读取出所有存储在第一寄存器中的输入值,从所有存储在第一寄存器中的输入值中截取出第四分块数据中的每一个输入值,分别将第四分块数据中的每一个输入值与对应于该第四分块数据的权重集合中的相应的权重相乘。

在通道维度数据包括的输入值的数量不是第一加载数量的倍数并且通道维度数据包括的输入值的数量不是第二加载数量的倍数的情况下,可以将该通道维度数据划分为多个第三分块数据和一个第四分块数据,该第三分块数据包括的输入值的数量为第一加载数量,该第四分块数据包括的输入值的数量小于第一加载数量。第三分块数据包括的输入值的数量为第一加载数量,使得对于任意一个第三分块数据,将第三分块数据加载到相应的第一寄存器中,处理器的算数逻辑单元直接从分配给该第三分块数据的第一寄存器中读取出该第三分块数据无需对相应的存储位置进行清零,无需对第三分块数据进行额外的处理,直接利用第三分块数据进行计算,对通道维度数据的整个过程仅涉及对一个分块数据即第四分块数据进行额外的处理即第四子操作中从所有存储在第一寄存器中的输入值中截取出第四分块数据中的每一个输入值,低成本地实现为了节省资源,无需将相应的其他存储位置进行清零的目标。

在本实施例中,对于任意一个第三分块数据,对该第三分块数据的第三子操作可以包括:将该第三分块数据加载到处理器的第一寄存器中并且将目标卷积层的对应于该第三分块数据的权重集合加载到第二寄存器中;由处理器的算数逻辑单元执行第一读取指令并且分别将该第三分块数据中的每一个输入值与对应于该第三分块数据的权重集合中的相应的权重相乘。在针对相应的第三分块数据的第一操作的执行过程中,可以仅利用一个寄存器即第一寄存器,因此,可以使用同一个第一寄存器,依次对一个相应的通道维度数据中的每一个第三分块数据进行第三子操作,在对一个相应的通道维度数据进行处理期间,仅需占用一个寄存器,进一步节省计算资源。

在本实施例中,对任意一个第四分块数据,对该第四分块数据的第四子操作包括:将该第四分块数据加载到处理器的第一寄存器中并且将目标卷积层的对应于所述第四分块数据的权重集合加载到处理器的第二寄存器中;由处理器的算数逻辑单元执行第三读取指令并且分别将该第四分块数据中的每一个输入值与对应于该第四分块数据的权重集合中的相应的权重相乘,第三读取指令用于从第一寄存器中读取出第三加载数量个输入值并且从处理器的第二寄存器中读取出第三加载数量个权重,第三加载数量为第四分块数据包括的输入值的数量。由于处理器的算数逻辑单元执行第三读取指令,可以从处理器的第一寄存器中读取出该第四分块数据,因此,第一存储器中的除了存储该四分块数据中的相应的输入值的存储位置之外的其他存储位置上的数值均不会被读取出,不会出现处理器的算数逻辑单元将读取出的其他存储位置上的数值与相应的第二寄存器中的相应的位置的数值相乘的情况,相应的,无需对第一存储器中的除了存储该第四分块数据中的相应的输入值的存储位置之外的其他存储位置进行清零。处理器的算数逻辑单元执行第三读取指令这一操作的开销小,低成本地实现在对第四分块数据进行处理的过程中,为了节省计算资源,无需对第一存储器中的除了存储该第四分块数据中的相应的输入值的存储位置之外的其他存储位置进行清零的目标。

图3是根据一示例性实施例示出的一种图像处理装置的结构框图。参照图3,图像处理装置包括:获取模块301,处理模块302。

获取模块301被配置为获取待识别图像;

处理模块302被配置为利用目标卷积神经网络对所述待识别图像进行处理,得到所述待识别图像对应的识别结果,其中,所述目标卷积神经网络通过以最优裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到,最优裁剪比例是从多个候选裁剪比例中确定出的,所述最优裁剪比例为所述多个候选裁剪比例中的所有满足预设条件的候选裁剪比例中的最大的候选裁剪比例,预设条件为候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量小于差异量阈值,所述候选裁剪比例对应的经裁剪卷积神经网络通过以所述候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪得到。

在一些实施例中,所述装置还包括:

最优裁剪比例确定模块,被配置为重复地执行查找操作,直至查找操作的执行次数达到次数阈值,所述查找操作包括:基于所述查找操作针对的上限裁剪比例和下限裁剪比例,从预设裁剪比例序列中确定出所述查找操作针对的候选裁剪比例,其中,首次执行的查找操作针对的上限裁剪比例为预设裁剪比例序列中的最大裁剪比例,首次执行的查找操作针对的下限裁剪比例为预设裁剪比例序列中的最小裁剪比例,在所述预设裁剪比例序列中,各个裁剪比例按照从小至大的顺序排列;以所述候选裁剪比例分别对原始卷积神经网络的每一个原始卷积层的权重通道进行裁剪,得到所述候选裁剪比例对应的经裁剪卷积神经网络;确定所述候选裁剪比例对应的经裁剪卷积神经网络的识别精度与原始卷积神经网络的识别精度之间的差异量是否小于差异量阈值;若是,将所述候选裁剪比例作为优选裁剪比例,将所述候选裁剪比例作为下一次执行的查找操作针对的下限裁剪比例并且将所述查找操作针对的上限裁剪比例作为下一次执行的查找操作针对的上限裁剪比例;若否,将所述候选裁剪比例作为下一次执行的查找操作针对的上限裁剪比例并且将所述查找操作针对的下限裁剪比例作为下一次执行的查找操作针对的下限裁剪比例;将在最后一次执行的查找操作结束之后作为优选裁剪比例的相应的候选裁剪比例确定为所述最优裁剪比例。

在一些实施例中,原始卷积神经网络的识别精度基于利用原始卷积神经网络对用于测试精度的图像进行识别得到的识别结果与所述用于测试精度的图像的标注识别结果的相似度确定,所述候选裁剪比例对应的经裁剪卷积神经网络的识别精度基于利用所述候选裁剪比例对应的经裁剪卷积神经网络对所述用于测试精度的图像进行识别得到的识别结果与所述用于测试精度的图像的标注识别结果的相似度确定。

在一些实施例中,所述装置还包括:

操作执行单元,被配置为当在利用目标卷积神经网络对所述待识别图像进行处理的过程中,目标卷积层的输入数据的通道维度数据包括的输入值的数量为第一加载数量的倍数时,分别对所述输入数据的每一个通道维度数据执行第一操作,所述目标卷积层为目标卷积神经网络中的卷积层;当在利用目标卷积神经网络对所述待识别图像进行处理的过程中,所述目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且所述通道维度数据包括的输入值的数量为第二加载数量的倍数时,分别对所述输入数据的每一个通道维度数据执行第二操作,所述第二加载数量小于所述第一加载数量;当在利用目标卷积神经网络对所述待识别图像进行处理的过程中,所述目标卷积层的输入数据的通道维度数据包括的输入值的数量不是第一加载数量的倍数并且所述通道维度数据包括的输入值的数量不是第二加载数量的倍数时,分别对所述输入数据的每一个通道维度数据执行第三操作。

在一些实施例中,所述第一操作包括:

将所述通道维度数据划分为多个第一分块数据,其中,第一分块数据包括的输入值的数量为第一加载数量;分别对每一个第一分块数据执行第一子操作,所述第一子操作包括:将所述第一分块数据加载到处理器的第一寄存器中并且将所述目标卷积层的对应于所述第一分块数据的权重集合加载到所述处理器的第二寄存器中,所述第一加载数量等于所述第一寄存器的存储位置数量;由所述处理器的算数逻辑单元执行第一读取指令并且分别将所述第一分块数据中的每一个输入值与对应于所述第一分块数据的权重集合中的相应的权重相乘,其中,所述第一读取指令用于从所述第一寄存器中读取出所述第一加载数量个输入值并且从所述第二寄存器中读取出所述第一加载数量个权重。

在一些实施例中,所述第二操作包括:

将所述通道维度数据划分为多个第二分块数据,其中,所述第二加载数量为所述第一加载数量的一半,所述第二分块数据包括的输入值的数量为所述第二加载数量;分别对每一个所述第二分块数据执行第二子操作,所述第二子操作包括:将所述第二分块数据加载到所述处理器的第一寄存器中并且将目标卷积层的对应于所述第二分块数据的权重集合加载到所述处理器的第二寄存器中;由所述算数逻辑单元执行第二读取指令并且分别将所述第二分块数据中的每一个输入值与对应于所述第二分块数据的权重集合中的相应的权重相乘,其中,所述第二读取指令用于从第一寄存器中读取出所述第二加载数量个输入值并且从所述第二寄存器中读取出所述第二加载数量个权重。

在一些实施例中,所述第三操作包括:将所述通道维度数据划分为多个第三分块数据和一个第四分块数据,其中,第三分块数据包括的输入值的数量为所述第一加载数量,所述第四分块数据包括的输入值的数量小于所述第一加载数量;分别对每一个所述第三分块数据执行第三子操作,以及对所述第四分块数据执行第四子操作。

在一些实施例中,所述第三子操作包括:将所述第三分块数据加载到所述处理器的第一寄存器中并且将目标卷积层的对应于所述第三分块数据的权重集合加载到所述处理器的第二寄存器中;由所述算数逻辑单元执行第一读取指令并且分别将所述第三分块数据中的每一个输入值与对应于所述第三分块数据的权重集合中的相应的权重相乘。

在一些实施例中,所述第四子操作包括:将所述第四分块数据加载到所述处理器的第一寄存器中并且将目标卷积层的对应于所述第四分块数据的权重集合加载到所述处理器的第二寄存器中;由所述算数逻辑单元执行第三读取指令并且分别将所述第四分块数据中的每一个输入值与对应于所述第四分块数据的权重集合中的相应的权重相乘,所述第三读取指令用于从所述第一寄存器中读取出第三加载数量个输入值并且从所述第二寄存器中读取出第三加载数量个权重,第三加载数量为所述第四分块数据包括的输入值的数量。

图4是根据一示例性实施例示出的一种电子设备的结构框图。参照图4,电子设备包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述方法。

电子设备还可以包括一个电源组件426被配置为执行电子设备的电源管理,一个有线或无线网络接口450被配置为将电子设备连接到网络,和一个输入输出(I/O)接口458。电子设备可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。

在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备执行以完成上述图像处理方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在示例性实施例中,本申请还提供一种计算机程序产品,包括计算机可读代码,当计算机可读代码在电子设备上执行时,使得电子设备执行上述图像处理方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

技术分类

06120114719345