CN114898108A - 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 - Google Patents

一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 Download PDF

Info

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
Application number
CN202210321733.XA
Other languages
English (en)
Other versions
CN114898108B (zh
Inventor
赵延龙
尹振东
吴芝路
范浩天
李大森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN202210321733.XA priority Critical patent/CN114898108B/zh
Publication of CN114898108A publication Critical patent/CN114898108A/zh
Application granted granted Critical
Publication of CN114898108B publication Critical patent/CN114898108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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模型轻量化方法、目标检测方法及系统
技术领域
本发明涉及目标检测技术领域,具体涉及一种基于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;其中,
Figure BDA0003571982680000021
xM+1表示降序排序后的输入特征图X的第M+1个绝对值;
Figure BDA0003571982680000022
wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;
Figure BDA0003571982680000023
bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第一动态范围参数Q1、第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的输入特征图或卷积层参数:
Figure BDA0003571982680000024
Figure BDA0003571982680000025
Figure BDA0003571982680000026
式中,x′i、w′i、b′i分别表示定点化后的输入特征图、卷积层权重参数和卷积层偏置参数;xi、wi、bi分别表示未定点化前的输入特征图、卷积层权重参数和卷积层偏置参数;B表示定点化表示所需的比特数。
进一步地,对卷积层激活函数的定点化采用线性量化方法进行定点化,所述激活函数为ReLU函数;具体包括:卷积层中激活值均为非负值,假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据第M1+1个激活值确定动态范围参数P,
Figure BDA0003571982680000027
其中,aM1+1表示第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
Figure BDA0003571982680000031
式中,ai'表示定点化后的激活值;ai表示未定点化前的激活值。
根据本发明的另一方面,提供一种目标检测方法,该方法包括以下步骤:
步骤一、获取多张图像对应的特征图;
步骤二、利用CNN模型对输入的特征图进行目标检测,获取检测结果;其中,CNN模型是利用上述基于FPGA的CNN模型轻量化方法获得的SqueezeNet网络模型。
根据本发明的另一方面,提供一种目标检测系统,该系统包括:
特征图获取模块,其配置成获取多张图像对应的特征图;
目标检测模块,其配置成利用CNN模型对输入的特征图进行目标检测,CNN模型为SqueezeNet网络模型;包括CNN模型轻量化子模块,所述CNN模型轻量化子模块配置成:对SqueezeNet网络模型包含的卷积层进行定点化,所述定点化是指对计算和内存存储中的浮点数进行定点表示和运算;
检测结果输出模块,其配置成输出目标检测结果。
进一步地,所述CNN模型轻量化子模块包括输入特征图定点化单元、卷积层参数定点化单元、卷积层激活函数定点化单元;其中,
所述输入特征图定点化单元,其配置成采用线性量化方法对输入特征图进行定点化,所述输入特征图为单精度浮点数;具体包括:假设输入特征图的数量为N,
首先,对输入特征图X的绝对值进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的输入特征图X在线性量化之后溢出量化范围,从而获得降序排序后的输入特征图X的第M+1个绝对值;
然后,根据第M+1个绝对值确定输入特征图X所对应的第一动态范围参数Q1
Figure BDA0003571982680000032
xM+1表示降序排序后的输入特征图X的第M+1个绝对值;
然后,根据第一动态范围参数Q1获得B比特线性量化之后的输入特征图:
Figure BDA0003571982680000033
式中,x′i表示定点化后的输入特征图;xi表示未定点化前的输入特征图;B表示定点化表示所需的比特数。
进一步地,所述卷积层参数定点化单元配置成采用线性量化方法对卷积层参数进行定点化,所述卷积层参数包括卷积层权重参数和卷积层偏置参数,所述卷积层参数为单精度浮点数;具体包括:假设卷积层参数的数量为N,首先,对卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,
Figure BDA0003571982680000041
wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;
Figure BDA0003571982680000042
bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的卷积层参数:
Figure BDA0003571982680000043
Figure BDA0003571982680000044
式中,w′i、b′i分别表示定点化后的卷积层权重参数和卷积层偏置参数;wi、bi分别表示未定点化前的卷积层权重参数和卷积层偏置参数。
进一步地,采用线性量化方法对卷积层激活函数的激活图进行定点化,所述激活函数为ReLU函数;具体包括:激活图中激活值均为非负值,假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据第M1+1个激活值确定动态范围参数P,
Figure BDA0003571982680000045
其中,aM1+1表示第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
Figure BDA0003571982680000046
式中,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;其中,
Figure BDA0003571982680000061
xM+1表示降序排序后的输入特征图X的第M+1个绝对值;
Figure BDA0003571982680000062
wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;
Figure BDA0003571982680000063
bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第一动态范围参数Q1、第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的输入特征图或卷积层参数:
Figure BDA0003571982680000064
Figure BDA0003571982680000065
Figure BDA0003571982680000066
式中,x′i、w′i、b′i分别表示定点化后的输入特征图、卷积层权重参数和卷积层偏置参数;xi、wi、bi分别表示未定点化前的输入特征图、卷积层权重参数和卷积层偏置参数;B表示定点化表示所需的比特数。
本实施例中,可选地,对卷积层激活图的定点化采用线性量化方法进行定点化,激活函数为ReLU函数;具体包括:激活图中激活值均为非负值,假设激活图共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据第M1+1个激活值确定动态范围参数P,
Figure BDA0003571982680000071
其中,aM1+1表示第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
Figure BDA0003571982680000072
式中,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|);
然后对权重参数的绝对值进行降序排序得到:
Figure BDA0003571982680000081
为了提高量化精度,可使绝对值最大的一部分权重参数(Wsorted中靠前的元素)在量化之后溢出量化范围,记溢出的比例为overflow,那么没有溢出量化范围的权重参数的最大绝对值wmax
Figure BDA0003571982680000082
其中,
Figure BDA0003571982680000083
0≤overflow≤1;
Figure BDA0003571982680000084
表示向下取整。
此时,可确定参数的动态范围,令
Figure BDA0003571982680000085
除了溢出部分外,所有权重参数的满足:-2Q≤w* j≤2Q,j≥index。
对W中的所有权重参数进行B bit线性量化之后的结果w′i为:
Figure BDA0003571982680000086
式中,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
对所有激活值进行降序排列:
Figure BDA0003571982680000091
为了提高量化精度,可使绝对值最大的一小部分激活值在量化之后溢出量化范围,记溢出的比例为overflow,可确定溢出overflow下的最大值amax
Figure BDA0003571982680000092
其中,
Figure BDA0003571982680000093
0≤overflow≤1,
Figure BDA0003571982680000094
表示向下取整。
此时可确定激活值的动态范围,令:
Figure BDA0003571982680000095
除溢出部分外,所有激活值满足:
0≤aj≤2P-1
对A中全部激活值进行B bit线性量化的结果为:
Figure BDA0003571982680000096
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本发明与相关研究对比
Figure BDA0003571982680000101
表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个绝对值;
然后,根据第M+1个绝对值确定输入特征图X所对应的第一动态范围参数Q1
Figure BDA0003571982680000111
xM+1表示降序排序后的输入特征图X的第M+1个绝对值;
然后,根据第一动态范围参数Q1获得B比特线性量化之后的输入特征图:
Figure BDA0003571982680000112
式中,x′i表示定点化后的输入特征图;xi表示未定点化前的输入特征图;B表示定点化表示所需的比特数。
本实施例中,可选地,卷积层参数定点化单元配置成采用线性量化方法对卷积层参数进行定点化,卷积层参数包括卷积层权重参数和卷积层偏置参数,卷积层参数为单精度浮点数;具体包括:假设卷积层参数的数量为N,首先,对卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,
Figure BDA0003571982680000113
wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;
Figure BDA0003571982680000114
bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的卷积层参数:
Figure BDA0003571982680000121
Figure BDA0003571982680000122
式中,w′i、b′i分别表示定点化后的卷积层权重参数和卷积层偏置参数;wi、bi分别表示未定点化前的卷积层权重参数和卷积层偏置参数。
本实施例中,可选地,采用线性量化方法对卷积层激活函数进行定点化,激活函数为ReLU函数;具体包括:卷积层的激活图均为非负值,假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据第M1+1个激活值确定动态范围参数P,
Figure BDA0003571982680000123
其中,aM1+1表示第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
Figure BDA0003571982680000124
式中,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;其中,
Figure FDA0003571982670000011
xM+1表示降序排序后的输入特征图X的第M+1个绝对值;
Figure FDA0003571982670000012
wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;
Figure FDA0003571982670000013
bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第一动态范围参数Q1、第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的输入特征图或卷积层参数:
Figure FDA0003571982670000014
Figure FDA0003571982670000015
Figure FDA0003571982670000016
式中,x′i、w′i、b′i分别表示定点化后的输入特征图、卷积层权重参数和卷积层偏置参数;xi、wi、bi分别表示未定点化前的输入特征图、卷积层权重参数和卷积层偏置参数;B表示定点化表示所需的比特数。
3.根据权利要求2所述的一种基于FPGA的CNN模型轻量化方法,其特征在于,对卷积层激活函数的输出值为激活图,采用线性量化方法进行定点化,所述激活函数为ReLU函数,激活图的激活值均为非负值。具体包括:假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据第M1+1个激活值确定动态范围参数P,
Figure FDA0003571982670000021
其中,aM1+1表示第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
Figure FDA0003571982670000022
式中,ai'表示定点化后的激活值;ai表示未定点化前的激活值。
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个绝对值;
然后,根据第M+1个绝对值确定输入特征图X所对应的第一动态范围参数Q1
Figure FDA0003571982670000031
xM+1表示降序排序后的输入特征图X的第M+1个绝对值;
然后,根据第一动态范围参数Q1获得B比特线性量化之后的输入特征图:
Figure FDA0003571982670000032
式中,x′i表示定点化后的输入特征图;xi表示未定点化前的输入特征图;B表示定点化表示所需的比特数。
7.根据权利要求6所述的一种目标检测系统,其特征在于,所述卷积层参数定点化单元配置成采用线性量化方法对卷积层参数进行定点化,所述卷积层参数包括卷积层权重参数和卷积层偏置参数,所述卷积层参数为单精度浮点数;具体包括:假设卷积层参数的数量为N,首先,对卷积层权重参数W或卷积层偏置参数b的绝对值分别进行降序排序;
然后,使降序排序后的N个绝对值的前M个绝对值所对应的卷积层权重参数W或卷积层偏置参数b在线性量化之后溢出量化范围,从而获得降序排序后的卷积层权重参数W或卷积层偏置参数b的第M+1个绝对值;
然后,根据第M+1个绝对值分别确定卷积层权重参数W所对应的第二动态范围参数Q2、卷积层偏置参数b所对应的第三动态范围参数Q3;其中,
Figure FDA0003571982670000033
wM+1表示降序排序后的卷积层权重参数W的第M+1个绝对值;
Figure FDA0003571982670000034
bM+1表示降序排序后的卷积层偏置参数b的第M+1个绝对值;
然后,根据第二动态范围参数Q2、第三动态范围参数Q3分别获得B比特线性量化之后的卷积层参数:
Figure FDA0003571982670000035
Figure FDA0003571982670000036
式中,w′i、b′i分别表示定点化后的卷积层权重参数和卷积层偏置参数;wi、bi分别表示未定点化前的卷积层权重参数和卷积层偏置参数。
8.根据权利要求7所述的一种目标检测系统,其特征在于,所述卷积层激活函数定点化单元配置成采用线性量化方法对卷积层激活函数进行定点化,所述激活函数为ReLU函数;具体包括:卷积层中激活图均为非负值,假设卷积层共有N1个激活值;
首先,对N1个激活值进行降序排序;
然后,使降序排序后的N1个激活值的前M1个激活值在线性量化之后溢出量化范围,从而获得第M1+1个激活值;
然后,根据第M1+1个激活值确定动态范围参数P,
Figure FDA0003571982670000041
其中,aM1+1表示第M1+1个激活值;
然后,根据动态范围参数P获得B比特线性量化之后的激活值:
Figure FDA0003571982670000042
式中,ai'表示定点化后的激活值;ai表示未定点化前的激活值。
CN202210321733.XA 2022-03-30 2022-03-30 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 Active CN114898108B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国科学院自动化研究所 卷积神经网络量化方法、装置、电子设备和存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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