CN109376843A - 基于fpga的脑电信号快速分类方法、实现方法及装置 - Google Patents

基于fpga的脑电信号快速分类方法、实现方法及装置 Download PDF

Info

Publication number
CN109376843A
CN109376843A CN201811189859.6A CN201811189859A CN109376843A CN 109376843 A CN109376843 A CN 109376843A CN 201811189859 A CN201811189859 A CN 201811189859A CN 109376843 A CN109376843 A CN 109376843A
Authority
CN
China
Prior art keywords
layer
fpga
eeg signals
network structure
cnn network
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
CN201811189859.6A
Other languages
English (en)
Other versions
CN109376843B (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.)
Shandong Normal University
Original Assignee
Shandong Normal University
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 Shandong Normal University filed Critical Shandong Normal University
Priority to CN201811189859.6A priority Critical patent/CN109376843B/zh
Publication of CN109376843A publication Critical patent/CN109376843A/zh
Application granted granted Critical
Publication of CN109376843B publication Critical patent/CN109376843B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了种一种基于FPGA的脑电信号快速分类方法、实现方法及装置,在FPGA上构建适用于脑电信号分类的CNN网络结构模型硬逻辑,并将其中的卷积运算转换为矩阵乘法;建立CNN网络结构模型各层的IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4‑Streaming寄存器片;接收脑电信号训练数据,将浮点型数据转换为预设位数的定点数,训练CNN网络结构模型,调整CNN网络结构模型权重值直至得到分类准确率最高的模型,并将训练好的模型参数存储于DDR存储器,得到实现脑电信号快速分类的FPGA,利用CNN网络结构模型进行脑电信号快速分类。

Description

基于FPGA的脑电信号快速分类方法、实现方法及装置
技术领域
本公开所从属的技术领域为脑机接口(BCI),涉及一种基于FPGA的脑电信号快速分类方法、实现方法及装置。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
脑机接口技术涉及计算机通信与控制技术、神经学、生物医学工程和康复医学领域,它通过对脑电信号进行分析和处理来解释用户意图。当前,通过特殊设备,可以采集不同刺激产生的脑电信号,要想直接通过脑来控制外设,就需要将设备采集的EEG信号进行准确的识别与分类。
目前,脑电信号的采集模式多是通过运动想象来实现,基于运动想象脑电信号分类的生理基础是人关于运动的意念可以引起大脑皮层相关区域某些信号特征的变化,并通过肌肉与神经系统传递给相关肢体产生动作。人的肢体发生实际或想象运动时相关区域特定频段的幅度降低,这种现象称为事件相关去同步化(ERD),而受试者在处于静息或者惰性状态下,特定频段的幅值升高,称之为事件相关同步化(ERS)。将采集的脑电信号进行预处理、特征提取等一系列操作,可实现对信号的分类。
在图像处理领域,基于人工神经网络,尤其是卷积神经网络(CNN)的分类方法在特征提取、目标识别、人脸识别中得到广泛使用。CNN的计算量十分巨大,现有大部分CNN的实现都是基于GPU等硬件的支持,典型的是以INVIDA公司为代表,围绕GPU布局的硬件加速芯片,但其功耗较大,且不适用移动平台。而多核CPU处理并行数据的能力不强对深层网络来说是致命弱点。而ASIC平台具有定制化特点,可迁移性低。现场可编程门阵列(FPGA)中具有大量的硬件逻辑资源、灵活的线路连接特性、以及良好的内存带宽使其具有更大的设计空间,且省去了ASIC方案中所需要的流片过程。因此,现有技术中出现了采用FPGA来实现CNN网络。但是该技术并不成熟,灵活性或通用性有待提高。
现有的基于FPGA实现CNN的硬件结构有的仅侧重于对卷积操作的加速,而对完全连接层的加速并未深入研究,在加速器的灵活性方面,网络的结构和参数不可重新配置。有的将研究重点放了在CNN各层中加速的方法,允许用户可以有选择地执行多个预设CNN算法中的一个算法,但用户在使用该方法来设计针对特定用途所需要的网络时难度较大,通用性有待提高。有的基于FPGA实现
CNN加速时,直接将浮点数据转换为8bit的定点数据,而没有针对不同情境下不同结构的卷积神经网络进行动态量化,从而限制了其通用性。有的基于FPGA实现CNN加速系统中虽然数据重用率高、数据搬移量小,但是对FPGA上珍贵的存储空间消耗过大。有的基于FPGA的卷积操作的加速过程是将每次运行后的数据存至存储器中,直至一个周期输出特征数据计算完成后才进行下一周期的计算,未充分挖掘卷积计算的并行性。
发明内容
针对现有技术中存在的不足,解决在脑电信号分类过程中针对不同网络结构如何兼顾灵活性与可重新配置性的问题,本公开的一个或多个实施例提供了一种基于FPGA的脑电信号快速分类方法、实现方法及装置,实现兼顾扩展性、灵活性与可重新配置性的深层卷积神经网络脑电信号快速分类。
根据本公开的一个或多个实施例的一个方面,提供一种基于FPGA的脑电信号快速分类实现方法。
一种基于FPGA的脑电信号快速分类实现方法,该方法包括:
在FPGA上构建适用于脑电信号分类的CNN网络结构模型硬逻辑,CNN网络结构模型依次包括输入层、卷积层、卷积层、池化层、卷积层、池化层、卷积层、池化层、两个全连接层和输出层,并将其中的卷积运算转换为矩阵乘法;
建立CNN网络结构模型各层的IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4-Streaming寄存器片;
接收脑电信号训练数据,将浮点型数据转换为预设位数的定点数,训练CNN网络结构模型,调整CNN网络结构模型权重值直至得到分类准确率最高的模型,并将训练好的模型参数存储于DDR存储器,得到实现脑电信号快速分类的FPGA;
在FPGA的MCU端采用DMA驱动程序,实现在脑电信号快速分类时从DDR存储器中将训练好的模型参数传输至FPGA片上BRAM,利用CNN网络结构模型进行脑电信号快速分类。
进一步地,所述CNN网络结构模型中在卷积层之后采用Relu激活函数,所述池化层采用最大池化,同时在池化层之后增加Dropout层丢弃部分参数。
进一步地,将所述CNN网络结构模型中的卷积运算转换为矩阵乘法的具体方法步骤包括:
滑动窗口函数根据各层的基础维度、填充维度以及步幅将含有卷积运算该层的输入特征映射扩展为列向量,所述列向量的顺序与卷积核展开顺序一致;
将扩展的列向量与卷积核进行矩阵乘法完成卷积运算。
进一步地,所述CNN网络结构模型使用流接口调用片上BRAM参数在片上处理,在进行矩阵乘法时,将输入映射的输入特征映射图参数顺序进行实时交叉改变数据流顺序,将输入通道设置为数据流顺序中的最后一个参数,卷积核的数据流顺序也相应的将输入通道设置为最后一个参数。
进一步地,通过将待输入CNN网络结构模型的数据存储于多个BRAM加速矩阵乘法、设置折叠因子确定每个时钟周期提取的操作数数量加速矩阵乘法和/或通过流水线技术每个时钟周期存储器均对操作数进行提取加速矩阵乘法。
进一步地,所述CNN网络结构模型各层的IP核是模块化和可参数化的模块,使用C语言在Vivado_hls中实现CNN网络结构模型各层的算法,将各个层的算法程序综合输出成RTL级别的IP核。
进一步地,设置加载权重状态标志,利用CNN网络结构模型进行脑电信号快速分类时重新加载任意层的权重值。
根据本公开的一个或多个实施例的一个方面,提供一种用于脑电信号快速分类的FPGA。
一种用于脑电信号快速分类的FPGA,该FPGA基于所述的一种基于FPGA的脑电信号快速分类实现方法,包括:
CNN网络结构模型,被配置为在FPGA上构建的适用于脑电信号分类的CNN网络结构模型硬逻辑,CNN网络结构模型依次包括输入层、卷积层、卷积层、池化层、卷积层、池化层、卷积层、池化层、两个全连接层和输出层,并将其中的卷积运算转换为矩阵乘法;CNN网络结构模型各层的建立IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4-Streaming寄存器片;训练好的模型参数存储于DDR存储器;
第一MCU,被配置为接收输入的脑电信号,并传输至DDR存储器;接收DDR存储器输出的脑电信号分类结果,并进行输出;
DDR存储器,被配置为存储接收输入的脑电信号、输出的脑电信号分类结果和训练好的模型参数;
第二MCU,被配置为执行DMA驱动程序,控制调度DDR存储器中存储的接收输入的脑电信号和/或训练好的模型参数传输至FPGA的片上BRAM;并控制输出脑电信号分类结果存储于DDR存储器。
根据本公开的一个或多个实施例的一个方面,提供一种基于FPGA的脑电信号快速分类方法。
一种基于FPGA的脑电信号快速分类方法,该方法基于一种用于脑电信号快速分类的FPGA,包括:
接收多导联同步采集的基于运动想象的脑电信号,将各导联的一维信号根据相应的运动想象信号所对应导联的相关性预处理组成多路二维矩阵构成的张量;
将脑电信号预处理后的张量依次通过第一MCU、DDR存储器和第二MCU传输并存储于多个BRAM中,作为训练好的CNN网络结构模型的输入;
将浮点型数据转换为预设位数的定点数量化训练好的CNN网络结构模型,每个时钟周期提取根据预设折叠因子确定数量的操作数,并利用可配置数据流的方式将数据参数输送至对应网络图层中进行并行运算,实现脑电信号快速分类,输出得到的脑电信号分类结果。
进一步地,在该方法中,将各导联的一维信号进行预处理,依次通过FFT变换为θ、α和β三个特征频段信号,根据相应的运动想象信号所对应导联的导联编码分别对应组成三个二维矩阵构成的张量,并将其规格化转化为三个标准矩阵构成的张量,作为CNN网络的输入。
进一步地,在该方法中,多导联同步采集的基于运动想象的脑电信号的具体采集步骤包括:
接收受试者佩戴的脑电信号采集装置上所需通道的信号作为原始信号;
利用汉宁窗以及快速傅里叶变换将各导联采集原始信号的频域特征取出,得到各导联的一维信号。
进一步地,在该方法中,采用基于Delaunary的三次方程插值算法进行矩阵的标准化。
本公开的有益效果:
1、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,提出了一种针对不同网络结构兼顾灵活性与可重新配置性系统的脑电信号快速分类实现方法,通过综合采用软硬件逻辑实现了FPGA的可配置性;通过采用流接口来减少FPGA上存储空间的消耗;通过对CNN网络中各个层的IP分别配置,并采用同步数据流图(SDFG)方法组合各层IP构造特定网络并配置各层参数,实现了FPGA中CNN网络结构的灵活性;
2、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,将AXI4-Streaming寄存器片插入到相邻的IP核之间,从而在AXI4-Streaming主机和从机之间创建了定时隔离,避免违反时序约束;
3、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,在建立CNN模型各层的IP核时,在Vivado_hls中使用C语言分别实现各个层的算法,并将各个层的算法程序综合输出成RTL级别(register transfer level,寄存器传输级)的IP核,该IP核是模块化和可参数化的,提供了最大的可扩展性和灵活性;
3、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,CNN网络中的卷积运算转化为矩阵乘法,避免了CNN网络前向传播的大部分计算延迟,同时采用内存分块同时读取以及流水线的方式提高运算的并行性和数据吞吐量;
4、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,动态地将训练卷积神经网络时所用的32位的浮点数量化为适用于不同实施例时的定点数表示,以相对于32位浮点数更紧凑的方式对数值进行存储和计算,节约有限的板上资源;降低了加速器实现的片上资源使用率的同时保证了精度下降极少;
5、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,将设计好的各层IP核搭建基于同步数据流式的CNN流图模型(SDFG),该SDFG流式I/O模型以最小的内存占用提供了良好的性能,数据I/O采用AXI4-Streaming接口,支持每个时钟周期一个字的流速,整个网络的各个IP独立驱动数据流,形成异构流式架构;通过流式I/O,输出数据立即流出,而不是缓冲在片上存储器中,有效节省了内存占用;
6、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,在运行时可重新加载任意层的权重,根据加载权重状态标志,可在前向传播与重载权重之间切换,同样,框架也允许修改配置各层的尺寸,当权重重新加载时,框架将会传输以目标层维度为开始的数据流,然后是权重数据,如果开头ID与图层不符合,那么该图层会忽略该数据流。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1是根据一个或多个实施例的一种基于FPGA的脑电信号快速分类实现方法流程图;
图2是根据一个或多个实施例的基于运行想象脑电信号采集处理的实验范式及信号处理流程图;
图3是根据一个或多个实施例的选取采集的脑电信号电极位置在大脑皮层上的分布状况图;
图4(a)是根据一个或多个实施例的各个电极在三维空间中的存在状况示意图;
图4(b)是根据一个或多个实施例的保留了各个电极之间的相对距离映射在二维平面上的存在状况示意图;
图5是根据一个或多个实施例的导联在球体上的投影示意图;
图6是根据一个或多个实施例的最终CNN网络结构示意图;
图7是根据一个或多个实施例的卷积运算转换为矩阵乘法的示意图;
图8是根据一个或多个实施例的如何减少输入缓冲区的使用量示意图;
图9是根据一个或多个实施例的如何通过并行计算加速矩阵乘法的示意图;
图10是根据一个或多个实施例的如何通过流水线来提高系统吞吐量的示意图;
图11是根据一个或多个实施例的在Vivado设计界面中设计的最终完整的CNN网络图;
图12是根据一个或多个实施例的AXI4-Streaming控制信号的波形;
图13是根据一个或多个实施例的传输数据流结构顺序图;
图14是根据一个或多个实施例的FPGA端的总体架构图。
具体实施方式:
下面将结合本公开的一个或多个实施例中的附图,对本公开的一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本公开的一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本实施例使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要注意的是,附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合,下面结合附图与实施例对本公开作进一步说明。
本公开的一个或多个实施例采用软硬件资源相结合的方式,使用FPGA平台提供的MCU来实现可编程的软逻辑,利用FPGA其他硬件资源连线来实现硬逻辑。本公开的一个或多个实施例采用的FPGA平台为赛灵思公司开发的PYNQ开发板,它是一个新的开源框架,嵌入式编程人员能够在无需设计可编程逻辑电路的情况下即可充分发挥APSOC的功能,在ARM双核Cortex-A9处理器上可搭载Linux系统,进而可以安装Caffe、Theano等深度学习框架,另载有JupyterNotebooks设计环境的网络服务器、IPython内核和程序包,对软件工程师十分友好。
图1是适用于本实施例的一种基于FPGA的脑电信号快速分类实现方法流程图,如图1所示,
一种基于FPGA的脑电信号快速分类实现方法,该方法包括:
在FPGA上构建适用于脑电信号分类的CNN网络结构模型硬逻辑,CNN网络结构模型依次包括输入层、卷积层、卷积层、池化层、卷积层、池化层、卷积层、池化层、两个全连接层和输出层,并将其中的卷积运算转换为矩阵乘法;
建立CNN网络结构模型各层的IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4-Streaming寄存器片;
接收脑电信号训练数据,将浮点型数据转换为预设位数的定点数,训练CNN网络结构模型,调整CNN网络结构模型权重值直至得到分类准确率最高的模型,并将训练好的模型参数存储于DDR存储器,进一步得到实现脑电信号快速分类的FPGA;
在FPGA的MCU端采用DMA驱动程序,实现在脑电信号快速分类时从DDR存储器中将训练好的模型参数传输至FPGA片上BRAM,利用CNN网络结构模型进行脑电信号快速分类。
进一步地,所述CNN网络结构模型中在卷积层之后采用Relu激活函数,所述池化层采用最大池化,同时在池化层之后增加Dropout层丢弃部分参数。
进一步地,将所述CNN网络结构模型中的卷积运算转换为矩阵乘法的具体方法步骤包括:
滑动窗口函数根据各层的基础维度、填充维度以及步幅将含有卷积运算该层的输入特征映射扩展为列向量,所述列向量的顺序与卷积核展开顺序一致;
将扩展的列向量与卷积核进行矩阵乘法完成卷积运算。
进一步地,所述CNN网络结构模型使用流接口调用片上BRAM参数在片上处理,在进行矩阵乘法时,将输入映射的输入特征映射图参数顺序进行实时交叉改变数据流顺序,将输入通道设置为数据流顺序中的最后一个参数,卷积核的数据流顺序也相应的将输入通道设置为最后一个参数。
进一步地,通过将待输入CNN网络结构模型的数据存储于多个BRAM加速矩阵乘法、设置折叠因子确定每个时钟周期提取的操作数数量加速矩阵乘法和/或通过流水线技术每个时钟周期存储器均对操作数进行提取加速矩阵乘法。
进一步地,所述CNN网络结构模型各层的IP核是模块化和可参数化的模块,使用C语言在Vivado_hls中实现CNN网络结构模型各层的算法,将各个层的算法程序综合输出成RTL级别的IP核。
进一步地,设置加载权重状态标志,利用CNN网络结构模型进行脑电信号快速分类时重新加载任意层的权重值。
本公开的一个或多个实施例中,建立特定的适用于脑电信号分类的CNN网络结构模型,并运用深度学习框架进行网络训练、权值调整,最终得到分类准确率最高的模型,并保留训练好的模型文件,该模型包括一个输入层、一个输出层、三个卷积层、两个池化层和两个全连接层。其中,CNN网络的输入信号集为EEG信号经过预处理后形成的张量;
本公开的一个或多个实施例中,建立CNN模型各层的IP核,在Vivado_hls中使用C语言分别实现各个层的算法,并将各个层的算法程序综合输出成RTL级别的IP核,该IP核是模块化和可参数化的,提供了最大的可扩展性和灵活性。
为了降低使用门槛,让熟悉在CPU和GPU平台上部署CNN的工程师尽快上手,本公开的一个或多个实施例在PYNQ开发板上烧写Linux系统并安装Caffe、Theano等深度学习框架以便设计者可以自行设计网络框架并进行训练。
本公开的一个或多个实施例根据图示6所示的CNN结构层次编写Python语言程序,接下来进行训练、调整更新权重,最终确定的CNN模型在实施脑电信号二分类准确率上可达82.84%,将训练产生的最终CNN模型文件保存下来以备后续调用,除了图6所示部分的CNN参数外,在卷积层之后所采用的激活函数是Relu,池化层采用最大池化,同时在池化层之后运用Dropout层丢弃部分参数,避免过拟合的同时减少了片上资源的利用。
FPGA二维卷积工作的实现:CNN网络的一个重要特性是对输入噪声容忍度很高,该功能意味着网络可以把低精度计算作为一种噪声源,在容纳更少信息的数值格式下仍然能产生准确的预测结果。考虑到PYNQ有限的板上资源(4.9MB片上BRAM和220DSP片),本公开的一个或多个实施例通过实验在精度和片上资源使用率上折中,选择了16位定点数来量化CNN网络。
CNN网络前向传播的大部分计算延迟在于卷积运算,而全连接层的运算类似于卷积运算,因此这两层占据了整个网络正向传播处理时间的大部分,加速卷积计算成为整个项目的关键。本发明中,将卷积运算转换为矩阵乘法,将输入特征映射扩展为列向量,与卷积核执行卷积。同时采用内存分块同时读取以及流水线的方式提高运算的并行性和数据吞吐量。
如图7所示,本公开的一个或多个实施例将卷积计算转换为矩阵乘法的计算,
第一阶段是滑动窗口函数根据各层的基础维度、填充维度以及步幅将输入特征映射转换为列矢量,第二阶段是列矢量与卷积核执行点积。从图7中可以看到,每个列向量包含多个输入特征通道,由于加法是可交换的,因此列向量的顺序只要与卷积核展开顺序一致就不会影响输出结果,为了减少缓冲区的使用量,本公开的一个或多个实施例将输入特征图的参数顺序在FPGA IP核上进行实时交叉,无需额外的延迟成本。
图8展示了如何进行交叉,在默认数据流的顺序中,输入特征映射图按照(批量大小,输入通道,高度,宽度)的顺序排列,卷积核按照(输出通道,输入通道,高度,宽度)的顺序排列,这两类排列方式输入通道都在高度和宽度之前,因此如果我将矩阵拆分为数据流,则在缓冲区缓冲完一个矩阵乘法所有的权重之前,几乎需要缓冲整个特征映射,但是我交叉改变数据流顺序后,让输入通道成为顺序中的最后一个参数,如此所需要的缓冲区数为K*W*C,这大大减少了缓冲区内存的使用。为了有效地消除过多的片外存储器转换开销,本公开的一个或多个实施例运用了流式有向图(SDFG)的模式来构建CNN结构,该模型以同步数据流(SDF)模型为基础,矩阵之间的相乘以及滑动窗户函数单元使用流接口在片上处理。同时,流接口可以避免每层的输出特征映射缓冲在片上存储器上,减少了存储器占用空间。
图9、图10展示了该发明如何通过并行计算和流水线技术加速矩阵乘法。但是要想提高并行性,一方面数据必须存储在多个BRAM中,以便同时获取多个数据,另一方面并行性的提升带来的是DSP资源的使用量增加,本公开的一个或多个实施例提出一个折叠因子来平衡片上资源和速度,折叠因子可以在很大的动态范围内有效地对资源使用情况和速度性能进行平衡,给用户自己设计CNN很大的自由。假定矩阵乘法维数为(M*4)*(4*N),在图9中,存储体(1,3,5,7)存储输入特征映射,存储体(2,4,6,8)存储权重,输入特征图和权重都被分割成很小的存储体以便可以并行获取多个输入数据。在该实施例中,每个时钟周期提取四对操作数至寄存器A1-A4和B1-B4中,使用乘法器和加法器树进行并行计算。计算过程包含了许多寄存器阶段,如图10所示,在下一时钟周期继续存储器读取,而不是等待输出结束,这样就创建了输出流水线,输出数据具有较高吞吐量,整体数据处理速度也得以提高。
关于CNN网络各层IP核的设计以及时序约束问题,传统的FPGA IP核设计流程是使用RTL手动设计组件模块,虽然能在资源使用最少的情况下提供最佳性能,但是大型的RTL设计具有较低的可读性和较高的维护难度,所以本公开的一个或多个实施例跳过了直接书写RTL级语言,在Vivado_hls中用C语言编写CNN各层代码。在离线过程中,完全连接层与卷积层很容易进行转化,池化层的实现可基于滑动窗口函数进行实现。代码编写完毕后进行测试,测试成功后生成RTL代码(即IP核),在Vivado中将生成的各层IP核按照CNN的最终结构以基于SDF范式的流图(SDFG)的形式连接起来,SDF的原理是,只要输入数据可用于节点,该节点将立即开始处理数据并输出。本公开的一个或多个实施例的数据I/O采用AXI4-Streaming接口,该接口支持每个时钟周期一个字的流速,对于每个IP层核,在每个时钟周期,IP会接收输入特征映射的新字,并在新输出字准备就绪时候输出。而在时序上,AXI4-Streaming接口将各IP核互联时,控制信号被综合成异步信号,网络IP核数量的增减会导致路径很长,导致违反时序约束。
为了消除这种时间违规,将AXI4-Streaming寄存器片插入到相邻的IP核之间,从而在AXI4-Streaming主机和从机之间创建了定时隔离,最终网络结构如图11所示。
图12展示了AXI4-Streaming控制信号的波形,在该设计中,需要三个控制信号,即TLAST,TVALID和TREADY。当正在传输当前数据流的最后一个字时,TLAST处于活动状态,在数据流的传播过程中,AXI4从设备需要TLAST来知道数据流的最后一个字是什么时候发送的,以便AXI4从设备知道什么时候停止。无论何时AXI4主机将有效数据传输至AXI4从机,TVALID都处于激活状态,当AXI4从机准备接收来自AXI4主机的新数据时,TREADY有效,在Vivado_hls中将自动管理TVALID和TREADY信号,但本公开的一个或多个实施例需要手动指定TLAST信号什么时候应该处于活动状态。
该发明的灵活性与可重构性体现在使用者可以在框架运行时重新加载任意层的权重。为此在算法中,声明了一个“加载权重”的状态标志,这样可以在前向传播与重载权重之间切换。同样,框架也允许修改配置各层的尺寸,当权重重新加载时,框架将会传输以目标层维度为开始的数据流,然后是权重数据,具体顺序及参数含义如图13所示,如果开头ID与图层不符合,那么该图层会忽略该数据流。
使用FPGA平台提供的MCU来实现可编程的软逻辑,利用FPGA其他硬件资源连线来实现硬逻辑。在MCU端采用PYNQ支持的DMA驱动程序,从DDR外部存储器中将训练好的模型的参数传输到FPGA片上BRAM。
综合以上内容,该发明FPGA端的总体架构可由图14体现出来。FPGA端分为CPU-ARM端以及PYNQ FPGA端。CPU-ARM端的一个关键任务是将DDR存储器上的数据传输至FPGA的片上BRAM,本公开的一个或多个实施例采用了PYNQ提供的DMA驱动程序(即直接内存访问)。在DMA中,数据传输由FPGA独立控制器控制和调度,它侧重于以尽可能大的吞吐量传输数据,从而使CPU和其他FPGA IP核可专注于其他任务,此外,AXI4-Streaming协议和DMA组合可提供更高的数据传输吞吐量。本方法使用FPGA开发板PYNQ-Z1来实现了能够将脑电信号进行分类的16位定点数的CNN网络,该设计具有更高的可扩展性、可重构性以及便携性,在100MHZ的工作频率下,最大理论吞吐量可达到16.7GOP/s,在实施二分类脑电信号准确率可达82.84%,相对于双核CPU有大约19倍的加速。
根据本公开的一个或多个实施例的一个方面,提供一种用于脑电信号快速分类的FPGA。
如图14所示,一种用于脑电信号快速分类的FPGA,该FPGA基于所述的一种基于FPGA的脑电信号快速分类实现方法,包括:
CNN网络结构模型,被配置为在FPGA上构建的适用于脑电信号分类的CNN网络结构模型硬逻辑,CNN网络结构模型依次包括输入层、卷积层、卷积层、池化层、卷积层、池化层、卷积层、池化层、两个全连接层和输出层,并将其中的卷积运算转换为矩阵乘法;CNN网络结构模型各层的建立IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4-Streaming寄存器片;训练好的模型参数存储于DDR存储器;
第一MCU,被配置为接收输入的脑电信号,并传输至DDR存储器;接收DDR存储器输出的脑电信号分类结果,并进行输出;
DDR存储器,被配置为存储接收输入的脑电信号、输出的脑电信号分类结果和训练好的模型参数;
第二MCU,被配置为执行DMA驱动程序,控制调度DDR存储器中存储的接收输入的脑电信号和/或训练好的模型参数传输至FPGA的片上BRAM;并控制输出脑电信号分类结果存储于DDR存储器。
根据本公开的一个或多个实施例的一个方面,提供一种基于FPGA的脑电信号快速分类方法。
一种基于FPGA的脑电信号快速分类方法,该方法基于一种用于脑电信号快速分类的FPGA,包括:
接收多导联同步采集的基于运动想象的脑电信号,将各导联的一维信号根据相应的运动想象信号所对应导联的相关性预处理组成多路二维矩阵构成的张量;
将脑电信号预处理后的张量依次通过第一MCU、DDR存储器和第二MCU传输并存储于多个BRAM中,作为训练好的CNN网络结构模型的输入;
将浮点型数据转换为预设位数的定点数量化训练好的CNN网络结构模型,每个时钟周期提取根据预设折叠因子确定数量的操作数,并利用可配置数据流的方式将数据参数输送至对应网络图层中进行并行运算,实现脑电信号快速分类,输出得到的脑电信号分类结果。
进一步地,在该方法中,将各导联的一维信号进行预处理,依次通过FFT变换为θ、α和β三个特征频段信号,根据相应的运动想象信号所对应导联的导联编码分别对应组成三个二维矩阵构成的张量,并将其规格化转化为三个标准矩阵构成的张量,作为CNN网络的输入。
进一步地,在该方法中,多导联同步采集的基于运动想象的脑电信号的具体采集步骤包括:
接收受试者佩戴的脑电信号采集装置上所需通道的信号作为原始信号;
利用汉宁窗以及快速傅里叶变换将各导联采集原始信号的频域特征取出,得到各导联的一维信号。
进一步地,在该方法中,采用基于Delaunary的三次方程插值算法进行矩阵的标准化。
如图2所示,受试者佩戴电极帽在根据刺激器上显示的提前设计好的实验范式进行左右手的想象活动,采用Neuroscan公司生产的采集系统收集各个电极的脑电信号,并在PC机的可视化界面上实时显示。
由于所用电极帽为64导通道电极,而本公开的一个或多个实施例所要采集的信号主要集中于FC3、FC4、C5、C3、C1、C2、C4、C6、以及CP3、CP4共十个通道(如图3所示),所以本公开的一个或多个实施例选取以上通道的信号作为原始信号。采集系统设置的采样频率为256Hz,利用汉宁窗以及快速傅里叶变换将各导联采集信号的频域特征取出,根据Bashivan等人(2014)和Jensen&Tesche(2002)等人的研究,与记忆操作有关的振荡性皮层活动主要存在θ(4-8Hz)、α(8-13Hz)和β(13-40Hz)三个频带,所以本公开的一个或多个实施例选取了这三个频带作为主要信息处理区域。传统方法会将所有电极的频谱融合为一个特征向量作为分析脑电数据的方法,这就忽略了空间结构。本实施例中本公开的一个或多个实施例将测量结果切块成为若干10*28的二维矩阵,同时将三个频带值对应的数据点组合成三个10*28构成的三维矩阵来表示功率谱特征。
插值算法描述如下:先将分布在三维空间的电极投影到二维平面,如图4(a)所示;本公开的一个或多个实施例将人体头部近似成球体,采用Azimuthal等距投影(AEP)法将三维空间分布的电极映射到二维空间,如图4(b)所示。具体投影方法解释如下,在图5以原点为球心的坐标轴下,球体放置在平面上,想象球体P1处有一光源,光线穿过球体上的每一个点映射至投影平面(z=-r)上,考虑从球体上P1=(0,0,r)到点P2=(x,y,z)的线的方程
P=P1+μ(P2-P1)(1)
应用在z分量则为
r+uμ(z-r)=-r,即μ=2r/(r-z)(2)
然后将公式2代入公式1即可获得任意点(x,y,z)的投影坐标,即将球坐标转换为二维坐标。
然后利用Clough-Tocher方案(基于Delaunary的三次方程插值)对三个10*28的矩阵分别插值为28*28矩阵,要求待插值点在Delaunary三角形内,遍历插值区域内所有的格网点,根据插值点所在的三角形内的三个点,使用三次方程内插出待定点坐标上的值。最终形成由三个28*28矩阵构成的张量作为CNN网络的输入。
应当注意,尽管在上文的详细描述中提及了设备的若干模块或子模块,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
本公开的有益效果:
1、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,提出了一种针对不同网络结构兼顾灵活性与可重新配置性系统的脑电信号快速分类实现方法,通过综合采用软硬件逻辑实现了FPGA的可配置性;通过采用流接口来减少FPGA上存储空间的消耗;通过对CNN网络中各个层的IP分别配置,并采用同步数据流图(SDFG)方法组合各层IP构造特定网络并配置各层参数,实现了FPGA中CNN网络结构的灵活性;
2、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,将AXI4-Streaming寄存器片插入到相邻的IP核之间,从而在AXI4-Streaming主机和从机之间创建了定时隔离,避免违反时序约束;
3、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,在建立CNN模型各层的IP核时,在Vivado_hls中使用C语言分别实现各个层的算法,并将各个层的算法程序综合输出成RTL级别(register transfer level,寄存器传输级)的IP核,该IP核是模块化和可参数化的,提供了最大的可扩展性和灵活性;
3、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,CNN网络中的卷积运算转化为矩阵乘法,避免了CNN网络前向传播的大部分计算延迟,同时采用内存分块同时读取以及流水线的方式提高运算的并行性和数据吞吐量;
4、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,动态地将训练卷积神经网络时所用的32位的浮点数量化为适用于不同实施例时的定点数表示,以相对于32位浮点数更紧凑的方式对数值进行存储和计算,节约有限的板上资源;降低了加速器实现的片上资源使用率的同时保证了精度下降极少;
5、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,将设计好的各层IP核搭建基于同步数据流式的CNN流图模型(SDFG),该SDFG流式I/O模型以最小的内存占用提供了良好的性能,数据I/O采用AXI4-Streaming接口,支持每个时钟周期一个字的流速,整个网络的各个IP独立驱动数据流,形成异构流式架构;通过流式I/O,输出数据立即流出,而不是缓冲在片上存储器中,有效节省了内存占用;
5、本公开所述的一种基于FPGA的脑电信号快速分类方法、实现方法及装置,在运行时可重新加载任意层的权重,根据加载权重状态标志,可在前向传播与重载权重之间切换,同样,框架也允许修改配置各层的尺寸,当权重重新加载时,框架将会传输以目标层维度为开始的数据流,然后是权重数据,如果开头ID与图层不符合,那么该图层会忽略该数据流。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于FPGA的脑电信号快速分类实现方法,其特征在于,该方法包括:
在FPGA上构建适用于脑电信号分类的CNN网络结构模型硬逻辑,CNN网络结构模型依次包括输入层、卷积层、卷积层、池化层、卷积层、池化层、卷积层、池化层、两个全连接层和输出层,并将其中的卷积运算转换为矩阵乘法;
建立CNN网络结构模型各层的IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4-Streaming寄存器片;
接收脑电信号训练数据,将浮点型数据转换为预设位数的定点数,训练CNN网络结构模型,调整CNN网络结构模型权重值直至得到分类准确率最高的模型,并将训练好的模型参数存储于DDR存储器,得到实现脑电信号快速分类的FPGA;
在FPGA的MCU端采用DMA驱动程序,实现在脑电信号快速分类时从DDR存储器中将训练好的模型参数传输至FPGA片上BRAM,利用CNN网络结构模型进行脑电信号快速分类。
2.如权利要求1所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,所述CNN网络结构模型中在卷积层之后采用Relu激活函数,所述池化层采用最大池化,同时在池化层之后增加Dropout层丢弃部分参数。
3.如权利要求1所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,将所述CNN网络结构模型中的卷积运算转换为矩阵乘法的具体方法步骤包括:
滑动窗口函数根据各层的基础维度、填充维度以及步幅将含有卷积运算该层的输入特征映射扩展为列向量,所述列向量的顺序与卷积核展开顺序一致;
将扩展的列向量与卷积核进行矩阵乘法完成卷积运算。
4.如权利要求1所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,所述CNN网络结构模型使用流接口调用片上BRAM参数在片上处理,在进行矩阵乘法时,将输入映射的输入特征映射图参数顺序进行实时交叉改变数据流顺序,将输入通道设置为数据流顺序中的最后一个参数,卷积核的数据流顺序也相应的将输入通道设置为最后一个参数。
5.如权利要求1所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,通过将待输入CNN网络结构模型的数据存储于多个BRAM加速矩阵乘法、设置折叠因子确定每个时钟周期提取的操作数数量加速矩阵乘法和/或通过流水线技术每个时钟周期存储器均对操作数进行提取加速矩阵乘法。
6.如权利要求1所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,所述CNN网络结构模型各层的IP核是模块化和可参数化的模块,使用C语言在Vivado_hls中实现CNN网络结构模型各层的算法,将各个层的算法程序综合输出成RTL级别的IP核。
7.如权利要求1所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,设置加载权重状态标志,利用CNN网络结构模型进行脑电信号快速分类时重新加载任意层的权重值。
8.一种用于脑电信号快速分类的FPGA,该FPGA基于如权利要求1-7中任一项所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,包括:
CNN网络结构模型,被配置为在FPGA上构建的适用于脑电信号分类的CNN网络结构模型硬逻辑,CNN网络结构模型依次包括输入层、卷积层、卷积层、池化层、卷积层、池化层、卷积层、池化层、两个全连接层和输出层,并将其中的卷积运算转换为矩阵乘法;CNN网络结构模型各层的建立IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4-Streaming寄存器片;训练好的模型参数存储于DDR存储器;
第一MCU,被配置为接收输入的脑电信号,并传输至DDR存储器;接收DDR存储器输出的脑电信号分类结果,并进行输出;
DDR存储器,被配置为存储接收输入的脑电信号、输出的脑电信号分类结果和训练好的模型参数;
第二MCU,被配置为执行DMA驱动程序,控制调度DDR存储器中存储的接收输入的脑电信号和/或训练好的模型参数传输至FPGA的片上BRAM;并控制输出脑电信号分类结果存储于DDR存储器。
9.一种基于FPGA的脑电信号快速分类方法,该方法基于如权利要求8所述的一种用于脑电信号快速分类的FPGA,其特征在于,包括:
接收多导联同步采集的基于运动想象的脑电信号,将各导联的一维信号根据相应的运动想象信号所对应导联的相关性预处理组成多路二维矩阵构成的张量;
将脑电信号预处理后的张量依次通过第一MCU、DDR存储器和第二MCU传输并存储于多个BRAM中,作为训练好的CNN网络结构模型的输入;
将浮点型数据转换为预设位数的定点数量化训练好的CNN网络结构模型,每个时钟周期提取根据预设折叠因子确定数量的操作数,并利用可配置数据流的方式将数据参数输送至对应网络图层中进行并行运算,实现脑电信号快速分类,输出得到的脑电信号分类结果。
10.如权利要求9所述的一种基于FPGA的脑电信号快速分类方法,其特征在于,在该方法中,将各导联的一维信号进行预处理,依次通过FFT变换为θ、α和β三个特征频段信号,根据相应的运动想象信号所对应导联的导联编码分别对应组成三个二维矩阵构成的张量,并将其规格化转化为三个标准矩阵构成的张量,作为CNN网络的输入;
或,在该方法中,多导联同步采集的基于运动想象的脑电信号的具体采集步骤包括:
接收受试者佩戴的脑电信号采集装置上所需通道的信号作为原始信号;
利用汉宁窗以及快速傅里叶变换将各导联采集原始信号的频域特征取出,得到各导联的一维信号。
或,在该方法中,采用基于Delaunary的三次方程插值算法进行矩阵的标准化。
CN201811189859.6A 2018-10-12 2018-10-12 基于fpga的脑电信号快速分类方法、实现方法及装置 Expired - Fee Related CN109376843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811189859.6A CN109376843B (zh) 2018-10-12 2018-10-12 基于fpga的脑电信号快速分类方法、实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811189859.6A CN109376843B (zh) 2018-10-12 2018-10-12 基于fpga的脑电信号快速分类方法、实现方法及装置

Publications (2)

Publication Number Publication Date
CN109376843A true CN109376843A (zh) 2019-02-22
CN109376843B CN109376843B (zh) 2021-01-08

Family

ID=65398076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811189859.6A Expired - Fee Related CN109376843B (zh) 2018-10-12 2018-10-12 基于fpga的脑电信号快速分类方法、实现方法及装置

Country Status (1)

Country Link
CN (1) CN109376843B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110495881A (zh) * 2019-08-28 2019-11-26 南方科技大学 一种运动方向的预测方法、装置、设备和存储介质
CN110569713A (zh) * 2019-07-22 2019-12-13 北京航天自动控制研究所 一种利用dma控制器实现数据串并行二维传输的目标探测系统及方法
CN111563582A (zh) * 2020-05-06 2020-08-21 哈尔滨理工大学 一种在fpga上实现及优化加速卷积神经网络的方法
CN111752392A (zh) * 2020-07-03 2020-10-09 福州大学 脑机接口中精准视觉刺激控制方法
CN112434800A (zh) * 2020-11-20 2021-03-02 清华大学 控制装置及类脑计算系统
CN112561043A (zh) * 2021-03-01 2021-03-26 浙江大学 一种类脑计算机操作系统的神经模型拆分方法
CN112561042A (zh) * 2021-03-01 2021-03-26 浙江大学 一种类脑计算机操作系统的神经模型映射方法
CN113298244A (zh) * 2021-04-21 2021-08-24 上海安路信息科技股份有限公司 目标检测中神经网络后处理实现方法、装置、终端及介质
CN113467610A (zh) * 2021-05-28 2021-10-01 北京脑陆科技有限公司 脑机接口bci设备的架构方法、装置、终端及介质
CN113496272A (zh) * 2021-05-10 2021-10-12 中国电子科技集团公司第十四研究所 一种基于异构平台的卷积神经网络运算方法
CN113626756A (zh) * 2020-05-08 2021-11-09 上海大学 神经网络实现端到端的定点快速傅里叶变换量化方法及系统
CN113949592A (zh) * 2021-12-22 2022-01-18 湖南大学 一种基于fpga的对抗攻击防御系统及方法
CN114818837A (zh) * 2022-06-29 2022-07-29 电子科技大学 基于多级神经网络和分块计算的脑电信号智能处理电路
CN115251951A (zh) * 2022-08-02 2022-11-01 哈尔滨理工大学 基于fpga的癫痫脑电信号分类方法、实现方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4129399A1 (en) * 2021-08-03 2023-02-08 Koninklijke Philips N.V. Motion reduction in diagnostic imaging or radiation therapy

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289445A1 (en) * 2013-03-22 2014-09-25 Antony Savich Hardware accelerator system and method
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
US9721203B1 (en) * 2016-11-10 2017-08-01 Google Inc. Performing kernel striding in hardware
CN107550491A (zh) * 2017-09-11 2018-01-09 东北大学 一种多类别运动想象分类识别方法
CN108056865A (zh) * 2017-12-01 2018-05-22 西安科技大学 一种基于云平台的多模态轮椅脑控系统及方法
CN108090565A (zh) * 2018-01-16 2018-05-29 电子科技大学 一种卷积神经网络并行化训练加速方法
CN108229670A (zh) * 2018-01-05 2018-06-29 中国科学技术大学苏州研究院 基于fpga的深度神经网络加速平台
CN207731321U (zh) * 2017-01-04 2018-08-14 意法半导体股份有限公司 硬件加速器引擎
CN108564008A (zh) * 2018-03-28 2018-09-21 厦门瑞为信息技术有限公司 一种基于zynq的实时行人与人脸检测方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289445A1 (en) * 2013-03-22 2014-09-25 Antony Savich Hardware accelerator system and method
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
US9721203B1 (en) * 2016-11-10 2017-08-01 Google Inc. Performing kernel striding in hardware
CN207731321U (zh) * 2017-01-04 2018-08-14 意法半导体股份有限公司 硬件加速器引擎
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN107550491A (zh) * 2017-09-11 2018-01-09 东北大学 一种多类别运动想象分类识别方法
CN108056865A (zh) * 2017-12-01 2018-05-22 西安科技大学 一种基于云平台的多模态轮椅脑控系统及方法
CN108229670A (zh) * 2018-01-05 2018-06-29 中国科学技术大学苏州研究院 基于fpga的深度神经网络加速平台
CN108090565A (zh) * 2018-01-16 2018-05-29 电子科技大学 一种卷积神经网络并行化训练加速方法
CN108564008A (zh) * 2018-03-28 2018-09-21 厦门瑞为信息技术有限公司 一种基于zynq的实时行人与人脸检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
POUYA BASHIVAN ET AL.: "Learning Representations from EEG with Deep Recurrent-Convolutional Neural Networks", 《ARXIV》 *
STYLIANOS I ET AL.: "Latency-driven design for FPGA-based convolutional neural networks", 《2017 27TH INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS (FPL)》 *
STYLIANOS I. VENIERIS ET AL.: "fpgaConvNet: A Framework for Mapping Convolutional Neural Networks on FPGAs", 《2016 IEEE 24TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES (FCCM)》 *
YAMAN UMUROGLU ET AL.: "FINN: A Framework for Fast, Scalable Binarized Neural Network Inference", 《FPGA"17: PROCEEDINGS OF THE 2017 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAYS》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569713B (zh) * 2019-07-22 2022-04-08 北京航天自动控制研究所 一种利用dma控制器实现数据串并行二维传输的目标探测系统及方法
CN110569713A (zh) * 2019-07-22 2019-12-13 北京航天自动控制研究所 一种利用dma控制器实现数据串并行二维传输的目标探测系统及方法
CN110495881A (zh) * 2019-08-28 2019-11-26 南方科技大学 一种运动方向的预测方法、装置、设备和存储介质
CN111563582A (zh) * 2020-05-06 2020-08-21 哈尔滨理工大学 一种在fpga上实现及优化加速卷积神经网络的方法
CN113626756A (zh) * 2020-05-08 2021-11-09 上海大学 神经网络实现端到端的定点快速傅里叶变换量化方法及系统
CN111752392A (zh) * 2020-07-03 2020-10-09 福州大学 脑机接口中精准视觉刺激控制方法
CN112434800B (zh) * 2020-11-20 2024-02-20 清华大学 控制装置及类脑计算系统
CN112434800A (zh) * 2020-11-20 2021-03-02 清华大学 控制装置及类脑计算系统
CN112561043B (zh) * 2021-03-01 2021-06-29 浙江大学 一种类脑计算机操作系统的神经模型拆分方法
CN112561042A (zh) * 2021-03-01 2021-03-26 浙江大学 一种类脑计算机操作系统的神经模型映射方法
CN112561043A (zh) * 2021-03-01 2021-03-26 浙江大学 一种类脑计算机操作系统的神经模型拆分方法
CN113298244A (zh) * 2021-04-21 2021-08-24 上海安路信息科技股份有限公司 目标检测中神经网络后处理实现方法、装置、终端及介质
CN113298244B (zh) * 2021-04-21 2023-11-24 上海安路信息科技股份有限公司 目标检测中神经网络后处理实现方法、装置、终端及介质
CN113496272A (zh) * 2021-05-10 2021-10-12 中国电子科技集团公司第十四研究所 一种基于异构平台的卷积神经网络运算方法
CN113467610A (zh) * 2021-05-28 2021-10-01 北京脑陆科技有限公司 脑机接口bci设备的架构方法、装置、终端及介质
CN113949592B (zh) * 2021-12-22 2022-03-22 湖南大学 一种基于fpga的对抗攻击防御系统及方法
CN113949592A (zh) * 2021-12-22 2022-01-18 湖南大学 一种基于fpga的对抗攻击防御系统及方法
CN114818837A (zh) * 2022-06-29 2022-07-29 电子科技大学 基于多级神经网络和分块计算的脑电信号智能处理电路
CN114818837B (zh) * 2022-06-29 2022-10-14 电子科技大学 基于多级神经网络和分块计算的脑电信号智能处理电路
CN115251951A (zh) * 2022-08-02 2022-11-01 哈尔滨理工大学 基于fpga的癫痫脑电信号分类方法、实现方法及装置

Also Published As

Publication number Publication date
CN109376843B (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
CN109376843A (zh) 基于fpga的脑电信号快速分类方法、实现方法及装置
CN106529670B (zh) 一种基于权重压缩的神经网络处理器、设计方法、芯片
US20190286972A1 (en) Hardware accelerated neural network subgraphs
CN106447034B (zh) 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN106951926A (zh) 一种混合架构的深度学习系统方法及装置
CN108280514A (zh) 基于fpga的稀疏神经网络加速系统和设计方法
CN104915322B (zh) 一种卷积神经网络硬件加速方法
CN108764466A (zh) 基于现场可编程门阵列的卷积神经网络硬件及其加速方法
CN107341544A (zh) 一种基于可分割阵列的可重构加速器及其实现方法
CN103049241B (zh) 一种提高cpu+gpu异构装置计算性能的方法
Minkovich et al. HRLSim: A high performance spiking neural network simulator for GPGPU clusters
CN109472356A (zh) 一种可重构神经网络算法的加速装置及方法
CN108652661A (zh) 使用capi加速的fpga医学超声成像系统
CN107729995A (zh) 用于加速神经网络处理器的方法和系统及神经网络处理器
CN209231976U (zh) 一种可重构神经网络算法的加速装置
CN107844829A (zh) 用于加速神经网络处理器的方法和系统及神经网络处理器
CN110399211A (zh) 机器学习的分配系统、方法及装置、计算机设备
CN108921289B (zh) 一种fpga异构加速方法、装置及系统
CN115640851A (zh) 一种适用于测试仪器的神经网络高效推理方法
CN1996263A (zh) 一种实时位真仿真开发系统及其方法
Solazzo et al. Hardware design automation of convolutional neural networks
Li et al. A novel memory-scheduling strategy for large convolutional neural network on memory-limited devices
CN107609646A (zh) 一种残差网络实现方法、系统、设备及计算机存储介质
CN103678888A (zh) 一种基于欧拉流体模拟算法的心脏血液流动示意显示方法
Chen et al. Exploiting on-chip heterogeneity of versal architecture for gnn inference acceleration

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210108

Termination date: 20211012

CF01 Termination of patent right due to non-payment of annual fee