CN112990157B - 一种基于fpga的图像目标识别加速系统 - Google Patents
一种基于fpga的图像目标识别加速系统 Download PDFInfo
- Publication number
- CN112990157B CN112990157B CN202110519498.2A CN202110519498A CN112990157B CN 112990157 B CN112990157 B CN 112990157B CN 202110519498 A CN202110519498 A CN 202110519498A CN 112990157 B CN112990157 B CN 112990157B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- acceleration
- characteristic spectrum
- vector
- 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
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于FPGA的图像目标识别加速系统;包括集成于FPGA的XDMA模块、存储器接口模块、加速核、同步模块和控制模块以及连接FPGA的片外主存储器,其中,XDMA模块,其用于上位机与FPGA的数据传输;存储器接口模块,其用于实现控制片外主存储器读写逻辑功能;加速核,其用于算法的加速运算;同步模块,其主要用于解决XDMA模块与加速核和存储器接口模块之间的跨时钟域数据传输问题,控制模块,其用于控制XDMA模块、存储器接口模块、加速核、同步模块的运行。本发明采用具有可编程性的FPGA加速深度学习算法,设计了适合运行当前主流的图像目标识别领域中的深度学习算法的加速系统。
Description
技术领域
本发明涉及神经网络技术领域,更具体地说,它涉及一种基于FPGA的图像目标识别加速系统。
背景技术
图像目标识别技术是计算机视觉领域的研究热点和难点。近年来,深度学习算法取得了突破性的发展,在诸多领域得到了很好的应用。在计算机视觉领域的应用更是突飞猛进,深度学习算法以其优异的性能逐渐取代了传统图像目标识别算法,广发应用到图像目标识别领域的深度学习算法层出不穷,如R-CNN系列算法,YOLO系列算法,以及SSD算法等。
传统目标识别算法是基于滑动窗口的框架,使用不同大小的窗口在输入图片多次滑动,存在效率低下的缺点。基于深度学习的目标识别算法针对传统算法逐步进行改进,从基于候选区域的采用两步识别的方式R-CNN系列算法,发展到采用单步识别方式的YOLO系列算法,识别效率和精度均实现了不同程度的提升。但是深度学习算法为目标识别带来性能提升的背后,需要巨大的存储和计算资源的支持,一些小型的终端设备的存储和计算能力都很有限,部署运算量庞大,模型复杂的深度学习算法有很大挑战;
目前,对深度学习算法加速的方式主要有图形处理器(GPU,Graphics ProcessingUnit)、现场可编程门阵列(FPGA, Field Programmable Gate Array)和专用芯片(ASIC,Application-specific Integrated Circuit) 。
GPU功耗大、体积大,不适合在体积功耗受限的终端设备上使用;ASIC的研发成本高,而且固定的架构导致灵活性差;
综合来说,GPU往往安装到高性能服务器上,在深度学习算法进行迁移学习时,对网络模型进行加速训练,以加快模型的收敛,不适合安装到小型的终端设备上。
ASIC虽然功耗和体积有很大优势,但是,如今深度学习算法发展很快,模型更新频繁,ASIC的前期研发成本较高,灵活性也较差,对于还处于高速发展的深度学习算法来说具有一定的研发风险;
FPGA的功耗低、体积小,同时具有可编程性,对于正处于高速发展阶段的深度学习算法更易于修改;深度学习算法会带来巨大的存储、运算、功耗的负担,普通的嵌入式处理器无法胜任。因此使用适合处理深度学习算法的专用硬件加速深度学习算法不失为一种有效的解决方案。FPGA在并行计算方面有先天优势,并且功耗较低,适用于加速深度学习算法。
发明内容
本发明提供一种基于FPGA的图像目标识别加速系统,解决相关技术中的技术问题。
根据本发明的一个方面,提供了一种基于FPGA的图像目标识别加速系统,包括集成于FPGA的XDMA模块、存储器接口模块、加速核、同步模块和控制模块以及连接FPGA的片外主存储器,其中,
XDMA模块,其用于上位机与FPGA的数据传输;
存储器接口模块,其用于实现控制片外主存储器读写逻辑功能;
加速核,其用于算法的加速运算;
同步模块,其主要用于解决XDMA模块与加速核和存储器接口模块之间的跨时钟域数据传输问题;
控制模块,其用于控制XDMA模块、存储器接口模块、加速核、同步模块的运行;
片外主存储器,其用于存储加速核运算所需的数据以及其运算过程中所产生的数据;
加速核运算所需的数据至少包括来源于上位机的原始数据,原始数据至少包括图像数据以及权值参数数据;
加速核包括输入输出特征谱缓存模块、权值缓存模块、向量乘加模块、池化模块、激活函数模块和通道加法模块;
输入输出特征谱缓存模块,其用于存储从片外主存储器中读取的图像数据以及存储向量乘加模块运算获得的输出特征谱;
输入输出特征谱缓存模块还用于将从片外主存储器中读取的图像数据转化为输入特征谱;
权值缓存模块,其用于存储从片外主存储器中读取的权值参数数据;
向量乘加模块,其采用向量乘加形式从输入输出特征谱缓存和权值缓存中读取数据进行运算,并将计算出的结果依次传输到后续的通道加法模块、池化模块和激活函数模块;
通道加法模块,其用于进行通道加法运算;
激活函数模块,其用于进行激活函数运算;
池化模块,其用于进行最大池化运算。
进一步地,所述XDMA模块通过PCIe接口连接上位机,通过PCIe接口接收上位机的原始数据。
进一步地,所述向量乘加模块将NxN的卷积运算转化成1x1的卷积运算,通过时分复用向量乘加模块在一个时段内进行一个1x1的卷积运算,将多个时段卷积运算获得的中间结果进行累加得到最终的卷积输出结果。
进一步地,所述采用向量乘加形式从输入输出特征谱缓存和权值缓存中读取数据进行运算包括:
向量乘加模块分为S个时段进行运算,在每个时段的运算中,将卷积核中一个位置通道维度上的向量作为权值参数输入,并输入与该权值参数重叠的输入特征谱的区域的通道维度的特征向量进行卷积运算获得中间计算结果;
向量乘加模块在进行第S个时段的运算时将第S个时段获得的中间计算结果与第S-1个时段的运算获得的中间计算结果累加获得新的中间计算结果,最后一个时段累加获得的新的中间计算结果作为卷积输出结。
进一步地,所述控制模块对于加速核的控制至少包括:
控制加速核的启动;
控制加速核从片外主存储器中读取图像数据和权值参数数据;
控制向量乘加模块进行运算;
选择通道加法模块、池化模块和激活函数模块中的至少一个进行运算。
进一步地,所述输入输出特征谱缓存模块的数据组织结构采用通道维度上的向量形式,大小为N,向量乘加模块中对应的设置数量为N的并行乘法器。
进一步地,所述向量乘加模块在一个时段的运算中每个并行乘法器输入一个通道的权值参数以及特征向量。
进一步地,所述向量乘加模块对应的输出N个通道的输出特征谱;
池化模块同时对于N个通道的输出特征谱进行最大值池化操作。
根据本发明的一个方面,提供了一种基于FPGA的图像目标识别加速方法,包括以下步骤:
步骤1,XDMA模块接收来自上位机的原始数据并经同步模块将其存储到片外主存储器的相应地址空间中;
步骤2,控制模块启动加速核进行运算,加速核从片外主存储器中读取图片数据和权值参数数据,分别存储到加速核的输入输出特征谱缓存和权值参数缓存中;
步骤3,控制模块控制向量乘加模块按照既定规则从输入输出特征谱缓存和权值缓存中读取数据进行运算,并将计算出的结果依次传输到后续的通道加法模块、池化模块和激活函数模块;最后将计算完成的输出特征谱存储到输入输出特征谱缓存中,由控制模块控制将计算出的输出特征谱经同步模块存储到片外主存储器;
步骤4,XDMA模块经同步模块从片外主存储器取出计算出的输出特征谱送给上位机进行处理。
进一步地,所述XDMA模块从PCIe接口接收来自上位机的原始数据并经同步模块将其存储到片外主存储器的相应地址空间中;
XDMA模块经同步模块从片外主存储器取出计算出的输出特征谱经PCIe接口给上位机进行处理。
本发明的有益效果在于:
本发明基于FPGA构建了一个图像目标识别系统可以适配目前比较常用的深度学习目标检测算法,可以将任意尺寸卷积核转化成1x1的卷积运算,并把多个时段输出的中间结果进行累加,得到最终的卷积输出结果,使用通道维度的并行性,尽量保证了运算模块较大的数据吞吐量。
附图说明
图1是本发明实施例的基于FPGA的图像目标识别加速系统的模块示意图;
图2是本发明实施例的同步模块的结构示意图;
图3是YOLOv3网络结构示意图;
图4是本发明实施例的3x3卷积运算过程图一;
图5是本发明实施例的3x3卷积运算过程图二;
图6是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第1时段进行的卷积运算示意图;
图7是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第2时段进行的卷积运算示意图;
图8是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第3时段进行的卷积运算示意图;
图9是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第4时段进行的卷积运算示意图;
图10是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第5时段进行的卷积运算示意图;
图11是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第6时段进行的卷积运算示意图;
图12是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第7时段进行的卷积运算示意图;
图13是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第8时段进行的卷积运算示意图;
图14是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,第9时段进行的卷积运算示意图;
图15是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,各时段运算结果的累加示意图;
图16是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第1时段进行的卷积运算示意图;
图17是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第2时段进行的卷积运算示意图;
图18是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第3时段进行的卷积运算示意图;
图19是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第4时段进行的卷积运算示意图;
图20是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第5时段进行的卷积运算示意图;
图21是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第6时段进行的卷积运算示意图;
图22是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第7时段进行的卷积运算示意图;
图23是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第8时段进行的卷积运算示意图;
图24是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,第9时段进行的卷积运算示意图;
图25是本发明实施例的将3x3卷积转化成1x1卷积,卷积核的移动步长为2时,各时段运算结果的累加示意图;
图26是本发明实施例的上采样层的示意图;
图27是本发明实施例的通道加法模块的加法运算示意图;
图28是本发明实施例的激活函数模块的激活函数运算示意图;
图29是本发明实施例的池化模块的池化运算示意图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
在本实施例中提供了一种基于FPGA的图像目标识别加速系统,如图1所示是根据本发明的一种基于FPGA的图像目标识别加速系统的模块示意图,如图1、图2所示,该基于FPGA的图像目标识别加速系统,包括集成于FPGA的XDMA模块、存储器接口模块、加速核、同步模块和控制模块、连接FPGA的片外主存储器,其中
XDMA模块,其用于上位机与FPGA的数据传输;
存储器接口模块,其用于实现控制片外主存储器读写逻辑功能;
加速核,其用于算法的加速运算;
同步模块,其主要用于解决XDMA模块与加速核和存储器接口模块之间的跨时钟域数据传输问题;
控制模块,其用于控制XDMA模块、存储器接口模块、加速核、同步模块的运行;
片外主存储器,其用于存储加速核运算所需的数据以及其运算过程中所产生的数据。
加速核运算所需的数据至少包括来源于上位机的原始数据,原始数据至少包括图像数据以及权值参数数据;
在本实施例中,XDMA模块通过PCIe接口连接上位机,通过PCIe接口接收上位机的原始数据;
在本实施例中,加速核包括:输入输出特征谱缓存模块、权值缓存模块、向量乘加模块、池化模块、激活函数模块、通道加法模块;
输入输出特征谱缓存模块,其用于存储从片外主存储器中读取的图像数据以及存储向量乘加模块运算获得的输出特征谱;
其还用于将从片外主存储器中读取的图像数据转化为输入特征谱;
权值缓存模块,其用于存储从片外主存储器中读取的权值参数数据;
向量乘加模块,其按照既定规则从输入输出特征谱缓存和权值缓存中读取数据进行运算,并将计算出的结果依次传输到后续的通道加法模块、池化模块和激活函数模块;
通道加法模块,其用于进行通道加法运算;
激活函数模块,其用于进行激活函数运算;
池化模块,其用于进行最大池化运算;
在本实施例中,控制模块对于加速核的控制至少包括:
控制加速核的启动;
控制加速核从片外主存储器中读取图像数据和权值参数数据;
控制向量乘加模块进行运算;
选择通道加法模块、池化模块和激活函数模块中的至少一个进行运算。
作为一种具体的应用示例:
目标识别领域所用到的YOLO系列算法、R-CNN系列算法及SSD算法等深度学习算法,都属于卷积神经网络的范畴。卷积神经网络的构建都遵循一定的规律,不同的算法使用的大部分基本运算单元都是类似的,只是网络结构构建有差异。图3所示,YOLOv3是有代表性的网络结构,YOLOv3网络结构中包含卷积层(Convolutional Layer)、残差层(ResidualLayer)以及上采样层(Up Sampling Layer),除此之外还需要激活函数激活输出。其中卷积层的卷积核大小有3x3和1x1,卷积步长有1和2。YOLO系列其它版本算法、R-CNN系列算法和SSD算法中还有最大值池化层(Max Pooling Layer)和全连接层(Fully ConnectedLayer)。
1.卷积层和全连接层
卷积层和全连接层的运算过程本质上是相同的,都是乘加运算,在整个网络中运算量最大,是加速的主要部分。本发明中加速核的向量乘加模块采用向量乘加形式,而不是矩阵阵列形式,这使得运算单元在对不同尺寸的卷积核的运算方面的通用性更强。数据组织结构采用通道维度上的向量形式,大小为N,与向量乘加模块的并行乘法器个数相同。每次运算同时输入N个数进行乘加运算(每个并行乘法器输入一个通道的数即可同时输入N个数),将得到的中间计算结果与上次的进行累加作为本次通道运算的中间结果。
如图4、图5所示为3x3卷积运算过程;
如图6-图15所示,将3x3卷积转化成1x1卷积,卷积核的移动步长为1时,总共分成9个时段进行。在第1时段使用卷积核中第1个位置通道维度上的向量,作为权值输入(如图6所示在“k1”对应的通道维度上N个数分别输入N个并行乘法器)。在使用3x3卷积运算时,该权值只与输入特征谱的部分矩形区域有重叠,因此,只需要从输入输出特征谱缓存模块依次输出与该权值重叠的通道维度上特征向量(如图6所示,对应于“1”“2”“3”“6”“7”“8”“11”“12”“13”的通道维度上的特征向量),如图6所示时段1的特征区域。以此类推,将卷积核其他8个位置的权值和与其重叠的特征区域分离出来。这样就把3x3的卷积转化成9个1x1的卷积,并分到9个时段进行卷积运算,即分时复用向量乘加模块。第1个时段计算出的中间特征结果缓存起来,接下来每个时段计算出的中间结果与上一次的中间结果进行累加,直到9个卷积全部计算完成。
为了适应不同的卷积移动步长,只需要简单的取数地址的逻辑控制即可实现。如图16-图25所示,当卷积核的移动步长为2时,只要改变从输入输出特征谱缓存模块读取特征向量的地址即可,无需复杂的逻辑控制,也不会降低运算效率。同理,对于其他不同的移动步长也只需要改变取数的地址即可。
向量乘加模块采用卷积核内每个操作数时分复用的设计思想,同时增加通道维度上的并行计算度,可以将任意尺寸卷积核转化成1x1的卷积运算,并把多个时段输出的中间结果进行累加,得到最终的卷积输出结果。在通用性和灵活性方面,向量乘加模块比矩阵阵列式乘加模块有优势,虽然矩阵阵列式乘加模块充分发挥了卷积核内的运算并行性,但是损失了一定的通用性。本发明中的向量乘加模块使用通道维度的并行性,尽量保证了运算模块较大的数据吞吐量。
2.上采样层
上采样层所做的运算就是行列复制,该层不涉及到运算,只需要简单的逻辑控制对行列元素进行复制。如图26所示,假设原特征谱像素点的坐标为(x, y),新特征谱像素点的坐标为(x*, y*),则新特征谱像素点与对应的原特征谱像素点的坐标关系如下,原特征谱的每个像素点对应新特征谱上的4个像素点。
(x*和y*均为整数);
特征谱像素点按从左到右,从上到下的顺序依次存放到缓存中,原特征谱每个像素点的缓存地址为:
其中w为原特征谱的宽度;
3.残差层
残差层在不同层的输出特征谱相同通道上进行矩阵加法操作。本发明设计了N通道的通道加法模块,如图27所示,当进行残差操作时,从该段内存的地址读出特征谱数据使用通道加法模块,对两个不同层输出的特征谱进行加法操作。
4.激活函数层
神经网络中激活函数采用激活函数模块进行运算,本设计的激活函数支持目前比较常用的ReLU和Leak ReLU的功能,如图28所示。
5.池化层
算法中主要用到了最大值池化。为了与输入输出特征谱缓存模块以及权值缓存模块中存储的数据结构相匹配,本发明例化了N个最大值池化功能单元,如图29所示,可同时对N个通道的数据进行最大值池化操作。
上述基于FPGA的图像目标识别加速系统的运行流程如下,
步骤1,XDMA模块从PCIe接口接收来自上位机的原始数据(包括图像数据和权值参数数据)并经同步模块将其存储到片外主存储器的相应地址空间中;
步骤2,准备好运算所需的原始数据后,控制模块启动加速核进行运算,加速核从片外主存储器中读取图片数据和权值参数数据,分别存储到加速核的输入输出特征谱缓存和权值参数缓存中。
步骤3,控制模块控制向量乘加模块按照既定规则从输入输出特征谱缓存和权值缓存中读取数据进行运算,并将计算出的结果依次传输到后续的通道加法模块、池化模块和激活函数模块。最后将计算完成的输出特征谱存储到输入输出特征谱缓存中,由控制模块控制将计算出的输出特征谱经同步模块存储到片外主存储器。
步骤4,XDMA模块经同步模块从片外主存储器取出计算出的输出特征谱数据,经PCIe接口送给上位机进行处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本实施例各个实施例的方法。
本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
上面结合附图对本实施例的实施例进行了描述,但是本实施例并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本实施例的启示下,在不脱离本实施例宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本实施例的保护之内。
Claims (9)
1.一种基于FPGA的图像目标识别加速系统,其特征在于,包括集成于FPGA的XDMA模块、存储器接口模块、加速核、同步模块和控制模块以及连接FPGA的片外主存储器,其中,
XDMA模块,其用于上位机与FPGA的数据传输;
存储器接口模块,其用于实现控制片外主存储器读写逻辑功能;
加速核,其用于算法的加速运算;
同步模块,其主要用于解决XDMA模块与加速核和存储器接口模块之间的跨时钟域数据传输问题;
控制模块,其用于控制XDMA模块、存储器接口模块、加速核、同步模块的运行;
片外主存储器,其用于存储加速核运算所需的数据以及其运算过程中所产生的数据;
加速核运算所需的数据至少包括来源于上位机的原始数据,原始数据至少包括图像数据以及权值参数数据;
加速核包括输入输出特征谱缓存模块、权值缓存模块、向量乘加模块、池化模块、激活函数模块和通道加法模块;
输入输出特征谱缓存模块,其用于存储从片外主存储器中读取的图像数据以及存储向量乘加模块运算获得的输出特征谱;
输入输出特征谱缓存模块还用于将从片外主存储器中读取的图像数据转化为输入特征谱;
权值缓存模块,其用于存储从片外主存储器中读取的权值参数数据;
向量乘加模块,其采用向量乘加形式从输入输出特征谱缓存和权值缓存中读取数据进行运算,并将计算出的结果依次传输到后续的通道加法模块、池化模块和激活函数模块;
所述采用向量乘加形式从输入输出特征谱缓存和权值缓存中读取数据进行运算包括:
向量乘加模块分为S个时段进行运算,在每个时段的运算中,将卷积核中一个位置通道维度上的向量作为权值参数输入,并输入与该权值参数重叠的输入特征谱的区域的通道维度的特征向量进行卷积运算获得中间计算结果;
向量乘加模块在进行第S个时段的运算时将第S个时段获得的中间计算结果与第S-1个时段的运算获得的中间计算结果累加获得新的中间计算结果,最后一个时段累加获得的新的中间计算结果作为卷积输出结果;
通道加法模块,其用于进行通道加法运算;
激活函数模块,其用于进行激活函数运算;
池化模块,其用于进行最大池化运算。
2.根据权利要求1所述的一种基于FPGA的图像目标识别加速系统,其特征在于,所述XDMA模块通过PCIe接口连接上位机,通过PCIe接口接收上位机的原始数据。
3.根据权利要求1所述的一种基于FPGA的图像目标识别加速系统,其特征在于,所述向量乘加模块将NxN的卷积运算转化成1x1的卷积运算,通过时分复用向量乘加模块在一个时段内进行一个1x1的卷积运算,将多个时段卷积运算获得的中间结果进行累加得到最终的卷积输出结果。
4.根据权利要求1所述的一种基于FPGA的图像目标识别加速系统,其特征在于,所述控制模块对于加速核的控制至少包括:
控制加速核的启动;
控制加速核从片外主存储器中读取图像数据和权值参数数据;
控制向量乘加模块进行运算;
选择通道加法模块、池化模块和激活函数模块中的至少一个进行运算,完成通道加法、池化以及激活运算。
5.根据权利要求1所述的一种基于FPGA的图像目标识别加速系统,其特征在于,所述输入输出特征谱缓存模块的数据组织结构采用通道维度上的向量形式,大小为N,向量乘加模块中对应的设置数量为N的并行乘法器。
6.根据权利要求5所述的一种基于FPGA的图像目标识别加速系统,其特征在于,所述向量乘加模块在一个时段的运算中每个并行乘法器输入一个通道的权值参数以及特征向量。
7.根据权利要求6所述的一种基于FPGA的图像目标识别加速系统,其特征在于,所述向量乘加模块对应的输出N个通道的输出特征谱;
池化模块同时对于N个通道的输出特征谱进行最大值池化操作。
8.一种基于FPGA的图像目标识别加速方法,其特征在于,包括以下步骤:
步骤1,XDMA模块接收来自上位机的原始数据并经同步模块将其存储到片外主存储器的相应地址空间中;
步骤2,控制模块启动加速核进行运算,加速核从片外主存储器中读取图片数据和权值参数数据,分别存储到加速核的输入输出特征谱缓存和权值参数缓存中;
步骤3,控制模块控制向量乘加模块按照既定规则从输入输出特征谱缓存和权值缓存中读取数据进行运算,并将计算出的结果依次传输到后续的通道加法模块、池化模块和激活函数模块,由控制模块选择进行通道加法、池化以及激活运算;最后将计算完成的输出特征谱存储到输入输出特征谱缓存中,由控制模块控制将计算出的输出特征谱经同步模块存储到片外主存储器;
所述向量乘加模块按照既定规则从输入输出特征谱缓存和权值缓存中读取数据进行运算包括:
向量乘加模块分为S个时段进行运算,在每个时段的运算中,将卷积核中一个位置通道维度上的向量作为权值参数输入,并输入与该权值参数重叠的输入特征谱的区域的通道维度的特征向量进行卷积运算获得中间计算结果;
向量乘加模块在进行第S个时段的运算时将第S个时段获得的中间计算结果与第S-1个时段的运算获得的中间计算结果累加获得新的中间计算结果,最后一个时段累加获得的新的中间计算结果作为卷积输出结果;
步骤4,XDMA模块经同步模块从片外主存储器取出计算出的输出特征谱送给上位机进行处理。
9.根据权利要求8所述的一种基于FPGA的图像目标识别加速方法,其特征在于,所述XDMA模块从PCIe接口接收来自上位机的原始数据并经同步模块将其存储到片外主存储器的相应地址空间中;
XDMA模块经同步模块从片外主存储器取出计算出的输出特征谱经PCIe接口给上位机进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519498.2A CN112990157B (zh) | 2021-05-13 | 2021-05-13 | 一种基于fpga的图像目标识别加速系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519498.2A CN112990157B (zh) | 2021-05-13 | 2021-05-13 | 一种基于fpga的图像目标识别加速系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112990157A CN112990157A (zh) | 2021-06-18 |
CN112990157B true CN112990157B (zh) | 2021-08-20 |
Family
ID=76337664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110519498.2A Active CN112990157B (zh) | 2021-05-13 | 2021-05-13 | 一种基于fpga的图像目标识别加速系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112990157B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113837054A (zh) * | 2021-09-18 | 2021-12-24 | 兰州大学 | 一种基于单目视觉的铁道路口火车识别预警系统 |
CN114036090B (zh) * | 2021-10-25 | 2023-10-17 | 天津市英贝特航天科技有限公司 | 基于fpga进行dma传输的加密图像缓冲解析模块 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN109948784A (zh) * | 2019-01-03 | 2019-06-28 | 重庆邮电大学 | 一种基于快速滤波算法的卷积神经网络加速器电路 |
CN110175673A (zh) * | 2017-05-23 | 2019-08-27 | 上海寒武纪信息科技有限公司 | 处理方法及加速装置 |
CN110321997A (zh) * | 2018-03-31 | 2019-10-11 | 北京深鉴智能科技有限公司 | 高并行度计算平台、系统及计算实现方法 |
CN110516801A (zh) * | 2019-08-05 | 2019-11-29 | 西安交通大学 | 一种高吞吐率的动态可重构卷积神经网络加速器架构 |
CN111414994A (zh) * | 2020-03-03 | 2020-07-14 | 哈尔滨工业大学 | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 |
CN111797982A (zh) * | 2020-07-31 | 2020-10-20 | 北京润科通用技术有限公司 | 基于卷积神经网络的图像处理系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111133447B (zh) * | 2018-02-18 | 2024-03-19 | 辉达公司 | 适于自主驾驶的对象检测和检测置信度的方法和系统 |
-
2021
- 2021-05-13 CN CN202110519498.2A patent/CN112990157B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175673A (zh) * | 2017-05-23 | 2019-08-27 | 上海寒武纪信息科技有限公司 | 处理方法及加速装置 |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN110321997A (zh) * | 2018-03-31 | 2019-10-11 | 北京深鉴智能科技有限公司 | 高并行度计算平台、系统及计算实现方法 |
CN109948784A (zh) * | 2019-01-03 | 2019-06-28 | 重庆邮电大学 | 一种基于快速滤波算法的卷积神经网络加速器电路 |
CN110516801A (zh) * | 2019-08-05 | 2019-11-29 | 西安交通大学 | 一种高吞吐率的动态可重构卷积神经网络加速器架构 |
CN111414994A (zh) * | 2020-03-03 | 2020-07-14 | 哈尔滨工业大学 | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 |
CN111797982A (zh) * | 2020-07-31 | 2020-10-20 | 北京润科通用技术有限公司 | 基于卷积神经网络的图像处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112990157A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108765247B (zh) | 图像处理方法、装置、存储介质及设备 | |
US11244225B2 (en) | Neural network processor configurable using macro instructions | |
US10936937B2 (en) | Convolution operation device and convolution operation method | |
CN109784372B (zh) | 一种基于卷积神经网络的目标分类方法 | |
CN112990157B (zh) | 一种基于fpga的图像目标识别加速系统 | |
WO2020047823A1 (en) | Convolution over sparse and quantization neural networks | |
US20160267111A1 (en) | Two-stage vector reduction using two-dimensional and one-dimensional systolic arrays | |
CN110443357B (zh) | 卷积神经网络计算优化方法、装置、计算机设备及介质 | |
CN110852349A (zh) | 一种图像处理方法、检测方法、相关设备及存储介质 | |
US11709911B2 (en) | Energy-efficient memory systems and methods | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
WO2020000665A1 (zh) | 图像处理方法、装置、设备及可读存储介质 | |
CN107730514A (zh) | 场景分割网络训练方法、装置、计算设备及存储介质 | |
US11822900B2 (en) | Filter processing device and method of performing convolution operation at filter processing device | |
US12026607B1 (en) | Memory operation for systolic array | |
US8554013B2 (en) | Selectively transforming a multi-dimensional array | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN110809126A (zh) | 一种基于自适应可变形卷积的视频帧插值方法及系统 | |
CN117751366A (zh) | 神经网络加速器及神经网络加速器的数据处理方法 | |
CN110782430A (zh) | 一种小目标的检测方法、装置、电子设备及存储介质 | |
WO2023036157A1 (en) | Self-supervised spatiotemporal representation learning by exploring video continuity | |
CN115600662A (zh) | 在硬件中实施池化和反池化或反向池化 | |
US20180033156A1 (en) | Method and device for filtering texture, using patch shift | |
CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
CN114003201A (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 |