图像识别方法、装置、电子设备和存储介质与流程
未命名
10-09
阅读:171
评论:0
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.基于多个剪枝后的子参数矩阵,得到已剪枝的图像识别模型对应的参数矩阵。
35.根据本公开实施例的第二方面,提供一种图像识别装置,包括:
36.矩阵划分单元,被配置为执行获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并基于所述参数矩阵的运算单元,将所述参数矩阵划分为多个运算区域;所述参数矩阵包括所述图像识别模型的多个模型参数,所述运算单元包括所述参数矩阵的行或列;
37.排列特征获取单元,被配置为执行获取每个运算区域中的模型参数的参数排列特征,并根据所述参数排列特征,对所述多个运算区域分类,得到至少一个运算区域集合;每个运算区域集合包括至少一个运算区域,归属于同一运算区域集合的各运算区域具有相同的参数排列特征;
38.识别单元,被配置为执行针对每个所述运算区域集合,基于所述运算区域集合中各运算区域的模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果;
39.图像识别结果获取单元,被配置为执行根据各运算区域集合对应的处理结果,获取所述图像识别模型输出的图像识别结果。
40.在一示例性实施例中,所述识别单元,包括:
41.读取模式确定模块,被配置为执行获取所述运算区域集合对应的数据读取模式;所述数据读取模式为读取所述运算区域集合中各运算区域的模型参数的方式;
42.数据读取模块,被配置为执行基于所述数据读取模式,读取所述运算区域集合中每个运算区域的模型参数,并基于每个运算区域的模型参数,对所述待识别图像进行卷积处理,得到每个运算区域的卷积处理结果;
43.集合结果确定模块,被配置为执行基于各运算区域的卷积处理结果,得到所述运算区域集合对应的卷积处理结果。
44.在一示例性实施例中,所述数据读取模块,被配置为执行:
45.若所述运算区域集合包括多个运算区域的模型参数,确定目标数量线程;所述目标数量为所述多个运算区域的区域数量之和;
46.调用所述目标数量线程按照所述数据读取模式,分别读取每个运算区域集合中各个运算区域的模型参数。
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.本方案中,在图像识别过程中,通过将图像识别模型对应的参数矩阵中具有相同参数排列特征的运算区域划分在一起,分别利用每个运算区域集合中的模型参数对待识别图像进行卷积处理,使设备可采用相同或相似的方式访问并处理参数矩阵中具有相同参数排列特征的运算区域,提升数据访问的集中性,避免在运行已剪枝的图像识别模型的过程中频繁切换不同的方式处理模型参数,提高了设备硬件数据处理过程与剪枝后的图像识别模型的适配性,从而提高设备的图像识别效率。
72.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
73.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
74.图1是根据一示例性实施例示出的一种图像识别方法的流程图。
75.图2是根据一示例性实施例示出的一种参数矩阵的示意图。
76.图3是根据一示例性实施例示出的一种获取卷积处理结果的步骤的流程图。
77.图4是根据一示例性实施例示出的一种获取已剪枝的图像识别模型对应的参数矩阵的步骤的流程图。
78.图5是根据一示例性实施例示出的另一种参数矩阵的示意图。
79.图6是根据一示例性实施例示出的一种图像识别装置的框图。
80.图7是根据一示例性实施例示出的一种电子设备的框图。
81.图8是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
82.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
83.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
84.还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
85.图1是根据一示例性实施例示出的一种图像识别方法的流程图。本实施例以该方法应用于终端进行举例说明,终端可以获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并将参数矩阵划分为多个运算区域,其中,参数矩阵包括图像识别模型的多个模型参数;进而,终端可以获取每个运算区域中的模型参数的参数排列特征,并根据参数排列特征,对多个运算区域分类,得到至少一个运算区域集合,其中,每个运算区域集合包括至少一个运算区域,归属于同一运算区域集合的各运算区域具有相同的参数排列特征;然后,针对每个运算区域集合,可以基于运算区域集合中各运算区域的模型参数,对目标图像进行卷积处理,得到运算区域集合对应的卷积处理结果,并根据各运算区域集合对应的处理结果,获取图像识别模型输出的图像识别结果。
86.其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等,便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
87.可以理解的是,上述应用场景仅是一种示例,并不能构成对本公开图像识别方法的限制,如该方法也可以应用于服务器,也可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现,其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。例如,可以通过终端对图像识别模型进行剪枝、微调,得到已剪枝的图像识别模型,进而可以将该已剪枝的图像识别模型部署在服务器,当服务器接收到待识别图像
后,可以根据本公开提供的图像识别方法对待识别图像进行处理,得到相应的图像识别结果。
88.如图1所示,本公开的图像识别方法可以包括如下步骤。
89.在步骤s110中,获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并基于参数矩阵的运算单元,将参数矩阵划分为多个运算区域;参数矩阵包括图像识别模型的多个模型参数,运算单元包括参数矩阵的行或列。
90.作为一示例,待识别图像可以是待识别具体的内容对象或图像语义的目标图像。
91.已剪枝的图像识别模型可以是对初始的图像识别模型进行剪枝处理后得到的模型,其中,图像识别模型可以为神经网络。
92.参数矩阵可以是由图像识别模型的多个模型参数构成的矩阵,模型参数可以是图像识别模型的权重系数,具体例如,神经网络模型包括多个神经元,模型参数可以是神经元对应的权重系数。多个模型参数可以是图像识别模型的所有权重系数,也可以是图像识别模型的部分权重系数,例如图像识别模型可以包括多个处理模块,基于其中一个或多个处理模块的权重系数,可以构成参数矩阵。
93.运算区域可以是每次进行卷积处理时,从参数矩阵中选取的多个模型参数所对应的区域。具体而言,在利用已剪枝的图像识别模对待识别图像进行处理时,可以基于多个模型参数和待识别图像中多个像素点的像素值进行处理,每次处理时,可以从待识别图像中选取多个像素点,并确定参数矩阵中与该多个像素点关联的多个模型参数,该多个模型参数在参数矩阵中所处的区域,可以理解为运算区域,进而可以基于多个模型参数以及多个像素点对应的像素值进行卷积处理,换句话说,可以按照运算区域、分多次对待识别图像进行运算处理。换句话说,运算单元可以理解为矩阵运算过程中,参数矩阵每次进行矩阵运算时的最小处理区域,在进行矩阵运算时,可以将一个矩阵的行中的多个元素,与另一矩阵的列中的多个元素相乘。
94.具体实现中,可以获取待识别图像,并且,可以确定已剪枝的图像识别模型对应的参数矩阵;进而在得到图像识别模型的参数矩阵后,可以基于参数矩阵的运算单元,将该参数矩阵划分为多个运算区域,后续基于参数矩阵中的多个模型参数对待识别图像进行卷积处理时,可以以运算区域为单位,分别进行处理。
95.参数矩阵在与待识别图像进行卷积处理时,设备可以将参数矩阵与待识别图像的多个像素点所构成的矩阵进行矩阵运算,而在利用神经网络进行图像处理的过程中,也会涉及到大量的卷积运算。在一些实施例中,可以通过将卷积运算转化为矩阵运算能够高效地提升设备的图像识别效率,例如通过im2col(image to column)函数对待识别图像进行处理,将待识别图像中对应区域的像素点转化为列向量形式的输出,进而后续可以对参数矩阵和列向量进行矩阵运算。
96.在本实施例中,运算单元可以包括参数矩阵的行或者列,进而在将参数矩阵划分为多个运算区域时,可以将参数矩阵中每n行划分为一个运算区域,或者,可以将每n列划分为一个运算区域,其中,n为正整数。
97.通过按照参数矩阵的运算单元,将参数矩阵划分为多个运算区域,能够在后续按参数矩阵中的行或列对待识别图像进行卷积处理时,将具有相似参数排列特征的行或列划分在一起,使设备在运行已剪枝的图像识别模型时,可以集中处理参数矩阵中具有相似参
数排列方式的行或列,提高设备数据访问模式的集中性和紧凑型,避免频繁切换处理不同参数排列方式的行或列,增加了数据访存的局部性。
98.在步骤s120中,获取每个运算区域中的模型参数的参数排列特征,并根据参数排列特征,对多个运算区域分类,得到至少一个运算区域集合;每个运算区域集合包括至少一个运算区域,归属于同一运算区域集合的各运算区域具有相同的参数排列特征。
99.其中,参数排列特征可以是运算区域中不同类型的模型参数,在对应运算区域中的排列特征,该参数排列特征可以反映不同类型的模型参数在运算区域中的分布方式。在一示例中,可以根据计算结果对多个模型参数进行分类,针对0乘以任何数都等于0的情况,可以将多个模型参数划分为零值模型参数(即模型参数“0”)和非零值模型参数(即除“0”以外的其他模型参数);又如,对于任何数乘以1都等于对应数值的情况,可以将多个模型参数划分为1和除1以外的模型参数。
100.具体实现中,剪枝后的图像识别模型所对应的参数矩阵,从整体上来看,参数矩阵中多个模型参数的分布可以是非规则的、较为散乱的。在获取到多个运算区域后,由于不同类型的模型参数的运算结果或运算规律不同,设备在处理时也可以相应采用不同的处理方式进行处理,针对每个运算区域,可以确定不同类型的模型参数在该运算区域中的分布情况,得到运算区域的参数排列特征。
101.进而可以结合各个运算区域的参数排列特征,对多个参数运算区域进行分类,得到至少一个运算区域集合,每个运算区域集合中包含的运算区域具有相同的参数排列特征,换句话说,在同一运算区域集合中的各个运算区域,模型参数在运算区域中可以具有相同或相似的排列方式。
102.例如,图2示出一种参数矩阵的部分,其中每一行可以对应一个运算区域,从图2可知,第1行和第3行的多个模型参数,模型参数“0”的分布方式相同,第2行和第4行的多个模型参数,模型参数“0”的分布方式相同,则可以将第1行和第3行的运算区域划分到同一个运算区域集合中,并将第2行和第4行的运算区域划分到同一个运算区域集合中。
103.在步骤s130中,针对每个运算区域集合,基于运算区域集合中各运算区域的模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果。
104.在得到至少一个运算区域集合后,由于每个运算区域集合中的各个运算区域具有相同的参数排列特征,归属于同一运算区域集合中的各个运算区域可以使用相同或相似的方式进行模型参数的读取和处理,在利用参数矩阵对待识别图像进行卷积处理时,可以将读取和处理方式相同的运算区域集中在一起进行处理,提升模型参数访存的集中性,避免频繁切换到不同的处理方式中进行卷积处理。
105.具体地,可以以运算区域集合为单位,分别进行卷积处理。针对每个运算区域集合,可以基于运算区域集合中各运算区域的模型参数,对待识别图像进行卷积处理,得到相应的卷积处理结果。
106.在一些可选的实施例中,在按照参数排列特征对运算区域进行划分时,可以对参数矩阵中的多个参数区域进行重排,将具有相同参数排列特征的运算区域重排在邻近区域,例如,以图2的参数矩阵为例,可以将第2行的运算区域与第3行的运算区域进行位置交换。进而设备在基于参数矩阵进行卷积处理时,可以按照相同的方式依次读取和处理邻近的多个运算区域,同时由于邻近的多个运算区域具有相同的参数排列特征,使得设备在处
理时,无需频繁切换数据访存方式,有效提高数据访存的集中性。
107.在步骤s140中,根据各运算区域集合对应的处理结果,获取图像识别模型输出的图像识别结果。
108.在得到每个运算区域集合对应的处理结果后,则可以结合多个运算区域集合各自的处理结果,获取图像识别模型输出的图像识别结果。例如,可以将每个运算区域集合的处理结果存储到预设的输出结果矩阵中,然后可以根据最后得到的输出结果矩阵,确定图像识别模型输出的图像识别结果。
109.上述图像识别方法中,可以获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并将参数矩阵划分为多个运算区域,其中,参数矩阵包括图像识别模型的多个模型参数;然后,可以获取每个运算区域中的模型参数的参数排列特征,并根据参数排列特征,对多个运算区域分类,得到至少一个运算区域集合,每个运算区域集合包括至少一个运算区域,归属于同一运算区域集合的各运算区域具有相同的参数排列特征;针对每个运算区域集合,可以基于运算区域集合中各运算区域的模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果;进而可以根据各运算区域集合对应的处理结果,获取所述图像识别模型输出的图像识别结果。本方案中,在图像识别过程中,通过将图像识别模型对应的参数矩阵中具有相同参数排列特征的运算区域划分在一起,分别利用每个运算区域集合中的模型参数对待识别图像进行卷积处理,使设备可采用相同或相似的方式访问并处理参数矩阵中具有相同参数排列特征的运算区域,提升数据访问的集中性,避免在运行已剪枝的图像识别模型的过程中频繁切换不同的方式处理模型参数,提高了设备硬件数据处理过程与剪枝后的图像识别模型的适配性,从而提高设备的图像识别效率。
110.在一示例性实施例中,如图3所示,在步骤s130中,基于运算区域集合中各运算区域的模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果,可以包括如下步骤:
111.在步骤s310中,获取运算区域集合对应的数据读取模式;数据读取模式为读取运算区域集合中各运算区域的模型参数的方式。
112.实际应用中,不同运算区域中的模型参数,由于参数排布方式不同,其对应的数据读取模式可以存在差异。在本步骤中,在得到运算区域集合后,可以确定运算区域集合对应的数据读取模式,通过该数据读取模式,可以从每个运算区域中读取模型参数。
113.在一可选的实施例中,可以预先设置不同参数排列特征的数据读取模式,进而在划分出至少一个运算区域集合后,可以确定该运算区域集合对应的参数排列特征,并根绝预设的关联关系,确定出该参数排列特征对应的数据读取模式,作为运算区域集合对应的数据读取模式。
114.在步骤s320中,基于数据读取模式,读取运算区域集合中每个运算区域的模型参数,并基于每个运算区域的模型参数,对待识别图像进行卷积处理,得到每个运算区域的卷积处理结果。
115.在得到数据读取模式后,则可以按照同一数据读取模式,从运算区域集合中的每个运算区域中,分别读取运算区域中的模型参数,针对从每个运算区域中读取得到的模型参数,可以基于该运算区域中按照数据读取模式读取得到的模型参数,对待识别图像进行卷积处理,得到该运算区域的卷积处理结果。
116.在步骤s330中,基于各运算区域的卷积处理结果,得到运算区域集合对应的卷积处理结果。
117.在得到各个运算区域的卷积处理结果后,可以结合运算区域集合中各个运算区域对应的卷积处理结果,得到运算区域集合对应的卷积处理结果。
118.在本实施例中,通过基于数据读取模式,读取运算区域集合中每个运算区域的模型参数,能够在利用参数矩阵对待识别图像进行卷积处理时,使用相同的数据读取模式一次性地访问具有相同参数排列特征的各个运算区域并读取模型参数,使设备的数据访问模式更集中紧凑,提高图像识别过程中数据访存的局部性,从而提升了数据的利用率,节省图像识别过程中数据访存时间。
119.在一示例性实施例中,在步骤s320中,基于数据读取模式,读取运算区域集合中每个运算区域的模型参数,可以包括如下步骤:
120.若运算区域集合包括多个运算区域的模型参数,确定目标数量线程;调用目标数量线程按照数据读取模式,分别读取每个运算区域集合中各个运算区域的模型参数。
121.其中,目标数量为多个运算区域的区域数量之和。
122.实际应用中,若运算区域集合中包括多个运算区域,可以通过多个线程分别从多个运算区域中读取模型参数。具体而言,可以以运算区域为单位,对多个运算区域的数量进行求和,得到多个运算区域的区域数量之和。
123.然后,可以将该区域数量之和作为目标数量,并在终端的计算资源中,调用该目标数量的多个线程,然后目标数量线程中的各个线程,可以按照相同的数据读取模式,从运算区域集合对应的运算区域中,分别读取模型参数。
124.在本实施例中,一方面,可以通过多个线程分别从响应的运算区域中读取模型参数,实现模型参数的并行访问,提升数据访问效率,另一方面,通过调用多个线程按照相同的数据读取模型读取模型参数,能够实现单指令下发多数据读取的效果,无需下发不同指令以指示不同线程采用不同方式读取模型参数,提高数据的处理利用率。
125.在一示例性实施例中,在步骤s120中,获取每个运算区域中的模型参数的参数排列特征,可以包括如下步骤:
126.确定每个运算区域中的非零值模型参数的参数排列特征。
127.具体实现中,已剪枝的图像识别模型对应的参数矩阵中,可以包括大量的零值模型参数,在一些示例中,参数矩阵可以是稀疏矩阵(即零值模型参数的数量大于非零值模型参数的数量),当然,也可以是稠密矩阵(即非零值模型参数的数量大于零值模型参数的数量)。可以理解,0乘以任何数都等于0,当需要进行大量与0相关的乘法运算时,会显著提升数据访存次数。
128.对此,本实施例在得到参数矩阵的多个运算区域后,针对每个运算区域,可以确定运算区域中存在的非零值模型参数,并确定非零值模型参数对应的参数排列特征。进而对多个运算区域进行分类时,可以根据每个运算区域中非零值模型参数对应的参数排列特征,划分出至少一个运算区域集合,归属于同一运算区域集合的各运算区域,非零值模型参数具有相同的参数排列特征。
129.相应地,在步骤s130中,基于运算区域集合中各运算区域的模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果,可以包括如下步骤:
130.基于运算区域集合中各运算区域的非零值模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果。
131.针对每个运算区域集合中的各个运算区域,由于0乘以任何数都等于0,因此在进行卷积处理时,可以忽略对零值模型参数的卷积处理(对于零值模型参数,无需设备调用计算资源即可得到具体的卷积结果),而是基于运算区域集合中各运算区域的非零值模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果。
132.在本实施例中,通过确定每个运算区域中的非零值模型参数的参数排列特征,并基于运算区域集合中各运算区域的非零值模型参数,对目标图像进行卷积处理,在利用参数矩阵对待识别图像进行卷积处理的过程中,能够大幅降低数据存取量,提升图像识别模型的运行效率和图像识别效率。
133.在一示例性实施例中,基于运算区域集合中各运算区域的非零值模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果,可以包括如下步骤:
134.在步骤s131中,获取运算区域集合中各非零值模型参数在对应运算区域中的第一位置以及所述待识别图像对应的特征图;特征图包括多个第二位置上的特征信息,每个第一位置并具有对应的第二位置。
135.作为一示例,待识别图像对应的特征图可以是待识别图像一个或多个颜色通道的图像(例如r、g、b中的任一个或多个通道),可以是其他已经经过特征提取处理的图像(例如经上采样、下采样后得到的图像)。特征图中可以包括各个像素点对应的特征信息(如特征值)。
136.在本步骤中,在确定出运算区域集合中每个运算区域的非零值模型参数后,可以确定非零值模型参数在运算区域(或者参数矩阵)中的位置,为便于区分,该位置可以称为第一位置。特征图中的特征信息分布于特征图中的不同位置,特征信息在特征图中的位置,可以称为第二位置。可以理解的是,在利用参数矩阵对待识别图像的特征图进行卷积处理时,参数矩阵中的每个模型参数,可与特征中对应位置的特征信息进行匀速处理,即参数矩阵中的每个第一位置,都对应于特征图中的一个或多个第二位置。
137.在步骤s132中,基于待识别图像对应的特征图,确定与第一位置对应的第二位置上的特征信息,并将特征信息作为位于第一位置上的非零值模型参数对应的目标特征信息。
138.具体地,在获取到待识别图像对应的特征后,可以从特征图中,确定出与第一位置对应的第二位置,第二位置可以是一个或多个,进而可以将特征图上位于第一位置对应第二位置上的一个或多个特征信息,作为第一位置上非零值模型参数对应的目标特征信息。
139.在步骤s133中,针对运算区域集合中的每个运算区域,基于运算区域中各非零值模型参数和各非零值模型参数对应的目标特征信息进行卷积处理,确定运算区域对应的卷积处理结果。
140.在步骤s134中,基于各运算区域的卷积处理结果,得到运算区域集合对应的卷积处理结果。
141.对于运算区域集合中的每个运算区域,可以根据该运算区域中的各个非零值模型参数,以及每个非零值模型参数对应的特征信息进行卷积处理,并基于得到的卷积处理结果,确定为该运算区域对应的卷积处理结果,例如可以直接将该卷积处理结果作为该运算
区域的卷积处理结果,或者,也可以进一步结合其他信息对当前获取的卷积处理结果进行运算处理,得到运算区域集合对应的卷积处理结果。
142.在本实施例中,通过获取运算区域集合中各非零值模型参数在对应运算区域中的第一位置,,确定特征图中与第一位置对应的第二位置上的特征信息,作为目标特征信息,然后基于运算区域中各非零值模型参数和对应的目标特征信息进行卷积处理,能够基于与非零值模型参数相关的特征信息进行卷积处理,并得到卷积处理结果,在卷积处理过程中,避免了大量零值模型参数参与运算,有效提升图像识别效率。
143.在一示例性实施例中,运算区域还包括零值模型参数,在基于运算区域集合中各运算区域的非零值模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果之前,本技术还可以包括如下步骤:
144.剔除运算区域中的零值模型参数,并基于预设的编码规则,对运算区域的非零值模型参数进行编码,得到非零值模型参数在运算区域的索引信息并进行存储。
145.具体实现中,终端(或其他设备)在进行数据处理时,可以将待处理的数据存储到设备的内存中,然后在处理时从内存中读取数据并进行计算。当运算区域中存在零值模型参数时,卷积处理过程中可以将零值模型参数与对应的特征信息相乘,而0乘以任何数都为0。若多次进行与零值模型参数相关的乘法运算,将显著增加终端存储和读取模型参数的次数,但与零值模型参数相关的乘法运算缺少实际意义,由终端cpu多次计算与0相关的乘法并不提升卷积处理结果的精确性。
146.对此,在本实施例中,在确定运算区域后,可以剔除运算区域中的零值模型参数,不对零值模型参数进行存储;而对于运算区域中的非零值模型参数,可以基于预设的编码规则,对运算区域的非零值模型参数进行编码,得到非零值模型参数在运算区域的索引信息,然后可以将该索引信息存储到终端本地的存储单元中(例如内存)。
147.在步骤s131中,获取运算区域集合中各非零值模型参数在对应运算区域中的第一位置,可以包括:
148.根据预设的解码规则对存储的索引信息进行解码,得到运算区域中的非零值模型参数和非零值模型参数在运算区域中的第一位置。
149.进而,在对待识别图像进行图像识别时,终端可以从存储单元中读取预先存储的索引信息,并根据预设的解码规则对该索引信息进行解码,得到运算区域中的非零值模型参数,以及非零值模型参数在运算区域中的第一位置。
150.在一些实施例中,可以预先定义参数矩阵的编码规则和解码规则,参数矩阵的编码规则和解码规则也可以称为稀疏格式或稀疏矩阵的存储格式,通过编码规则,可以对参数矩阵进行压缩,将其中零值模型参数去除并进行数据压缩,得到压缩后的阵列,以减少在存储非零值模型参数时,而基于解码规则,可以将压缩后的阵列还原为原来的参数矩阵。
151.在一示例性实施例中,可以根据相关技术中的存储格式对参数矩阵进行编解码,例如列压缩存储(compressedcolumn storage,ccs)或行压缩存储(ompressedrow storage,crs)。
152.当然,在另外一些实施例中,也可以由开发人员自定义编码规则和解码规则。在一示例的稀疏格式中,其对应的索引信息可以包括权重系数数组(weights array,用于记录运算区域中的各个非零值模型参数)、行偏移数组(row offset array)、出现数组
(occurrence array)、列滑动数组(column stride array)、列压缩数组(compact column array)、行重排数组(reoder array),在对运算区域中的非零值模型参数进行压缩时,可以按照预设的编码规则,生成上述索引信息,然后可以根据解码规则还原出对应的运算区域和运算区域中的各个非零值模型参数。
153.相较于相关技术中直接对包含零值模型参数的稠密矩阵进行数据读取,本实施例中通过剔除运算区域中的零值模型参数,存储非零值模型参数并在进行图像识别时进行还原,可以有效减少图像识别过程中模型参数的存取量和数据访存时间。
154.在一示例性实施例中,如图4所示,在步骤s110中,获取已剪枝的图像识别模型对应的参数矩阵,可以包括如下步骤:
155.在步骤s111中,获取待剪枝的图像识别模型对应的初始参数矩阵。
156.具体地,可以对初始的神经网络进行训练,得到图像识别模型,该图像识别模型中可以包含大量的模型参数,能够获取到较为准确的图像识别结果,但由于该图像识别模型运行时需要处理的模型参数较多,将耗费较多的处理时间和计算资源。在本实施例中,可以对该图像识别模型进行剪枝处理,通过对模型进行剪枝,可以在保证图像识别结果准确性的同时,减少需要处理的模型参数,提高图像识别效率。
157.在本步骤中,在训练并得到图像识别模型后,可以将该图像识别模型作为待剪枝的图像识别模型,并基于待剪枝的图像识别模型的各个模型参数,获取初始参数矩阵,该初始参数矩阵中可以包括待剪枝的图像识别模型的各模型参数。
158.在一实施例中,在确定初始参数矩阵时,可以按照通道(channel)和滤波器(filter)对图像识别模型的多个模型参数进行排列,如图5所示,初始参数矩阵中的m(m≥2,且m为正整数)列可以对应图像识别模型的一个通道,初始参数矩阵中的每一行可以对应图像识别模型的一个滤波器。
159.在步骤s112中,将初始参数矩阵划分为多个子参数矩阵,对每个子参数矩阵中至少一行或至少一列的模型参数进行剪枝处理,得到剪枝后的子参数矩阵。
160.为便于对本公开进行理解,以下模型剪枝作相关介绍。实际应用中,根据模型剪枝的剪枝粒度,可以划分为非结构化剪枝和结构化剪枝。
161.其中,非结构化剪枝的剪枝粒度较小,非结构化剪枝将使模型稀疏化,使模型结构不规则,示例性地,非结构化剪枝可以包括权重系数剪枝、向量剪枝、卷积核剪枝;结构化剪枝的剪枝粒度大于非结构化剪枝,具体可以包括滤波器剪枝或通道剪枝,结构化剪枝可以理解为是减除模型中完整的分支。
162.在本步骤中,在获取到初始参数矩阵后,可以对初始参数矩阵进行划分,得到多个子参数矩阵。具体例如,可以按照预设的矩阵划分规则,将初始参数矩阵划分为多个子参数矩阵,多个子参数矩阵的大小可以相同,也可以存在差异。
163.进而针对每个子参数矩阵,可以对每个子参数矩阵中的至少一行或至少一列的模型参数进行剪枝处理,得到剪枝后的子参数矩阵,其中,对至少一行或至少一列的模型参数进行剪枝处理,可以是将对应的行或列上的所有模型参数设置为零值(0),该剪枝处理也称为bcr(block-based column-row)剪枝,即基于块的行(filter)列(channel)剪枝。
164.在步骤s113中,基于多个剪枝后的子参数矩阵,得到已剪枝的图像识别模型对应的参数矩阵。
165.在对各个子参数矩阵进行剪枝后,可以对多个剪枝后的子参数矩阵重新进行拼接,得到划分为多个子参数矩阵前的参数矩阵,该参数矩阵中的模型参数总量可以保持不变,但其中的部分参数从原来的非零值被设置为零值;进而可以将该参数矩阵作为已剪枝的图像识别模型对应的参数矩阵。
166.在本实施例中,一方面,通过对每个子参数矩阵中的至少一行或一列进行剪枝处理,能够在子参数矩阵中进行结构化剪枝,具有较高的剪枝精度和剪枝力度,另一方面,通过将初始参数矩阵划分为多个子参数矩阵,并对每个自参数矩阵分别进行剪枝处理,能够在宏观上对参数矩阵进行非结构化剪枝,提升参数矩阵整体的剪枝灵活性;从而可以实现半结构化剪枝,使剪枝后得到的已剪枝的图像识别模型对应的参数矩阵既具有结构化剪枝的规则性,又有具有非结构化剪枝的灵活性。
167.为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本公开实施例加以示例性说明,但应当理解的是,本公开实施例并不限于此。
168.具体地,在获取到已剪枝的图像识别模型后,可以获取该图像识别模型对应的参数矩阵,该参数矩阵中可以同时包含零值模型参数和非零值模型参数。进而,设备可以将该参数矩阵划分为多个行,将每个行作为一个运算区域,然后可以确定每个行中的非零值模型参数的参数排列特征,每一种参数排列特征可以对应于一个“模式(pattern)”,进而可以基于每个行的参数排列特征,将参数矩阵中的不同行划分到不同模式下,得到多个运算区域集合,并且可以根据预设的稀疏格式,获取每个行中非零值模型参数的索引信息,并进行存储。
169.在一示例中,在确定每个行的参数排列特征后,可以对参数矩阵中的多个行进行重排序,将具有相同参数排列特征的行排列在一起,使得具有相同参数排列特征的多个行相互邻近。
170.然后,在处理待识别图像时,可以读取存储的索引信息,还原得到参数矩阵。对于输入的待识别图像的各个行,可以通过im2col函数进行格式转换,得到用于矩阵乘计算的格式;然后,对于每个模式,可以根据模式(pattern)下的行(row)索引,在还原后的参数矩阵中读取相应的非零值模型参数,并且,根据列(col)索引和行索引,从经过im2col变换的待识别图像获取对应的输入数据(feature map),进而可以结合该模式(pattern)下的列索引,从当前的输出结果矩阵中获取相应的输出结果数据,并且可以对读取的非零值模型参数、对应的输入数据和输出结果数据做乘累加,将得到的输出结果存储到输出结果矩阵中。
171.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
172.可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
173.基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的图像识别方法的图像识别装置。
174.图6是根据一示例性实施例示出的一种图像识别装置框图。参照图6,该装置包括矩阵划分单元601,排列特征获取单元602,识别单元603和图像识别结果获取单元604。
175.矩阵划分单元601,被配置为执行获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并基于所述参数矩阵的运算单元,将所述参数矩阵划分为多个运算区域;所述参数矩阵包括所述图像识别模型的多个模型参数,所述运算单元包括所述参数矩阵的行或列;
176.排列特征获取单元602,被配置为执行获取每个运算区域中的模型参数的参数排列特征,并根据所述参数排列特征,对所述多个运算区域分类,得到至少一个运算区域集合;每个运算区域集合包括至少一个运算区域,归属于同一运算区域集合的各运算区域具有相同的参数排列特征;
177.识别单元603,被配置为执行针对每个所述运算区域集合,基于所述运算区域集合中各运算区域的模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果;
178.图像识别结果获取单元604,被配置为执行根据各运算区域集合对应的处理结果,获取所述图像识别模型输出的图像识别结果。
179.在一示例性实施例中,所述识别单元603,包括:
180.读取模式确定模块,被配置为执行获取所述运算区域集合对应的数据读取模式;所述数据读取模式为读取所述运算区域集合中各运算区域的模型参数的方式;
181.数据读取模块,被配置为执行基于所述数据读取模式,读取所述运算区域集合中每个运算区域的模型参数,并基于每个运算区域的模型参数,对所述待识别图像进行卷积处理,得到每个运算区域的卷积处理结果;
182.集合结果确定模块,被配置为执行基于各运算区域的卷积处理结果,得到所述运算区域集合对应的卷积处理结果。
183.在一示例性实施例中,所述数据读取模块,被配置为执行:
184.若所述运算区域集合包括多个运算区域的模型参数,确定目标数量线程;所述目标数量为所述多个运算区域的区域数量之和;
185.调用所述目标数量线程按照所述数据读取模式,分别读取每个运算区域集合中各个运算区域的模型参数。
186.在一示例性实施例中,所述排列特征获取单元602,被配置为执行:
187.确定每个运算区域中的非零值模型参数的参数排列特征;
188.所述识别单元603,被配置为执行:
189.基于所述运算区域集合中各运算区域的非零值模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果。
190.在一示例性实施例中,所述识别单元603,被配置为执行:
191.获取所述运算区域集合中各非零值模型参数在对应运算区域中的第一位置,以及所述待识别图像对应的特征图;所述特征图包括多个第二位置上的特征信息,每个第一位置并具有对应的第二位置;
192.基于所述待识别图像对应的特征图,确定与所述第一位置对应的第二位置上的特征信息,并将所述特征信息作为位于所述第一位置上的非零值模型参数对应的目标特征信息;
193.针对所述运算区域集合中的每个运算区域,基于所述运算区域中各非零值模型参数和各非零值模型参数对应的目标特征信息进行卷积处理,确定所述运算区域对应的卷积处理结果;
194.基于各运算区域的卷积处理结果,得到所述运算区域集合对应的卷积处理结果。
195.在一示例性实施例中,所述运算区域还包括零值模型参数,所述装置还包括:
196.索引存储单元,被配置为执行剔除所述运算区域中的零值模型参数,并基于预设的编码规则,对所述运算区域的非零值模型参数进行编码,得到非零值模型参数在所述运算区域的索引信息并进行存储;
197.所述识别单元603,被配置为执行:
198.根据预设的解码规则对存储的所述索引信息进行解码,得到所述运算区域中的非零值模型参数和所述非零值模型参数在所述运算区域中的第一位置。
199.在一示例性实施例中,所述矩阵划分单元601,被配置为执行:
200.获取待剪枝的图像识别模型对应的初始参数矩阵;
201.将所述初始参数矩阵划分为多个子参数矩阵,对每个子参数矩阵中至少一行或至少一列的模型参数进行剪枝处理,得到剪枝后的子参数矩阵;
202.基于多个剪枝后的子参数矩阵,得到已剪枝的图像识别模型对应的参数矩阵。
203.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
204.上述图像识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
205.图7是根据一示例性实施例示出的一种用于实现一种图像识别方法的电子设备700的框图。例如,电子设备700可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
206.参照图7,电子设备700可以包括以下一个或多个组件:处理组件702、存储器704、电源组件706、多媒体组件708、音频组件710、输入/输出(i/o)的接口712、传感器组件714以及通信组件716。
207.处理组件702通常控制电子设备700的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
208.存储器704被配置为存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦
除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
209.电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
210.多媒体组件708包括在所述电子设备700和用户之间的提供输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括前置摄像头和/或后置摄像头。当电子设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是固定的光学透镜系统或具有焦距和光学变焦能力。
211.音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括麦克风(mic),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括扬声器,用于输出音频信号。
212.i/o接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
213.传感器组件714包括一个或多个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如所述组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700组件的位置改变,用户与电子设备700接触的存在或不存在,设备700方位或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
214.通信组件716被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
215.在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
216.在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述方法。例如,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备
等。
217.在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备700的处理器720执行以完成上述方法。
218.图8是根据一示例性实施例示出的一种用于实现一种图像识别方法的电子设备800的框图。例如,电子设备800可以为服务器。参照图8,电子设备800包括处理组件820,其进一步包括一个或多个处理器,以及由存储器822所代表的存储器资源,用于存储可由处理组件820的执行的指令,例如应用程序。存储器822中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件820被配置为执行指令,以执行上述方法。
219.电子设备800还可以包括:电源组件824被配置为执行电子设备800的电源管理,有线或无线网络接口826被配置为将电子设备800连接到网络,和输入输出(i/o)接口828。电子设备800可以操作基于存储在存储器822的操作系统,例如windows server,mac os x,unix,linux,freebsd或类似。
220.在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器822,上述指令可由电子设备800的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
221.在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备800的处理器执行以完成上述方法。
222.需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
223.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
224.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
技术特征:
1.一种图像识别方法,其特征在于,包括:获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并基于所述参数矩阵的运算单元,将所述参数矩阵划分为多个运算区域;所述参数矩阵包括所述图像识别模型的多个模型参数,所述运算单元包括所述参数矩阵的行或列;获取每个运算区域中的模型参数的参数排列特征,并根据所述参数排列特征,对所述多个运算区域分类,得到至少一个运算区域集合;每个运算区域集合包括至少一个运算区域,归属于同一运算区域集合的各运算区域具有相同的参数排列特征;针对每个所述运算区域集合,基于所述运算区域集合中各运算区域的模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果;根据各运算区域集合对应的处理结果,获取所述图像识别模型输出的图像识别结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述运算区域集合中各运算区域的模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果,包括:获取所述运算区域集合对应的数据读取模式;所述数据读取模式为读取所述运算区域集合中各运算区域的模型参数的方式;基于所述数据读取模式,读取所述运算区域集合中每个运算区域的模型参数,并基于每个运算区域的模型参数,对所述待识别图像进行卷积处理,得到每个运算区域的卷积处理结果;基于各运算区域的卷积处理结果,得到所述运算区域集合对应的卷积处理结果。3.根据权利要求2所述的方法,其特征在于,所述基于所述数据读取模式,读取所述运算区域集合中每个运算区域的模型参数,包括:若所述运算区域集合包括多个运算区域的模型参数,确定目标数量线程;所述目标数量为所述多个运算区域的区域数量之和;调用所述目标数量线程按照所述数据读取模式,分别读取每个运算区域集合中各个运算区域的模型参数。4.根据权利要求1所述的方法,其特征在于,所述获取每个运算区域中的模型参数的参数排列特征,包括:确定每个运算区域中的非零值模型参数的参数排列特征;所述基于所述运算区域集合中各运算区域的模型参数,对所述目标图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果,包括:基于所述运算区域集合中各运算区域的非零值模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果。5.根据权利要求4所述的方法,其特征在于,所述基于所述运算区域集合中各运算区域的非零值模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果,包括:获取所述运算区域集合中各非零值模型参数在对应运算区域中的第一位置,以及所述待识别图像对应的特征图;所述特征图包括多个第二位置上的特征信息,每个第一位置具有对应的第二位置;基于所述待识别图像对应的特征图,确定与所述第一位置对应的第二位置上的特征信
息,并将所述特征信息作为位于所述第一位置上的非零值模型参数对应的目标特征信息;针对所述运算区域集合中的每个运算区域,基于所述运算区域中各非零值模型参数和各非零值模型参数对应的目标特征信息进行卷积处理,确定所述运算区域对应的卷积处理结果;基于各运算区域的卷积处理结果,得到所述运算区域集合对应的卷积处理结果。6.根据权利要求5所述的方法,其特征在于,所述运算区域还包括零值模型参数,在所述基于所述运算区域集合中各运算区域的非零值模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果之前,所述方法还包括:剔除所述运算区域中的零值模型参数,并基于预设的编码规则,对所述运算区域的非零值模型参数进行编码,得到非零值模型参数在所述运算区域的索引信息并进行存储;所述获取所述运算区域集合中各非零值模型参数在对应运算区域中的第一位置,包括:根据预设的解码规则对存储的所述索引信息进行解码,得到所述运算区域中的非零值模型参数和所述非零值模型参数在所述运算区域中的第一位置。7.根据权利要求1-6任一项所述的方法,其特征在于,所述获取已剪枝的图像识别模型对应的参数矩阵,包括:获取待剪枝的图像识别模型对应的初始参数矩阵;将所述初始参数矩阵划分为多个子参数矩阵,对每个子参数矩阵中至少一行或至少一列的模型参数进行剪枝处理,得到剪枝后的子参数矩阵;基于多个剪枝后的子参数矩阵,得到已剪枝的图像识别模型对应的参数矩阵。8.一种图像识别装置,其特征在于,包括:矩阵划分单元,被配置为执行获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并基于所述参数矩阵的运算单元,将所述参数矩阵划分为多个运算区域;所述参数矩阵包括所述图像识别模型的多个模型参数,所述运算单元包括所述参数矩阵的行或列;排列特征获取单元,被配置为执行获取每个运算区域中的模型参数的参数排列特征,并根据所述参数排列特征,对所述多个运算区域分类,得到至少一个运算区域集合;每个运算区域集合包括至少一个运算区域,归属于同一运算区域集合的各运算区域具有相同的参数排列特征;识别单元,被配置为执行针对每个所述运算区域集合,基于所述运算区域集合中各运算区域的模型参数,对所述待识别图像进行卷积处理,得到所述运算区域集合对应的卷积处理结果;图像识别结果获取单元,被配置为执行根据各运算区域集合对应的处理结果,获取所述图像识别模型输出的图像识别结果。9.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的图像识别方法。10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电
子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的图像识别方法。
技术总结
本公开关于一种图像识别方法、装置、电子设备和存储介质。所述方法包括:获取待识别图像和已剪枝的图像识别模型对应的参数矩阵,并基于参数矩阵的运算单元,将参数矩阵划分为多个运算区域;获取每个运算区域中的模型参数的参数排列特征,并根据参数排列特征对多个运算区域分类,得到至少一个运算区域集合;针对每个运算区域集合,基于运算区域集合中各运算区域的模型参数,对待识别图像进行卷积处理,得到运算区域集合对应的卷积处理结果;根据各运算区域集合对应的处理结果,获取图像识别模型输出的图像识别结果。本方案可以提高设备硬件数据处理过程与剪枝后的模型的适配性,有效提高设备的图像识别效率。高设备的图像识别效率。高设备的图像识别效率。
技术研发人员:涂小兵 尹成万
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2023.07.11
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:连接机构和显示装置的制作方法 下一篇:网络应用数据转发方法及装置与流程
