欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2020114866734
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:包括以下步骤:

S1:在基于ARM与FPGA相结合的物联网终端上,ARM通过摄像头模块对生活场景中的各种目标图像进行采集;

S2:ARM对采集的目标图像数据进行处理并将其作为输入特征图,然后对卷积核数据和偏置数据进行数据处理,并生成相关的指令数据,最终把这些数据存储在片外DDR存储器中;

S3:基于物联网终端,设计软硬件协同操作流水线方案;

S4:针对步骤S2中的输入特征图,建立输入特征图分块原则;

S5:在FPGA的卷积运算中采用图像分块并行、输入通道并行和输出通道并行相结合的运算策略;

S6:将FPGA的片上存储资源和计算资源作为限制条件,基于步骤S5中的策略建立物联网终端资源与图像识别时间的模型;

S7:对步骤S6的模型求解出最佳图像分块大小以及卷积并行参数,并根据步骤S4中分块原则对输入特征图分块,分块后的输入特征图存储在片外DDR存储器中;

S8:FPGA按照步骤S7中求解出来的卷积并行参数读取卷积核权重数据、偏置数据,以及读取步骤S7中分块后的输入特征图数据,并对这些数据进行运算,最后得到图像识别结果。

2.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:步骤S1中,所述生活场景中的各种目标为常见目标,包括车辆、船、水果、动物、人、键盘、鼠标以及电脑。

3.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:步骤S2具体包括:所述对采集的目标图像进行处理,是将目标图像大小调整为与卷积神经网络模型的输入特征图大小一致;

所述对卷积核数据以及偏置数据进行数据处理,是将卷积神经网络前向训练时得到的卷积核数据和偏置数据量化为16位定点数;

所述生成相关的指令数据为控制FPGA运行状态的相关参数。

4.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:步骤S3中,所述软硬件协同操作流水线方案为:首先ARM负责图片1软件分块和数据准备工作,然后将数据输出到FPGA端进行硬件处理,与此同时,ARM端对图片2进行分块和数据准备工作,从而达到协同处理流水线的效果。

5.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:所述步骤S4中,输入特征图通道为N,大小为H×W;卷积核通道数为N,大小为K×K,卷积核个数为M,移动步长为S;输出特征图通道数为M,大小为R×C;输入特征图的长和宽相等,即H=W,输出特征图的长和宽相等,即R=C;

所述图像分块原则为:当输入特征图不全零填充时,输出特征图边长满足把输出特征图分块为四个小的输出块,则分块后的输出特征图边长RB=R/2,根据输入特征图和输出特征图的关系,得到 以及根据两式求解得到 实现把边长为H的输入特征图分为四个边长为HB的输入块;当输入特征图全零填充时,直接把输入特征图分成四个边长为 的输入块。

6.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:在所述步骤S5中,输入通道并行度为PN代表并行输入通道的个数,卷积核展开并行度为PW代表卷积核展开的个数,输入特征图分块并行度为PB代表分块并行的个数,输出通道并行度为PM代表并行输出通道的个数;

所述图像分块并行、输入通道并行和输出通道并行相结合的运算策略为:输出通道的并行,代表每个分块后的输入特征图同时与PM个卷积核进行卷积,卷积完成后生成通道数为PM个的输出特征图;输入通道的并行,代表有PN个输入通道并行,PN个输入通道之间的数据同时进行运算;输入图像分块并行,代表每个输入通道中有PB个分块后的特征图并行输入,每个特征图同时与卷积核展开的PW个数进行乘法运算。

7.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:在所述步骤S6中,将FPGA的片上存储资源和计算资源作为限制条件,建立物联网终端资源与图像识别时间的模型过程如下:S61:FPGA的总乘法器资源为Da,总片上存储资源为Ba,卷积神经网络模型中卷积层数为r,计算每层卷积层占用的DSP资源数如下:(Ki×Ki×PBi×PNi×PMi)×Dc≤Da其中,Ki为第i(1≤i≤r)层卷积核的边长,PBi、PNi和PMi分别为第i层卷积的分块并行数、输入通道并行数和输出通道并行数,Dc为单个乘法器所需要的DSP资源数目;

S62:每次并行输入计算需要片上存储资源满足:(HBi×WBi)×PBi×PNi×Bw/Bh+(RBi×CBi)×PMi×PBi×Bw/Bh+(Ki×Ki)×PMi×PBi×PNi×Bw/Bh≤Ba

其中,HBi和WBi分别为分块后第i层输入特征图的长和宽,RBi和CBi分别为分块后第i层输出特征图的长和宽,Bw为数据位宽,Bh为单个BRAM块的存储深度;

S63:输入通道并行数PNi满足能被输入通道总数Ni整除,即Ni%PNi=0;输出通道并行数PMi满足能被输出通道总数Mi整除,即Mi%PMi=0;第i层卷积的卷积核展开并行度PWi由卷积核的大小决定,即PWi=Ki×Ki;分块并行度PBi小于输入特征图的总分块数,即PBi≤(Hi×Wi)/(HBi×WBi);

S64:在卷积层中,第i层卷积单次并行输入计算的硬件执行时间THi包括输入图像传输时间、卷积核传输时间以及卷积计算时间;THi用下式表示:THi=(HBi×WBi)×tclk+(Ki×Ki)×WKi×tclk+(RBi×CBi)×WKi/PMi×tclk其中,WKi为第i层卷积所需要的卷积核总个数,tclk为系统时钟周期;

S65:每层卷积的执行时间为单次并行输入计算时间与计算完该层数据还需要执行的计算次数的乘积,即识别一张图片时间为:其中,Xi表示第i层卷积在一次并行输入计算的前提下,执行完一张输入图像的卷积运算所需要的并行输入的次数,Xi用下式表示:S6 6 :因为 输出 特征图 由 输入 特征图 卷 积而 来 ,则输 出特 征图 长宽 把步骤S64和S66中式子带入到S65中,当Ki=3,S=1时,得到:

S67:根据步骤S66,令

S68:结合资源限制条件,则优化目标定义为:

8.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:步骤S7中,对模型求解出最佳图像分块大小以及卷积并行参数,并根据分块原则对输入特征图分块,具体步骤如下:

S71:对步骤S67中的T(HBi)求导,得到:S72:令T'(HBi)=0,得到HBi=2+(PWi×PMi)/2,再对T(HBi)求二次导数,把HBi=2+(PWi×PMi)/2带入到二次导数T”(HBi)中,得到T”(HBi)>0,表明T(HBi)在区间(0,2+(PWi×PMi)/

2]单调递减,并在T(HBi)满足HBi=2+(PWi×PMi)/2的条件下时,T(HBi)取得极小值,此时图像识别时间最短;

S73:根据S61和步骤S62的资源限制条件,确定出卷积并行参数PN,PW,PB,PM;并带入到步骤S72中,根据HBi=2+(PWi×PMi)/2求解出输入特征图分块的边长HBi;

S74:根据步骤S73得到HBi值后,结合分块原则,确定出分块后每块图像的长l,再根据原输入特征图的长λ和分块图像的首地址a,对输入特征图分块:ARM首先根据首行地址a读取l个数据,写入到地址连续的片外存储器中,然后再根据a+l得到次行首地址同样再读取l个数据,写入到上一行存储在片外存储器中地址的末尾处,直到读取到l×l个数据。

9.根据权利要求1所述的基于卷积神经网络的快速图像识别加速器设计方法,其特征在于:步骤S8中,在FPGA中利用输入特征图数据、卷积核数据、偏置数据进行运算,包括卷积运算、激活函数运算、池化运算和全连接层运算。