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

一种对于特征图的卷积处理方法、装置、设备及介质与流程

2022-05-06 11:16:53 来源:中国专利 TAG:


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.图1为本说明书实施例提供的一种对于特征图的卷积处理方法的应用场景示意图;
27.图2为本说明书实施例提供的一种对于特征图的卷积处理方法的流程示意图;
28.图3为本说明书实施例提供的一种特征图填充的示意图;
29.图4为本说明书实施例提供的一种对特征图进行分块处理的示意图;
30.图5为本说明书实施例中提供的一种组合后的特征图的示意图;
31.图6为本说明书实施例提供的一种对卷积结果重组的示意图;
32.图7为本说明书实施例提供的一种对于特征图的卷积处理的泳道图;
33.图8为本说明书实施例提供的一种对于特征图的卷积处理装置的结构示意图;
34.图9为本说明书实施例提供的一种对于特征图的卷积处理设备的结构示意图。
具体实施方式
35.为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
36.以下结合附图,详细说明本说明书各实施例提供的技术方案。
37.卷积神经网络对物体平移是保持不变的,而对于物体的尺度变化是无法处理的,特征金字塔作为深度学习网络的经典子图,可以获得输入图像在不同尺寸下的特征表达,实现网络的尺度不变性,目前被广泛用于目标检测、图像增强、超分辨相关的图像任务。
38.现有技术中,对于特征金字塔这种网络子图,通常是分别针对每层特征金字塔中的特征图进行卷积运算,一层特征图处理完成后再进行另一层特征图的处理,其中,随着金字塔的层数增加,卷积被调用的次数呈显著的线性增加,在就需要消耗更多的硬件资源,并且需要等待一层的特征图处理完成后才能处理另外的特征图,整体处理效率较低。
39.另外,特征金字塔中每层特征图可能对应的卷积计算量都不是很大,特别是靠近顶层的特征图对应的计算量通常都不大,但是也需要单独消耗一次硬件处理资源,使得处理卷积运算的硬件处理器的利用率较低,也会影响整体的处理效率。
40.为了解决现有技术中的缺陷,本方案给出了以下实施例:
41.图1为本说明书实施例提供的一种对于特征图的卷积处理方法的应用场景示意图。如图1所示,该方案可以包括,服务器1、目标对象的特征金字塔2、组合后的特征图3以及神经网络处理器4。其中,服务器1可以将目标对象的特征金字塔2中包含的多个特征图进行组合处理,得到组合后的特征图3,然后采用神经网络处理器4对组合后的特征图进行卷积运算。
42.实际应用中,神经网络处理器可以部署于服务器中,神经网络处理器也可以与服务器部署在同一个设备中,神经网络处理器也可以与服务器部署在不同的设备中,具体位置关系这里不作具体限定,只要可以满足实际需求即可。
43.接下来,将针对说明书实施例提供的一种对于特征图的卷积处理方法结合附图进行具体说明:
44.图2为本说明书实施例提供的一种对于特征图的卷积处理方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于应用服务器的程序或应用客户端。
45.本说明书实施例中提供的方法可以涉及神经网络处理器,所述神经网络处理器可以包含多个可并行运行的算术逻辑单元;所述多个可并行运行的算术逻辑单元在一次运算过程中可支持的卷积计算向量数量为预设数量。
46.神经网络处理器(npu,neural network processing unit),采用数据驱动并行计算的架构,擅长处理视频、图像类的海量多媒体数据。
47.如图2所示,该流程可以包括以下步骤:
48.步骤202:获取目标对象的特征金字塔;所述特征金字塔包含多个特征图;所述多个特征图中的至少一个特征图包含的第一卷积计算向量数量小于所述预设数量。
49.特征金字塔是用于检测不同尺度的对象的识别系统中的基本组件,是深度学习网络中的子图,如faster r-cnn、retinanet、mask-rcnn等深度学习网路中都包含特征金字塔。
50.本说明书实施例中目标对象可以为图像格式的对象,可以是计算机视觉中待识别的图像。特征金字塔中可以包含多个特征图,可以将每层金字塔看作一个特征图。
51.步骤204:将所述多个特征图进行组合,得到组合后的特征图;所述组合后的特征图包含的第二卷积计算向量数量大于所述第一卷积计算向量数量。
52.本说明书实施例中可以将组合后的特征图作为一个特征图,该组合后的特征图中可以包含特征金子塔中各个特征图的图像象征。卷积计算向量数量可以为对特征图进行卷积运算过程中包含的向量数量,该数量与进行卷积计算的特征图包含的像素点成正相关。
53.步骤206:采用所述神经网络处理器对所述组合后的特征图进行卷积运算。
54.本说明书实施例中可以将组合后的特征图作为一个特征图采用神经网络处理器进行处理。
55.本说明书实施例中可以利用神经网络处理器处理特征图的卷积运算,其中可以将目标对象的特征金字塔中包含的多个特征图进行组合,将组合后的特征图作为一个特征图采用神经网络处理器进行卷积运算。组合后的特征图包含的卷积计算向量数量可以大于特征金字塔中独立的特征图中包含的卷积计算向量数量,从而可以使得神经网络处理器中的多个可并行运行的算术逻辑单元在一次运算过程中处理更多卷积计算向量,可提高神经网络处理器中算术逻辑单元的利用率,进而可提高针对目标对象的特征图的卷积处理效率。
56.并且,本说明书实施例中可以对组合后的特征图进行卷积运算,无需分贝针对特征金字塔中的每个特征图进行卷积运算,从而可减少调用卷积核的次数,即也可减少调用卷积核的次数,也可以减少多次获取卷积核的时间,进而可也提高针对目标对象的特征图的卷积处理效率,也可减少调用卷积核对神经网络处理器的资源占用,提高神经网络处理器的利用率。
57.应当理解,本说明书一个或多个实施例所述的方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。
58.基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
59.本说明书实施例中所述组合后的特征图可以具有对应的组合特征图标识;所述组合特征图标识用于表示将所述组合后的特征图作为一个整体进行运算。
60.实际应用中可以根据组合特征标识获取组合后的特征图,将组合后的特征图作为一个整体采用神经网络处理器进行卷积运算。
61.实际应用中,神经网络处理器中可以包含多个算术逻辑单元,每个算术逻辑单元可以处理一定数量的算术运算,在卷积运算中通常包含乘法、加法运算等运算,算术逻辑单元可以用于处理卷积运算中的各个运算。
62.本说明书实施例中神经网络处理器可以包含多个可并行运行的算术逻辑单元,可以根据需要的运算量将组合后的特征图中包含的卷积计算向量发送至多个算术逻辑单元
中进行运算,充分利用可并行运行的算术逻辑单元,具体的,本说明书实施例中所述采用所述神经网络处理器对所述组合后的特征图进行卷积运算,具体包括:
63.将所述组合后的特征图包含的第二卷积计算向量数量的卷积计算向量发送至所述神经网络处理器中第一数量的算术逻辑单元;所述第一数量大于第二数量;所述第二数量为所述第一卷积计算向量数量的卷积计算向量需要占用的算术逻辑单元的数量;
64.采用所述第一数量的算术逻辑单元对所述组合后的特征图进行卷积运算。
65.现有技术中,通常是特征金字塔中每个特征图进行一次卷积运算,由于单独的特征图中包含的卷积计算向量数量可能较少,在一次卷积运算中只能使用较少部分的算术逻辑单元,其他未被使用的算术逻辑单元只能处于空闲状态,对神经网络处理器的利用率不高。本说明书实施例中第二数量可以理解为按照现有方式对特征金字塔中特征图进行独立的处理时需要占用的算术逻辑单元的数量。
66.假设神经网络处理器中包含128个算术逻辑单元,特征金字塔为5层的特征金字塔,可以认为该特征金字塔包含5个特征图,从顶至底层的特征图包含的像素数量分别为4,8,16,32,64。为便于理解,这里假设从顶至底层的特征图包含的卷积计算向量数量为4,8,16,32,64,每个算术逻辑单元可以在一次运算过程中处理一个卷积计算向量。
67.按照现有的方式,需要分别针对每个特征图进行卷积运算,需要利用神经网络处理器进行5次卷积运算,针对第一层(顶层)的特征图来说,利用了神经网络处理器中的4个算术逻辑单元,利用率为0.03125;同理可以得出其他特征图对于神经网络处理器的利用率分别为0.0625、0.125、0.25、0.5。也可以理解为用640(即128*5)个算术逻辑单元处理了124(即4 8 16 32 64)个卷积计算向量,可以得到该特征金字塔对于神经网络处理器的综合利用率为0.19375。
68.按照本说明书实施例中提供的方法,将5个特征图组合为一个整体的特征图,采用神经网络处理器对组合后的整体特征图进行卷积运算,组合后的特征图包含的卷积计算向量数量可以为124(即4 8 16 32 64),然后可以利用神经网络处理器中的124个算术逻辑单元进行运算,此时对于神经网络处理器的利用率为0.96875,明显高于现有技术中对于神经网络处理器的利用率。
69.并且,上述实施例中按照现有技术的方法在整个特征金字塔的运算过程中需要神经网络处理器执行5次运算过程,假设神经网络处理器一次运算过程需要的时间为t,则需要运算的时间为5t;按照本说明书实施例中的方法将多个特征图作为一个整体特征图进行预算,神经网络处理器仅需执行一次运算过程,即需要运算的时间为t,该运算时间t小于现有技术中需要的5t,从而本说明书中的方法也可以减少针对特征金字塔卷积运算的时间。
70.另外,按照现有的方法,需要针对每个特征图获取一次卷积核,即需要获取5次,而本说明书实施例中的提供的方法获取一次卷积核即可完成运算,也可减少获取卷积核的时间,进而也可减少针对特征金字塔卷积运算的时间,提高运算效率。
71.可以理解为上述实施例中仅是为了更清楚的说明本说明书实施例中提供的方法进行的举例,其中的数值仅是为了举例说明,可以不具有实际含义。实际应用中,神经网络处理器包含的算术逻辑单元的数量,以及算术逻辑单元在一次运算过程中可支持的卷积计算向量数量均可根据实际情况确定,这里不作具体限定。
72.实际应用中,神经网络处理器中的算术逻辑单元也可以在一次运算过程中处理一
定数量的卷积计算向量,本说明书实施例中还可以针对算术逻辑单元发送卷积计算向量,具体的,上述所述采用所述神经网络处理器对所述组合后的特征图进行卷积运算,具体包括:
73.将所述组合后的特征图包含的第二卷积计算向量数量的卷积计算向量中第三数量的卷积计算向量发送至所述神经网络处理器中的算术逻辑单元;
74.利用所述算术逻辑单元进行所述第三数量的卷积计算向量的运算;所述第三数量大于第四数量;所述第四数量为所述第一卷积计算向量数量的卷积计算向量中需要发送至所述算术逻辑单元的卷积计算向量的数量。
75.本说明书实施例中组合后的特征图可以包含较多的卷积计算向量,可以将更多的卷积计算向量发送至算术逻辑单元,进而也可以提高算术逻辑单元的利用率。
76.实际应用中为了避免遗失特征图中边缘像素中的特征,可以对特征图进行填充后再进行卷积运算,本说明书实施例中可以对特征图进行填充,对填充后的特征图进行处理。具体的,本说明书实施例中所述将所述多个特征图进行组合之前,还可以包括:
77.对所述多个特征图中的各个特征图进行像素填充,得到填充后的特征图;
78.所述将所述多个特征图进行组合,具体可以包括:
79.将各个填充后的特征图进行组合。
80.其中,所述对所述多个特征图中的各个特征图进行像素填充,具体可以包括:
81.确定目标卷积核的边长;
82.基于所述目标卷积核的边长,确定填充图像的边长;
83.将各个特征图的各个边按照所述填充图像的边长进行填充。
84.图3为本说明书实施例提供的一种特征图填充的示意图。如图3所示,特征图302为特征金字塔中包含的特征图,可以使用填充图像b对特征图a中的各边进行填充,填充图像304的大小可以根据卷积核的大小设定。
85.本说明书实施例中,假设卷积核的边长为k,k为奇数;填充图像的边长p可以为(k-1)/2。例如,卷积核的边长为3个像素,则填充图像的边长可以为1,将各个特征图的各边分别增加一排边长为1个像素的填充图像,可以得到填充后的特征图。
86.作为一种实施方式,本说明书实施例中所述将各个填充后的特征图进行组合,具体可以包括:
87.将各个填充后的特征图按照预设分块规则进行分块,得到各个填充后的特征图对应的特征块;
88.将所述特征块按照预设组合规则进行组合,得到所述组合后的特征图。
89.本说明书实施例中可以将特征金字塔中的特征图分块后再组合得到可以作为一个整体进行卷积运算的组合后的特征图。
90.其中,本说明书实施例中所述将各个填充后的特征图按照预设分块规则进行分块,具体可以包括:
91.将所述各个填充后的特征图中像素最小的填充后的特征图作为分块基准特征图;
92.按照所述分块基准特征图的边长,以所述多个特征图中像素最小的特征图的边长为步长对各个填充后的特征图进行分块。
93.假设多个特征图中像素最小的特征图的边长为s,对其进行填充后得到的特征图
可以作为分块基准特征图,该分块基准特征图的边长为b,其中b=s 2*p,p为填充图像的边长。
94.图4为本说明书实施例提供的一种对特征图进行分块处理的示意图。如图4所示,特征图402为特征金字塔中包含的某个特征图,利用边长为p的图像对特征图402进行填充后得到特征图406,按照最小的填充后的特征图的边长b,以最小的特征图的边长s对特征图406进行分块,可以将特征图406划分为多个特征块408,其中得到的特征块的大小相同。
95.如图4所示,假设特征图402的边长m为8,填充图像的边长p为1,填充后得到特征图406的边长n为10,n=m 2*p。特征金字塔中各个填充后的特征图中最小的填充后的特征图的边长b为6,最小的特征图的边长s为4,针对填充后得到特征图406可以得到4个边长为6的特征块。
96.实际应用中,神经网络对目标图像完成主干网络推理,输出特征金字塔,将特征金字塔包含的特征图表示为fi,最小的特征图边长记为s,则特征金字塔中包含的特征图fi的边长可以为s*2^i。
97.本说明书实施例中假设卷积核大小记为k,填充图像的变成p=(k-1)/2,将每个特征图的上、下、左、右各填充大小为p的0,可以得到填充后的特征图f'i,填充后的特征图的边长为s*2^i 2*p。可以按照边长为b=s 2*p的分块基准特征图以步长为s对每个特征图f'i进行块划分。
98.作为一种实施方式,本说明书实施例中可以所述将所述特征块按照预设组合规则进行组合,得到所述组合后的特征图,具体可以包括:
99.将各个特征块以堆叠的方式进行组合,得到组合后的特征图。
100.其中,所述组合后的特征图的边长可以为所述分块基准特征图的边长。
101.图5为本说明书实施例中提供的一种组合后的特征图的示意图。如图5所示,假设填充后的特征图502分块得到4个大小相同的特征块,第一特征块504、第二特征块506、第三特征块508以及第四特征块510,可以将各个特征块以堆叠的方式,进行特征图的组合。其中,箭头可以表示特征图中特征块的位置与组合后的特征块的位置。
102.本说明书实施例中可以按照图5所示的方式将各个特征图分块为多个大小相同的特征块,将各个特征块以堆叠的方式组合成为组合后的特征图。
103.实际应用中,可以对各个特征块设定编号,按照编号顺序堆叠各个特征块,例如,可以按照特征金字塔由顶层到低层的顺序,针对每层的特征图中包含的各个特征块按照从左到右且从上到下的顺序进行编号,按照编号顺序堆叠各个特征块,得到组合后的特征图。
104.本说明书实施例中可以对组合后的特征图进行分组卷积运算,其中,,上述所述采用所述目标神经网络处理器对所述组合后的特征图进行卷积运算,具体可以包括:
105.基于卷积核,采用所述目标神经网络处理器对所述组合后的特征图进行分组卷积运算。
106.本说明书实施例中的卷积核可以与现有技术中对分别对特征金子塔中的特征图进行卷机运算的卷积核相同,采用分组卷积进行卷积运算。
107.实际应用中,通常在一个卷积操作中输入特征图可以是一个n*ci*h*w的多维矩阵;其中,n表示特征图中的图片数量,也可以理解为神经网络一次可以处理的图片数量,n≥1;ci表示输入特征图通道数量;h表示特征图的长,w表示特征图的宽;卷积核可以为co*
ci*k*k,其中,co表示输出特征图通道,k表示卷积核大小,对应的输出特征图可以表示为n*co*h*w。
108.本说明书实施例中组合后的特征图作为卷积运算的输入特征图可以表示为n*(ci*m)*b*b,其中,n可以表示特征块中包含的图片数量,m可以表示分块出的特征块的总数量;ci*m可以表示输入的组合后的特征图的通道数量;b可以表示特征块的边长;组合后的特征图对应的输出特征图可以表示为n*(co*m)*b*b。
109.本说明书实例中可以采用分组卷积的方式对组合后的特征图进行卷积运算,可以充分利用神经网络处理器的运算能力,提高卷积运算的效率。
110.作为另一种实施方式,本说明书实施例中还可以以拼接的方式组合各个特征块,得到组合后的特征图。其中,可以将各个特征块包含的图片数量作为卷积运算的输入特征图的图片数量,组合后的特征图作为卷积运算的输入特征图可以表示为(n*m)*ci*b*b,其中,n*m可以卷积运算输入的特征图包含的图片数量,可以在一次卷积运算过程中处理n*m个图片;组合后的特征图对应的输出特征图可以表示为(n*m)*co*b*b。
111.按照拼接的方式得到的组合后的特征图对应的卷积运算的通道数量可以不变,可以采用普通卷积的方式对组合后的特征图进行卷积运算。
112.为便于后续对卷积后得到的卷积结果的使用,本说明书实施例中还可以标记各个特征块在特征图中的位置关系,还可以利用位置关系将得到的卷积结果映射到各个特征图对应的卷积结果,具体的,本说明书实施例中的方法还可以包括:
113.对各个特征块进行打标;
114.基于各个特征块的块标记,生成位置索引;所述位置索引用于表示各个特征块在各个特征图中的位置。
115.本说明书实施例中采用对组合后的特征图进行卷积运算,相当于对各个特征块进行了卷积运算,得到的卷积结果可以为各个特征块的卷积计算结果。其中,对所述组合后的特征图进行卷积运算得到的卷积结果中可以包含多个卷积子结果;各个特征块与各个卷积子结果相对应。
116.本说明书实施例中可以根据预设的表示特征块在特征图中的位置信息的位置索引,得到各个特征图对应的卷积结果,具体的,本说明实施例中的方法还可以包括:
117.基于所述位置索引,对各个卷积子结果进行重组,得到多个卷积特征图;所述卷积特征图与所述特征金字塔中的特征图相对应。
118.图6为本说明书实施例提供的一种对卷积结果重组的示意图。如图6所示,假设对组合后的特征图进行卷积运算得到的卷积结果中包含的第一卷积子结果602、第二卷积子结果604、第三卷积子结果606以及第四卷积子结果608,该四个卷积子结果为对特征金字塔中特征图x包含的特征块进行卷积得到的结果,可以按照预设的位置索引,将各个卷积子结果重组为特征图x对应的卷积结果610。其中带箭头的直线可以表示卷积子结果在重组后的卷积结果610中的位置对应关系。
119.本说明书实施例中可以按照特征块与特征图的位置对应关系,将各个特征块对应的卷积子结果映射回原来特征图对应的卷积结果,从而可以得到各个特征图对应的卷积结果,以便将各个特征图对应的卷积结果进行后续运算例如,可以按照现有的方式将各个特征图对应的卷积结果输入到输入层,进行图像的识别等。
120.本说明书实施例中也可以得到各个特征图对应的卷积计算结果,使得神经网络模型可以按照通用的方式进行图像的识别分析等,可提高方法应用的广泛性。
121.考虑到神经网络处理器的运算能力,本说明书实施例中还可以根据神经网络处理器可处理的向量数量,将组合后的特征图中包含的卷积计算向量数量进行分组,将预设数量的卷积计算向量发送至神经网络处理器,以便神经网络处理器进行并行运算,具体的,本说明书实施例中的方法还可以包括:
122.确定神经网络处理器的预设处理向量数量;所述预设处理向量数量可以为神经网络处理器一次运算过程中可支持的卷积计算向量数量;
123.确定所述组合后的特征图中包含的待计算卷积计算向量数量;
124.按照所述预设处理向量数量,对所述待计算卷积计算向量数量的待计算卷积计算向量进行分组;
125.所述采用所述神经网络处理器对所述组合后的特征图进行卷积运算,具体包括:
126.将分组后的待计算卷积计算向量发送至神经网络处理器;
127.采用神经网络处理器对分组后的待计算卷积计算向量进行卷积运算。
128.实际应用中,特征金字塔可以作为神经网络计算中的小型网络的输入,在该小型网络中进行卷积运算。例如,在包含特征金字塔的深度学习网络中,通常用小型fcn(fully convolutional networks,全卷积网络)网络将金字塔层作为输入。现有技术中需要针对金字塔的每层设定小型网络,即需要构建多个小型网络,需要占用较大的模型体积。本说明书实施例中可以利用一个小型网络即可完成对于组合后的特征图的卷积运算,不需要构建多个小型网络,也可减少模型体积。
129.本说明书实施例中可以有效降低对特征金字塔包含的特征图的卷积计算的时间,实实际应用中,通过在同样算力的神经网络处理器上,对比经典特征金字塔子图的运行耗时,也可以观察第三方是否采用了与本说明书实施例中提供的方法相似的方法,以评估第三方是否有可能存在抄袭现象,例如,若某第三方采用的方法与采用本说明书实施例中的方法对相同的特征金子塔图计算的耗时相差较少,例如在20%以内,则可以确定该第三方存在抄袭的风险。
130.为更清楚的说明本说明书实例中提供的对于特征图的卷积处理方法,图7为本说明书实施例提供的一种对于特征图的卷积处理的泳道图,如图7所述,该方案可以包括特征图获取阶段、分块组合阶段、卷积处理阶段,还可以包含结果重组阶段,具体的:
131.步骤702:获取目标对象的特征金字塔;所述特征金字塔包含多个特征图;所述多个特征图中的至少一个特征图包含的第一卷积计算向量数量小于所述预设数量。
132.步骤704:对所述多个特征图中的各个特征图进行像素填充,得到填充后的特征图。
133.步骤706:将各个填充后的特征图按照预设分块规则进行分块,得到各个填充后的特征图对应的特征块。
134.步骤708:将所述特征块按照预设组合规则进行组合,得到所述组合后的特征图。
135.步骤710:采用所述神经网络处理器对所述组合后的特征图进行卷积运算。
136.步骤712:基于位置索引,对各个卷积子结果进行重组,得到多个卷积特征图;所述卷积特征图与所述特征金字塔中的特征图相对应。
array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
152.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
153.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字符助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
154.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
155.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
156.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
157.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
158.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
159.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
160.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
161.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字符多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
162.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
163.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
164.本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
165.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

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

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

相关文献