CN108804974B - 目标检测算法的硬件架构的资源估算、配置方法及系统 - Google Patents
目标检测算法的硬件架构的资源估算、配置方法及系统 Download PDFInfo
- Publication number
- CN108804974B CN108804974B CN201710287107.2A CN201710287107A CN108804974B CN 108804974 B CN108804974 B CN 108804974B CN 201710287107 A CN201710287107 A CN 201710287107A CN 108804974 B CN108804974 B CN 108804974B
- Authority
- CN
- China
- Prior art keywords
- target detection
- detection algorithm
- deep learning
- calculation
- input
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种目标检测算法的硬件架构的资源估算、配置方法及系统,提取基于深度学习的目标检测算法所包含的计算层级和每个层级的计算参数;基将基于深度学习的目标检测算法映射至所述基于深度学习的目标检测算法的硬件架构;利用基于深度学习的目标检测算法的硬件架构的资源估算方法,估算映射后的所述基于深度学习的目标检测算法的硬件架构所需的整体资源;计算FPGA所能容纳的最大并行度;基于所述基于深度学习的目标检测算法,根据不同的计算层级,重新配置卷积计算核和全连接计算核。本发明的目标检测算法的硬件架构的资源估算、配置方法及系统能够通过最优化的资源配置实现最优的计算性能大大提升目标检测的实时性。
Description
技术领域
本发明涉及FPGA的技术领域,特别是涉及一种目标检测算法的硬件架构的资源估算、配置方法及系统。
背景技术
现场可编程门阵列(Field-Programmable Gate Array,FPGA)是一种在生产后可编程的集成电路芯片。FPGA芯片中电路提供可编程节点,可根据用户设定重新定义电路逻辑。相比于传统处理芯片CPU,FPGA可提供针对特定问题的高度优化电路,提升百倍级别计算性能。相比于传统集成电路芯片ASIC,FPGA可提供更灵活的计算方案。
目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一。目标检测为机器视觉的一个基础应用。相较于图像识别,目标检测需要在图像中标记物体位置。典型的目标检测算法包括以下两个步骤:
(1)边框收敛
(2)框内物体识别
然而,基于滑动窗口以及区域分割的目标检测算法存在检测准确率低、检测时间长的缺点。因此,基于深度学习的目标检测算法应用而生,如YOLO,Faster R-CNN。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。因此,基于深度学习的目标检测算法需要大量的计算资源支持。在机器人、无人机、卫星等急需人工智能支持的移动设备中,受限于计算资源与空间,无法支持此类基于深度学习的目标检测算法的实现。
基于FPGA的深度学习算法的硬件定制架构为在功耗、空间资源受限条件下的实时目标检测提供了可能。然而,在实际应用中,对于复杂的目标检测算法,如何在进行硬件架构的资源估计、资源配置,以实现最优的计算性能成为一个热点研究课题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种目标检测算法的硬件架构的资源估算、配置方法及系统,能够在FPGA架构下,对基于深度学习的目标检测算法的硬件架构进行准确有效地资源估计和资源配置,从而通过最优化的资源配置实现最优的计算性能大大提升目标检测的实时性。
为实现上述目的及其他相关目的,本发明提供一种基于深度学习的目标检测算法的硬件架构的资源估算方法,所述基于深度学习的目标检测算法的硬件架构包括设置在FPGA上的输入缓存器、行缓存器、寄存器矩阵、卷积计算核、输出缓存器和全连接计算核;所述输入缓存器用于缓存基于深度学习的目标检测算法的输入层的数据;所述行缓存器包括k个存储单元,用于缓存k行输入缓存器的输出数据,其中,k为卷积计算核的大小;所述寄存器矩阵包括k*k个寄存器,第一列k个寄存器分别与所述行缓存器的k个存储单元的输出端相连,相邻列寄存器相互连接;所述卷积计算核用于根据每个时钟周期所述寄存器矩阵输出的k*k个寄存器数据进行卷积计算;所述输出缓存器用于存储所述卷积计算核的输出结果;所述全连接计算核用于将所述输出缓存器中卷积计算核计算得到的特征向量图与所述输入缓存器输入的系数矩阵相乘,以得到目标检测的最终结果;所述基于深度学习的目标检测算法的硬件架构的资源估算方法包括:根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体计算资源使用量;根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量;根据公式(Pv×PF)/Nf+(Pv×PF)/NC估算整体通信带宽资源的使用量,其中BH表示分割后的输入特征图高度;BW表示分割后的输入特征图宽度;NC表示输入特征图通道数;s表示卷积计算核的计算步长,Nf表示输出特征图通道数,Lf表示单个全连接计算核的计算资源使用量;Lc表示单个卷积计算核的计算资源使用量,PP表示计算层并行度,PF表示滤波器并行度,PV表示向量并行度。
于本发明一实施例中,根据公式(BHBW+k2)NC+kBW估算分割后输入特征图对应的输入缓存器的存储资源使用量;根据公式BHBW/s2估算分割后输入特征图对应的输出缓存器的存储资源使用量。
于本发明一实施例中,根据公式Lc(PP×PF×PV)估算卷积计算核的资源使用量。
相应地,本发明提供一种基于深度学习的目标检测算法的硬件架构的资源估算系统,所述基于深度学习的目标检测算法的硬件架构包括设置在FPGA上的输入缓存器、行缓存器、寄存器矩阵、卷积计算核、输出缓存器和全连接计算核;所述输入缓存器用于缓存基于深度学习的目标检测算法的输入层的数据;所述行缓存器包括k个存储单元,用于缓存k行输入缓存器的输出数据,其中,k为卷积计算核的大小;所述寄存器矩阵包括k*k个寄存器,第一列k个寄存器分别与所述行缓存器的k个存储单元的输出端相连,相邻列寄存器相互连接;所述卷积计算核用于根据每个时钟周期所述寄存器矩阵输出的k*k个寄存器数据进行卷积计算;所述输出缓存器用于存储所述卷积计算核的输出结果;所述全连接计算核用于将所述输出缓存器中卷积计算核计算得到的特征向量图与所述输入缓存器输入的系数矩阵相乘,以得到目标检测的最终结果;
所述基于深度学习的目标检测算法的硬件架构的资源估算系统包括整体资源估算模块;
所述整体资源估算模块用于根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体计算资源使用量;根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量;根据公式(Pv×PF)/Nf+(Pv×PF)/NC估算整体通信带宽资源的使用量,其中BH表示分割后的输入特征图高度;BW表示分割后的输入特征图宽度;NC表示输入特征图通道数;s表示卷积计算核的计算步长,Nf表示输出特征图通道数,Lf表示单个全连接计算核的计算资源使用量;Lc表示单个卷积计算核的计算资源使用量,PP表示计算层并行度,PF表示滤波器并行度,Pv表示向量并行度。
于本发明一实施例中,还包括分割模型存储资源估算模块,用于根据公式(BHBW+k2)NC+kBW估算分割后输入特征图对应的输入缓存器的存储资源使用量;根据公式BHBW/s2估算分割后输入特征图对应的输出缓存器的存储资源使用量。
于本发明一实施例中,还包括卷积计算核资源估算模块,用于根据公式Lc(PP×PF×PV)估算卷积计算核的资源使用量。
另外,本发明还提供一种基于深度学习的目标检测算法的硬件架构的资源配置方法,包括以下步骤:
提取基于深度学习的目标检测算法所包含的计算层级和每个层级的计算参数;
基于所提取的计算层级和每个层级的计算参数,将基于深度学习的目标检测算法映射至所述基于深度学习的目标检测算法的硬件架构;
基于上述的基于深度学习的目标检测算法的硬件架构的资源估算方法,估算映射后的所述基于深度学习的目标检测算法的硬件架构所需的整体资源;
基于所估算的所述基于深度学习的目标检测算法的硬件架构所需的整体资源,计算FPGA所能容纳的最大并行度;
基于所述基于深度学习的目标检测算法,根据不同的计算层级,重新配置卷积计算核和全连接计算核。
于本发明一实施例中,每个层级的计算参数包括输入特征图高度、输入特征图宽度、输入特征图通道数、输出特征图通道数、卷积计算核的大小、卷积计算核的计算步长、分割后输入特征图高度、分割后输入特征图宽度、计算层并行度、滤波器并行度和向量并行度。
相应地,本发明还提供一种基于深度学习的目标检测算法的硬件架构的资源配置系统,包括提取模块、映射模块、估算模块、计算模块和再配置模块;
所述提取模块用于提取基于深度学习的目标检测算法所包含的计算层级和每个层级的计算参数;
所述映射模块用于基于所提取的计算层级和每个层级的计算参数,将基于深度学习的目标检测算法映射至所述基于深度学习的目标检测算法的硬件架构;
所述估算模块用于基于上述的基于深度学习的目标检测算法的硬件架构的资源估算方法,估算映射后的所述基于深度学习的目标检测算法的硬件架构所需的整体资源;
所述计算模块用于基于所估算的所述基于深度学习的目标检测算法的硬件架构所需的整体资源,计算FPGA所能容纳的最大并行度,并采用该最大并行度;
所述再配置模块用于基于所述基于深度学习的目标检测算法,根据不同的计算层级,重新配置卷积计算核和全连接计算核。
于本发明一实施例中,每个层级的计算参数包括输入特征图高度、输入特征图宽度、输入特征图通道数、输出特征图通道数、卷积计算核的大小、卷积计算核的计算步长、分割后输入特征图高度、分割后输入特征图宽度、计算层并行度、滤波器并行度和向量并行度。
如上所述,本发明的目标检测算法的硬件架构的资源估算、配置方法及系统,具有以下有益效果:
(1)能够在FPGA架构下,对基于深度学习的目标检测算法的硬件架构进行准确有效地资源估计;
(2)能够在FPGA架构下,对基于深度学习的目标检测算法的硬件架构进行准确有效地资源配置,从而通过最优化的资源配置实现最优的计算性能;
(3)大大提升目标检测的实时性,实用性强。
附图说明
图1显示为本发明的基于深度学习的目标检测算法的硬件架构的结构示意图;
图2显示为本发明的基于深度学习的目标检测算法的硬件架构的资源估算方法的流程图;
图3显示为本发明的基于深度学习的目标检测算法的硬件架构的资源估算系统的结构示意图;
图4显示为本发明的基于深度学习的目标检测算法的硬件架构的资源配置方法的流程图;
图5显示为本发明的基于深度学习的目标检测算法的硬件架构的资源配置系统的结构示意图。
元件标号说明
11 分割模型存储资源估算模块
12 卷积计算核资源估算模块
13 整体资源估算模块
21 提取模块
22 映射模块
23 估算模块
24 计算模块
25 再配置模块
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
现有技术中,基于深度学习的目标检测算法大致分为以下两派:
(1)基于区域提名的,如R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN;
(2)端到端(End-to-End),无需区域提名的,如YOLO、SSD。
下面首先介绍一下本发明所涉及的基于深度学习的目标检测算法的硬件架构。
如图1所示,本发明的基于深度学习的目标检测算法的硬件架构包括设置在FPGA上的输入缓存器1、行缓存器2、寄存器矩阵3、卷积计算核4、输出缓存器5和全连接计算核6。
输入缓存器1用于缓存基于深度学习的目标检测算法的输入层的数据。
具体地,输入缓存器1支持对所有目标检测算法输入网络层级输入通道的缓存。
行缓存器2与输入缓存器1相连,包括k个存储单元,用于缓存k行输入缓存器1的输出数据,其中,k为卷积计算核的大小。
具体地,行缓存器2通过硬件连接线与输入缓存器连接,当本发明的基于深度学习的目标检测算法的硬件架构支持多个卷积计算核并行计算时,行缓存器通过并行连接线与输入缓存器相连。在行缓存器中,每行数据存储于单个存储单元中,单个存储单元提供输入输出引脚。每个存储单元的输入输出引脚数由卷积计算核的并行度,也就是输入缓存器的连线数目决定。
现有技术中,常见的卷积计算核为1*1、3*3、5*5和7*7,其中对应的卷积计算核的大小k分别为1、3、5和7。
寄存器矩阵3包括k*k个寄存器,第一列k个寄存器分别与行缓存器的k个存储单元的输出端相连,相邻列寄存器相互连接,如图2所示。
具体地,每个时钟周期,寄存器矩阵3内数据从左至右进行转移。每个时钟周期,所有k*k个寄存器数据输入对应的卷积计算核,以进行卷积计算。
卷积计算核4与寄存器矩阵3相连,用于根据每个时钟周期所述寄存器矩阵3输出的k*k个寄存器数据进行卷积计算。
优选地,为支持不同目标检测算法中的不同大小的卷积计算核,所述卷积计算核支持可重构配置,可在运行时重新配置为1*1、3*3、5*5、7*7等多种卷积计算核,并支持单个卷积计算核(如7*7)重新配置为多个小卷积计算核(如3*3)。以7x7卷积计算核为例,当配置为3x3卷积计算时,多个相邻3*3寄存器组由于存储数据相同,可共享寄存器单元。
需要说明的是,由于各个卷积计算核需要独立运行,故不同的计算器无法实现共享。以重新配置为3*3卷积计算核为例,7*7的卷积计算核使用49个乘法器,3*3的卷积计算核使用9个乘法器。故一个7*7的卷积计算核能够配置为5个3*3的卷积计算核。
输出缓存器5与卷积计算核4相连,用于存储卷积计算核4的输出结果。
具体地,输出缓存器5还与片下存储单元相连,当卷积计算核完成一个输出通道的输出,输出缓存器将其保存的输出结果输出至片下存储单元进行存储。
全连接计算核6与输入缓存器1和输出缓存器5相连,用于将输出缓存器5中卷积计算核计算得到的特征向量图与输入缓存器1输入的系数矩阵相乘,以得到目标检测的最终结果。
具体地,全连接计算核包含多个矩阵向量乘单元。根据目标检测算法需求,全连接计算核可配置为行计算计算核或列计算计算核。
优选地,全连接计算核可包括多个全连接计算子核,每个全连接计算子核的输入为卷积计算核计算得到的或者其他全连接计算子核计算得到的特征向量图,输出为目标检测的最终结果或目标检测的中间结果。
下面以YOLO及Faster R-CNN两个目标识别算法为例来进一步阐述本发明的基于深度学习的目标检测算法的硬件架构。
YOLO算法采用GoogleNet,包含24层卷积层(Conv1-Conv24)及2层全连接层(FC1和FC2),每层的算法参数包括输入数据的行数、列数、输入通道数、输出通道数以及卷积核大小,具体如表1所示。
表1、YOLO算法各层参数
Faster R-CNN算法采用VGGNet,包含13层卷积层(Conv1-Conv13)、3层区域提取层(Rpn、Rpn_cls_score和Rpn_bbox_pred)、以及2层全连接层(FC1和FC2),每层的算法参数包括输入数据的行数、列数、输入通道数、输出通道数以及卷积核大小,如表2所示。
表2、Faster R-CNN算法各层参数
因此,针对不同的目标检测算法,所需要的硬件资源也不同。在实际使用时,首先需要对所需资源进行估算,以更好地进行资源配置。
如图2所示,本发明的基于深度学习的目标检测算法的硬件架构的资源估算方法包括以下步骤:
步骤S11、根据公式(BHBW+k2)NC+kBW估算分割后输入特征图对应的输入缓存器的存储资源使用量;根据公式BHBW/s2估算分割后输入特征图对应的输出缓存器的存储资源使用量,其中BH表示将输入特征图分割后的输入特征图高度;BW表示将输入特征图分割后的输入特征图宽度;NC表示输入特征图通道数;s表示卷积计算核的计算步长。
为保证不同目标检测应用可以放入片上存储资源,本发明的基于深度学习的目标检测算法的硬件架构支持对于原始输入特征图进行分割。对于输入为H*W的特征图,可分割为多个BH*BW的特征图。其中,H表示输入特征图高度;W表示输入特征图宽度。BH表示分割后输入特征图高度;BW表示分割后输入特征图宽度。与之对应,分割后输入特征图对应的输入缓存器的大小根据公式(BHBW+k2)NC+kBW估算,其中(BHBW+k2)NC表示分割后输入特征图对应的输入缓存器使用硬件资源的大小,kBW表示分割后输入特征图对应的行缓存器使用硬件资源的大小。
步骤S12、根据公式Lc(PP×PF×PV)估算卷积计算核的计算资源使用量,其中,Lc表示单个卷积计算核的计算资源使用量,PP表示计算层并行度,PF表示滤波器并行度,PV表示向量并行度。
本发明的基于深度学习的目标检测算法的硬件架构中输入缓存器、行缓存器、卷积计算核可重构为不同硬件计算单元,用以复用硬件计算资源,支持不同卷积核在计算中的使用。
具体地,根据公式Lc(PP×PF×PV)估算卷积计算核的计算资源使用量。
步骤S13、根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体计算资源使用量;根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量;根据公式(PV×PF)/Nf+(PV×PF)/NC估算通信带宽资源的使用量,其中Nf表示输出特征图通道数,Lf表示单个全连接计算核的计算资源使用量。
综合支持卷积计算核心、全连接计算核心的整体硬件架构的资源使用量可根据硬件架构的并行度以及分割后特征图进行计算。
具体地,根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体资源使用量。
根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量。
如图3所示,本发明的基于深度学习的目标检测算法的硬件架构的资源估算系统包括分割模型存储资源估算模块11、卷积计算核资源估算模块12和整体资源估算模块13。
分割模型存储资源估算模块11用于根据公式(BHBW+k2)NC+kBW估算分割后输入特征图对应的输入缓存器的存储资源使用量;根据公式BHBW/s2估算分割后输入特征图对应的输出缓存器的存储资源使用量,其中BH表示将输入特征图分割后的输入特征图高度;BW表示将输入特征图分割后的输入特征图宽度;NC表示输入特征图通道数;s表示卷积计算核的计算步长。
为保证不同目标检测应用可以放入片上存储资源,本发明的基于深度学习的目标检测算法的硬件架构支持对于原始输入特征图进行分割。对于输入为H*W的特征图,可分割为多个BH*BW的特征图。其中,H表示输入特征图高度;W表示输入特征图宽度。BH表示分割后输入特征图高度;BW表示分割后输入特征图宽度。与之对应,分割后输入特征图对应的输入缓存器的大小根据公式(BHBW+k2)NC+kBW估算,其中(BHBW+k2)NC表示分割后输入特征图对应的输入缓存器使用硬件资源的大小,kBW表示分割后输入特征图对应的行缓存器使用硬件资源的大小。
卷积计算核资源估算模块12用于根据公式Lc(PP×PF×PV)估算卷积计算核的计算资源使用量,其中,Lc表示单个卷积计算核的计算资源使用量,PP表示计算层并行度,PF表示滤波器并行度,PV表示向量并行度。
本发明的基于深度学习的目标检测算法的硬件架构中输入缓存器、行缓存器、卷积计算核可重构为不同硬件计算单元,用以复用硬件计算资源,支持不同卷积核在计算中的使用。
具体地,根据公式Lc(PP×PF×PV)估算卷积计算核的资源使用量。
整体资源估算模块13用于根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体资源使用量;根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量;根据公式(Pv×PF)/Nf+(Pv×PF)/NC估算通信带宽资源的使用量,其中Nf表示输出特征图通道数,Lf表示单个全连接计算核的计算资源使用量。
综合支持卷积计算核心、全连接计算核心的整体硬件架构的资源使用量可根据硬件架构的并行度以及分割后特征图进行计算。
具体地,根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体资源使用量。
根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量。
如图4所示,本发明的基于深度学习的目标检测算法的硬件架构的资源配置方法包括以下步骤:
步骤S21、提取基于深度学习的目标检测算法所包含的计算层级和每个层级的计算参数。
具体地,每个层级的计算参数包括输入特征图高度、输入特征图宽度、输入特征图通道数、输出特征图通道数、卷积计算核的大小、卷积计算核的计算步长、分割后输入特征图高度、分割后输入特征图宽度、计算层并行度、滤波器并行度和向量并行度。
步骤S22、基于所提取的计算层级和每个层级的计算参数,将基于深度学习的目标检测算法映射至所述基于深度学习的目标检测算法的硬件架构。
步骤S23、基于如上所述的基于深度学习的目标检测算法的硬件架构的资源估算方法,估算映射后的所述基于深度学习的目标检测算法的硬件架构所需的整体资源。
步骤S24、基于所估算的所述基于深度学习的目标检测算法的硬件架构所需的整体资源,计算FPGA所能容纳的最大并行度。
步骤S25、基于所述基于深度学习的目标检测算法,根据不同的计算层级,重新配置卷积计算核和全连接计算核。
如图5所示,本发明的基于深度学习的目标检测算法的硬件架构的资源配置系统包括依次连接的提取模块21、映射模块22、估算模块23、计算模块24和再配置模块25。
提取模块21用于提取基于深度学习的目标检测算法所包含的计算层级和每个层级的计算参数。
具体地,每个层级的计算参数包括输入特征图高度、输入特征图宽度、输入特征图通道数、输出特征图通道数、卷积计算核的大小、卷积计算核的计算步长、分割后输入特征图高度、分割后输入特征图宽度、计算层并行度、滤波器并行度和向量并行度。
映射模块22用于基于所提取的计算层级和每个层级的计算参数,将基于深度学习的目标检测算法映射至所述基于深度学习的目标检测算法的硬件架构。
估算模块23用于基于如上所述的基于深度学习的目标检测算法的硬件架构的资源估算方法,估算映射后的所述基于深度学习的目标检测算法的硬件架构所需的整体资源。
计算模块24用于基于所估算的所述基于深度学习的目标检测算法的硬件架构所需的整体资源,计算FPGA所能容纳的最大并行度,并采用该最大并行度。
再配置模块25用于基于所述基于深度学习的目标检测算法,根据不同的计算层级,重新配置卷积计算核和全连接计算核。
综上所述,本发明的目标检测算法的硬件架构的资源估算、配置方法及系统能够在FPGA架构下,对基于FPGA的目标检测算法的硬件架构进行准确有效地资源估计;能够在FPGA架构下,对基于FPGA的目标检测算法的硬件架构进行准确有效地资源配置,从而通过最优化的资源配置实现最优的计算性能;大大提升目标检测的实时性,实用性强。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (8)
1.一种基于深度学习的目标检测算法的硬件架构的资源估算方法,其特征在于:所述基于深度学习的目标检测算法的硬件架构包括设置在FPGA上的输入缓存器、行缓存器、寄存器矩阵、卷积计算核、输出缓存器和全连接计算核;所述输入缓存器用于缓存基于深度学习的目标检测算法的输入层的数据;所述行缓存器包括k个存储单元,用于缓存k行输入缓存器的输出数据,其中,k为卷积计算核的大小;所述寄存器矩阵包括k*k个寄存器,第一列k个寄存器分别与所述行缓存器的k个存储单元的输出端相连,相邻列寄存器相互连接;所述卷积计算核用于根据每个时钟周期所述寄存器矩阵输出的k*k个寄存器数据进行卷积计算;所述输出缓存器用于存储所述卷积计算核的输出结果;所述全连接计算核用于将所述输出缓存器中卷积计算核计算得到的特征向量图与所述输入缓存器输入的系数矩阵相乘,以得到目标检测的最终结果;
所述基于深度学习的目标检测算法的硬件架构的资源估算方法包括:
根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体计算资源使用量;根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量;根据公式(PV×PF)/Nf+(PV×PF)/NC估算整体通信带宽资源的使用量,其中BH表示分割后的输入特征图高度;BW表示分割后的输入特征图宽度;NC表示输入特征图通道数;s表示卷积计算核的计算步长,Nf表示输出特征图通道数,Lf表示单个全连接计算核的计算资源使用量;Lc表示单个卷积计算核的计算资源使用量,PP表示计算层并行度,PF表示滤波器并行度,PV表示向量并行度。
2.根据权利要求1所述的基于深度学习的目标检测算法的硬件架构的资源估算方法,其特征在于:根据公式(BHBW+k2)NC+kBW估算分割后输入特征图对应的输入缓存器的存储资源使用量;根据公式BHBW/s2估算分割后输入特征图对应的输出缓存器的存储资源使用量。
3.根据权利要求1所述的基于深度学习的目标检测算法的硬件架构的资源估算方法,其特征在于:根据公式Lc(PP×PF×PV)估算卷积计算核的资源使用量。
4.一种基于深度学习的目标检测算法的硬件架构的资源估算系统,其特征在于:所述基于深度学习的目标检测算法的硬件架构包括设置在FPGA上的输入缓存器、行缓存器、寄存器矩阵、卷积计算核、输出缓存器和全连接计算核;所述输入缓存器用于缓存基于深度学习的目标检测算法的输入层的数据;所述行缓存器包括k个存储单元,用于缓存k行输入缓存器的输出数据,其中,k为卷积计算核的大小;所述寄存器矩阵包括k*k个寄存器,第一列k个寄存器分别与所述行缓存器的k个存储单元的输出端相连,相邻列寄存器相互连接;所述卷积计算核用于根据每个时钟周期所述寄存器矩阵输出的k*k个寄存器数据进行卷积计算;所述输出缓存器用于存储所述卷积计算核的输出结果;所述全连接计算核用于将所述输出缓存器中卷积计算核计算得到的特征向量图与所述输入缓存器输入的系数矩阵相乘,以得到目标检测的最终结果;
所述基于深度学习的目标检测算法的硬件架构的资源估算系统包括整体资源估算模块;
所述整体资源估算模块用于根据公式Lc(PP×PF×PV)+Lf(PP×PV)估算整体计算资源使用量;根据公式((BHBW+k2)NC+kBW+BHBW/s2)×PP估算整体存储资源使用量;根据公式(PV×PF)/Nf+(PV×PF)/NC估算整体通信带宽资源的使用量,其中BH表示分割后的输入特征图高度;BW表示分割后的输入特征图宽度;NC表示输入特征图通道数;s表示卷积计算核的计算步长,Nf表示输出特征图通道数,Lf表示单个全连接计算核的计算资源使用量;Lc表示单个卷积计算核的计算资源使用量,PP表示计算层并行度,PF表示滤波器并行度,PV表示向量并行度。
5.根据权利要求4所述的基于深度学习的目标检测算法的硬件架构的资源估算系统,其特征在于:还包括分割模型存储资源估算模块,用于根据公式(BHBW+k2)NC+kBW估算分割后输入特征图对应的输入缓存器的存储资源使用量;根据公式BHBW/s2估算分割后输入特征图对应的输出缓存器的存储资源使用量。
6.根据权利要求4所述的基于深度学习的目标检测算法的硬件架构的资源估算系统,其特征在于:还包括卷积计算核资源估算模块,用于根据公式Lc(PP×PF×PV)估算卷积计算核的资源使用量。
7.一种基于深度学习的目标检测算法的硬件架构的资源配置方法,其特征在于:包括以下步骤:
提取基于深度学习的目标检测算法所包含的计算层级和每个层级的计算参数;
基于所提取的计算层级和每个层级的计算参数,将基于深度学习的目标检测算法映射至所述基于深度学习的目标检测算法的硬件架构;
基于权利要求1-3之一所述的基于深度学习的目标检测算法的硬件架构的资源估算方法,估算映射后的所述基于深度学习的目标检测算法的硬件架构所需的整体资源;
基于所估算的所述基于深度学习的目标检测算法的硬件架构所需的整体资源,计算FPGA所能容纳的最大并行度;
基于所述基于深度学习的目标检测算法,根据不同的计算层级,重新配置卷积计算核和全连接计算核;
每个层级的计算参数包括输入特征图高度、输入特征图宽度、输入特征图通道数、输出特征图通道数、卷积计算核的大小、卷积计算核的计算步长、分割后输入特征图高度、分割后输入特征图宽度、计算层并行度、滤波器并行度和向量并行度。
8.一种基于深度学习的目标检测算法的硬件架构的资源配置系统,其特征在于:包括提取模块、映射模块、估算模块、计算模块和再配置模块;
所述提取模块用于提取基于深度学习的目标检测算法所包含的计算层级和每个层级的计算参数;
所述映射模块用于基于所提取的计算层级和每个层级的计算参数,将基于深度学习的目标检测算法映射至所述基于深度学习的目标检测算法的硬件架构;
所述估算模块用于基于权利要求1-3之一所述的基于深度学习的目标检测算法的硬件架构的资源估算方法,估算映射后的所述基于深度学习的目标检测算法的硬件架构所需的整体资源;
所述计算模块用于基于所估算的所述基于深度学习的目标检测算法的硬件架构所需的整体资源,计算FPGA所能容纳的最大并行度,并采用该最大并行度;
所述再配置模块用于基于所述基于深度学习的目标检测算法,根据不同的计算层级,重新配置卷积计算核和全连接计算核;
每个层级的计算参数包括输入特征图高度、输入特征图宽度、输入特征图通道数、输出特征图通道数、卷积计算核的大小、卷积计算核的计算步长、分割后输入特征图高度、分割后输入特征图宽度、计算层并行度、滤波器并行度和向量并行度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287107.2A CN108804974B (zh) | 2017-04-27 | 2017-04-27 | 目标检测算法的硬件架构的资源估算、配置方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287107.2A CN108804974B (zh) | 2017-04-27 | 2017-04-27 | 目标检测算法的硬件架构的资源估算、配置方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804974A CN108804974A (zh) | 2018-11-13 |
CN108804974B true CN108804974B (zh) | 2021-07-02 |
Family
ID=64069029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710287107.2A Active CN108804974B (zh) | 2017-04-27 | 2017-04-27 | 目标检测算法的硬件架构的资源估算、配置方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804974B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705060B (zh) * | 2019-09-19 | 2023-06-09 | 上海卫星工程研究所 | 星上数据处理系统架构设计方法及系统 |
US20220351020A1 (en) * | 2021-04-30 | 2022-11-03 | International Business Machines Corporation | Deploying parallelizable deep learning models by adapting to the computing devices |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405004C (zh) * | 2006-08-25 | 2008-07-23 | 北京航空航天大学 | 光条图像特征高精度快速提取装置及方法 |
US8479133B2 (en) * | 2009-01-27 | 2013-07-02 | Xilinx, Inc. | Method of and circuit for implementing a filter in an integrated circuit |
WO2016015046A1 (en) * | 2014-07-25 | 2016-01-28 | Axsun Technologies Llc | Real time fpga resampling for swept source optical coherence tomography |
CN104915322B (zh) * | 2015-06-09 | 2018-05-01 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法 |
CN105260773B (zh) * | 2015-09-18 | 2018-01-12 | 华为技术有限公司 | 一种图像处理装置以及图像处理方法 |
CN105681628B (zh) * | 2016-01-05 | 2018-12-07 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
CN106228238B (zh) * | 2016-07-27 | 2019-03-22 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
CN106228240B (zh) * | 2016-07-30 | 2020-09-01 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
-
2017
- 2017-04-27 CN CN201710287107.2A patent/CN108804974B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108804974A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445638B1 (en) | Restructuring a multi-dimensional array | |
CN108804973B (zh) | 基于深度学习的目标检测算法的硬件架构及其执行方法 | |
CN109102065B (zh) | 一种基于PSoC的卷积神经网络加速器 | |
CN106875013B (zh) | 用于多核优化循环神经网络的系统和方法 | |
CN110050267B (zh) | 用于数据管理的系统和方法 | |
US10846591B2 (en) | Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks | |
US20190236049A1 (en) | Performing concurrent operations in a processing element | |
US20190340510A1 (en) | Sparsifying neural network models | |
KR101788829B1 (ko) | 콘볼루션 신경망 컴퓨팅 장치 | |
WO2016123808A1 (zh) | 数据处理系统、计算节点和数据处理的方法 | |
CN113597621A (zh) | 计算资源分配技术及神经网络系统 | |
US11275997B1 (en) | Weight loading in an array | |
Wu et al. | Compute-efficient neural-network acceleration | |
KR102610842B1 (ko) | 뉴럴 네트워크에서의 프로세싱 엘리먼트 및 그 동작 방법 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
US20230185761A1 (en) | Reconfigurable computing chip | |
CN108804974B (zh) | 目标检测算法的硬件架构的资源估算、配置方法及系统 | |
CN109902821B (zh) | 一种数据处理方法、装置及相关组件 | |
Niu et al. | SPEC2: Spectral sparse CNN accelerator on FPGAs | |
JP2022137247A (ja) | 複数の入力データセットのための処理 | |
CN114003201A (zh) | 矩阵变换方法、装置及卷积神经网络加速器 | |
CN112149047A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN115759212A (zh) | 卷积运算电路及方法、神经网络加速器和电子设备 | |
Dazzi et al. | 5 parallel prism: A topology for pipelined implementations of convolutional neural networks using computational memory | |
Wang et al. | Reboc: Accelerating block-circulant neural networks in reram |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190527 Address after: 518000 Room 11109, Flower Road Changfujin Mao Building, Fubao Street Bonded Area, Futian District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Kunyun Information Technology Co., Ltd. Address before: Room 502, Building B, 2305 Zuchong Road, China (Shanghai) Free Trade Pilot Area, Pudong New Area, Shanghai, 201203 Applicant before: Shanghai Kun cloud Mdt InfoTech Ltd |
|
GR01 | Patent grant | ||
GR01 | Patent grant |