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

一种NMS函数的量化方法、电子设备及介质与流程

2022-06-11 11:59:59 来源:中国专利 TAG:

一种nms函数的量化方法、电子设备及介质
技术领域
1.本技术涉及神经网络模型量化技术领域,特别涉及一种nms函数的量化方法、电子设备及介质。


背景技术:

2.目前,随着深度学习技术在多个领域的快速应用,出现了大量的基于深度学习的神经网络模型。但神经网络模型结构一般都较为复杂且所占用的内存较大,因此需要对神经网络模型进行量化压缩以减小内存占用及加快模型的推理速度。
3.现有的量化算法一般是对训练后的模型进行离线量化,而离线量化的方案目前主要对神经网络模型中前处理阶段中的线性层如卷积层、全连接层的量化,但是对后处理阶段中的后处理函数并没有进行对应的细节量化方案。因此在一定程度上没有使得神经网络模型的推理速度达到更优。
4.例如,对于非极大值抑制(non-maximum suppression,nms)函数,作为目标检测模型中常用的后处理函数,一般用于对目标检测模型中的卷积层输出的多个目标检测框进行筛减处理。目前对于nms函数的处理过程所涉及的数据没有具体的量化方案,因此,对于目前包含nms函数的目标检测模型,通常没有对nms函数处理过程所涉及的数据进行量化,使得包含nms函数的目标检测模型的推理速度难以获得更优。


技术实现要素:

5.为解决上述对于目前包含nms函数的目标检测模型,通常没有对nms函数处理过程所涉及的数据进行量化,使得包含nms函数的目标检测模型的推理速度难以获得更优的技术问题,本技术实施例提供一种nms函数的量化方法、电子设备及介质。
6.第一方面,本技术实施例提供一种nms函数的量化方法,包括:
7.获取需要进行交并比计算的第一目标检测框的第一面积数值和第二目标检测框的第二面积数值,所述第一面积数值的数据形式为包括第一位数的二进制数值,所述第二面积数值的数据形式为包括第二位数的二进制数值;
8.将所述第一面积数值的后第一预设位数的二进制数删除,得到第一目标检测框的第一近似面积数值,并将所述第二面积数值的后第二预设位数的二进制数删除,得到所述第二目标检测框的第二近似面积数值;
9.基于所述第一近似面积数值和第二近似面积数值进行所述第一目标检测框和所述第二目标检测框的交并比计算,得到所述第一目标检测框和所述第二目标检测框的交并比计算结果。
10.本技术实施例通过减小目标检测框的面积数值的二进制的位数,减小了包含nms函数的模型的运行内存,对nms函数产生了一定的量化效果,且能够提高包含nms函数的模型的推理速度。
11.在上述第一方面一种可能的实现中,所述第一预设位数和所述第二预设位数的确
定需要满足使得所述第一近似面积数值和所述第二近似面积数值的加和数值的二进制的位数小于等于第三预设位数;
12.所述第三预设位数为所述nms函数所部署的处理器能够处理数据的最长位数。
13.上述方案中通过限定了所述第一预设位数和所述第二预设位数需要满足的条件,即需要满足能够使得最终获得的两个目标检测框的近似面积数值的加和数值的二进制位数能够小于等于运行该包含nms的目标检测模型的处理器能够处理的数据的最长位数,如此,能够使得在对nms函数量化的同时有效解决nms函数的溢出问题。
14.在上述第一方面一种可能的实现中,所述基于所述第一近似面积数值和第二近似面积数值进行所述第一目标检测框和所述第二目标检测框的交并比计算,得到所述第一目标检测框和所述第二目标检测框的交并比计算结果,包括:
15.确定所述nms函数的交并比设定值对应的交并比量化数值;
16.确定所述第一目标检测框和所述第二目标检测框的交集区域面积;
17.基于所述第一近似面积数值、所述第二近似面积数值和所述交集区域面积确定出所述第一目标检测框和所述第二目标检测框的并集区域面积;
18.确定所述并集区域面积与所述交并比量化数值的乘积与所述交集区域面积的数值大小对比情况。
19.可以理解,在处理器中,除法运算的运算周期数远大于乘法,因此除法计算比乘法计算占用内存更大,将判断两个目标检测框的交并比值是否大于设定值的方式转换为涉及乘法运算的计算过程,即转换为判断两个目标检测框的相交区域的面积是否大于并集区域面积与设定值的乘积的方式,能够有效减小nms函数的运行占用内存。
20.在上述第一方面一种可能的实现中,所述确定所述nms函数的交并比设定值对应的交并比量化数值;包括:
21.获取所述nms函数的交并比设定值;
22.获取所述交并比设定值的量化比特数;
23.根据所述量化比特数确定所述交并比设定值对应的交并比量化数值。
24.可以理解,本技术实施例中,将交并比设定值量化为定点数据形式的交并比量化数值,能够有效减小nms函数的运行占用内存,且便于与其他定点数据形式的计算。可以理解,定点数据形式为用int表示的数据形式。
25.在上述第一方面一种可能的实现中,所述第一预设位数和所述第二预设位数的确定需要满足使得所述并集区域面积与所述交并比量化数值的乘积的二进制位数小于等于所述第三预设位数。
26.可以理解,上述方案中通过限定了所述第一预设位数和所述第二预设位数需要满足的条件,即需要满足能够使得所述并集区域面积与所述交并比量化数值的乘积能够小于等于运行该包含nms的目标检测模型的处理器能构处理的数据的最长位数,如此,能够使得在对nms函数量化的同时有效解决nms函数的溢出问题。
27.在上述第一方面一种可能的实现中,所述第三预设位数为32位。
28.在上述第一方面一种可能的实现中,还包括:获取所述nms函数的输入数据的取值范围和所述输入数据的量化数值范围;
29.将所述nms函数的输入数据的取值范围作为nms函数的输出数据的取值范围,将所
述nms函数的输入数据的量化数值范围作为所述nms函数的输出数据的量化数值范围。
30.可以理解,由于nms的输入数据是多个目标检测框,输出数据是多个目标检测框的中的若干目标检测框,因此nms函数的输出数据是输入数据的子集,因此可以在确定nms函数的输入数据的取值范围、量化比特数和量化映射系数后,直接将nms函数的输入数据的取值范围、量化比特数和量化映射系数,作为后续nms函数的输出数据的数值范围、量化比特数和映射系数,能够有效减少nms函数的整体量化流程。
31.第二方面,本技术实施例提供一种电子设备,包括:
32.存储器,用于存储由所述电子设备的一个或多个处理器执行的指令,以及
33.处理器,是所述电子设备的所述一个或多个处理器之一,用于执行上述提及的量化方法。
34.第三方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令在执行时使计算机执行上述提及的量化方法。
35.第四方面,本技术实施例提供一种计算机程序产品,所述计算机程序产品包括指令,所述指令用于实现上述提及的量化方法。
附图说明
36.图1a根据本技术的一些实施例,示出了一种目标检测的过程示意图;
37.图1b根据本技术的一些实施例,示出了一种目标检测的过程示意图;
38.图2a根据本技术的一些实施例,示出了一种第一目标检测框的初始面积数值;
39.图2b根据本技术的一些实施例,示出了一种第二目标检测框的初始面积数值;
40.图2c根据本技术的一些实施例,示出了一种第一目标检测框的初始面积数值和第二目标检测框的初始面积数值相加计算过程示意图;
41.图3根据本技术的一些实施例,示出了一种第一目标检测框的近似面积数值和第二目标检测框的近似面积数值相加计算过程示意图;
42.图4根据本技术的一些实施例,示出了一种电子设备的框图;
43.图5根据本技术的一些实施例,示出了一种电子设备的nms函数量化方法的流程示意图。
具体实施方式
44.本技术的说明性实施例包括一种针对nms函数的量化方法,能够在对nms函数进行量化的同时解决上述nms函数的溢出问题。
45.为了方便理解本技术实施例中的方案,首先对包含nms函数的目标检测模型以及对目标检测的整个过程进行简要描述。
46.目标检测模型可以包括卷积层和nms函数。其中,目标检测模型对目标图像进行目标检测的过程如下:
47.目标图像被输入目标检测模型后,会首先被输入目标检测模型中的卷积层,卷积层通过对目标图像进行卷积处理后得到输出结果并输出,其中,输出结果为目标图像中各个目标物对应的目标检测框。因为卷积层输出的目标图像中的各个目标为一般对应有多个重叠的目标检测框,所以卷积层的输出结果(即目标图像中各个目标物对应的目标检测框)
会被输入nms函数中进行目标检测框的筛减处理,具体的,对目标检测框的筛减处理包括将各个目标物上对应的多个检测框筛减为只剩一个,也就是说使得每个目标物体上只保留一个目标检测框。
48.例如,图1a示出了一种对目标图像进行目标检测的场景示意图。如图1a所示,当目标图像200被输入目标检测模型【模型没有加标号】后,会首先被输入目标检测模型中的卷积层101。卷积层101通过对目标图像200进行卷积处理后会获取输出结果并输出,其中,输出结果为目标图像200中第一目标物201对应的第一目标检测框301、第二目标检测框302,以及第二目标物202对应的第三目标检测框303、第四目标检测框304及第五目标检测框305。然后如图1b所示,将目标图像中各个目标物对应的目标检测框(即第一目标检测框301、第二目标检测框302、第三目标检测框303、第四目标检测框304及第五目标检测框305)输入nms函数中进行目标检测框的筛减处理。具体的,如图1b所示,通过对目标检测框的筛减处理后,目标图像200中第一目标物201对应的目标检测框只剩下第一目标检测框301,第二目标物202对应的目标检测框只剩下第三目标检测框303。
49.下面对通过nms函数对目标检测框进行筛减处理的具体方式进行详细介绍。
50.首先从输入nms函数的所有目标检测框中选择其中任意一个目标检测框作为确定保留的目标检测框,计算该确定保留的目标检测框与其余各目标检测框(即其余各待保留目标检测框)的交并比值,可以理解,交并比值为两个目标检测框的相交区域面积与并集区域面积的比值,将其余各待保留目标检测框中与该确定保留的目标检测框的交并比值大于设定值的目标检测框删除,小于等于设定值的目标检测框保留。
51.可以理解,当待保留目标检测框与该确定保留的目标检测框的交并比值大于设定值,则表明待保留目标检测框与该确定保留的目标检测框的重叠率较大,可以推断待保留目标检测框与该确定保留的目标检测框为同一个目标物上的检测框,所以可以将该待保留目标检测框删除。当待保留目标检测框与该确定保留的目标检测框的交并比值小于等于设定值,则表明待保留目标检测框与该确定保留的目标检测框的重叠率较小,可以推断待保留目标检测框与该确定保留的目标检测框为不同目标物上的检测框,所以可以将该待保留目标检测框保留。然后任意选择另一目标检测框作为确定保留的目标检测框,重复上述过程,只保留每个目标物对应的一个目标检测框。
52.例如,如图1b中所示的输入nms函数的五个目标检测框(即第一目标检测框301、第二目标检测框302、第三目标检测框303、第四目标检测框304及第五目标检测框305),nms函数会首先选择其中任意一个目标检测框作为第一确定保留的目标检测框,例如,选择第一目标检测框301作为第一确定保留的目标检测框,并确定第二目标检测框302、第三目标检测框303、第四目标检测框304及第五目标检测框305分别与第一目标检测框301的交并比值分别为:90%,0%,0%和0%,若nms函数内预设的交并比设定值为80%,此时只有第二目标检测框302与第一目标检测框301的交并比值大于设定值,则删除第二目标检测框302,保留第三目标检测框303、第四目标检测框304及第五目标检测框305。
53.然后重复上述步骤,从第三目标检测框303、第四目标检测框304及第五目标检测框305中选择第二确定保留的目标检测框,例如,选择第三目标检测框303作为第二确定保留的目标检测框,并计算出第四目标检测框304及第五目标检测框305分别与第三目标检测框303的交并比值分别为:88%和89%,若nms函数内预设的交并比设定值为80%,此时第四
目标检测框304和第五目标检测框305与第三目标检测框303的交并比值均大于设定值,则删除第四目标检测框304和第五目标检测框305。此时,目标图像200中第一目标物201对应的目标检测框只剩下第一目标检测框301,第二目标物202对应的目标检测框只剩下第三目标检测框303。然后输出剩余的目标检测框,即第一目标检测框301和第三目标检测框303。
54.下面介绍获取两个目标检测框的交并比值的方式:
55.在常规情况下,输入nms函数的目标检测框的输入数据为目标检测框的中心点的坐标(x1,y1,w1,h1),其中,x1,y1分别为中心点的横坐标和纵坐标值,用于描述中心点的位置;w1用于描述目标检测框的宽度;h1用于描述目标检测框的高度;通过每个目标检测框的中心点的坐标可以确定出每个目标检测框的四个顶点的坐标。从而可以根据目标检测框的四个顶点的坐标确定出目标检测框的面积。
56.可以理解,根据任意两个目标检测框的四个顶点的坐标可以确定出两个目标检测框的相交区域的面积。而两个目标检测框的并集区域的面积为其中一个目标检测框的面积与另一个检测框的面积之和再减去前述相交区域的面积。
57.其中,两个目标检测框的交并比值为两个目标检测框相交区域的面积和并集区域面积的比值。具体的,两个目标检测框的交并比值可以通过如下(公式1)表示:
58.iou=i/(s1 s2-i)
ꢀꢀꢀꢀꢀ
(公式1)
59.其中,iou为两个目标检测框的交并比值,i为两个目标检测框相交区域的面积,s1两个目标检测框中其中一个目标检测框的面积,s2为两个目标检测框中另一个目标检测框的面积。可以通过以下(公式2)来判断两个目标检测框的交并比值是否大于设定值:
60.i/(s1 s2-i)>ioutresh
ꢀꢀꢀ
(公式2)
61.其中,ioutresh为交并比设定值。
62.可以理解,现有技术中一般没有对上述nms函数处理数据的过程中所涉及的数据,例如,目标检测框的面积数值、交并比值等进行量化,使得包含nms函数的目标检测模型的推理速度没有获得更优。
63.其次,nms函数在进行数据处理的过程中容易发生数据溢出的问题。如下所述:
64.由于在nms函数中设置的目标检测框面积的数据表示形式一般为int32的数据形式,即两个目标检测框的面积s1和s2的数据形式均为int32的数据形式。其中,即int32的数据形式为占用存储空间为32比特,用32位二进制数值表示的数据类型。当nms函数在计算上述(公式1)中的s1 s2时,会出现int32 int32的情况,而两个int32数据形式的数值相加存在一些情况下会得到int33的数值,而目前常用的处理器为32位处理器,即处理数据的长度为最长32位二进制数。而处理器难以处理int33数据形式,即33位二进制数表示的数据,因此产生了数据溢出问题,使得nms函数无法输出正确的目标检测框,从而会导致无法检测出目标物。
65.本技术实施例中,提供一种针对nms函数的量化方法,包括:获取需要进行交并比计算的两个目标检测框的初始面积数值,可以理解,目标检测框的初始面积数值的数据表示形式均是二进制数值数据形式。对两个目标检测框的初始面积数值均进行量化处理,其中,对两个目标检测框的初始面积数值量化处理的方式为:将各目标检测框的初始面积数值的后预设位数的二进制数均进行删除处理,以分别获取各目标检测框的近似面积数值,以实现目标检测框的面积数值的位数的减小,即占用内存的减小。
66.可以理解,上述两个目标检测框的初始面积数值需要删除的二进制数值的预设位数可以根据实际需求进行设定,例如,若在对目标检测精度要求较高的情况下,可以将预设位数设置的较小,能够减少目标检测模型的精度损失。在对目标检测精度要求不高的情况下,且目标检测模型所部署的电子设备的算力较小,此时可以将预设位数设置的较大,以便减小目标检测模型的运行内存,提高目标检测模型的推理速度。
67.本技术实施例通过减小目标检测框的面积数值的二进制的位数,减小了包含nms函数的模型的运行内存,对nms函数产生了一定的量化效果,且能够提高包含nms函数的模型的推理速度。
68.可以理解,在一些实施例中,各目标检测框的初始面积数值需要删除的二进制数值的预设位数需要满足能够使得最终获得的两个目标检测框的近似面积数值的加和数值的二进制位数能够小于等于设定位数,该设定位数为运行该包含nms的目标检测模型的处理器所能够处理的数据的最长位数。例如,运行该包含nms的目标检测模型的处理器能构处理的数据的最长位数为32位,则该设定位数为32位。
69.上述方案中通过限定了两个目标检测框的初始面积数值所需要删除的预设位数需要满足的条件,即需要满足能够使得最终获得的两个目标检测框的近似面积数值的加和数值的二进制位数能够小于等于设定位数,该设定位数为运行该包含nms的目标检测模型的处理器能构处理的数据的最长位数,如此,能够使得在对nms函数量化的同时有效解决nms函数的溢出问题。
70.下面结合图1a和图1b所示的目标检测场景说明本技术实施例中提供的针对nms函数的量化方法。
71.例如,运行该包含nms的目标检测模型的处理器在需要计算图1b中所示的第一目标检测框301与第二目标检测框302的交并比时,会首先获取到输入nms函数的第一目标检测框301的初始面积数值以及第二目标检测框302的初始面积数值。例如,如图2a中所示,第一目标检测框301的初始面积数值为32位二进制数数值110......000(省略号代表26个0)。如图2b中所示,第二目标检测框302的初始面积数值为32位二进制数数值010......000(省略号代表26个0)。可以理解,由于二进制数值的加法遵循对位相加,满2进1的原则,则如图2c所示,上述第一目标检测框301的初始面积数值以及第二目标检测框302的初始面积数值的加和为100......000(省略号代表26个0),即为33位数值表示的二进位数。
72.例如,假设处理器能够处理的数据的最长位数为32位,则此时可以将第一目标检测框301的初始面积数值的后第一预设位数的二进制数删除,以获取第一目标检测框301的近似面积数值,将第二目标检测框302的初始面积数值的后第二预设位数的二进制数删除,以获取第二目标检测框302的近似面积数值,以使得最终获得的第一目标检测框301的近似面积数值和第二目标检测框302的近似面积数值的加和数值的二进制位数能够小于等于32位。
73.例如,可以如图3所示,将第一目标检测框301的初始面积数值的后13位的二进制数删除,以获取第一目标检测框301的近似面积数值110......000(省略号代表13个0)。将第二目标检测框302的初始面积数值的后13位的二进制数删除,以获取第二目标检测框302的近似面积数值010......000(省略号代表13个0)。最终获得的第一目标检测框301的近似面积数值和第二目标检测框302的近似面积数值的加和数值为1000......000(省略号代表
13个0),二进制位数为20。
74.可以理解,本技术实施例中,可以在满足上述条件的情况下,可以根据实际需求对第一预设位数和第二预设位数进行调整,例如,若在对目标检测精度要求较高的情况下,可以将第一预设位数和第二预设位数设置的较小,能够减少目标检测模型的精度损失。在对目标检测精度要求不高的情况下,且目标检测模型所部署的电子设备的算例较小,此时可以将第一预设位数和第二预设位数设置的较大,以便减小目标检测模型的运行内存,提高目标检测模型的推理速度。
75.可以理解,在处理器中,除法运算的运算周期数远大于乘法,因此除法计算比乘法计算占用内存更大,因此,可以将判断两个目标检测框的交并比值是否大于设定值的方式进行调整,将涉及到除法运算的过程即判断两个目标检测框的交并比值是否大于设定值的方式转换为涉及乘法运算的计算过程,即转换为判断两个目标检测框的相交区域的面积是否大于并集区域面积与设定值的乘积的方式。该方式能够有效减小nms函数的运行占用内存。
76.即将判断是否满足上述公式i/(s1 s2-i)>ioutresh的方式转换为判断是否满足公式i>ioutresh*(s1 s2-i)的方式。
77.由于将上述除法运算转换为了乘法运算,因此会存在出现并集区域面积(s1 s2-i)与设定值ioutresh的乘积出现溢出情况,因此,还需要保证并集区域面积与设定值的乘积的二进制位数也能小于等于上述设定位数,即处理器能够处理的数据的最长位数。
78.即在将上述除法运算转换为乘法运算的情况下,上述两个目标检测框的初始面积数值需要删除的二进制数值的预设位数的确定,除了需要满足能够使得最终获得的两个目标检测框的近似面积数值的加和数值的二进制位数能够小于等于设定位数,还需要满足并集区域面积与设定值的乘积能够小于等于设定位数。
79.可以理解,存在一些nms函数中,设定值ioutresh一般采用浮点float32数据类型,占用内存较大,因此,可以将设定值量化为定点数据形式。其中,int8的定点数据形式表示占用存储空间为32比特,用32位二进制数值表示的数据类型。在一些实施例中,也可以将设定值量化为int16的数据类型。
80.可以理解,本技术实施例中,将交并比设定值量化为定点数据形式的交并比量化数值,能够有效减小nms函数的运行占用内存,且便于与其他定点数据形式的计算。可以理解,定点数据形式为用int表示的数据形式。
81.下面在介绍本技术实施例提供的对nms函数的量化算法之前,对本技术实施例包含nms的目标检测模型所部署的电子设备进行详细的介绍,电子设备可以为服务器、计算机、手机等各种电子设备。
82.图4为本技术实施例中提供的电子设备10的框图。图4示意性地示出了根据多个实施例的示例电子设备10。在一个实施例中,电子设备10可以包括一个或多个处理器1404,与处理器1404中的至少一个连接的系统控制逻辑1408,与系统控制逻辑1408连接的系统内存1412,与系统控制逻辑1408连接的非易失性存储器(nvm)1416,以及与系统控制逻辑1408连接的网络接口1420。
83.在一些实施例中,处理器1404可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1404可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基
带处理器等)的任意组合。在电子设备10采用enb(evolved node b,增强型基站)101或ran(radio access network,无线接入网)控制器102的实施例中,处理器1404可以被配置为执行各种符合的实施例。
84.可以理解,本技术实施例中,处理器1404可以用于执行本技术实施例中提供的针对nms函数的量化方法。
85.在一些实施例中,系统控制逻辑1408可以包括任意合适的接口控制器,以向处理器1404中的至少一个和/或与系统控制逻辑1408通信的任意合适的设备或组件提供任意合适的接口。
86.在一些实施例中,系统控制逻辑1408可以包括一个或多个存储器控制器,以提供连接到系统内存1412的接口。系统内存1412可以用于加载以及存储数据和/或指令。在一些实施例中电子设备10的内存1412可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。
87.nvm/存储器1416可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm/存储器1416可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(hard disk drive,硬盘驱动器),cd(compact disc,光盘)驱动器,dvd(digital versatile disc,数字通用光盘)驱动器中的至少一个。
88.nvm/存储器1416可以包括安装电子设备10的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1420通过网络访问nvm/存储1416。
89.特别地,系统内存1412和nvm/存储器1416可以分别包括:指令1424的暂时副本和永久副本。指令1424可以包括:由处理器1404中的至少一个执行时导致电子设备10实施本技术实施例中提及的针对nms函数的量化方法的指令。
90.在一些实施例中,指令1424、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑1408,网络接口1420和/或处理器1404中。
91.网络接口1420可以包括收发器,用于为电子设备10提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1420可以集成于电子设备10的其他组件。例如,网络接口1420可以集成于处理器1404的,系统内存1412,nvm/存储器1416,和具有指令的固件设备(未示出)中的至少一种,当处理器1404中的至少一个执行所述指令时,电子设备10实现本技术实施例中提及的针对nms函数的量化方法。
92.网络接口1420可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1420可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
93.在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑封装在一起,以形成系统封装(sip)。在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(soc)。
94.电子设备10可以进一步包括:输入/输出(i/o)设备1432。i/o设备1432可以包括用
户界面,使得用户能够与电子设备10进行交互;外围组件接口的设计使得外围组件也能够与电子设备10交互。
95.在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
96.下面对本技术实施例提供的对nms函数的量化方法进行详细介绍。图5示出了本技术实施例提供的一种针对nms函数的量化方法的流程示意图,该针对nms函数的量化方法可以由上述电子设备10的处理器1404执行。如图5所示,针对nms函数的量化方法包括:
97.501:获取需要进行交并比计算的两个目标检测框中第一目标检测框的初始面积数值,其中,第一目标检测框的初始面积数值用第一数据形式表示,第一数据形式为包括第一位数的二进制数值数据形式。
98.可以理解,第一数据形式可以为int32的数据形式,即占用存储空间为32比特,用32位二进制数值表示的数据形式。
99.可以理解,本技术实施例中,处理器1404在需要计算第一目标检测框与第二目标检测框的交并比时,会首先获取到输入nms函数的第一目标检测框的初始面积数值以及第二目标检测框的初始面积数值。例如,如图2a中所示,第一目标检测框的初始面积数值为32位二进制数数值110......000(省略号代表26个0)。
100.502:获取需要进行交并比计算的两个目标检测框中第二目标检测框的初始面积数值,其中,第二目标检测框的初始面积数值用第二数据形式表示,第二数据形式为包括第二位数的二进制数值数据形式。
101.可以理解,本技术实施例中,第二目标检测框的初始面积数值为32位二进制数数值010......000(省略号代表26个0)。
102.503:将第一目标检测框的初始面积数值的后第一预设位数的二进制数删除,以获取第一目标检测框的近似面积数值。将第二目标检测框的初始面积数值的后第二预设位数的二进制数删除,以获取第二目标检测框的近似面积数值。
103.可以理解,本技术实施例中,上述第一预设位数和第二预设位数均大于0,且第一预设位数和第二预设位数的确定需要满足能够使得最终获得的第一目标检测框的近似面积数值和第二目标检测框的近似面积数值的加和数值的二进制位数能够小于等于第三预设位数,该第三设位数为处理器1404能够处理的数据的最长位数。例如,处理器1404能构处理的数据的最长位数为32位,则该预设位数为32位。
104.例如,假设处理器1404能构处理的数据的最长位数为32位,则此时可以将第一目标检测框的初始面积数值的后第一预设位数的二进制数删除,以获取第一目标检测框的近似面积数值,将第二目标检测框的初始面积数值的后第二预设位数的二进制数删除,以获取第二目标检测框的近似面积数值,以使得最终获得的第一目标检测框的近似面积数值和第二目标检测框的近似面积数值的加和数值的二进制位数能够小于等于32位。
105.具体的,可以如前述图3所示,将第一目标检测框的初始面积数值的后13位的二进制数删除,以获取第一目标检测框的近似面积数值110......000(省略号代表13个0)。将第二目标检测框的初始面积数值的后13位的的二进制数删除,以获取第二目标检测框的近似面积数值010......000(省略号代表13个0)。最终获得的第一目标检测框的近似面积数值
和第二目标检测框的近似面积数值的加和数值为1000......000(省略号代表13个0),二进制位数为20。
106.例如,可以在量化方法的程序算法中引入shiftk参数,以实现上述二进制位数的删除,其中,shiftk参数用于限定需要删除的二进制位数,即在程序算法中设置shiftk=13时,则执行该程序可以实现删除的二进制位数为13。
107.可以理解,本技术实施例中,可以在满足上述条件的情况下,根据实际需求对第一预设位数和第二预设位数进行调整,例如,若在对目标检测精度要求较高的情况下,可以将第一预设位数和第二预设位数设置的较小,能够减少目标检测模型的精度损失。在对目标检测精度要求不高的情况下,且目标检测模型所部署的电子设备的算力较小,此时可以将第一预设位数和第二预设位数设置的较大,以便减小目标检测模型的运行内存,提高目标检测模型的推理速度。
108.可以理解,在处理器1404中,除法运算的运算周期数占用远大于乘法,因此除法计算比乘法计算占用内存更大,因此,可以将判断两个目标检测框的交并比值是否大于设定值的方式进行调整,将判断两个目标检测框的交并比值是否大于设定值的方式转换为判断两个目标检测框的相交区域的面积是否大于并集区域面积与设定值的乘积的方式。
109.即将判断是否满足上述公式i/(s1 s2-i)>ioutresh的方式转换为判断是否满足公式i>ioutresh*(s1 s2-i)的方式。
110.可以理解,存在一些nms函数中,由于设定值ioutresh一般采用浮点float32数据类型,占用内存较大,因此,可以将其量化为int8的定点数据形式。在一些实施例中,也可以将其量化为int16的数据类型。
111.其次,由于将上述除法运算转换为乘法运算,为避免出现并集区域面积(s1 s2-i)与设定值ioutresh的乘积出现溢出情况,因此,需要保证并集区域面积与设定值的乘积的二进制位数也能小于等于上述第三预设位数,即处理器1404能够处理的数据的最长位数。
112.即在上述除法运算转换为乘法运算的情况下,上述第一预设位数和第二预设位数的确定除了需要需要满足能够使得最终获得的第一目标检测框的近似面积数值和第二目标检测框的近似面积数值的加和数值的二进制位数能够小于等于第三预设位数,还需要满足并集区域面积与设定值的乘积能够小于等于第三预设位数.
113.例如,如图2a中所示,第一目标检测框的初始面积数值为32位二进制数数值110......000(省略号代表26个0)。第二目标检测框的初始面积数值为32位二进制数数值010......000(省略号代表26个0)。
114.即在上述除法运算转换为乘法运算的情况下,上述第一预设位数和第二预设位数的确定除了需要满足能够使得最终获得的第一目标检测框的近似面积数值和第二目标检测框的近似面积数值的加和数值的二进制位数能够小于等于预设位数,还需要满足并集区域面积与设定值的乘积能够小于等于第三预设位数。
115.在一些实施例中,本技术实施例中提供的量化方法还包括:
116.获取nms函数的输入数据的取值范围、量化比特数和量化映射系数。将该输入数据的取值范围、量化比特数和量化映射系数作为nms函数的输出数据的数值范围、量化比特数和映射系数。
117.可以理解,由于nms的输入数据是多个目标检测框,输出数据是多个目标检测框的
中的若干目标检测框,因此nms函数的输出数据是输入数据的子集,因此可以在确定nms函数的输入数据的取值范围、量化比特数和量化映射系数后,直接将nms函数的输入数据的取值范围、量化比特数和量化映射系数,作为后续nms函数的输出数据的数值范围、量化比特数和映射系数,减少nms函数的整体量化流程。
118.可以理解,本技术实施例中,量化比特数可以根据实际需求设定,例如,可以为4比特、8比特、16比特等。
119.可以理解,在一些实施例中,根据输入数据的量化比特数确定输入数据的量化数值范围,然后根据输入数据的量化数值范围和取值范围确定输入数据的量化映射系数。
120.其中,量化数值范围的确定方式可以包括:
121.1)首先根据量化比特数可以确定量化级数。当量化比特数为n,则量化级数为2n。例如,量化比特数为8,则量化等级即为28,为256等级。
122.2)然后根据量化级数获取量化数值范围。当量化比特数为n量化级数为2n,当量化方式为无符号量化,则量化数值范围为[0,2
n-1];当量化比特数为n,获取的量化级数为2n,量化方式为有符号量化,则量化数值范围为[-2
n-1
,2
n-1-1];
[0123]
例如,若量化比特数为8,则对应的量化等级即为256等级,量化方式为无符号量化,则量化数值范围为[0,255];若量化比特数为8,则对应的量化等级即为256等级,量化方式为有符号量化,则量化数值范围为[-128,127]。
[0124]
确定输入数据的量化映射系数的方式可以包括:
[0125]
根据输入数据的取值范围确定出取值范围的最大绝对值,根据输入数据的量化数值范围确定出量化数值范围的最大值,根据输入数据的取值范围的最大绝对值和量化数值范围的最大值确定量化映射系数。
[0126]
例如,若量化数值范围中的最大值为255;取值范围的最大绝对值为6;则映射系数为255/6。根据该映射系数可以对nms函数的输入数据和输出数据的任一个数值进行量化,即将nms函数的输入数据和输出数据的任一个数值乘以该映射系数即可获取量化后的数值。
[0127]
综上,本技术实施例提供的量化方法,通过减小目标检测框的面积数值的二进制的位数,能够有效降低包含nms函数的目标检测模型的运行内存,提高目标检测模型的推理速度,且能够在对nms函数量化的同时有效解决nms函数的溢出问题。
[0128]
另外,将判断两个目标检测框的交并比值是否大于设定值的方式转换为判断两个目标检测框的相交区域的面积是否大于并集区域面积与设定值的乘积的方式,即将除法转化成乘法,能够有效降低nms函数的运行内存。
[0129]
此外,将nms函数的输入数据的取值范围、量化比特数和量化映射系数直接作为nms函数的输出数据的数值范围、量化比特数和映射系数可以减少nms函数的整体量化流程。
[0130]
本技术公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0131]
可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可
以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
[0132]
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
[0133]
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
[0134]
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
[0135]
需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0136]
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0137]
虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的范围。
再多了解一些

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

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

相关文献