CN111583094A - 一种基于fpga的图像脉冲编码方法及系统 - Google Patents

一种基于fpga的图像脉冲编码方法及系统 Download PDF

Info

Publication number
CN111583094A
CN111583094A CN202010385501.1A CN202010385501A CN111583094A CN 111583094 A CN111583094 A CN 111583094A CN 202010385501 A CN202010385501 A CN 202010385501A CN 111583094 A CN111583094 A CN 111583094A
Authority
CN
China
Prior art keywords
pulse
pixel value
image
data
value
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.)
Granted
Application number
CN202010385501.1A
Other languages
English (en)
Other versions
CN111583094B (zh
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.)
Zhejiang University ZJU
Zhejiang Lab
Original Assignee
Zhejiang University ZJU
Zhejiang Lab
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 Zhejiang University ZJU, Zhejiang Lab filed Critical Zhejiang University ZJU
Priority to CN202010385501.1A priority Critical patent/CN111583094B/zh
Publication of CN111583094A publication Critical patent/CN111583094A/zh
Application granted granted Critical
Publication of CN111583094B publication Critical patent/CN111583094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及一种基于FPGA的图像脉冲编码方法及系统,包括:构建异构计算机系统;获取灰度图像及归一化像素值;将归一化像素值放大T倍,并输入至缓存区;将灰度图像进行切分,并将切分后的灰度图像送入PE阵列所对应的缓存区,产生脉冲信号;当频率值生成器接收到外部输入像素值时,将像素值放大预先设定倍数产生Frate数据缓存在BUFF中;将T值扩大预先设定倍数;计算时间间隔,并存储于BUFI中;将Frate数据以SEL信号送入Accumulator和Output Block中,判断所述SEL信号是否为0,若为0,则使Accumulator和Output Block处于休眠状态;将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列。本发明能够降低数据处理延迟时间。

Description

一种基于FPGA的图像脉冲编码方法及系统
技术领域
本发明涉及神经网络领域,特别是涉及一种基于FPGA的图像脉冲编码方法及系统。
背景技术
人工神经网络在计算机视觉,语音识别和文本生成方面获得了显著的成绩,但是这些显著的成绩依赖于诸如GPU这样的低能效硬件的支持,而GPU的低能效限制了人工神经网络在嵌入端或边缘端的应用,与其相比,神经科学带给高级人工智能算法许多启发,高级人工智能算法用于解决多样性机器学习问题。脉冲神经网络是一种典型的生物可塑性神经网络,它处理信息的机制是基于脉冲实现的。当没有脉冲或事件到来时,整个计算单元处于休眠状态以节省能耗,这与基于数据驱动的传统神经网络有所不同。因此能够比传统神经网络更节省能耗,但目前存在的问题就是脉冲神经网络与传统人工神经网络在处理信息的机制上不同,因此传统图像传感器产生的图像数据并不能被脉冲神经网络所兼容,因此需要一种脉冲编码算法将这些图像数据转换为脉冲神经网络兼容的脉冲事件数据,另外目前许多脉冲神经网络加速器并不是一个端到端的加速,即缺失编码这一块,限制了脉冲神经网络系统应用落地。
目前有很多硬件平台来模拟脉冲神经网络编码算法,我们使用高能效比的FPGA来替代低能效比的CPU或GPU。从而能够使得我们的方法得以在功耗敏感领域落地。
发明内容
本发明的目的是提供一种基于FPGA的图像脉冲编码方法及系统,提高数据吞吐率,降低数据处理延迟时间。
为实现上述目的,本发明提供了如下方案:
一种基于FPGA的图像脉冲编码方法,所述方法包括:
S1:构建异构计算机系统;所述异构计算机系统包括:通用处理器PS和可编程逻辑PL;所述通用处理器PS包括存储器DRAM、SD存储器和控制器Quad-CoreA53 CPU;所述可编程逻辑PL包括I/O Buffer、可配置寄存器CFG、顶层控制器和PE处理单元;所述PE处理单元包括:底层控制器、频率值生成器、间隔值生成器、频率值缓存单元、间隔值缓存单元、累加器、输出块;所述DRAM和SD存储器用于存储数据和程序;所述I/O Buffer用于存储算法中的权值和临时数据;所述可配置寄存器CFG用于存储算法的参数;
S2:获取灰度图像及归一化像素值;
S3:将所述归一化像素值放大T倍,并将放大T倍的归一化像素值T*rj输入至所述PL端的Input Buffer缓存区;
S4:将所述灰度图像进行切分,并将切分后的灰度图像分别送入PFGA中的PE阵列所对应的Input Buffer,并产生脉冲信号,将所述脉冲信号发送至所述PE单元中的底层控制器;
S5:当Frate Generator频率值生成器接收到外部输入像素值T*rj时,将所述像素值T*rj放大预先设定倍数产生Frate数据缓存在BUFF频率值缓存单元中,同时送入Interval Generator间隔值生成器并作为之后数据选择器的选择信号;
S6:将所述T值扩大预先设定倍数;所述T为脉冲神经网络的时间窗口;
S7:基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔,并将所述时间间隔存储于BUFI间隔值缓存单元中;
S8:将所述BUFF中的Frate数据以SEL信号送入Accumulator累加器和OutputBlock输出块中,判断所述SEL信号是否为0,若为0,则使Accumulator和Output Block处于休眠状态;
S9:将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列。
可选的,所述将所述灰度图像进行切分具体包括:
将所述灰度图像按7*7大小的切分为16个特征图。
可选的,所述预先设定倍数为128倍。
可选的,所述基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔具体采用以下公式:
Figure BDA0002483657330000031
其中,fj为第j个神经元的脉冲固定时间间隔,T表示脉冲神经网络的时间窗口,rj表示像素值。
可选的,所述将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列具体采用以下公式:
Figure BDA0002483657330000032
Fj(i)为第j个神经元或像素的发放第i个脉冲的时间,fj为第j个神经元的脉冲固定时间间隔,rj为第j个神经元的脉冲发放频率即归一化为[0,1]的像素值大小。
本发明另外提供一种基于FPGA的图像脉冲编码系统,所述系统包括:
异构计算单元,用于构建异构计算机系统;所述异构计算机系统包括:通用处理器PS和可编程逻辑PL;所述通用处理器PS包括存储器DRAM、SD存储器和控制器Quad-CoreA53CPU;所述可编程逻辑PL包括I/O Buffer、可配置寄存器CFG、顶层控制器和PE处理单元;所述PE处理单元包括:底层控制器、频率值生成器、间隔值生成器、频率值缓存单元、间隔值缓存单元、累加器、输出块;所述DRAM和SD存储器用于存储数据和程序;所述I/O Buffer用于存储算法中的权值和临时数据;所述可配置寄存器CFG用于存储算法的参数;
灰度图像及像素值获取模块,用于获取灰度图像及归一化像素值;
第一放大模块,用于将所述归一化像素值放大T倍,并将放大T倍的归一化像素值T*rj输入至所述PL端的Input Buffer缓存区;
切分模块,用于将所述灰度图像进行切分,并将切分后的灰度图像分别送入PFGA中的PE阵列所对应的Input Buffer,并产生脉冲信号,将所述脉冲信号发送至所述PE单元中的底层控制器;
第二放大模块,用于当Frate Generator接收到外部输入像素值T*rj时,将所述像素值T*rj放大预先设定倍数产生Frate数据缓存在BUFF频率值缓存单元中,同时送入Interval Generator间隔值生成器并作为之后数据选择器的选择信号;
第三放大模块,用于将所述T值扩大预先设定倍数;所述T为脉冲神经网络的时间窗口;
时间间隔计算模块,用于基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔,并将所述时间间隔存储于BUFI间隔值缓存单元中;
判断模块,用于将所述BUFF中的Frate数据以SEL信号送入Accumulator累加器和Output Block输出块中,并判断所述SEL信号是否为0,若为0,则使Accumulator和OutputBlock处于休眠状态;
图像脉冲序列生成模块,用于将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列。
可选的,所述将所述灰度图像进行切分具体包括:
将所述灰度图像按7*7大小的切分为16个特征图。
可选的,所述预先设定倍数为128倍。
可选的,所述基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔具体采用以下公式:
Figure BDA0002483657330000041
其中,fj为第j个神经元的脉冲固定时间间隔,T表示脉冲神经网络的时间窗口,rj表示像素值。
可选的,所述将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列具体采用以下公式:
Figure BDA0002483657330000042
Fj(i)为第j个神经元或像素的发放第i个脉冲的时间,fj为第j个神经元的脉冲固定时间间隔,rj为第j个神经元的脉冲发放频率即归一化为[0,1]的像素值大小。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明中的上述方法,能够将普通灰度图像转换为脉冲神经网络可识别的脉冲序列,使得脉冲神经网络能够处理灰度图像数据,使用多核处理器架构来提高数据的吞吐率,降低数据处理延迟时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于FPGA的图像脉冲编码方法流程图;
图2为本发明实施例异构计算机系统结构示意图;
图3为本发明实施例横向路由(LCR)映射方法;
图4为本发明实施例PE结构示意图;
图5为本发明实施例基于FPGA的图像脉冲编码系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于FPGA的图像脉冲编码方法及系统,提高数据吞吐率,降低数据处理延迟时间。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例基于FPGA的图像脉冲编码方法流程图,如图1所示,所述方法包括:
S1:构建异构计算机系统;所述异构计算机系统包括:通用处理器PS和可编程逻辑PL;所述通用处理器PS包括存储器DRAM、SD存储器和控制器Quad-Core A53 CPU;所述可编程逻辑PL包括I/O Buffer、可配置寄存器CFG、顶层控制器和PE处理单元;所述PE处理单元包括:底层控制器、频率值生成器、间隔值生成器、频率值缓存单元、间隔值缓存单元、累加器、输出块;所述DRAM和SD存储器用于存储数据和程序;所述I/O Buffer用于存储算法中的权值和临时数据;所述可配置寄存器CFG用于存储算法的参数,所述异构计算机系统结构如图2所示。
S2:获取灰度图像及归一化像素值。
S3:将所述归一化像素值放大T倍,并将放大T倍的归一化像素值T*rj输入至所述PL端的Input Buffer缓存区。
由于硬件传输中最好避免小数的传输,因此我们将S2中的归一化像素值首先放大T(T为脉冲神经网络的时间窗口,本发明中T=10)倍,即在Off-Chip DRAM(DDR4)处获得输入数据T*rj,通过FPGA上的A53 CPU进行数据交互后,将数据传入PL端的Input Buffer缓存区。
上述技术方案中,在完成平台搭建后,需要明确将数据映射到硬件上每个PE单元进行加速处理的映射方法,因此S4设计具体映射到硬件上的映射方法。受生物神经元连接启发,本发明中提出横向路由映射方法(LCR)来最小化DRAM与计算元之间的数据移动操作,如图3所示,包括以下几个步骤:
S4:将所述灰度图像进行切分,并将切分后的灰度图像分别送入PFGA中的PE阵列所对应的Input Buffer,并产生脉冲信号,将所述脉冲信号发送至所述PE单元中的底层控制器。
具体的,首先,将输入为784个像素点的灰度图像按7*7大小的切分为16个特征图,分别被送入图4所示的PE阵列所对应的Input Buffer;
每个PE会读取自己所属的Input Buffer中的数据并执行操作,时间窗口T设置为10,则每个PE至多产生490个脉冲信号,16个PE共计7840个脉冲信号以模拟神经元的行为。因此,我们可以将静态图像的输入数据使用该方法映射到硬件的处理单元上。
上述技术方案中,在S4数据映射到每个PE处理单元后,需要进一步完善PE处理单元的设计,该PE单元用于执行图2中的算法,每个PE单元通过AXI总线与外部通信,具体包括以下几个步骤:
S5:首先底层控制器通过AXI总线收到神经元初始化指令后初始化内部计算单元,当Frate Generator频率值生成器接收到外部输入像素值T*rj时,则使用乘法器将所述像素值T*rj放大128倍产生Frate数据缓存在BUFF中,同时送入Interval Generator并作为之后数据选择器的选择信号。此处将数据放大128倍的目的是在硬件上使用定点数运算,能够使其保留两位小数。
S6:在Interval Generator中将T值扩大128倍匹配数据;
S7:再进一步使用右移操作来替换除法计算(T*128)/(T*rj*128),即,得到了时间间隔fj,该数据数据被存储于BUFI中;。
S8:另外一条通路产生SEL信号送入到Accumulator和Output Block中,判断所述SEL信号是否为0,若为0,则使Accumulator和Output Block处于休眠状态以降低能耗。
S9:将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列。
具体的,是将计算结果fj通过寄存器不断累加得到脉冲发放的时间序列,最后产生脉冲序列。步骤S5-S9中操作都受底层控制器控制,底层控制器控制逻辑则是根据神经元状态机来实现,公式如下:
Figure BDA0002483657330000071
其中,fj为第j个神经元的脉冲固定时间间隔,T表示脉冲神经网络的时间窗口,rj表示像素值。
Figure BDA0002483657330000072
Fj(i)为第j个神经元或像素的发放第i个脉冲的时间,fj为第j个神经元的脉冲固定时间间隔,rj为第j个神经元的脉冲发放频率即归一化为[0,1]的像素值大小。
图5为本发明实施例基于FPGA的图像脉冲编码系统结构示意图,如图5所示,所述系统包括:
异构计算单元201用于构建异构计算机系统;所述异构计算机系统包括:通用处理器PS和可编程逻辑PL;所述通用处理器PS包括存储器DRAM、SD存储器和控制器Quad-CoreA53 CPU;所述可编程逻辑PL包括I/O Buffer、可配置寄存器CFG、顶层控制器和PE处理单元;所述PE处理单元包括:底层控制器、频率值生成器、间隔值生成器、频率值缓存单元、间隔值缓存单元、累加器、输出块;所述DRAM和SD存储器用于存储数据和程序;所述I/OBuffer用于存储算法中的权值和临时数据;所述可配置寄存器CFG用于存储算法的参数。
灰度图像及像素值获取模块202用于获取灰度图像及归一化像素值。
第一放大模块203用于将所述归一化像素值放大T倍,并将放大T倍的归一化像素值T*rj输入至所述PL端的Input Buffer缓存区。
切分模块204用于将所述灰度图像进行切分,并将切分后的灰度图像分别送入PFGA中的PE阵列所对应的Input Buffer,并产生脉冲信号,将所述脉冲信号发送至所述PE单元中的底层控制器。
第二放大模块205用于当Frate Generator接收到外部输入像素值T*rj时,将所述像素值T*rj放大预先设定倍数产生Frate数据缓存在BUFF中,同时送入IntervalGenerator并作为之后数据选择器的选择信号。
第三放大模块206用于将所述T值扩大预先设定倍数;所述T为脉冲神经网络的时间窗口。
时间间隔计算模块207用于基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔,并将所述时间间隔存储于BUFI中。
判断模块208用于将所述BUFF中的Frate数据以SEL信号送入Accumulator和Output Block中,并判断所述SEL信号是否为0,若为0,则使Accumulator和Output Block处于休眠状态。
图像脉冲序列生成模块209用于将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列。
根据S1-至S9讨论,我们使用基于Xilinx XCZU9EG平台验证了我们的设计结果。如表1所示为在该平台上的资源利用率,表2为与其它硬件平台上的加速效果对比,表3为测试环境说明,从表2中的数据可以看出与通用CPU相比,在单图片编码速度上获得了1.5倍左右的加速效果,而能耗减少了17.7倍左右。
表1 Xilinx XCZU9EG资源利用率
LUTs LUTBRAMs BRAM(36kb) DSP
Encoder 6897 8694 3 10
SNN 107273 17457 264.5 0
Total 114170 26151 265 10
Percent(%) 41.65 18.16 29.11 0.08
表2不同硬件平台上的时间消耗
Number of Input Images ARM CPU FPGA
1 30.4ms 1.1ms 0.7ms
10 306.7ms 7.1ms 7.4ms
100 3145ms 67.55ms 71.0ms
表3测试环境说明
Platform Hardware Config. Software Config. Power Clock
ARM Quard-Core A53 Linux,Jupyter 2.95W 1.9Ghz
CPU Intel 17-4790k Win10,Matlab TDP 88W 3.6Ghz
FPGA XCZU9EG Linux,PYNQ 4.775W 100Mhz
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于FPGA的图像脉冲编码方法,其特征在于,所述方法包括:
S1:构建异构计算机系统;所述异构计算机系统包括:通用处理器PS和可编程逻辑PL;所述通用处理器PS包括存储器DRAM、SD存储器和控制器Quad-Core A53 CPU;所述可编程逻辑PL包括I/O Buffer、可配置寄存器CFG、顶层控制器和PE处理单元;所述PE处理单元包括:底层控制器、频率值生成器、间隔值生成器、频率值缓存单元、间隔值缓存单元、累加器、输出块;所述DRAM和SD存储器用于存储数据和程序;所述I/O Buffer用于存储算法中的权值和临时数据;所述可配置寄存器CFG用于存储算法的参数;
S2:获取灰度图像及归一化像素值;
S3:将所述归一化像素值放大T倍,并将放大T倍的归一化像素值T*rj输入至所述PL端的Input Buffer缓存区;
S4:将所述灰度图像进行切分,并将切分后的灰度图像分别送入PFGA中的PE阵列所对应的Input Buffer,并产生脉冲信号,将所述脉冲信号发送至所述PE单元中的底层控制器;
S5:当Frate Generator频率值生成器接收到外部输入像素值T*rj时,将所述像素值T*rj放大预先设定倍数产生Frate数据缓存在BUFF频率值缓存单元中,同时送入IntervalGenerator间隔值生成器并作为之后数据选择器的选择信号;
S6:将所述T值扩大预先设定倍数;所述T为脉冲神经网络的时间窗口;
S7:基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔,并将所述时间间隔存储于BUFI间隔值缓存单元中;
S8:将所述BUFF中的Frate数据以SEL信号送入Accumulator累加器和Output Block输出块中,判断所述SEL信号是否为0,若为0,则使Accumulator和Output Block处于休眠状态;
S9:将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列。
2.根据权利要求1所述的基于FPGA的图像脉冲编码方法,其特征在于,所述将所述灰度图像进行切分具体包括:
将所述灰度图像按7*7大小的切分为16个特征图。
3.根据权利要求1所述的基于FPGA的图像脉冲编码方法,其特征在于,所述预先设定倍数为128倍。
4.根据权利要求1所述的基于FPGA的图像脉冲编码方法,其特征在于,所述基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔具体采用以下公式:
Figure FDA0002483657320000021
其中,fj为第j个神经元的脉冲固定时间间隔,T表示脉冲神经网络的时间窗口,rj表示像素值。
5.根据权利要求1所述的基于FPGA的图像脉冲编码方法,其特征在于,所述将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列具体采用以下公式:
Figure FDA0002483657320000022
Fj(i)为第j个神经元或像素的发放第i个脉冲的时间,fj为第j个神经元的脉冲固定时间间隔,rj为第j个神经元的脉冲发放频率即归一化为[0,1]的像素值大小。
6.一种基于FPGA的图像脉冲编码系统,其特征在于,所述系统包括:
异构计算单元,用于构建异构计算机系统;所述异构计算机系统包括:通用处理器PS和可编程逻辑PL;所述通用处理器PS包括存储器DRAM、SD存储器和控制器Quad-Core A53CPU;所述可编程逻辑PL包括I/O Buffer、可配置寄存器CFG、顶层控制器和PE处理单元;所述PE处理单元包括:底层控制器、频率值生成器、间隔值生成器、频率值缓存单元、间隔值缓存单元、累加器、输出块;所述DRAM和SD存储器用于存储数据和程序;所述I/O Buffer用于存储算法中的权值和临时数据;所述可配置寄存器CFG用于存储算法的参数;
灰度图像及像素值获取模块,用于获取灰度图像及归一化像素值;
第一放大模块,用于将所述归一化像素值放大T倍,并将放大T倍的归一化像素值T*rj输入至所述PL端的Input Buffer缓存区;
切分模块,用于将所述灰度图像进行切分,并将切分后的灰度图像分别送入PFGA中的PE阵列所对应的Input Buffer,并产生脉冲信号,将所述脉冲信号发送至所述PE单元中的底层控制器;
第二放大模块,用于当Frate Generator接收到外部输入像素值T*rj时,将所述像素值T*rj放大预先设定倍数产生Frate数据缓存在BUFF中,同时送入Interval Generator并作为之后数据选择器的选择信号;
第三放大模块,用于将所述T值扩大预先设定倍数;所述T为脉冲神经网络的时间窗口;
时间间隔计算模块,用于基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔,并将所述时间间隔存储于BUFI中;
判断模块,用于将所述BUFF中的Frate数据以SEL信号送入Accumulator和OutputBlock中,并判断所述SEL信号是否为0,若为0,则使Accumulator和Output Block处于休眠状态;
图像脉冲序列生成模块,用于将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列。
7.根据权利要求6所述的基于FPGA的图像脉冲编码系统,其特征在于,所述将所述灰度图像进行切分具体包括:
将所述灰度图像按7*7大小的切分为16个特征图。
8.根据权利要求1所述的基于FPGA的图像脉冲编码系统,其特征在于,所述预先设定倍数为128倍。
9.根据权利要求1所述的基于FPGA的图像脉冲编码系统,其特征在于,所述基于放大预先设定倍数后的像素值T*rj和扩大预先设定倍数后的T值采用右移操作来替换除法计算时间间隔具体采用以下公式:
Figure FDA0002483657320000031
其中,fj为第j个神经元的脉冲固定时间间隔,T表示脉冲神经网络的时间窗口,rj表示像素值。
10.根据权利要求1所述的基于FPGA的图像脉冲编码系统,其特征在于,所述将所述时间间隔通过寄存器不断累加得到脉冲发放的时间序列,最终生成图像脉冲序列具体采用以下公式:
Figure FDA0002483657320000041
Fj(i)为第j个神经元或像素的发放第i个脉冲的时间,fj为第j个神经元的脉冲固定时间间隔,rj为第j个神经元的脉冲发放频率即归一化为[0,1]的像素值大小。
CN202010385501.1A 2020-05-09 2020-05-09 一种基于fpga的图像脉冲编码方法及系统 Active CN111583094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010385501.1A CN111583094B (zh) 2020-05-09 2020-05-09 一种基于fpga的图像脉冲编码方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010385501.1A CN111583094B (zh) 2020-05-09 2020-05-09 一种基于fpga的图像脉冲编码方法及系统

Publications (2)

Publication Number Publication Date
CN111583094A true CN111583094A (zh) 2020-08-25
CN111583094B CN111583094B (zh) 2023-04-25

Family

ID=72113383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010385501.1A Active CN111583094B (zh) 2020-05-09 2020-05-09 一种基于fpga的图像脉冲编码方法及系统

Country Status (1)

Country Link
CN (1) CN111583094B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363844A (zh) * 2021-01-12 2021-02-12 之江实验室 一种面向图像处理的卷积神经网络垂直分割方法
CN114819121A (zh) * 2022-03-28 2022-07-29 中国科学院自动化研究所 基于脉冲神经网络的信号处理装置及信号处理方法
CN115063283A (zh) * 2022-06-13 2022-09-16 脉冲视觉(北京)科技有限公司 一种用于图像重构的逻辑器件
CN115880883A (zh) * 2023-01-29 2023-03-31 上海海栎创科技股份有限公司 一种系统间选择性传输控制信号的系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016127357A1 (zh) * 2015-02-12 2016-08-18 中国科学技术大学 一种基于fpga的时间数字变换器
CN108470190A (zh) * 2018-03-09 2018-08-31 北京大学 基于fpga定制脉冲神经网络的图像识别方法
WO2018170508A1 (en) * 2017-03-17 2018-09-20 Regents Of The University Of Colorado, A Body Corporate High speed two-dimensional event detections and imaging with an analog interface
CN108846408A (zh) * 2018-04-25 2018-11-20 中国人民解放军军事科学院军事医学研究院 基于脉冲神经网络的图像分类方法及装置
CN110287858A (zh) * 2019-06-21 2019-09-27 天津大学 基于fpga的仿生脉冲神经网络视觉识别系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016127357A1 (zh) * 2015-02-12 2016-08-18 中国科学技术大学 一种基于fpga的时间数字变换器
WO2018170508A1 (en) * 2017-03-17 2018-09-20 Regents Of The University Of Colorado, A Body Corporate High speed two-dimensional event detections and imaging with an analog interface
CN108470190A (zh) * 2018-03-09 2018-08-31 北京大学 基于fpga定制脉冲神经网络的图像识别方法
CN108846408A (zh) * 2018-04-25 2018-11-20 中国人民解放军军事科学院军事医学研究院 基于脉冲神经网络的图像分类方法及装置
CN110287858A (zh) * 2019-06-21 2019-09-27 天津大学 基于fpga的仿生脉冲神经网络视觉识别系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363844A (zh) * 2021-01-12 2021-02-12 之江实验室 一种面向图像处理的卷积神经网络垂直分割方法
CN114819121A (zh) * 2022-03-28 2022-07-29 中国科学院自动化研究所 基于脉冲神经网络的信号处理装置及信号处理方法
CN114819121B (zh) * 2022-03-28 2022-09-27 中国科学院自动化研究所 基于脉冲神经网络的信号处理装置及信号处理方法
CN115063283A (zh) * 2022-06-13 2022-09-16 脉冲视觉(北京)科技有限公司 一种用于图像重构的逻辑器件
CN115880883A (zh) * 2023-01-29 2023-03-31 上海海栎创科技股份有限公司 一种系统间选择性传输控制信号的系统及方法
CN115880883B (zh) * 2023-01-29 2023-06-09 上海海栎创科技股份有限公司 一种系统间选择性传输控制信号的系统及方法

Also Published As

Publication number Publication date
CN111583094B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN111583094A (zh) 一种基于fpga的图像脉冲编码方法及系统
CN108416422B (zh) 一种基于fpga的卷积神经网络实现方法及装置
CN110390385B (zh) 一种基于bnrp的可配置并行通用卷积神经网络加速器
CN109784489B (zh) 基于fpga的卷积神经网络ip核
CN106991477B (zh) 一种人工神经网络压缩编码装置和方法
CN110458279B (zh) 一种基于fpga的二值神经网络加速方法及系统
CN107609641B (zh) 稀疏神经网络架构及其实现方法
CN108229671B (zh) 一种降低加速器外部数据存储带宽需求的系统和方法
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
CN111626403B (zh) 一种基于cpu-fpga内存共享的卷积神经网络加速器
US20210097130A1 (en) Matrix Multiplication System and Method
US20180137408A1 (en) Method and system for event-based neural networks
CN113051216A (zh) 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法
US20220253668A1 (en) Data processing method and device, storage medium and electronic device
CN113792621B (zh) 一种基于fpga的目标检测加速器设计方法
CN109685208B (zh) 一种用于神经网络处理器数据稀梳化加速的方法及装置
WO2017074440A1 (en) Hybrid synaptic architecture based neural network
CN109472734B (zh) 一种基于fpga的目标检测网络及其实现方法
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
CN117217274A (zh) 向量处理器、神经网络加速器、芯片及电子设备
CN112183732A (zh) 卷积神经网络加速方法、装置和计算机设备
CN110490312B (zh) 一种池化计算方法和电路
CN115222028A (zh) 基于fpga的一维cnn-lstm加速平台及实现方法
CN113240101B (zh) 卷积神经网络软硬件协同加速的异构SoC实现方法
Liu et al. Tcp-net: Minimizing operation counts of binarized neural network inference

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