CN108090496A - 基于卷积神经网络的图像处理的方法和装置 - Google Patents

基于卷积神经网络的图像处理的方法和装置 Download PDF

Info

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
Application number
CN201711405714.0A
Other languages
English (en)
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.)
Yinhe shuidi Technology (Ningbo) Co.,Ltd.
Original Assignee
Watrix Technology Beijing Co Ltd
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 Watrix Technology Beijing Co Ltd filed Critical Watrix Technology Beijing Co Ltd
Priority to CN201711405714.0A priority Critical patent/CN108090496A/zh
Publication of CN108090496A publication Critical patent/CN108090496A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/36Image preprocessing, i.e. processing the image information without deciding about the identity of the image
    • G06K9/46Extraction of features or characteristics of the image
    • G06K9/4604Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes, intersections
    • G06K9/4609Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes, intersections by matching or filtering
    • G06K9/4619Biologically-inspired filters, e.g. receptive fields

Abstract

本发明实施例提供一种基于卷积神经网络的图像处理的方法和装置。所述方法包括将至少一个输入特征图载入至具有逻辑资源的硬件平台;在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵,所述矩阵携带输入特征图的特征;针对每一矩阵进行卷积处理,得到多个中间特征图;根据所述中间特征图,获取输出特征图。所述方法在具有逻辑资源的硬件平台对特征图进行特征展开,可提高图像处理的执行速度,从而满足实时进行图像处理的需求。

Description

基于卷积神经网络的图像处理的方法和装置
技术领域
[0001] 本发明实施例涉及特征图处理技术领域,特别是一种基于卷积神经网络的图像处 理的方法和装置。
背景技术 _
[0002] 深度学习是机器学习领域的一个新兴的研究方向,在深度学习中,机器的认知行 为能够更接近人工智能。卷积神经网络(conv〇lutional neural network,CNN)是深度学习 的最为重要的工具之一,通过多层的神经网络、二维的卷积操作以及不同数据通路的归并 操作,图像的特征可以被自动提取出来。
[0003] 图1为现有技术中卷积神经网络的基本结构示意图。如图1所示,一个卷积神经网 络应该至少包含四部分的处理:卷积(C0NV)、池化采样(Pooling)、激活函数的计算以及全 连接层(fully connected layers,FC)等。
[0004] 卷积神经网络由于其庞大的计算需求,速度将受到限制,使得它难以满足许多实 时应用的需求。
发明内容
[0005] 针对现有技术的缺陷,本发明实施例提供一种基于卷积神经网络的图像处理的方 法和装置。
[0006] —方面,本发明实施例提供一种基于卷积神经网络的图像处理的方法,所述方法 包括:
[0007] 将至少一个输入特征图载入至具有逻辑资源的硬件平台;
[0008] 在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵, 所述矩阵携带输入特征图的特征;
[0009] 针对每一矩阵进行卷积处理,得到多个中间特征图;
[0010] 根据所述中间特征图,获取输出特征图。
[0011] 另一方面,本发明实施例提供一种基于卷积神经网络的图像处理的装置,所述装 置包括:
[0012] 载入模块,用于将至少一个输入特征图载入至具有逻辑资源的硬件平台;
[0013] 展开模块,用于在所述硬件平台对每一输入特征图进行特征展开,得到输入特征 图对应的矩阵,所述矩阵携带输入特征图的特征;
[0014] 卷积模块,用于针对每一矩阵进行卷积处理,得到多个中间特征图;
[0015] 获取模块,用于根据所述中间特征图,获取输出特征图。
[0016] 由上述技术方案可知,本发明实施例提供的图像处理的方法和装置,所述方法在 具有逻辑资源的硬件平台对特征图进行特征展开,可提高图像处理的执行速度,从而满足 实时进行图像处理的需求。
附图说明
[0017] 图1为现有技术中卷积神经网络的基本结构示意图;
[0018] 图2为本发明实施例提供的一种图像处理的方法的流程示意图;
[0019] 图3为本发明又一实施例提供的图像处理的装置的示意图;
[0020] 图4为本发明又一实施例提供的卷积的计算过程的伪代码;
[0021] 图5为本发明又一实施例提供的卷积的计算过程的示意图;
[0022]图6为本发明又一实施例提供的展开电路的工作原理的示意图;
[0023]图7为本发明又一实施例提供的卷积并行的计算流程示意图;
[0024]图8为本发明又一实施例提供的双缓存的数据交换机制示意图;
[0025]图9为本发明又一实施例提供的图像处理的装置的分层示意图;
[0026]图10为本发明又一实施例提供的一种图像处理的装置的结构示意图;
[0027]图11为本发明又一实施例提供的处理图片的计算流程示意图。
具体实施方式
[0028]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明 实施例一部分实施例,而不是全部的实施例。
[0029]本发明实施例提供的方法在图像处理的装置上实现,图像处理的装置部署在具有 逻辑资源的硬件平台上。
[0030] 可选地,逻辑资源是指运用思维的规律和规则,对虚拟资源进行分配,也就是说, 利用逻辑思维的方式分配而形成的资源就是逻辑资源。
[0031] 可选地,虚拟资源是通过程序编辑而成的信息,例如存储资源,存储资源是寄存器 用于存储数据的资源,一个容量为64MB的寄存器,存储资源为64MB。
[0032]可选地,具有逻辑资源的硬件平台可实施为多种,例如嵌入式FPGA (Field Programmab 1 e Gate Array,现场可编程门阵列)平台。
[0033] 可选地,嵌入式FPGA平台包括PL (Programmable Logic,可编程逻辑)和PS (Processing System,处理系统),其中PL是配置的硬件端,PS是软件端,由PL和PS协同工作 完成整个特征图处理,PL和PS通过总线连接。
[0034] PL与外部存储的数据交换通过DMA (Direct Memory Access,直接内存操作,又称 成组数据传送)来实现。
[0035] PS的嵌入式软件运行在CPU (Central Processing Unit,中央处理器)上,并负责 配置PL的参数。
[0036]图2示出了本发明实施例提供的一种图像处理的方法的流程示意图。
[0037]如图2所示,本发明实施例提供的方法具体包括以下步骤:
[0038]步骤11、将至少一个输入特征图载入至具有逻辑资源的硬件平台;
[0039]可选地,自外部存储设备中获取至少一个输入特征图载入至具有逻辑资源的硬件 平台,所述输入特征图是待处理的特征图,每一输入特征图包括特征图的大小WXH,W表示 特征图的宽度,H表示特征图的长度,例如某一输入特征图为50x50。
[0040]步骤12、在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应 的矩阵,所述矩阵携带输入特征图的特征;
[0041]可选地,针对每一输入特征图,在PL上对输入特征图进行特征展开,可采用现有技 术的方式实现,得到一个矩阵,5〇x50的输入特征图,可得到50x50x9 (假设卷积窗口为3x3) 的矩阵。
[0042]可选地,矩阵携带的特征是根据输入特征图展开的特征,矩阵包含2500个向量,每 一个向量代表输入特征图中一个3x3大小的区域,该向量描述一个区域的色彩、边缘、形状 等特征,每一矩阵的区域包括多个像素点,每一像素点携带输入特征图的像素点的色彩、边 缘、形状等特征。
[0043] 可选地,展开得到的矩阵用于卷积计算。
[0044]在本发明实施例中,在具有逻辑资源的硬件平台对特征图进行特征展开,相较于 单纯采用软件的方式来实现,由于减少了软件部分的操作,可提高图像处理的装置的执行 速度。
[0045] 步骤13、针对每一矩阵进行卷积处理,得到多个中间特征图;
[0046]可选地,可采用卷积窗口在矩阵上进行扫描,由卷积窗口对扫过的部分进行卷积 运算。
[0047] 举例来说,卷积窗口为3x3,自左上起对50x50的矩阵进行扫描,第一个扫过的区域 包括矩阵的第一行的前3个像素点,第二行的前3个像素点,以及第三行的前3个像素点,针 对该卷积窗口覆盖的区域,进行卷积运算,得到一个中间特征图。
[0048]可选地,每一张中间特征图具有一个特征点,特征点代表当前扫描过的区域的特 征。
[0049]可选地,得到一个中间特征图后,卷积窗口以一个像素点为粒度,滑过矩阵,移动 至第二个区域,卷积窗口在矩阵上的位置整体上相对第一个区域向右移动了一个像素点, 得到第二个区域,即包括第一行的第2-4个像素点,第二行的2-4个像素点,以及第三行的2-4个像素点。
[0050]同样地,针对第二个区域,进行卷积计算,同样得到一个中间特征图。直至卷积窗 口完成矩阵的扫描,可得到多个中间特征图。
[0051] 步骤14、根据所述中间特征图,获取输出特征图。
[0052]可选地,对多个中间特征图进行累加,进行特征增强,得到输出特征图,完成对输 入特征图的处理。
[0053]可选地,对得到的输出特征图进行识别。或者,所述输出特征图的特征不够强,还 需将输出特征图输入再进行卷积扫描运算,直至分类识别成功。
[0054]本实施例提供的方法,通过在具有逻辑资源的硬件平台对特征图进行特征展开, 可提高图像处理的执行速度,从而满足实时进行图像处理的需求。
[0055]在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,载入至所述 FPGA平台的输入特征图为多个,相应地,针对每一矩阵进行卷积处理,得到多个中间特征图 的步骤具体为:
[0056] 针对多个矩阵,并行执行卷积处理,其中,针对每一矩阵,得到多个中间特征图并 暂存等待后续处理。
[0057] 在本发明实施例中,所述FPGA平台作为一种可重复编程的硬件结构,具有很高的 并行性,可以实现低功耗的计算。
[0058] 可选地,载入多个输入特征图至所述FPGA平台,特征图处理中卷积处理的步骤可 并行执行。
[0059] 可选地,在得到中间特征图后暂存等待后续处理。
[0060] 本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
[0061] 本实施例提供的图像处理的方法,通过采用卷积并行处理模式,更大限度提高了 FPGA片上数据的复用程度,从而降低资源消耗。
[0062] 在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,在所述硬件 平台对每一输入特征图进行特征展开,得到输入特征图对应的矩阵的步骤之后,所述方法 还包括:
[0063]自第一移位寄存器组获取矩阵,自第二移位寄存器组获取卷积窗口的权重;
[0064]将所述矩阵和卷积窗口的权重缓存至输入缓存中;
[0065]自输入缓存中读取所述矩阵以及所述权重,并载入至所述FPGA平台内部的数字信 号处理DSP中进行运算。
[0066]可选地,通过展开电路将输入特征图展开为矩阵后,将矩阵存储至第一移位寄存 器组,第一移位寄存器组包括多个移位寄存器,每一移位寄存器存储矩阵的一行。
[0067] 可选地,预先确定各个卷积窗口的权重,并存储于第二移位寄存器组中,第二移位 寄存器组包括多个移位寄存器,每一移位寄存器存储一个卷积窗口的权重。
[0068]可选地,每个卷积窗口的权重不同,权重是预先确定的卷积窗口的重要程度。
[0069]在数字电路中,移位寄存器(shift register)是一种在若干相同时间脉冲下工作 的以触发器为基础的器件,数据以并行或串行的方式输入到该器件中。将几个具有相同位 数的移位寄存器并联起来,得到移位寄存器组。
[0070]可选地,输入缓存的作用是进行数据缓冲,以保证后续可以流畅的计算,在需要计 算时,接收PL的控制信号,再从自第一移位寄存器组获取矩阵,自第二移位寄存器组获取卷 积窗口的权重,并将将所述矩阵和卷积窗口的权重缓存至输入缓存中,以供后续DSP根据矩 阵和权重进行卷积计算。
[0071] 可选地,输入缓存可采用现有技术的BRAM(bipolar random access memory,双极 随机存取存储器)实现。BRAM指的是用双极型晶体管构成的随机存储器,用作缓冲存储器, 使运算速度显著提高。
[0072] 针对每一矩阵的大小,采用预设大小的卷积窗口,不同大小的矩阵采用不同大小 的卷积窗口进行卷积计算。
[0073] 可选地,卷积窗口的大小与矩阵的大小相关,例如矩阵的大小为50x50,则卷积窗 口可采用3x3大小,矩阵的大小为100x100,则卷积窗口可采用5x5大小。
[°074]每一 DSP通道与一个卷积窗口对应,在确定需要进行卷积计算时,自输入缓存中读 取所述矩阵以及所述权重,将所述矩阵以及所述权重通过DSP通道,连接至DSP中。
[0075]可选地,由DSP完成卷积计算,使得DSP根据卷积窗口以及所述权重,对矩阵进行卷 积计算,得到多个中间特征图。
[0076] 每一卷积窗口在对应的矩阵上扫描,每一个扫过的区域包括多个像素点,将该像 素点分别与卷积窗口的权重进行加权求和,完成该区域的卷积计算,得到一个包括特征点 的中间特征图,该特征点具有自多个像素点提取的特征。
[0077]本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
[0078]本实施例提供的图像处理的方法,通过采用输入缓存对矩阵和卷积窗口的权重进 行缓存,以供后续进行卷积计算。
[0079]在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,所述输入缓 存包括第一输入缓存和第二输入缓存,相应地,自输入缓存中读取所述矩阵以及所述权重, 并载入至所述FPGA平台内部的数字信号处理DSP中进行运算的步骤具体为:
[0080]第一输入缓存接收矩阵和卷积窗口的权重,第二输入缓存输出矩阵和卷积窗口的 权重至DSP;
[0081]若第一输入缓存的容量为满或者第二输入缓存的容量为空,第一输入缓存输出矩 阵和卷积窗口的权重至DSP,第二输入缓存接收矩阵和卷积窗口的权重。
[0082]可选地,本发明实施例采用双缓存的数据交换机制,使得DSP可以随时都处于工作 状态,提升了计算的效率。
[0083]第一输入缓存负责与外部存储(例如第一移位寄存器组和第二移位寄存器)交互, 得到矩阵和卷积窗口的权重,第二输入缓存负责与DSP交互,任意一个缓存为满或者空的时 候交换缓存的状态。
[0084]本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
[0085]本实施例提供的图像处理的方法,通过双缓存的数据交换机制,使得DSP可以随时 都处于工作状态,提升了计算的效率。
[0086]在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,针对每一矩 阵进行卷积处理,得到多个中间特征图的步骤之后,所述方法还包括:
[0087]将多个中间特征图暂存在累加寄存器中;
[0088] 通过累加寄存器对多个中间特征图进行累加,得到输出特征图;
[0089]将所述输出特征图缓存至输出缓存中。
[0090]可选地,累加寄存器(Accumulator,AC)是存放算术或逻辑运算的一个操作数和运 算结果的寄存器。
[0091]在本发明实施例中,累加寄存器用于暂时存放卷积运算的结果信息,并对卷积运 算的结果信息(中间特征图)进行累加,进行特征增强,得到输出特征图。
[0092]可选地,在得到输出特征图后,还将所述输出特征图缓存至输出缓存中。输出缓存 的作用是进行数据缓冲,以保证输出特征图可顺利输出,在输出特征图为多个时,输出缓存 将按照顺序输出。
[0093] 本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
[0094]本实施例提供的图像处理的方法,通过累加寄存器对多个中间特征图进行累加, 得到输出特征图,并将所述输出特征图缓存至输出缓存中,保证输出特征图可顺利输出。 [0095]在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,所述输出缓 存包括第一输出缓存和第二输出缓存,相应地,将所述输出特征图缓存至输出缓存中的步 骤具体为:
[0096]第一输出缓存接收DSP输出的输出特征图,第二输出缓存输出所述输出特征图;
[0097]若第一输出缓存的容量为满或者第二输出缓存的容量为空,第一输出缓存输出所 述输出特征图,第二输出缓存接收DSP的输出特征图。
[0098]可选地,本发明实施例采用双缓存的数据交换机制,使得DSP可以随时将计算得到 的输出特征图及时输出,对下一个矩阵进行卷积、累加,从而提升了计算的效率。
[00"]第一输出缓存负责与外部存储交互,第二输出缓存负责与DSP交互,任意一个缓存 为满或者空的时候交换缓存的状态。
[0100]本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
[0101]本实施例提供的图像处理的方法,通过双缓存的数据交换机制,使得DSP可以随时 将计算得到的输出特征图及时输出,对下一个矩阵进行卷积、累加,从而提升了计算的效 率。
[0102]在上述实施例的基础上,本发明又一实施例提供的图像处理的方法,所述硬件平 台包括多个层结构;
[0103]第一层为物理层,包括DSP和双极随机存取存储器BRAM;
[0104]第二层为数据链路层,包括卷积数据与DSP的交互⑶NV2DSP和卷积数据与双极随 机存取存储器的交互C0NV2BRAM;
[0105]第三层为网络层,包括卷积C0NV、池化采样POOLING、按元素操作ELTWISE和全连接 FC;
[0106]第四层为控制软件,包括网络的配置信息。
[0107]可选地,硬件平台采用系统分层的结构,第一层为最底层的物理层,用于管理计算 资源和存储资源,包括DSP和BRAM。物理层定义了通用的数据交换接口,可与外部存储进行 交互,同时可以根据时序收敛的情况灵活调整DSP资源和BRAM资源的占用数量。
[0108]在物理层之上为第二层数据链路层,用于负责数据路由交互,包括C0NV2DSP和 C0NV2BRAM,其中,C0NV表示卷积数据,2表示“TO”,C0NV2DSP表示卷积数据与DSP的交互, C0NV2BRAM表示卷积数据与双极随机存取存储器(输入缓存)的交互。
[0109]在数据链路层之上为第三层网络层,用于进行运算逻辑,运算逻辑可包括卷积 C0NV、池化采样POOLING、按元素操作ELTWISE和全连接FC。
[0110]其中,按元素操作表示根据每一矩阵的像素点,进行卷积运算,将卷积运算的结果 正向传导至池化采样,通过降采样来降低输出的特征的维度,同时改善结果,不易出现过拟 合。全连接起到“分类器”的作用,全连接利用学习的知识将池化采样输出的特征映射到空 间,从而易于进行分类。 顶层为控制软件(PS),用于对PL进行配置,控制PL的内部逻辑。例如进行网络层 (运算逻辑)的配置。
[0112] 本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
[0113]本实施例提供的图像处理的方法,通过硬件平台分层的结构,统一管理存储资源 和计算资源,更高效实现特征图处理。
[01M]图11为本发明又一实施例提供的处理图片的计算流程示意图。
[0115]如图11所示,在上述实施例的基础上,本发明又一实施例提供的图像处理的方法, 所述卷积处理的次数为多次,针对每一矩阵进行卷积处理,得到多个中间特征图的步骤之 后,所述方法还包括:
[0116] 判断得到的中间特征图经过的卷积处理的次数;
[0117] 若次数小于预设的次数,则将中间特征图重新进行特征展开,直至达到预设的次 数。
[0118] 可选地,输入特征图通过特征展开电路进行特征展开后,和权重一并输入至DSP中 卷积层电路进行计算,并得到多组的中间特征图。
[0119]可选地,判断得到的中间特征图是第几个卷积层的结果,也就是说,经过的卷积处 理的次数。
[0120]如果次数小于预设的次数n,将中间特征图重新导入特征展开电路重复图2的步骤 12-13,直到卷积层电路输出的特征图经过了 n次卷积计算,再将结果输出到全连接层电路。 [0121]经过全连接层电路后,输出得到的图片特征,该图片特征可用于后续的图像比对、 分割、聚类等处理。
[0122]本实施例其他步骤与前述实施例步骤相似,本实施例不再赘述。
[0123]本实施例提供的图像处理的方法,通过多次进行卷积处理,可以得到理想的输出 特征图。
[0124]为了更充分理解本发明的技术内容,在上述实施例的基础上,详细说明本实施例 提供的图像处理的方法。
[0125] 图3为本发明又一实施例提供的图像处理的装置的示意图。
[0126] 如图3所示,本发明提出一种基于卷积神经网络的图像处理的方法,用于加速神经 网络计算,设计的图像处理的装置包含:卷积运算单元,池化采样(Pooling),全连接层 (FC)、激活函数、网络控制单元以及输入输出缓存。PL加速器与外部存储的数据交换通过 DMA来实现,同时PS端的嵌入式软件运行在CPU上并通过总线来配置网络控制单元的参数, PL和PS协同工作完成整个计算。
[0127]图4为本发明又一实施例提供的卷积的计算过程的伪代码。
[0128]如图4所示,伪代码描述了不考虑边界条件下的卷积的计算过程,W和H表示输入特 征图的长宽,D为输入特征图的深度,K为卷积窗口的大小,M为卷积窗口的数量。
[0129]其中,伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是使被描述 的算法可以容易地以任何一种编程语言(Pascal,C,Java等)实现。
[0130]图5为本发明又一实施例提供的卷积的计算过程的示意图。
[0131]如图5所示,将卷积的计算过程表现为更简单的形式,
[0132]现有技术中一般采用软件方式将输入特征图展开为向量的形式,然后对展开的向 量组进行矩阵乘法的操作来实现卷积。
[0133]不同于将卷积运算转换为矩阵乘法的软件方法,本发明使用硬件的方式实现:将 待处理的输入特征图进行特征展开,得到特征图,该特征图是一个矩阵,矩阵包括多个向量 以及各向量的特征,移位寄存器组来缓存和读出卷积的权重以及特征图,在硬件端完成输 入特征图的展开。
[0134]具体包括以下几步:
[0135] 1、输入特征图通过DMA载入,经过展开电路将输入特征图展开为向量的形式储存 在输入缓存中;
[0136] 2、输入的权重数据则直接解码并放入输入缓存;
[0137] 3、等待控制信号,将输入缓存中的数据载入DSP进行计算;
[0138] 4、将完成计算的数据从DSp输出到输出缓存。
[0139]图6为本发明又一实施例提供的展开电路的工作原理的示意图。
[0140]如图6所示,展开电路的工作原理大致如下:寄存器组根据运行状态分类,共有四 个运行状态:数据载入、数据暂存、初始化状态、停机状态。根据输出电路产生的读地址输出 暂存的特征图数据,输出电路根据卷积窗口大小K来产生输出地址。一个特征图展开电路的 输出同多个权重寄存器对应,采用卷积并行的计算策略。
[0141]其中,特征图输入寄存器组为前述第一移位寄存器组,权重寄存器组为前述第二 移位寄存器组。
[0142]图7为本发明又一实施例提供的卷积并行的计算流程示意图。
[0143]如图7所示,将展开电路的输出连接到不同的卷积窗口,完成计算之后暂存在累加 寄存器中,累加寄存器完成对多个特征图的卷积累加,最后再顺序输出到输出缓存。
[0144]图8为本发明又一实施例提供的双缓存的数据交换机制示意图。
[0145]如图8所示,在计算模块和数据存储装置之间引入双缓存的数据交换机制,使得计 算模块可以随时都处于工作状态,提升了计算的效率。分别包含两个输入和输出缓存,一个 负责与外部存储交互,一个负责与计算模块交互,任意一个缓存为满或者空的时候交换缓 存的状态。
[0146]图9为本发明又一实施例提供的图像处理的装置的分层示意图。
[0147]如图9所示,本发明的系统逻辑上采用分层的设计:
[0148] 1、最底层为物理层,负责管理FPGA片上资源,包括DSP和BRAM等,其中,DSP包括多 个DSP通道,可以根据时序收敛的情况灵活调整资源的占用数量;
[0149] 2、数据链路层负责不同模块之间的数据路由交互,比如CONV2DSP、CONV2BRAM;
[0150] 3、网络层定义了不同的运算逻辑单元,包括CONV、POOLING、ELTWISE、FC等;
[0151 ] 4、顶层为PS端的控制软件,包括电路的驱动API以及网络的配置信息
[0152]参照图11,采用本发明处理图片的计算流程:
[0153] 1、输入图片为相机采集的数据,通过图3所示的总线及dma载入;
[0154] 2、输入图片通过特征展开电路,展开为向量组的形式,和权重数据一起输入到卷 积层电路进行计算,并得到多组的中间特征图;
[0155] 3、判断得到的中间特征图是第几个卷积层的结果,如果小于设置的阈值n,将中间 特征图重新导入特征展开电路重复步骤2-3,直到卷积电路输出的特征图经过了 n次卷积层 的计算,再将结果输出到全连接层电路。
[0156] 其中,将中间特征图导入卷积层进行计算的过程如前述图6中己说明。
[0157] 4、经过全连接层电路后,通过图3所示的总线输出得到的图片特征,该特征可用于 后续的图像比对、分割、聚类等处理。
[0158] 对比现有的一般技术,本方案基于FPGA实现,对比嵌入式CPU可以达到更快的计算 速度,对比GPU可以获得更高的能效比和稳定性,更适用于对功耗以及稳定性有极高要求的 领域。
[0159]本发明实施例在FPGA上部署神经网络的方法,至少具有以下技术效果:
[0160] 1、将输入特征图展开的电路硬件化实现,提高了整个系统的执行速度,减少了软 件部分的操作
[0161] 2、采用卷积并行的并行模式,更大限度提高了片上数据的复用程度,平衡了 10以 及降低资源消耗
[0162] 3、系统分层的结构,统一管理片上存储和计算资源,更高效
[0163] 图10为本发明又一实施例提供的一种图像处理的装置的结构示意图。
[0164] 参照图10,在上述实施例的基础上,本实施例提供的基于卷积神经网络的图像处 理的装置,所述装置包括载入模块101、展开模块102、卷积模块103和获取模块104,其中: [0165]载入模块101用于将至少一个输入特征图载入至具有逻辑资源的硬件平台;展开 模块102用于在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对应的矩 阵,所述矩阵携带输入特征图的特征;卷积模块103用于针对每一矩阵进行卷积处理,得到 多个中间特征图;获取模块104用于根据所述中间特征图,获取输出特征图。
[0166] 本发明实施例中,图像处理的装置部署在具有逻辑资源的硬件平台上。
[0167] 载入模块101自外部存储设备中获取至少一个输入特征图载入至具有逻辑资源的 硬件平台,所述输入特征图是待处理的特征图,每一输入特征图包括特征图的大小WXH,W 表示特征图的宽度,H表示特征图的长度,例如某一输入特征图为50x50。
[0168]展开模块102针对每一输入特征图,在PL上对输入特征图进行特征展开,可采用现 有技术的方式实现,得到一个矩阵,5〇x50的输入特征图,可得到50x50x9的矩阵。
[0169]可选地,矩阵携带的特征是根据输入特征图展开的特征,矩阵包含2500个向量,每 一个向量代表输入特征图中一个3x3大小的区域,该向量描述一个区域的色彩、边缘、形状 等特征,每一个矩阵的区域包括多个像素点,每一像素点携带输入特征图的像素点的色彩、 边缘、形状等特征。
[0170]在本发明实施例中,在具有逻辑资源的硬件平台对特征图进行特征展开,相较于 单纯采用软件的方式来实现,由于减少了软件部分的操作,可提高图像处理的装置的执行 速度。
[0171]卷积模块1〇3可采用卷积窗口在矩阵上进行扫描,由卷积窗口对扫过的部分进行 卷积运算。
[0172] 举例来说,卷积窗口为3x3,自左上起对50x50的矩阵进行扫描,第一个扫过的区域 包括矩阵的第一行的前3个像素点,第二行的前3个像素点,以及第三行的前3个像素点,针 对该卷积窗口覆盖的区域,进行卷积运算,得到一个中间特征图。
[0173]可选地,每一张中间特征图具有一个特征点,特征点代表当前扫描过的区域的特 征。
[0174]可选地,得到一个中间特征图后,卷积窗口以一个像素点为粒度,滑过矩阵,移动 至第二个区域,卷积窗口在矩阵上的位置整体上相对第一个区域向右移动了一个像素点, 得到第二个区域,即包括第一行的第2-4个像素点,第二行的2-4个像素点,以及第三行的2-4个像素点。
[0175]同样地,针对第二个区域,进行卷积计算,同样得到一个中间特征图。直至卷积窗 口完成矩阵的扫描,可得到多个中间特征图。
[0176]获取模块1〇4对多个中间特征图进行累加,进行特征增强,得到输出特征图,完成 对输入特征图的处理。
[0177] 可选地,对得到的输出特征图进行识别。或者,所述输出特仳图的特仳个赕强,迕 需将输出特征图输入再进行卷积扫描运算,直至分类识别成功。
[0178] 本实施例提供的图像处理的装置,可用于执行上述方法实施例的方法,本实施不 再赘述。
[0179] 本实施例提供的图像处理的装置,通过展开模块在具有逻辑资源的硬件平台对特 征图进行特征展开,可提高图像处理的执行速度,从而满足实时进行图像处理的需求。
[0180]本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包 括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之 内并且形成不同的实施例。
[0181]本领域技术人员可以理解,实施例中的各步骤可以以硬件实现,或者以在一个或 者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理 解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一 些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的 一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。
[0182]虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发 明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求 所限定的范围之内。

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,以及卷积数据与双极随机 存取存储器的交互C0NV2BRAM; 第三层为网络层,包括卷积CONV、池化采样POOLING、按元素操作ELTWISE和全连接FC; 第四层为控制软件,包括网络的配置信息。
9. 根据权利要求1所述的方法,其特征在于:所述卷积处理的次数为多次,针对每一矩 阵进行卷积处理,得到多个中间特征图的步骤之后,所述方法还包括: 判断得到的中间特征图经过的卷积处理的次数; 若次数小于预设的次数,则将中间特征图重新进行特征展开,直至达到预设的次数。
10. —种基于卷积神经网络的图像处理的装置,其特征在于,所述装置包括: 载入模块,用于将至少一个输入特征图载入至具有逻辑资源的硬件平台; 展开模块,用于在所述硬件平台对每一输入特征图进行特征展开,得到输入特征图对 应的特征矩阵,所述矩阵携带输入特征图的特征; 卷积模块,用于针对每一矩阵进行卷积处理,得到多个中间特征图; 获取模块,用于根据所述中间特征图,获取输出特征图。
CN201711405714.0A 2017-12-22 2017-12-22 基于卷积神经网络的图像处理的方法和装置 Pending CN108090496A (zh)

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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109636712A (zh) * 2018-12-07 2019-04-16 北京达佳互联信息技术有限公司 图像风格迁移及数据存储方法、装置和电子设备
CN110008440A (zh) * 2019-04-15 2019-07-12 合肥恒烁半导体有限公司 一种基于模拟矩阵运算单元的卷积运算及其应用
CN110673786A (zh) * 2019-09-03 2020-01-10 浪潮电子信息产业股份有限公司 数据缓存的方法和装置
CN110874813A (zh) * 2020-01-16 2020-03-10 湖南极点智能科技有限公司 一种图像处理方法、装置、设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
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 英特尔公司 用于执行卷积运算的存储设备和方法

Patent Citations (6)

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

* Cited by examiner, † Cited by third party
Title
余子健: "基于FPGA的卷积神经网络加速器", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
刘进锋 等: ""一种简洁高效的加速卷积神经网络的方法", 《科学技术与工程》 *
陆志坚: "基于FPGA的卷积神经网络并行结构研究", 《中国博士学位论文全文数据库信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109636712A (zh) * 2018-12-07 2019-04-16 北京达佳互联信息技术有限公司 图像风格迁移及数据存储方法、装置和电子设备
CN110008440A (zh) * 2019-04-15 2019-07-12 合肥恒烁半导体有限公司 一种基于模拟矩阵运算单元的卷积运算及其应用
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) 基于卷积神经网络的图像处理的方法和装置
Cong et al. Minimizing computation in convolutional neural networks
CN107657581A (zh) 一种卷积神经网络cnn硬件加速器及加速方法
CN107833176A (zh) 一种信息处理方法及相关产品
CN104881666B (zh) 一种基于fpga的实时二值图像连通域标记实现方法
CN105892989B (zh) 一种神经网络加速器及其运算方法
US10303976B2 (en) Performance enhancement for two-dimensional array processor
KR20180101055A (ko) 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법
CN106897143A (zh) 对图形处理系统中的处理引擎的区片分配
CN108133270A (zh) 卷积神经网络加速方法及装置
CN109784489A (zh) 基于fpga的卷积神经网络ip核
CN104715502B (zh) 图形处理系统中的基元处理
CN108256628A (zh) 基于多播片上网络的卷积神经网络硬件加速器及其工作方式
CN110968543A (zh) 存储器中计算系统和方法
CN110264557A (zh) 图形处理系统中的基元处理
CN110097174A (zh) 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置
EP3161793A1 (en) Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture
Kästner et al. Hardware/software codesign for convolutional neural networks exploiting dynamic partial reconfiguration on PYNQ
CN108764182A (zh) 一种优化的用于人工智能的加速方法和装置
Lim et al. Algorithmic methodologies for FPGA-based vision
CN107111878B (zh) 数据处理方法、装置及系统
US10411709B1 (en) Circuit arrangements and methods for dividing a three-dimensional input feature map
Gilan et al. FPGA-based implementation of a real-time object recognition system using convolutional neural network
CN106709503A (zh) 一种基于密度的大型空间数据聚类算法k‑dbscan
CN108717571A (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
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.

TA01 Transfer of patent application right