CN108090496A - 基于卷积神经网络的图像处理的方法和装置 - Google Patents
基于卷积神经网络的图像处理的方法和装置 Download PDFInfo
- Publication number
- CN108090496A CN108090496A CN201711405714.0A CN201711405714A CN108090496A CN 108090496 A CN108090496 A CN 108090496A CN 201711405714 A CN201711405714 A CN 201711405714A CN 108090496 A CN108090496 A CN 108090496A
- Authority
- CN
- China
- Prior art keywords
- matrix
- convolution
- output
- input
- feature 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.)
- Pending
Links
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/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
Abstract
本发明实施例提供一种基于卷积神经网络的图像处理的方法和装置。所述方法包括将至少一个输入特征图载入至具有逻辑资源的硬件平台;在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵,所述矩阵携带输入特征图的特征;针对每一矩阵进行卷积处理,得到多个中间特征图;根据所述中间特征图,获取输出特征图。所述方法在具有逻辑资源的硬件平台对特征图进行特征展开,可提高图像处理的执行速度,从而满足实时进行图像处理的需求。
Description
技术领域
本发明实施例涉及特征图处理技术领域,特别是一种基于卷积神经网络的图像处理的方法和装置。
背景技术
深度学习是机器学习领域的一个新兴的研究方向,在深度学习中,机器的认知行为能够更接近人工智能。卷积神经网络(convolutional neural network,CNN)是深度学习的最为重要的工具之一,通过多层的神经网络、二维的卷积操作以及不同数据通路的归并操作,图像的特征可以被自动提取出来。
图1为现有技术中卷积神经网络的基本结构示意图。如图1所示,一个卷积神经网络应该至少包含四部分的处理:卷积(CONV)、池化采样(Pooling)、激活函数的计算以及全连接层(fully connected layers,FC)等。
卷积神经网络由于其庞大的计算需求,速度将受到限制,使得它难以满足许多实时应用的需求。
发明内容
针对现有技术的缺陷,本发明实施例提供一种基于卷积神经网络的图像处理的方法和装置。
一方面,本发明实施例提供一种基于卷积神经网络的图像处理的方法,所述方法包括:
将至少一个输入特征图载入至具有逻辑资源的硬件平台;
在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵,所述矩阵携带输入特征图的特征;
针对每一矩阵进行卷积处理,得到多个中间特征图;
根据所述中间特征图,获取输出特征图。
另一方面,本发明实施例提供一种基于卷积神经网络的图像处理的装置,所述装置包括:
载入模块,用于将至少一个输入特征图载入至具有逻辑资源的硬件平台;
展开模块,用于在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵,所述矩阵携带输入特征图的特征;
卷积模块,用于针对每一矩阵进行卷积处理,得到多个中间特征图;
获取模块,用于根据所述中间特征图,获取输出特征图。
由上述技术方案可知,本发明实施例提供的图像处理的方法和装置,所述方法在具有逻辑资源的硬件平台对特征图进行特征展开,可提高图像处理的执行速度,从而满足实时进行图像处理的需求。
附图说明
图1为现有技术中卷积神经网络的基本结构示意图;
图2为本发明实施例提供的一种图像处理的方法的流程示意图;
图3为本发明又一实施例提供的图像处理的装置的示意图;
图4为本发明又一实施例提供的卷积的计算过程的伪代码;
图5为本发明又一实施例提供的卷积的计算过程的示意图;
图6为本发明又一实施例提供的展开电路的工作原理的示意图;
图7为本发明又一实施例提供的卷积并行的计算流程示意图;
图8为本发明又一实施例提供的双缓存的数据交换机制示意图;
图9为本发明又一实施例提供的图像处理的装置的分层示意图;
图10为本发明又一实施例提供的一种图像处理的装置的结构示意图;
图11为本发明又一实施例提供的处理图片的计算流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明实施例一部分实施例,而不是全部的实施例。
本发明实施例提供的方法在图像处理的装置上实现,图像处理的装置部署在具有逻辑资源的硬件平台上。
可选地,逻辑资源是指运用思维的规律和规则,对虚拟资源进行分配,也就是说,利用逻辑思维的方式分配而形成的资源就是逻辑资源。
可选地,虚拟资源是通过程序编辑而成的信息,例如存储资源,存储资源是寄存器用于存储数据的资源,一个容量为64MB的寄存器,存储资源为64MB。
可选地,具有逻辑资源的硬件平台可实施为多种,例如嵌入式FPGA(FieldProgrammable Gate Array,现场可编程门阵列)平台。
可选地,嵌入式FPGA平台包括PL(Programmable Logic,可编程逻辑)和PS(Processing System,处理系统),其中PL是配置的硬件端,PS是软件端,由PL和PS协同工作完成整个特征图处理,PL和PS通过总线连接。
PL与外部存储的数据交换通过DMA(Direct Memory Access,直接内存操作,又称成组数据传送)来实现。
PS的嵌入式软件运行在CPU(Central Processing Unit,中央处理器)上,并负责配置PL的参数。
图2示出了本发明实施例提供的一种图像处理的方法的流程示意图。
如图2所示,本发明实施例提供的方法具体包括以下步骤:
步骤11、将至少一个输入特征图载入至具有逻辑资源的硬件平台;
可选地,自外部存储设备中获取至少一个输入特征图载入至具有逻辑资源的硬件平台,所述输入特征图是待处理的特征图,每一输入特征图包括特征图的大小W×H,W表示特征图的宽度,H表示特征图的长度,例如某一输入特征图为50x50。
步骤12、在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵,所述矩阵携带输入特征图的特征;
可选地,针对每一输入特征图,在PL上对输入特征图进行特征展开,可采用现有技术的方式实现,得到一个矩阵,50x50的输入特征图,可得到50x50x9(假设卷积窗口为3x3)的矩阵。
可选地,矩阵携带的特征是根据输入特征图展开的特征,矩阵包含2500个向量,每一个向量代表输入特征图中一个3x3大小的区域,该向量描述一个区域的色彩、边缘、形状等特征,每一矩阵的区域包括多个像素点,每一像素点携带输入特征图的像素点的色彩、边缘、形状等特征。
可选地,展开得到的矩阵用于卷积计算。
在本发明实施例中,在具有逻辑资源的硬件平台对特征图进行特征展开,相较于单纯采用软件的方式来实现,由于减少了软件部分的操作,可提高图像处理的装置的执行速度。
步骤13、针对每一矩阵进行卷积处理,得到多个中间特征图;
可选地,可采用卷积窗口在矩阵上进行扫描,由卷积窗口对扫过的部分进行卷积运算。
举例来说,卷积窗口为3x3,自左上起对50x50的矩阵进行扫描,第一个扫过的区域包括矩阵的第一行的前3个像素点,第二行的前3个像素点,以及第三行的前3个像素点,针对该卷积窗口覆盖的区域,进行卷积运算,得到一个中间特征图。
可选地,每一张中间特征图具有一个特征点,特征点代表当前扫描过的区域的特征。
可选地,得到一个中间特征图后,卷积窗口以一个像素点为粒度,滑过矩阵,移动至第二个区域,卷积窗口在矩阵上的位置整体上相对第一个区域向右移动了一个像素点,得到第二个区域,即包括第一行的第2-4个像素点,第二行的2-4个像素点,以及第三行的2-4个像素点。
同样地,针对第二个区域,进行卷积计算,同样得到一个中间特征图。直至卷积窗口完成矩阵的扫描,可得到多个中间特征图。
步骤14、根据所述中间特征图,获取输出特征图。
可选地,对多个中间特征图进行累加,进行特征增强,得到输出特征图,完成对输入特征图的处理。
可选地,对得到的输出特征图进行识别。或者,所述输出特征图的特征不够强,还需将输出特征图输入再进行卷积扫描运算,直至分类识别成功。
本实施例提供的方法,通过在具有逻辑资源的硬件平台对特征图进行特征展开,可提高图像处理的执行速度,从而满足实时进行图像处理的需求。
在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,载入至所述FPGA平台的输入特征图为多个,相应地,针对每一矩阵进行卷积处理,得到多个中间特征图的步骤具体为:
针对多个矩阵,并行执行卷积处理,其中,针对每一矩阵,得到多个中间特征图并暂存等待后续处理。
在本发明实施例中,所述FPGA平台作为一种可重复编程的硬件结构,具有很高的并行性,可以实现低功耗的计算。
可选地,载入多个输入特征图至所述FPGA平台,特征图处理中卷积处理的步骤可并行执行。
可选地,在得到中间特征图后暂存等待后续处理。
本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
本实施例提供的图像处理的方法,通过采用卷积并行处理模式,更大限度提高了FPGA片上数据的复用程度,从而降低资源消耗。
在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵的步骤之后,所述方法还包括:
自第一移位寄存器组获取矩阵,自第二移位寄存器组获取卷积窗口的权重;
将所述矩阵和卷积窗口的权重缓存至输入缓存中;
自输入缓存中读取所述矩阵以及所述权重,并载入至所述FPGA平台内部的数字信号处理DSP中进行运算。
可选地,通过展开电路将输入特征图展开为矩阵后,将矩阵存储至第一移位寄存器组,第一移位寄存器组包括多个移位寄存器,每一移位寄存器存储矩阵的一行。
可选地,预先确定各个卷积窗口的权重,并存储于第二移位寄存器组中,第二移位寄存器组包括多个移位寄存器,每一移位寄存器存储一个卷积窗口的权重。
可选地,每个卷积窗口的权重不同,权重是预先确定的卷积窗口的重要程度。
在数字电路中,移位寄存器(shift register)是一种在若干相同时间脉冲下工作的以触发器为基础的器件,数据以并行或串行的方式输入到该器件中。将几个具有相同位数的移位寄存器并联起来,得到移位寄存器组。
可选地,输入缓存的作用是进行数据缓冲,以保证后续可以流畅的计算,在需要计算时,接收PL的控制信号,再从自第一移位寄存器组获取矩阵,自第二移位寄存器组获取卷积窗口的权重,并将将所述矩阵和卷积窗口的权重缓存至输入缓存中,以供后续DSP根据矩阵和权重进行卷积计算。
可选地,输入缓存可采用现有技术的BRAM(bipolar random access memory,双极随机存取存储器)实现。BRAM指的是用双极型晶体管构成的随机存储器,用作缓冲存储器,使运算速度显著提高。
针对每一矩阵的大小,采用预设大小的卷积窗口,不同大小的矩阵采用不同大小的卷积窗口进行卷积计算。
可选地,卷积窗口的大小与矩阵的大小相关,例如矩阵的大小为50x50,则卷积窗口可采用3x3大小,矩阵的大小为100x100,则卷积窗口可采用5x5大小。
每一DSP通道与一个卷积窗口对应,在确定需要进行卷积计算时,自输入缓存中读取所述矩阵以及所述权重,将所述矩阵以及所述权重通过DSP通道,连接至DSP中。
可选地,由DSP完成卷积计算,使得DSP根据卷积窗口以及所述权重,对矩阵进行卷积计算,得到多个中间特征图。
每一卷积窗口在对应的矩阵上扫描,每一个扫过的区域包括多个像素点,将该像素点分别与卷积窗口的权重进行加权求和,完成该区域的卷积计算,得到一个包括特征点的中间特征图,该特征点具有自多个像素点提取的特征。
本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
本实施例提供的图像处理的方法,通过采用输入缓存对矩阵和卷积窗口的权重进行缓存,以供后续进行卷积计算。
在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,所述输入缓存包括第一输入缓存和第二输入缓存,相应地,自输入缓存中读取所述矩阵以及所述权重,并载入至所述FPGA平台内部的数字信号处理DSP中进行运算的步骤具体为:
第一输入缓存接收矩阵和卷积窗口的权重,第二输入缓存输出矩阵和卷积窗口的权重至DSP;
若第一输入缓存的容量为满或者第二输入缓存的容量为空,第一输入缓存输出矩阵和卷积窗口的权重至DSP,第二输入缓存接收矩阵和卷积窗口的权重。
可选地,本发明实施例采用双缓存的数据交换机制,使得DSP可以随时都处于工作状态,提升了计算的效率。
第一输入缓存负责与外部存储(例如第一移位寄存器组和第二移位寄存器)交互,得到矩阵和卷积窗口的权重,第二输入缓存负责与DSP交互,任意一个缓存为满或者空的时候交换缓存的状态。
本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
本实施例提供的图像处理的方法,通过双缓存的数据交换机制,使得DSP可以随时都处于工作状态,提升了计算的效率。
在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,针对每一矩阵进行卷积处理,得到多个中间特征图的步骤之后,所述方法还包括:
将多个中间特征图暂存在累加寄存器中;
通过累加寄存器对多个中间特征图进行累加,得到输出特征图;
将所述输出特征图缓存至输出缓存中。
可选地,累加寄存器(Accumulator,AC)是存放算术或逻辑运算的一个操作数和运算结果的寄存器。
在本发明实施例中,累加寄存器用于暂时存放卷积运算的结果信息,并对卷积运算的结果信息(中间特征图)进行累加,进行特征增强,得到输出特征图。
可选地,在得到输出特征图后,还将所述输出特征图缓存至输出缓存中。输出缓存的作用是进行数据缓冲,以保证输出特征图可顺利输出,在输出特征图为多个时,输出缓存将按照顺序输出。
本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
本实施例提供的图像处理的方法,通过累加寄存器对多个中间特征图进行累加,得到输出特征图,并将所述输出特征图缓存至输出缓存中,保证输出特征图可顺利输出。
在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,所述输出缓存包括第一输出缓存和第二输出缓存,相应地,将所述输出特征图缓存至输出缓存中的步骤具体为:
第一输出缓存接收DSP输出的输出特征图,第二输出缓存输出所述输出特征图;
若第一输出缓存的容量为满或者第二输出缓存的容量为空,第一输出缓存输出所述输出特征图,第二输出缓存接收DSP的输出特征图。
可选地,本发明实施例采用双缓存的数据交换机制,使得DSP可以随时将计算得到的输出特征图及时输出,对下一个矩阵进行卷积、累加,从而提升了计算的效率。
第一输出缓存负责与外部存储交互,第二输出缓存负责与DSP交互,任意一个缓存为满或者空的时候交换缓存的状态。
本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
本实施例提供的图像处理的方法,通过双缓存的数据交换机制,使得DSP可以随时将计算得到的输出特征图及时输出,对下一个矩阵进行卷积、累加,从而提升了计算的效率。
在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,所述硬件平台包括多个层结构;
第一层为物理层,包括DSP和双极随机存取存储器BRAM;
第二层为数据链路层,包括卷积数据与DSP的交互CONV2DSP和卷积数据与双极随机存取存储器的交互CONV2BRAM;
第三层为网络层,包括卷积CONV、池化采样POOLING、按元素操作ELTWISE和全连接FC;
第四层为控制软件,包括网络的配置信息。
可选地,硬件平台采用系统分层的结构,第一层为最底层的物理层,用于管理计算资源和存储资源,包括DSP和BRAM。物理层定义了通用的数据交换接口,可与外部存储进行交互,同时可以根据时序收敛的情况灵活调整DSP资源和BRAM资源的占用数量。
在物理层之上为第二层数据链路层,用于负责数据路由交互,包括CONV2DSP和CONV2BRAM,其中,CONV表示卷积数据,2表示“TO”,CONV2DSP表示卷积数据与DSP的交互,CONV2BRAM表示卷积数据与双极随机存取存储器(输入缓存)的交互。
在数据链路层之上为第三层网络层,用于进行运算逻辑,运算逻辑可包括卷积CONV、池化采样POOLING、按元素操作ELTWISE和全连接FC。
其中,按元素操作表示根据每一矩阵的像素点,进行卷积运算,将卷积运算的结果正向传导至池化采样,通过降采样来降低输出的特征的维度,同时改善结果,不易出现过拟合。全连接起到“分类器”的作用,全连接利用学习的知识将池化采样输出的特征映射到空间,从而易于进行分类。
顶层为控制软件(PS),用于对PL进行配置,控制PL的内部逻辑。例如进行网络层(运算逻辑)的配置。
本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
本实施例提供的图像处理的方法,通过硬件平台分层的结构,统一管理存储资源和计算资源,更高效实现特征图处理。
图11为本发明又一实施例提供的处理图片的计算流程示意图。
如图11所示,在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,所述卷积处理的次数为多次,针对每一矩阵进行卷积处理,得到多个中间特征图的步骤之后,所述方法还包括:
判断得到的中间特征图经过的卷积处理的次数;
若次数小于预设的次数,则将中间特征图重新进行特征展开,直至达到预设的次数。
可选地,输入特征图通过特征展开电路进行特征展开后,和权重一并输入至DSP中卷积层电路进行计算,并得到多组的中间特征图。
可选地,判断得到的中间特征图是第几个卷积层的结果,也就是说,经过的卷积处理的次数。
如果次数小于预设的次数n,将中间特征图重新导入特征展开电路重复图2的步骤12-13,直到卷积层电路输出的特征图经过了n次卷积计算,再将结果输出到全连接层电路。
经过全连接层电路后,输出得到的图片特征,该图片特征可用于后续的图像比对、分割、聚类等处理。
本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
本实施例提供的图像处理的方法,通过多次进行卷积处理,可以得到理想的输出特征图。
为了更充分理解本发明的技术内容,在上述实施例的基础上,详细说明本实施例提供的图像处理的方法。
图3为本发明又一实施例提供的图像处理的装置的示意图。
如图3所示,本发明提出一种基于卷积神经网络的图像处理的方法,用于加速神经网络计算,设计的图像处理的装置包含:卷积运算单元,池化采样(Pooling),全连接层(FC)、激活函数、网络控制单元以及输入输出缓存。PL加速器与外部存储的数据交换通过DMA来实现,同时PS端的嵌入式软件运行在CPU上并通过总线来配置网络控制单元的参数,PL和PS协同工作完成整个计算。
图4为本发明又一实施例提供的卷积的计算过程的伪代码。
如图4所示,伪代码描述了不考虑边界条件下的卷积的计算过程,W和H表示输入特征图的长宽,D为输入特征图的深度,K为卷积窗口的大小,M为卷积窗口的数量。
其中,伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java等)实现。
图5为本发明又一实施例提供的卷积的计算过程的示意图。
如图5所示,将卷积的计算过程表现为更简单的形式,
现有技术中一般采用软件方式将输入特征图展开为向量的形式,然后对展开的向量组进行矩阵乘法的操作来实现卷积。
不同于将卷积运算转换为矩阵乘法的软件方法,本发明使用硬件的方式实现:将待处理的输入特征图进行特征展开,得到特征图,该特征图是一个矩阵,矩阵包括多个向量以及各向量的特征,移位寄存器组来缓存和读出卷积的权重以及特征图,在硬件端完成输入特征图的展开。
具体包括以下几步:
1、输入特征图通过DMA载入,经过展开电路将输入特征图展开为向量的形式储存在输入缓存中;
2、输入的权重数据则直接解码并放入输入缓存;
3、等待控制信号,将输入缓存中的数据载入DSP进行计算;
4、将完成计算的数据从DSP输出到输出缓存。
图6为本发明又一实施例提供的展开电路的工作原理的示意图。
如图6所示,展开电路的工作原理大致如下:寄存器组根据运行状态分类,共有四个运行状态:数据载入、数据暂存、初始化状态、停机状态。根据输出电路产生的读地址输出暂存的特征图数据,输出电路根据卷积窗口大小K来产生输出地址。一个特征图展开电路的输出同多个权重寄存器对应,采用卷积并行的计算策略。
其中,特征图输入寄存器组为前述第一移位寄存器组,权重寄存器组为前述第二移位寄存器组。
图7为本发明又一实施例提供的卷积并行的计算流程示意图。
如图7所示,将展开电路的输出连接到不同的卷积窗口,完成计算之后暂存在累加寄存器中,累加寄存器完成对多个特征图的卷积累加,最后再顺序输出到输出缓存。
图8为本发明又一实施例提供的双缓存的数据交换机制示意图。
如图8所示,在计算模块和数据存储装置之间引入双缓存的数据交换机制,使得计算模块可以随时都处于工作状态,提升了计算的效率。分别包含两个输入和输出缓存,一个负责与外部存储交互,一个负责与计算模块交互,任意一个缓存为满或者空的时候交换缓存的状态。
图9为本发明又一实施例提供的图像处理的装置的分层示意图。
如图9所示,本发明的系统逻辑上采用分层的设计:
1、最底层为物理层,负责管理FPGA片上资源,包括DSP和BRAM等,其中,DSP包括多个DSP通道,可以根据时序收敛的情况灵活调整资源的占用数量;
2、数据链路层负责不同模块之间的数据路由交互,比如CONV2DSP、CONV2BRAM;
3、网络层定义了不同的运算逻辑单元,包括CONV、POOLING、ELTWISE、FC等;
4、顶层为PS端的控制软件,包括电路的驱动API以及网络的配置信息
参照图11,采用本发明处理图片的计算流程:
1、输入图片为相机采集的数据,通过图3所示的总线及dma载入;
2、输入图片通过特征展开电路,展开为向量组的形式,和权重数据一起输入到卷积层电路进行计算,并得到多组的中间特征图;
3、判断得到的中间特征图是第几个卷积层的结果,如果小于设置的阈值n,将中间特征图重新导入特征展开电路重复步骤2-3,直到卷积电路输出的特征图经过了n次卷积层的计算,再将结果输出到全连接层电路。
其中,将中间特征图导入卷积层进行计算的过程如前述图6中已说明。
4、经过全连接层电路后,通过图3所示的总线输出得到的图片特征,该特征可用于后续的图像比对、分割、聚类等处理。
对比现有的一般技术,本方案基于FPGA实现,对比嵌入式CPU可以达到更快的计算速度,对比GPU可以获得更高的能效比和稳定性,更适用于对功耗以及稳定性有极高要求的领域。
本发明实施例在FPGA上部署神经网络的方法,至少具有以下技术效果:
1、将输入特征图展开的电路硬件化实现,提高了整个系统的执行速度,减少了软件部分的操作
2、采用卷积并行的并行模式,更大限度提高了片上数据的复用程度,平衡了IO以及降低资源消耗
3、系统分层的结构,统一管理片上存储和计算资源,更高效
图10为本发明又一实施例提供的一种图像处理的装置的结构示意图。
参照图10,在上述实施例的基础上,本实施例提供的基于卷积神经网络的图像处理的装置,所述装置包括载入模块101、展开模块102、卷积模块103和获取模块104,其中:
载入模块101用于将至少一个输入特征图载入至具有逻辑资源的硬件平台;展开模块102用于在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵,所述矩阵携带输入特征图的特征;卷积模块103用于针对每一矩阵进行卷积处理,得到多个中间特征图;获取模块104用于根据所述中间特征图,获取输出特征图。
本发明实施例中,图像处理的装置部署在具有逻辑资源的硬件平台上。
载入模块101自外部存储设备中获取至少一个输入特征图载入至具有逻辑资源的硬件平台,所述输入特征图是待处理的特征图,每一输入特征图包括特征图的大小W×H,W表示特征图的宽度,H表示特征图的长度,例如某一输入特征图为50x50。
展开模块102针对每一输入特征图,在PL上对输入特征图进行特征展开,可采用现有技术的方式实现,得到一个矩阵,50x50的输入特征图,可得到50x50x9的矩阵。
可选地,矩阵携带的特征是根据输入特征图展开的特征,矩阵包含2500个向量,每一个向量代表输入特征图中一个3x3大小的区域,该向量描述一个区域的色彩、边缘、形状等特征,每一个矩阵的区域包括多个像素点,每一像素点携带输入特征图的像素点的色彩、边缘、形状等特征。
在本发明实施例中,在具有逻辑资源的硬件平台对特征图进行特征展开,相较于单纯采用软件的方式来实现,由于减少了软件部分的操作,可提高图像处理的装置的执行速度。
卷积模块103可采用卷积窗口在矩阵上进行扫描,由卷积窗口对扫过的部分进行卷积运算。
举例来说,卷积窗口为3x3,自左上起对50x50的矩阵进行扫描,第一个扫过的区域包括矩阵的第一行的前3个像素点,第二行的前3个像素点,以及第三行的前3个像素点,针对该卷积窗口覆盖的区域,进行卷积运算,得到一个中间特征图。
可选地,每一张中间特征图具有一个特征点,特征点代表当前扫描过的区域的特征。
可选地,得到一个中间特征图后,卷积窗口以一个像素点为粒度,滑过矩阵,移动至第二个区域,卷积窗口在矩阵上的位置整体上相对第一个区域向右移动了一个像素点,得到第二个区域,即包括第一行的第2-4个像素点,第二行的2-4个像素点,以及第三行的2-4个像素点。
同样地,针对第二个区域,进行卷积计算,同样得到一个中间特征图。直至卷积窗口完成矩阵的扫描,可得到多个中间特征图。
获取模块104对多个中间特征图进行累加,进行特征增强,得到输出特征图,完成对输入特征图的处理。
可选地,对得到的输出特征图进行识别。或者,所述输出特征图的特征不够强,还需将输出特征图输入再进行卷积扫描运算,直至分类识别成功。
本实施例提供的图像处理的装置,可用于执行上述方法实施例的方法,本实施不再赘述。
本实施例提供的图像处理的装置,通过展开模块在具有逻辑资源的硬件平台对特征图进行特征展开,可提高图像处理的执行速度,从而满足实时进行图像处理的需求。
本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
本领域技术人员可以理解,实施例中的各步骤可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于卷积神经网络的图像处理的方法,其特征在于,所述方法包括:
将至少一个输入特征图载入至具有逻辑资源的硬件平台;
在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵,所述矩阵携带输入特征图的特征;
针对每一矩阵进行卷积处理,得到多个中间特征图;
根据所述中间特征图,获取输出特征图。
2.根据权利要求1所述的方法,其特征在于:所述硬件平台为嵌入式可编程逻辑FPGA平台。
3.根据权利要求2所述的方法,其特征在于:若载入至所述FPGA平台的输入特征图为多个,相应地,针对每一矩阵进行卷积处理,得到多个中间特征图的步骤具体为:
针对多个矩阵,并行执行卷积处理,其中,针对每一矩阵,得到多个中间特征图并暂存等待后续处理。
4.根据权利要求1所述的方法,其特征在于:在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵的步骤之后,所述方法还包括:
自第一移位寄存器组获取矩阵,自第二移位寄存器组获取卷积窗口的权重;
将所述矩阵和卷积窗口的权重缓存至输入缓存中;
自输入缓存中读取所述矩阵以及所述权重,并载入至所述FPGA平台内部的数字信号处理DSP中进行运算。
5.根据权利要求4所述的方法,其特征在于:所述输入缓存包括第一输入缓存和第二输入缓存,相应地,自输入缓存中读取所述矩阵以及所述权重,并载入至所述FPGA平台内部的数字信号处理DSP中进行运算的步骤具体为:
第一输入缓存接收矩阵和卷积窗口的权重,第二输入缓存输出矩阵和卷积窗口的权重至DSP;
若第一输入缓存的容量为满或者第二输入缓存的容量为空,第一输入缓存输出矩阵和卷积窗口的权重至DSP,第二输入缓存接收矩阵和卷积窗口的权重。
6.根据权利要求1所述的方法,其特征在于:针对每一矩阵进行卷积处理,得到多个中间特征图的步骤之后,所述方法还包括:
将多个中间特征图暂存在累加寄存器中;
通过累加寄存器对多个中间特征图进行累加,得到输出特征图;
将所述输出特征图缓存至输出缓存中。
7.根据权利要求6所述的方法,其特征在于:所述输出缓存包括第一输出缓存和第二输出缓存,相应地,将所述输出特征图缓存至输出缓存中的步骤具体为:
第一输出缓存接收DSP输出的特征图,第二输出缓存输出暂存的特征图;
若第一输出缓存的容量为满或者第二输出缓存的容量为空,第一输出缓存输出所述输出特征图,第二输出缓存接收DSP的输出特征图。
8.根据权利要求1所述的方法,其特征在于:所述硬件平台包括多个层结构;
第一层为物理层,包括DSP和双极随机存取存储器BRAM;
第二层为数据链路层,包括卷积数据与DSP的交互CONV2DSP,以及卷积数据与双极随机存取存储器的交互CONV2BRAM;
第三层为网络层,包括卷积CONV、池化采样POOLING、按元素操作ELTWISE和全连接FC;
第四层为控制软件,包括网络的配置信息。
9.根据权利要求1所述的方法,其特征在于:所述卷积处理的次数为多次,针对每一矩阵进行卷积处理,得到多个中间特征图的步骤之后,所述方法还包括:
判断得到的中间特征图经过的卷积处理的次数;
若次数小于预设的次数,则将中间特征图重新进行特征展开,直至达到预设的次数。
10.一种基于卷积神经网络的图像处理的装置,其特征在于,所述装置包括:
载入模块,用于将至少一个输入特征图载入至具有逻辑资源的硬件平台;
展开模块,用于在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的特征矩阵,所述矩阵携带输入特征图的特征;
卷积模块,用于针对每一矩阵进行卷积处理,得到多个中间特征图;
获取模块,用于根据所述中间特征图,获取输出特征图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711405714.0A CN108090496A (zh) | 2017-12-22 | 2017-12-22 | 基于卷积神经网络的图像处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711405714.0A CN108090496A (zh) | 2017-12-22 | 2017-12-22 | 基于卷积神经网络的图像处理的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108090496A true CN108090496A (zh) | 2018-05-29 |
Family
ID=62178668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711405714.0A Pending CN108090496A (zh) | 2017-12-22 | 2017-12-22 | 基于卷积神经网络的图像处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090496A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214506A (zh) * | 2018-09-13 | 2019-01-15 | 深思考人工智能机器人科技(北京)有限公司 | 一种卷积神经网络的建立装置及方法 |
CN109636712A (zh) * | 2018-12-07 | 2019-04-16 | 北京达佳互联信息技术有限公司 | 图像风格迁移及数据存储方法、装置和电子设备 |
CN110008440A (zh) * | 2019-04-15 | 2019-07-12 | 合肥恒烁半导体有限公司 | 一种基于模拟矩阵运算单元的卷积运算及其应用 |
CN110569713A (zh) * | 2019-07-22 | 2019-12-13 | 北京航天自动控制研究所 | 一种利用dma控制器实现数据串并行二维传输的目标探测系统及方法 |
CN110673786A (zh) * | 2019-09-03 | 2020-01-10 | 浪潮电子信息产业股份有限公司 | 数据缓存的方法和装置 |
CN110874813A (zh) * | 2020-01-16 | 2020-03-10 | 湖南极点智能科技有限公司 | 一种图像处理方法、装置、设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899182A (zh) * | 2015-06-09 | 2015-09-09 | 中国人民解放军国防科学技术大学 | 一种支持可变分块的矩阵乘加速方法 |
CN105589938A (zh) * | 2015-12-13 | 2016-05-18 | 公安部第三研究所 | 基于fpga的图像检索系统及检索方法 |
CN105956660A (zh) * | 2016-05-16 | 2016-09-21 | 浪潮集团有限公司 | 一种用于实时图像识别的神经元网络芯片实现方法 |
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
CN106228238A (zh) * | 2016-07-27 | 2016-12-14 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
-
2017
- 2017-12-22 CN CN201711405714.0A patent/CN108090496A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
CN104899182A (zh) * | 2015-06-09 | 2015-09-09 | 中国人民解放军国防科学技术大学 | 一种支持可变分块的矩阵乘加速方法 |
CN105589938A (zh) * | 2015-12-13 | 2016-05-18 | 公安部第三研究所 | 基于fpga的图像检索系统及检索方法 |
CN105956660A (zh) * | 2016-05-16 | 2016-09-21 | 浪潮集团有限公司 | 一种用于实时图像识别的神经元网络芯片实现方法 |
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
CN106228238A (zh) * | 2016-07-27 | 2016-12-14 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
Non-Patent Citations (3)
Title |
---|
余子健: "基于FPGA的卷积神经网络加速器", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
刘进锋 等: ""一种简洁高效的加速卷积神经网络的方法", 《科学技术与工程》 * |
陆志坚: "基于FPGA的卷积神经网络并行结构研究", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214506A (zh) * | 2018-09-13 | 2019-01-15 | 深思考人工智能机器人科技(北京)有限公司 | 一种卷积神经网络的建立装置及方法 |
CN109636712A (zh) * | 2018-12-07 | 2019-04-16 | 北京达佳互联信息技术有限公司 | 图像风格迁移及数据存储方法、装置和电子设备 |
CN110008440A (zh) * | 2019-04-15 | 2019-07-12 | 合肥恒烁半导体有限公司 | 一种基于模拟矩阵运算单元的卷积运算及其应用 |
CN110569713A (zh) * | 2019-07-22 | 2019-12-13 | 北京航天自动控制研究所 | 一种利用dma控制器实现数据串并行二维传输的目标探测系统及方法 |
CN110569713B (zh) * | 2019-07-22 | 2022-04-08 | 北京航天自动控制研究所 | 一种利用dma控制器实现数据串并行二维传输的目标探测系统及方法 |
CN110673786A (zh) * | 2019-09-03 | 2020-01-10 | 浪潮电子信息产业股份有限公司 | 数据缓存的方法和装置 |
CN110673786B (zh) * | 2019-09-03 | 2020-11-10 | 浪潮电子信息产业股份有限公司 | 数据缓存的方法和装置 |
CN110874813A (zh) * | 2020-01-16 | 2020-03-10 | 湖南极点智能科技有限公司 | 一种图像处理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090496A (zh) | 基于卷积神经网络的图像处理的方法和装置 | |
CN107392309A (zh) | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 | |
CN107657581A (zh) | 一种卷积神经网络cnn硬件加速器及加速方法 | |
CN109784489A (zh) | 基于fpga的卷积神经网络ip核 | |
CN110097174A (zh) | 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置 | |
CN104881666B (zh) | 一种基于fpga的实时二值图像连通域标记实现方法 | |
CN107833176A (zh) | 一种信息处理方法及相关产品 | |
US20170024632A1 (en) | Performance Enhancement For Two-Dimensional Array Processor | |
CN110968543A (zh) | 存储器中计算系统和方法 | |
KR20200143686A (ko) | 연산을 가속하기 위한 가속기 및 시스템 | |
CN108416327A (zh) | 一种目标检测方法、装置、计算机设备及可读存储介质 | |
CN106897143A (zh) | 对图形处理系统中的处理引擎的区片分配 | |
KR20180101055A (ko) | 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법 | |
Gilan et al. | FPGA-based implementation of a real-time object recognition system using convolutional neural network | |
CN108470009A (zh) | 处理电路及其神经网络运算方法 | |
WO2019170049A1 (zh) | 一种卷积神经网络加速装置和方法 | |
CN108256628A (zh) | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 | |
US10411709B1 (en) | Circuit arrangements and methods for dividing a three-dimensional input feature map | |
EP3161793B1 (en) | Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture | |
CN111222454B (zh) | 训练多任务目标检测模型、多任务目标检测的方法及系统 | |
CN108717571A (zh) | 一种用于人工智能的加速方法和装置 | |
CN108804973A (zh) | 基于深度学习的目标检测算法的硬件架构及其执行方法 | |
TW202247043A (zh) | 在卷積網路—填磚組態中之無損填磚 | |
WO2020073801A1 (zh) | 一种3d图像处理中数据读写方法及系统、存储介质及终端 | |
JP2020204894A (ja) | フィルタ処理装置及びその制御方法 |
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: 20210128 Address after: 315000 9-3, building 91, 16 Buzheng lane, Haishu District, Ningbo City, Zhejiang Province Applicant after: Yinhe shuidi Technology (Ningbo) Co.,Ltd. Address before: Room 501-1753, office building, development zone, 8 Xingsheng South Road, Miyun District Economic Development Zone, Beijing Applicant before: Yinhe waterdrop Technology (Beijing) Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180529 |