CN114898108A - 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 - Google Patents
一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 Download PDFInfo
- Publication number
- CN114898108A CN114898108A CN202210321733.XA CN202210321733A CN114898108A CN 114898108 A CN114898108 A CN 114898108A CN 202210321733 A CN202210321733 A CN 202210321733A CN 114898108 A CN114898108 A CN 114898108A
- Authority
- CN
- China
- Prior art keywords
- convolutional layer
- parameter
- activation
- parameters
- fixed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000001514 detection method Methods 0.000 title claims abstract description 52
- 230000004913 activation Effects 0.000 claims abstract description 114
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 230000005055 memory storage Effects 0.000 claims abstract description 7
- 238000013139 quantization Methods 0.000 claims description 74
- 238000010586 diagram Methods 0.000 claims description 53
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 239000013585 weight reducing agent Substances 0.000 claims 1
- 238000013527 convolutional neural network Methods 0.000 description 38
- 230000004807 localization Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 229910052731 fluorine Inorganic materials 0.000 description 2
- 125000001153 fluoro group Chemical group F* 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 206010047571 Visual impairment Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
一种基于FPGA的CNN模型轻量化方法、一种目标检测方法及系统,涉及目标检测技术领域,用以解决现有基于FPGA的CNN模型在目标检测中能量效率较低导致不能满足低功耗、低延时计算需求的问题。本发明的技术要点包括:对SqueezeNet网络模型的卷积层进行定点化,定点化是指对计算和内存存储中的浮点数进行定点表示和运算,包括对输入特征图的定点化、对卷积层参数的定点化和对卷积层激活函数的定点化,其中,输入特征图和卷积层参数均为单精度浮点数;进而还提供一种包含上述SqueezeNet网络模型的目标检测方法及系统。本发明降低了检测网络的计算复杂度,适用于特定场景下的边缘计算平台,提升了检测模型的能量使用效率。
Description
技术领域
本发明涉及目标检测技术领域,具体涉及一种基于FPGA的CNN模型轻量化方法、一种目标检测方法及系统。
背景技术
目标检测是计算机视觉中一个重要研究方向,其任务是识别并定位出图像中的目标。在无人机、机器人等边缘计算平台上,由于其有限的计算资源,并且对实时性和低功耗的要求很高,实现比较复杂。在这类场景下通常选取计算量较小的轻量级CNN(卷积神经网络)模型进行检测任务,如SqueezeNet V1.1网络模型。此外,为了能快速运行CNN模型,一般可选择FPGA(现场可编程逻辑门阵列)作为解决方案,FPGA具有较高的能量利用效率,其可同GPU(图形处理器)具有相近的运算性能,功耗却显著低于GPU,并且FPGA的开发难度远小于ASIC(专用集成电路)芯片,可以灵活地重新配置。所以,通常选择FPGA作为此类场景下的CNN硬件加速器的解决方案。现有的FPGA2016[1]、FPT2017[2]和SqueezeNet[3]等研究实现了基于FPGA的CNN模型的定点化和加速算法,但是这些方法的能量效率(即单位功耗下FPGA能实现的计算性能)较低,不能满足低功耗、低延时的计算需求。
发明内容
鉴于以上问题,本发明提出一种基于FPGA的CNN模型轻量化方法、一种目标检测方法及系统,用以解决现有基于FPGA的CNN模型在目标检测中能量效率较低导致不能满足低功耗、低延时计算需求的问题。
根据本发明的一方面,提供一种基于FPGA的CNN模型轻量化方法,该方法包括:对SqueezeNet网络模型包含的卷积层进行定点化,所述定点化是指对计算和内存存储中的浮点数进行定点表示和运算;包括对输入特征图的定点化、对卷积层参数的定点化、对卷积层激活函数输出的激活图定点化;其中,卷积层参数包括卷积层权重参数和卷积层偏置参数;所述输入特征图和所述卷积层参数为单精度浮点数。
进一步地,采用线性量化方法对输入特征图或卷积层参数进行定点化,具体包括:假设输入特征图或卷积层参数的数量为N,
首先,对输入特征图X或卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的输入特征图X或卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的输入特征图X或卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定输入特征图X所对应的第一动态范围参数Q1、卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,xM+1表示降序排序后的输入特征图X的第M+1个绝对值;wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第一动态范围参数Q1、第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的输入特征图或卷积层参数:
式中,x′i、w′i、b′i分别表示定点化后的输入特征图、卷积层权重参数和卷积层偏置参数;xi、wi、bi分别表示未定点化前的输入特征图、卷积层权重参数和卷积层偏置参数;B表示定点化表示所需的比特数。
进一步地,对卷积层激活函数的定点化采用线性量化方法进行定点化,所述激活函数为ReLU函数;具体包括:卷积层中激活值均为非负值,假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
式中,ai'表示定点化后的激活值;ai表示未定点化前的激活值。
根据本发明的另一方面,提供一种目标检测方法,该方法包括以下步骤:
步骤一、获取多张图像对应的特征图;
步骤二、利用CNN模型对输入的特征图进行目标检测,获取检测结果;其中,CNN模型是利用上述基于FPGA的CNN模型轻量化方法获得的SqueezeNet网络模型。
根据本发明的另一方面,提供一种目标检测系统,该系统包括:
特征图获取模块,其配置成获取多张图像对应的特征图;
目标检测模块,其配置成利用CNN模型对输入的特征图进行目标检测,CNN模型为SqueezeNet网络模型;包括CNN模型轻量化子模块,所述CNN模型轻量化子模块配置成:对SqueezeNet网络模型包含的卷积层进行定点化,所述定点化是指对计算和内存存储中的浮点数进行定点表示和运算;
检测结果输出模块,其配置成输出目标检测结果。
进一步地,所述CNN模型轻量化子模块包括输入特征图定点化单元、卷积层参数定点化单元、卷积层激活函数定点化单元;其中,
所述输入特征图定点化单元,其配置成采用线性量化方法对输入特征图进行定点化,所述输入特征图为单精度浮点数;具体包括:假设输入特征图的数量为N,
首先,对输入特征图X的绝对值进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的输入特征图X在线性量化之后溢出量化范围,从而获得降序排序后的输入特征图X的第M+1个绝对值;
然后,根据第一动态范围参数Q1获得B比特线性量化之后的输入特征图:
式中,x′i表示定点化后的输入特征图;xi表示未定点化前的输入特征图;B表示定点化表示所需的比特数。
进一步地,所述卷积层参数定点化单元配置成采用线性量化方法对卷积层参数进行定点化,所述卷积层参数包括卷积层权重参数和卷积层偏置参数,所述卷积层参数为单精度浮点数;具体包括:假设卷积层参数的数量为N,首先,对卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的卷积层参数:
式中,w′i、b′i分别表示定点化后的卷积层权重参数和卷积层偏置参数;wi、bi分别表示未定点化前的卷积层权重参数和卷积层偏置参数。
进一步地,采用线性量化方法对卷积层激活函数的激活图进行定点化,所述激活函数为ReLU函数;具体包括:激活图中激活值均为非负值,假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
式中,ai'表示定点化后的激活值;ai表示未定点化前的激活值。
本发明的有益技术效果是:
本发明提供一种基于FPGA的CNN模型轻量化方法,并将其应用在基于CNN模型的目标检测中,本发明针对广泛使用的SqueezeNet目标检测模型,通过对网络卷积层的输入特征图、卷积层参数和激活图进行定点化,实现了网络模型轻量化的目的,降低了检测网络的计算复杂度,使其能够适用于特定场景下的边缘计算平台,提升了检测模型的能量使用效率。
附图说明
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。
图1示出了SqueezeNet V1.1网络模型结构图;
图2示出了本发明实施例中SqueezeNet V1.1网络模型中卷积层定点化的过程图;
图3示出了本发明实施例中SqueezeNet V1.1网络模型中卷积层参数的量化位数和模型准确率之间的关系对比图;
图4示出了本发明实施例基于FPGA和CNN模型的目标检测方法的过程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,在下文中将结合附图对本发明的示范性实施方式或实施例进行描述。显然,所描述的实施方式或实施例仅仅是本发明一部分的实施方式或实施例,而不是全部的。基于本发明中的实施方式或实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式或实施例,都应当属于本发明保护的范围。
对于在无人机、机器人等边缘计算平台上的目标检测任务,一般通过摄像头捕获到图像后,对图像数据使用FPGA实现的相关算法进行一系列处理,在处理过程中目标检测是为了将图像中的目标识别并定位,利用CNN模型可以对图像进行目标检测处理。对于需要实时处理的多帧图像,为了满足目标检测实时性的需要,通常都选择由Iandola等人[4]提出的小型CNN网络结构-SqueezeNet网络。图1示出了SqueezeNet V1.1的网络模型结构,SqueezeNet V1.1网络中使用了1*1卷积对输入特征图进行压缩的结构被称为Fire层,其极大降低了网络的运算量和参数存储所需的空间,满足实时性场景的需要。
本发明第一实施例提供一种基于FPGA的CNN模型轻量化方法,该方法包括:对SqueezeNet网络模型包含的卷积层进行定点化,定点化是指对计算和内存存储中的浮点数进行定点表示和运算;包括对输入特征图的定点化、对卷积层参数的定点化、对卷积层激活图的定点化;其中,卷积层参数包括卷积层权重参数和卷积层偏置参数;输入特征图和卷积层参数为单精度浮点数。
本实施例中,可选地,对输入特征图或卷积层参数的定点化采用线性量化方法进行定点化,具体包括:假设输入特征图或卷积层参数的数量为N,
首先,对输入特征图X或卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的输入特征图X或卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的输入特征图X或卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定输入特征图X所对应的第一动态范围参数Q1、卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,xM+1表示降序排序后的输入特征图X的第M+1个绝对值;wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第一动态范围参数Q1、第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的输入特征图或卷积层参数:
式中,x′i、w′i、b′i分别表示定点化后的输入特征图、卷积层权重参数和卷积层偏置参数;xi、wi、bi分别表示未定点化前的输入特征图、卷积层权重参数和卷积层偏置参数;B表示定点化表示所需的比特数。
本实施例中,可选地,对卷积层激活图的定点化采用线性量化方法进行定点化,激活函数为ReLU函数;具体包括:激活图中激活值均为非负值,假设激活图共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
式中,ai'表示定点化后的激活值;ai表示未定点化前的激活值。
着眼于检测网络中具有大量参数运算的卷积层的定点化,本发明第二实施例提出一种基于FPGA的CNN模型轻量化方法,主要是对SqueezeNet V1.1网络模型的参数进行定点化,因为FPGA消耗同样的逻辑资源,定点运算相比于浮点的计算速度更快。又因为SqueezeNet V1.1网络模型只包含卷积层和池化层,所以将模型的卷积层定点化后,池化层的相关运算也可以用定点数运算表示。因此,将SqueezeNet V1.1网络模型中的卷积层定点化,即可实现整个模型的定点化。
对于任意卷积层输出特征图的任意元素Y,其计算过程可以表示为:
Y=max(W·X+b,0)
其中,X为输入特征图,为单精度浮点数;W为单精度浮点权重参数;b为单精度浮点偏置参数;max(*)表示ReLU激活层的实现函数。
对SqueezeNet V1.1网络模型进行定点化,是分别对输入特征图的定点化、对卷积层参数(权重和偏置)的定点化和对卷积层激活函数的定点化,如图2所示。
SqueezeNet V1.1网络模型中输入特征图、卷积层的权重参数和卷积层的偏置参数基本成0均值的正态分布,本发明实施例采用线性量化方法实现对输入特征图、卷积层的权重参数和卷积层的偏置参数的定点化。接下来以卷积层的权重参数为例进行说明,假设某卷积层有n个权重参数,记该卷积层的全部权重参数为向量W,其中:
W=(w0,w1,...,wn-1),
在对参数进行线性量化时,首先将所有权重参数取绝对值得到:
Wabs=(|w0|,|w1|,...,|wn-1|);
然后对权重参数的绝对值进行降序排序得到:
为了提高量化精度,可使绝对值最大的一部分权重参数(Wsorted中靠前的元素)在量化之后溢出量化范围,记溢出的比例为overflow,那么没有溢出量化范围的权重参数的最大绝对值wmax,
对W中的所有权重参数进行B bit线性量化之后的结果w′i为:
式中,B表示定点化卷积层权重参数所需的比特数,wi可以近似表示为:
wi≈w′i×2Q+1-B,i=0,1,...,n-1。
对溢出部分的权重参数进行钳位,对所有wk’满足wk’>2B-1-1:
w′k=2B-1-1,
对所有wl’满足wl’<-2B-1:
w′l=-2B-1。
此时,B bit线性量化之后的权重参数为
W’=(w′0,w′1,...,w′n-1)。
网络模型中的偏置参数b和输入特征图X,都可以按照上述权重参数W的定点化方法来进行定点化。
而对于激活层的定点化如下过程所示:
由于SqueezeNet V1.1网络模型中使用的激活函数为ReLU函数,其函数表达式f(x)为:
f(x)=max(0,x)
所以模型中所有卷积层激活图中任意元素均未非负数,激活图为激活函数的输出值。假设某一卷积层中激活图共有n个激活值,该卷积层的全部激活值记为A=(a0,a1,...,an-1),其中,
ai≥0,i=0,1,...,n-1
对所有激活值进行降序排列:
为了提高量化精度,可使绝对值最大的一小部分激活值在量化之后溢出量化范围,记溢出的比例为overflow,可确定溢出overflow下的最大值amax:
此时可确定激活值的动态范围,令:
除溢出部分外,所有激活值满足:
0≤aj≤2P-1
对A中全部激活值进行B bit线性量化的结果为:
ai可近似表示为:
ai≈a′i×2P-B,i=0,1,...,n-1
再对溢出部分的激活值进行钳位,对所有a′k满足a′k>2B-1:
a′k=2B-1
此时,B bit线性量化之后的激活值为:
A’=(a′0,a′1,...,a′n-1)
通过以上对卷积层权重参数定点化和卷积层激活图定点化的说明,同时将对卷积层权重参数的线性定点化方法套用到输入特征图和卷积层偏置参数定点化过程。使用Wint表示定点化后的卷积层权重参数向量,Xint表示定点化后的输入特征图,bint表示定点化后的卷积层偏置参数向量,Yint表示定点化后的输出特征图(激活图)。经定点化后的卷积层运算过程可表示为:
Yint=max(Wint·Xint+bint,0)
进一步通过实验验证本发明实施例的技术效果。图3示出了SqueezeNet V1.1网络模型参数的量化位数和模型准确率之间的关系对比图。从图3中可以看出,当网络模型量化位数下降时,网络模型的准确率也下降。但是,经测试当降低至8位时,本发明实施例所改进的CNN模型仍可保证很好的效果。在FPGA上,卷积层参数和激活图的位数越低,消耗的逻辑资源越少,计算速度越快。本实施例中权重参数、偏置、激活图采用了8bit定点化SqueezeNet V1.1网络模型,模型在ImageNet 2012验证集上top-5上的正确率为80.194%。
进一步地,将在相同FPGA厂商Intel公司生产的同制程超大体量的FPGA平台上相关研究FPGA2016、FPT2017和在不同FPGA厂商Xilinx公司生产的同制程、面向嵌入式系统的FPGA平台上相关研究SqueezeJet进行对比实验,实验结果如表1所示。
表1本发明与相关研究对比
表1中能量效率表示的是单位功耗下FPGA能实现的计算性能,从表1可以看出,本发明方法对FPGA硬件资源的要求较低,能量效率约为其他相关研究的1.9倍。
本发明第三实施例提供一种目标检测方法,如图4所示,该方法包括以下步骤:
步骤一、获取多张图像对应的特征图;
步骤二、利用CNN模型对输入的特征图进行目标检测,获取检测结果;其中,CNN模型是利用第一实施例或第二实施例的基于FPGA的CNN模型轻量化方法获得的SqueezeNet网络模型。
本发明第三实施例提供一种目标检测系统,该系统包括:
特征图获取模块,其配置成获取多张图像对应的特征图;
目标检测模块,其配置成利用CNN模型对输入的特征图进行目标检测,所述CNN模型为SqueezeNet网络模型;包括CNN模型轻量化子模块,CNN模型轻量化子模块配置成:对SqueezeNet网络模型包含的卷积层进行定点化,定点化是指对计算和内存存储中的浮点数进行定点表示和运算;
检测结果输出模块,其配置成输出目标检测结果。
本实施例中,可选地,CNN模型轻量化子模块包括输入特征图定点化单元、卷积层参数定点化单元、卷积层激活函数定点化单元;其中,
输入特征图定点化单元,其配置成采用线性量化方法对输入特征图进行定点化,输入特征图为单精度浮点数;具体包括:假设输入特征图的数量为N,
首先,对输入特征图X的绝对值进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的输入特征图X在线性量化之后溢出量化范围,从而获得降序排序后的输入特征图X的第M+1个绝对值;
然后,根据第一动态范围参数Q1获得B比特线性量化之后的输入特征图:
式中,x′i表示定点化后的输入特征图;xi表示未定点化前的输入特征图;B表示定点化表示所需的比特数。
本实施例中,可选地,卷积层参数定点化单元配置成采用线性量化方法对卷积层参数进行定点化,卷积层参数包括卷积层权重参数和卷积层偏置参数,卷积层参数为单精度浮点数;具体包括:假设卷积层参数的数量为N,首先,对卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的卷积层参数:
式中,w′i、b′i分别表示定点化后的卷积层权重参数和卷积层偏置参数;wi、bi分别表示未定点化前的卷积层权重参数和卷积层偏置参数。
本实施例中,可选地,采用线性量化方法对卷积层激活函数进行定点化,激活函数为ReLU函数;具体包括:卷积层的激活图均为非负值,假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
式中,ai′表示定点化后的激活值;ai表示未定点化前的激活值。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
本发明所援引的文献如下:
[1]Suda N,Chandra V,Dasika G,et al.Throughput-Optimized OpenCL-basedFPGA Accelerator for Large-Scale Convolutional Neural Networks[J].2016:16-25.
[2]Wang D,Xu K,Jiang D.PipeCNN:An OpenCL-based open-source FPGAaccelerator for convolution neural networks[C]//International Conference onField Programmable Technology.IEEE,2018:279-282.
[3]Mousouliotis P G,Petrou LP.SqueezeJet:High-level SynthesisAccelerator Design for Deep Convolutional Neural Networks[J].2018.
[4]Iandola F N,Han S,Moskewicz M W,et al.SqueezeNet:AlexNet-levelaccuracy with 50x fewer parameters and<0.5MB model size[J].arXiv:ComputerVision and Pattern Recognition,2017.
Claims (8)
1.一种基于FPGA的CNN模型轻量化方法,其特征在于,对SqueezeNet网络模型包含的卷积层进行定点化,所述定点化是指对计算和内存存储中的浮点数进行定点表示和运算;包括对输入特征图的定点化、对卷积层参数的定点化、对卷积层激活函数的定点化;其中,卷积层参数包括卷积层权重参数和卷积层偏置参数;所述输入特征图和所述卷积层参数为单精度浮点数。
2.根据权利要求1所述的一种基于FPGA的CNN模型轻量化方法,其特征在于,对输入特征图或卷积层参数的定点化采用线性量化方法进行定点化,具体包括:假设输入特征图或卷积层参数的数量为N,
首先,对输入特征图X或卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的输入特征图X或卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的输入特征图X或卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定输入特征图X所对应的第一动态范围参数Q1、卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,xM+1表示降序排序后的输入特征图X的第M+1个绝对值;wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第一动态范围参数Q1、第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的输入特征图或卷积层参数:
式中,x′i、w′i、b′i分别表示定点化后的输入特征图、卷积层权重参数和卷积层偏置参数;xi、wi、bi分别表示未定点化前的输入特征图、卷积层权重参数和卷积层偏置参数;B表示定点化表示所需的比特数。
4.一种目标检测方法,其特征在于,包括以下步骤:
步骤一、获取多张图像对应的特征图;
步骤二、利用CNN模型对输入的特征图进行目标检测,获取检测结果;其中,所述CNN模型是利用权利要求3所述的基于FPGA的CNN模型轻量化方法获得的SqueezeNet网络模型。
5.一种目标检测系统,其特征在于,包括:
特征图获取模块,其配置成获取多张图像对应的特征图;
目标检测模块,其配置成利用CNN模型对输入的特征图进行目标检测,所述CNN模型为SqueezeNet网络模型;包括CNN模型轻量化子模块,所述CNN模型轻量化子模块配置成:对SqueezeNet网络模型包含的卷积层进行定点化,所述定点化是指对计算和内存存储中的浮点数进行定点表示和运算;
检测结果输出模块,其配置成输出目标检测结果。
6.根据权利要求5所述的一种目标检测系统,其特征在于,所述CNN模型轻量化子模块包括输入特征图定点化单元、卷积层参数定点化单元和卷积层激活函数定点化单元;其中,
所述输入特征图定点化单元,其配置成采用线性量化方法对输入特征图进行定点化,所述输入特征图为单精度浮点数;具体包括:假设输入特征图的数量为N,
首先,对输入特征图X的绝对值进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的输入特征图X在线性量化之后溢出量化范围,从而获得降序排序后的输入特征图X的第M+1个绝对值;
然后,根据第一动态范围参数Q1获得B比特线性量化之后的输入特征图:
式中,x′i表示定点化后的输入特征图;xi表示未定点化前的输入特征图;B表示定点化表示所需的比特数。
7.根据权利要求6所述的一种目标检测系统,其特征在于,所述卷积层参数定点化单元配置成采用线性量化方法对卷积层参数进行定点化,所述卷积层参数包括卷积层权重参数和卷积层偏置参数,所述卷积层参数为单精度浮点数;具体包括:假设卷积层参数的数量为N,首先,对卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的卷积层参数:
式中,w′i、b′i分别表示定点化后的卷积层权重参数和卷积层偏置参数;wi、bi分别表示未定点化前的卷积层权重参数和卷积层偏置参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321733.XA CN114898108B (zh) | 2022-03-30 | 2022-03-30 | 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321733.XA CN114898108B (zh) | 2022-03-30 | 2022-03-30 | 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114898108A true CN114898108A (zh) | 2022-08-12 |
CN114898108B CN114898108B (zh) | 2023-01-06 |
Family
ID=82715675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210321733.XA Active CN114898108B (zh) | 2022-03-30 | 2022-03-30 | 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114898108B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294108A (zh) * | 2022-09-29 | 2022-11-04 | 深圳比特微电子科技有限公司 | 目标检测方法、目标检测模型的量化方法、装置和介质 |
CN116187420A (zh) * | 2023-05-04 | 2023-05-30 | 上海齐感电子信息科技有限公司 | 轻量化的深度神经网络的训练方法、系统、设备和介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635935A (zh) * | 2018-12-29 | 2019-04-16 | 北京航空航天大学 | 基于模长聚类的深度卷积神经网络模型自适应量化方法 |
CN110110627A (zh) * | 2019-04-24 | 2019-08-09 | 江南大学 | 一种面向计算资源局限平台部署的实时目标检测的方法 |
CN110633594A (zh) * | 2018-06-21 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 一种目标检测方法和装置 |
CN110837890A (zh) * | 2019-10-22 | 2020-02-25 | 西安交通大学 | 一种面向轻量级卷积神经网络的权值数值定点量化方法 |
CN110880038A (zh) * | 2019-11-29 | 2020-03-13 | 中国科学院自动化研究所 | 基于fpga的加速卷积计算的系统、卷积神经网络 |
CN111079923A (zh) * | 2019-11-08 | 2020-04-28 | 中国科学院上海高等研究院 | 适用于边缘计算平台的Spark卷积神经网络系统及其电路 |
CN112508125A (zh) * | 2020-12-22 | 2021-03-16 | 无锡江南计算技术研究所 | 一种图像检测模型的高效全整数量化方法 |
CN112990438A (zh) * | 2021-03-24 | 2021-06-18 | 中国科学院自动化研究所 | 基于移位量化操作的全定点卷积计算方法、系统及设备 |
CN113065568A (zh) * | 2021-04-09 | 2021-07-02 | 神思电子技术股份有限公司 | 目标检测、属性识别与跟踪方法及系统 |
CN113408715A (zh) * | 2020-03-17 | 2021-09-17 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
CN113902114A (zh) * | 2021-09-29 | 2022-01-07 | 南京后摩智能科技有限公司 | 神经网络模型的量化方法、装置和系统、电子设备和存储介质 |
CN114139678A (zh) * | 2021-10-28 | 2022-03-04 | 中国科学院自动化研究所 | 卷积神经网络量化方法、装置、电子设备和存储介质 |
-
2022
- 2022-03-30 CN CN202210321733.XA patent/CN114898108B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633594A (zh) * | 2018-06-21 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 一种目标检测方法和装置 |
CN109635935A (zh) * | 2018-12-29 | 2019-04-16 | 北京航空航天大学 | 基于模长聚类的深度卷积神经网络模型自适应量化方法 |
CN110110627A (zh) * | 2019-04-24 | 2019-08-09 | 江南大学 | 一种面向计算资源局限平台部署的实时目标检测的方法 |
CN110837890A (zh) * | 2019-10-22 | 2020-02-25 | 西安交通大学 | 一种面向轻量级卷积神经网络的权值数值定点量化方法 |
CN111079923A (zh) * | 2019-11-08 | 2020-04-28 | 中国科学院上海高等研究院 | 适用于边缘计算平台的Spark卷积神经网络系统及其电路 |
CN110880038A (zh) * | 2019-11-29 | 2020-03-13 | 中国科学院自动化研究所 | 基于fpga的加速卷积计算的系统、卷积神经网络 |
CN113408715A (zh) * | 2020-03-17 | 2021-09-17 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
CN112508125A (zh) * | 2020-12-22 | 2021-03-16 | 无锡江南计算技术研究所 | 一种图像检测模型的高效全整数量化方法 |
CN112990438A (zh) * | 2021-03-24 | 2021-06-18 | 中国科学院自动化研究所 | 基于移位量化操作的全定点卷积计算方法、系统及设备 |
CN113065568A (zh) * | 2021-04-09 | 2021-07-02 | 神思电子技术股份有限公司 | 目标检测、属性识别与跟踪方法及系统 |
CN113902114A (zh) * | 2021-09-29 | 2022-01-07 | 南京后摩智能科技有限公司 | 神经网络模型的量化方法、装置和系统、电子设备和存储介质 |
CN114139678A (zh) * | 2021-10-28 | 2022-03-04 | 中国科学院自动化研究所 | 卷积神经网络量化方法、装置、电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
FORREST N. IANDOLA ET AL: "SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE", 《ARXIV:1602.07360V4》 * |
JUN FANG ET AL: "Post-Training Piecewise Linear Quantization for Deep Neural Networks", 《ARXIV:2002.00104V2》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294108A (zh) * | 2022-09-29 | 2022-11-04 | 深圳比特微电子科技有限公司 | 目标检测方法、目标检测模型的量化方法、装置和介质 |
CN116187420A (zh) * | 2023-05-04 | 2023-05-30 | 上海齐感电子信息科技有限公司 | 轻量化的深度神经网络的训练方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114898108B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
Yap et al. | Fixed point implementation of tiny-yolo-v2 using opencl on fpga | |
Guo et al. | Software-hardware codesign for efficient neural network acceleration | |
Gao et al. | DeltaRNN: A power-efficient recurrent neural network accelerator | |
US10878273B2 (en) | Dynamic quantization for deep neural network inference system and method | |
CN111459877B (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
Pestana et al. | A full featured configurable accelerator for object detection with YOLO | |
Fan et al. | A real-time object detection accelerator with compressed SSDLite on FPGA | |
CN114898108B (zh) | 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 | |
CN110020723B (zh) | 神经网络处理单元及包括该神经网络处理单元的片上系统 | |
Vogel et al. | Efficient hardware acceleration of CNNs using logarithmic data representation with arbitrary log-base | |
CN110852416A (zh) | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 | |
CN111240746B (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN110543936B (zh) | 一种cnn全连接层运算的多并行加速方法 | |
CN115210719A (zh) | 用于执行机器学习模型的自适应量化 | |
CN114757347A (zh) | 低比特量化神经网络加速器实现方法和系统 | |
Abd El-Maksoud et al. | Power efficient design of high-performance convolutional neural networks hardware accelerator on FPGA: A case study with GoogLeNet | |
Choi et al. | Retrain-less weight quantization for multiplier-less convolutional neural networks | |
WO2020092581A2 (en) | Constraining function approximation hardware integrated with fixed-point to floating-point conversion | |
CN113887710A (zh) | 循环神经网络中的数字格式选择 | |
Wang et al. | Briefly Analysis about CNN Accelerator based on FPGA | |
Choi et al. | Hardware-friendly logarithmic quantization with mixed-precision for mobilenetv2 | |
Kim et al. | A low-cost fully integer-based cnn accelerator on fpga for real-time traffic sign recognition | |
CN116266274A (zh) | 一种神经网络的调整方法及相应装置 | |
CN111091183A (zh) | 一种神经网络加速系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |