[发明专利]基于FPGA的脑电信号快速分类方法、实现方法及装置有效
申请号: | 201811189859.6 | 申请日: | 2018-10-12 |
公开(公告)号: | CN109376843B | 公开(公告)日: | 2021-01-08 |
发明(设计)人: | 杨济民;郑文凯;刘丹华;刘杰 | 申请(专利权)人: | 山东师范大学 |
主分类号: | G06N3/02 | 分类号: | G06N3/02 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 杨哲 |
地址: | 250014 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 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网络结构模型中的卷积运算转换为矩阵乘法的具体方法步骤包括:
滑动窗口函数根据各层的基础维度、填充维度以及步幅将含有该层卷积运算的输入特征映射扩展为列向量,所述列向量的顺序与卷积核展开顺序一致;
将扩展的列向量与卷积核进行矩阵乘法完成卷积运算;
所述CNN网络结构模型使用流接口调用片上BRAM参数在片上处理,在进行矩阵乘法时,将输入映射的输入特征映射图参数顺序进行实时交叉改变数据流顺序,将输入通道设置为数据流顺序中的最后一个参数,卷积核的数据流顺序也相应的将输入通道设置为最后一个参数;
通过将待输入CNN网络结构模型的数据存储于多个BRAM来加速矩阵乘法、设置折叠因子确定每个时钟周期提取的操作数数量来加速矩阵乘法和/或通过流水线技术每个时钟周期存储器均对操作数进行提取来加速矩阵乘法;
所述CNN网络结构模型各层的IP核是模块化和可参数化的模块,使用C语言在Vivado_hls中实现CNN网络结构模型各层的算法,将各个层的算法程序综合输出成RTL级别的IP核;
设置加载权重状态标志,利用CNN网络结构模型进行脑电信号快速分类时重新加载任意层的权重值。
2.如权利要求1所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,所述CNN网络结构模型中在卷积层之后采用Relu激活函数,所述池化层采用最大池化,同时在池化层之后增加Dropout层丢弃部分参数。
3.一种用于脑电信号快速分类的FPGA,该FPGA基于如权利要求1-2中任一项所述的一种基于FPGA的脑电信号快速分类实现方法,其特征在于,包括:
CNN网络结构模型,被配置为在FPGA上构建的适用于脑电信号分类的CNN网络结构模型硬逻辑,CNN网络结构模型依次包括输入层、卷积层、卷积层、池化层、卷积层、池化层、卷积层、池化层、两个全连接层和输出层,并将其中的卷积运算转换为矩阵乘法;CNN网络结构模型各层的建立IP核,采用同步数据流法将CNN网络结构模型中各层的IP核连接,并在相邻IP核之间插入AXI4-Streaming寄存器片;训练好的模型参数存储于DDR存储器;
第一MCU,被配置为接收输入的脑电信号,并传输至DDR存储器;接收DDR存储器输出的脑电信号分类结果,并进行输出;
DDR存储器,被配置为存储接收输入的脑电信号、输出的脑电信号分类结果和训练好的模型参数;
第二MCU,被配置为执行DMA驱动程序,控制调度DDR存储器中存储的接收输入的脑电信号和/或训练好的模型参数传输至FPGA的片上BRAM;并控制输出脑电信号分类结果存储于DDR存储器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东师范大学,未经山东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811189859.6/1.html,转载请声明来源钻瓜专利网。