一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于分布式的脑电信号计算方法与流程

2022-11-14 22:34:52 来源:中国专利 TAG:


1.本发明涉及一种基于分布式的脑电信号计算方法,主要应用于脑机接口应用系统,将脑电信号的完整计算过程切分之后以不同计算程序的方式部署在不同的计算节点上运行,具备更好的灵活性。


背景技术:

2.脑机接口(brain-computer interface,bci),指在人大脑与外部设备之间创建连接,实现脑与设备的信息交换。在单向脑机接口的情况下,计算机接受大脑传来的信号,通过处理之后转化为大脑的真实想法,完成动作控制、情感分析等。脑机接口通常分为非侵入式和侵入式,其中非侵入式对脑部侵入的程度低、风险小,通过安置在大脑皮层表面的设备来接收脑电信号,并发送给计算机进行计算处理,得到大脑此刻的想法并可以转化到现实世界中的行为,如通过大脑中想象某个移动手臂的动作就能够控制机械臂成功完成一次移动操作。
3.从大脑皮层所接收到的脑电信号通常包含很多干扰信号,包括工频、肌电等,需要通过多种滤波算法进行过滤,计算出大脑真实的想法。目前很多脑电信号的计算方法是将脑电信号采集设备和计算机进行连接,从大脑皮层所采集到的信号直接传输给计算机进行计算,计算机再连接机械臂之类的响应设备,计算机将脑电信号的计算结果传输给响应设备,实现对设备的控制。在这个场景中,计算机上主要进行的计算过程有:接收来自信号采集设备的脑电信号并解码;对解码后的脑电信号进行滤波,获取到有意义的脑电信号;对滤波后的脑电信号进行分类,识别出预期输出的结果。
4.将脑电信号的接收、滤波、分类等所有计算过程都在一台计算机上进行会降低脑机接口应用的灵活性,影响其在现实世界中的使用范围。本发明将基于分布式计算的思想,将这三个过程分别部署到三台计算节点上,计算节点之间通过网络相互传输数据,每一个过程都以一个独立运行的计算程序来完成,程序能够根据不同的应用场景运行在不同的计算节点上,如手机、平板、嵌入式主机等,提升脑机接口的应用灵活性。本发明所提出的方法能够有效扩展脑机接口应用的场景。


技术实现要素:

5.本发明的目的在于提出一种基于分布式的脑电信号计算方法,将脑机接口应用的不同计算过程根据不同的应用场景以计算程序的方式部署到不同的计算节点上,能够提升脑机接口应用的灵活性。
6.为实现上述目的,本发明将脑电信号的计算过程进行切分,主要包括脑电信号的接收、滤波、分类三个步骤。在脑电信号的计算过程中,本发明设计了一个管理程序,用于对脑电信号的三个步骤进行参数配置、过程控制、脑电信号查看等,管理程序同样可以部署在不同的计算节点上,如平板等。
7.本发明包括三个脑电信号的计算程序和一个管理程序,如图1所示,脑电信号在本
发明的各个程序间的计算过程为:
8.1)来自大脑皮层脑电信号采集硬件设备的脑电信号通过网络发送至接收程序,该程序负责接收硬件设备的数据并解码成脑电信号;
9.2)解码后的信号发送至脑电信号滤波程序,该程序采用信号处理算法对脑电信号进行滤波,包括陷波滤波、带通滤波、高通滤波、自适应滤波等,滤波后的脑电信号去除了电流、肌肉等带来的干扰;
10.3)将滤波后的脑电信号发送给分类程序,该程序根据线性分类器、神经网络等将脑电信号分成特定的类别,并将分类结果输出给响应的应用中,通常情况下该程序会与具体的应用绑定在一起形成一个完整的应用;
11.4)从分类程序的输出结果还会反馈给接收程序,其目的主要是用于对整个脑电信号计算过程的计算准确率调整,帮助提升分类结果的准确性。
12.本发明中三个计算程序和管理程序是分布式部署在不同的计算节点上,需要通过特定的协议来规范化程序之间的数据交互与过程交互。协议主要用来规范数据处理方式、参数设置方式、应用方式等。
13.本发明中脑电信号接收程序、滤波程序、分类程序这三个计算程序之间的数据传输过程是单向的,分类程序与接收程序之间的数据传输是反馈,最终形成的是一个循环;管理程序和这三者之间则是双向的数据传输过程。管理程序将配置参数、控制指令等数据发送给三个计算程序,实现对计算程序的参数设置和状态控制,参数设置主要对各个计算程序运行过程中的配置信息进行设置,如开启的通道、采用的滤波算法等,状态控制主要对各个计算程序的启动、暂停、终止等状态进行控制;三个计算程序则将反馈结果、监控数据等发送给管理程序,在管理程序上能够看到三个计算程序当前的参数设置信息、运行状态信息,还能显示当前所接收到的脑电信号图、滤波后的脑电信号图等。
14.本发明中四个程序组成一个完整的脑机接口应用系统,脑机接口应用系统包括5种状态,分别是启动阶段、初始化阶段、挂起阶段、运行阶段、终止阶段。如图2所示,5种状态能够表示一个脑机接口应用系统的工作过程,具体的工作过程为:
15.1)四个程序在不同的计算节点上启动进入启动阶段;
16.2)四个程序之间通过网络通信相互建立连接,连接完成后四个程序完成初始化阶段;
17.3)管理程序对三个计算程序的参数进行设置,设置完成后四个程序处于挂起阶段;
18.4)在管理程序上通过主动操作来控制三个计算程序开始运行,此时接收程序开始从大脑皮层的脑电
19.信号采集设备实时获取数据,滤波程序则进行脑电信号的滤波,分类程序则对滤波后的脑电信号进行
20.分类,该接收、滤波、分类的实时计算过程一直处于运行状态中,此时四个程序处于运行阶段;
21.5)在管理程序上通过主动操作来控制三个计算程序终止或暂停,如选择终止则计算程序进入终止阶
22.段,如选择暂停则计算程序进入挂起阶段。
23.本发明中滤波程序的计算量通常比较大,脑电信号采集设备是多通道的,有8通道的,也有64通道的,每个通道所采集的数据分别是相互独立的,非常适合进行并行滤波。对于具备多核处理器的计算节点,本发明采用多核并行的方式来处理多个通道的数据,提高滤波程序的性能。
24.本发明的有益效果是提升脑机接口应用的灵活性,克服了脑电信号计算过程在一台计算节点上使得脑机接口应用受限的问题,将脑电信号的接收、滤波、分类三个步骤以计算程序的形态分布式地部署在不同的计算节点上,另外在其他计算节点上部署管理程序用于管理这三个步骤,最终实现在不同的计算节点上完成对脑电信号的计算,提高脑机接口应用的灵活性。
附图说明
25.图1为基于分布式的脑电信号计算过程图;
26.图2为脑机接口应用系统的工作过程图。
具体实施方式
27.为了更好地描述本发明如何实现基于分布式的脑电信号计算方法,对该方法中的四大程序的实现方式、规范协议和计算过程等进行一些详细的说明。
28.本发明中三个计算程序能够完成特定应用场景下的脑电信号的处理过程,管理程序用于对三个计算程序进行设置与控制。
29.三个计算程序之间的传输的数据是单向的,包括脑电信号数据、状态数据。脑电信号数据是采集的脑电信号数据,主要是浮点类型的数值,通常单位是微伏;状态数据用来表示模块当前的状态,通常在脑电信号数据和控制数据之前传输。
30.管理程序和三个计算程序之间传输的数据是双向的,传输的数据种类比较多,包括状态数据、参数数据、可视化数据、系统命令数据。状态数据用来反映通信错误或计算程序的主机错误等;参数数据主要是各个计算程序接收来自管理程序的参数设置信息,在计算程序上进行设置;可视化数据包括从三个计算程序发送至管理程序的脑电信号数据和参数设置信息,在管理程序上可视化地显示脑电信号,以及显示三个计算程序当前的参数设置信息;系统命令数据通常是一个元数据,用于切换三个计算程序的内部状态来控制各个程序的行为,例如开始实时接收并计算脑电信号,或者停止接收脑电信号。
31.本发明在三个计算程序和一个管理程序之间的数据交互和过程交互共设计四种规范协议,分别是同步协议、预置参数化协议、目标选择协议和过程控制协议。
32.同步协议主要对脑电信号的计算数据规模进行了规范,将所需要计算分析的脑电信号限制在一定时间区间内,即每次以固定的时间区间内所发生的脑活动产生的数据为分析对象,当该时间区间内的数据分析完毕后,再接着分析下一个时间区间内的数据。
33.预置参数化协议主要对各个计算程序的参数设置进行了规范,将所有计算程序设计为能预置参数,因为脑机接口应用存在一些固定的参数可以预先配置。另外,同一实验对象在进行正式的脑机接口实验前,可以先进行一些预备实验,在预备实验的过程中根据用户的生理特征来优化与用户匹配的部分参数。
34.目标选择协议则对一类目标应用进行了规范,将脑电信号在分类程序的输出限定
为一个有限指令集,即每次对接收的脑电信号进行滤波和分类后输出的结果是该有限指令集中的一个,例如p300和ssvep这两种脑机接口应用范式就是让实验者通过注视一组目标中的一个来完成目标的选择。
35.过程控制协议则对另一类常见的目标应用进行了规范,将脑电信号在分类程序的输出限定为一个有限指令集,该有限指令集用来表示下一步动作的指令,即每次对接收的脑电信号进行滤波和分类后输出的结果用来表示下一次应该执行什么动作,例如运动想象这种脑机接口应用范式就是让实验者通过想象一个动作来完成光标运动、打开或关闭机器人手等。
36.本发明将三个计算程序和管理程序组成为脑机接口应用系统,简称为系统,系统的工作状态有:启动阶段、初始化阶段、挂起阶段、运行阶段、终止阶段。在这5个状态中,每一阶段系统的工作方式各不相同。
37.启动阶段:每个计算程序向管理程序发送对参数和状态的请求,管理程序会配置完请求然后返回。一旦接收程序接收到所有的参数和状态,它开始去连接滤波程序,在连接成功之后,发送一个正的状态消息给管理程序。同样,滤波程序会接着去连接分类程序,分类程序会去连接接收程序。在管理程序收到三个计算程序的所有正的状态消息后,系统才完成初始化,然后等待管理程序的下一步指令。
38.初始化阶段:管理程序在这一阶段修改参数或状态的值,修改的方式是人工输入或者从参数文件加载。管理程序使用相同的网络连接将这些数据返回给三个计算程序,使用一个列表的数据结构来包含所有的全局参数和状态。在该全局参数中还包含了三个计算程序上分别用来侦听来自其他计算程序网络连接的ip地址和端口号。三个计算程序在接收到管理程序的全局参数后,会设置其需要连接的其他计算程序的ip地址和端口号。随后,每个计算程序都会打开一个需要连接的目标计算程序的客户端连接,如接收程序就会打开客户端连接到滤波程序,滤波程序就会打开客户端连接到分类程序。
39.在三个计算程序之间相互完成网络连接之后,每个计算程序会向管理程序返回确认消息,确认该模块准备使用当前的参数和状态来处理脑电信号数据。管理程序通过往接收程序模块发送一个空的信号属性消息来开启一个准备阶段,接收程序向滤波程序发送一个消息来明确其输出数据的属性,滤波程序也一样会向分类程序发送一个消息来明确其输出数据的属性。
40.三个计算程序使用接收的参数信息来配置和初始化,完成之后每个计算程序发送一个状态消息给管理程序,该状态消息用来表示初始化成功或失败。只有当所有计算程序都确认成功配置参数后才代表初始化阶段结束。
41.挂起阶段:在初始化阶段结束后,三个计算程序都已经完成参数的配置。所有程序的参数、状态都完成全局的定义与设置,并且已经生效。系统状态的改变会通过一个特定运行状态变量来影响,该变量的初始值为0,代表系统是挂起的。当系统处于挂起阶段的时候,任何计算程序都可以更新参数,并发送给管理程序。当系统处于挂起阶段的时候,在程序间传输的数据通常是参数设置信息,并且在管理程序能够看到这些参数的变化情况。
42.运行阶段:当管理程序设置特定运行状态变量的值为1后,其会将该状态变量发送给接收程序,接收程序在收到该变量后就开始接收并处理来自脑电信号采集硬件设备的数据,并发送给后一个计算程序,此时整个脑机接口应用系统就处于运行阶段。在系统处于运
行阶段期间,管理程序可能会修改运行状态变量,但只会发送给接收程序,而不会发送给滤波程序和分类程序。
43.终止阶段:对于任意一个计算程序,管理程序通过关闭与其的连接来表示系统的正常关闭。当一个计算程序与任意其他已经连接的计算程序断开网络连接时会发生系统异常关闭,该计算程序就会发送一个错误消息给管理程序后停止运行,然后管理程序会关闭与其他计算程序的网络连接。
44.本发明中滤波程序的计算量通常比较大,适合采用多核并行计算来提升多通道脑电信号数据的计算效率。本发明在单个cpu上利用多核计算资源来并行计算,而不是在多个cpu上进行多核计算。在具体的脑机接口应用中,脑电信号会有很多个通道来同时采集,有16通道、32通道、64通道,而每一个通道之间的数据又相互独立,非常适合用不同的线程来处理不同通道中的数据。假设脑电采集设备一共有n个通道同时采集脑电信号,而部署滤波程序的计算节点的cpu上有m核,如果n<m,则直接在滤波算法中创建n个线程来分别处理n个通道的数据;而如果n>m,则说明不可能每个线程都只处理一个通道的数据,因此采用循环分配的方法将1,2,...,m个通道依次分配给1到m个核,然后再将m 1,m 2,...个通道依次分配给1到m个核,直到所有的通道都分配给固定的核,然后再在每个核上对所需要计算的通道数据进行滤波。最后再将每个线程的处理结果汇总后发送至分类程序。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献