各位好,很荣幸能和大家分享我的论文研究成果,我所选取的论文是丹尼斯·麦克法兰和乔纳森·沃尔珀与2004年在IEEE的期刊上发表的论文BCI2000 - A General-Purpose Brain-Computer Interface (BCI) System,也就是 BCI2000:通用脑机接口系统。这是BCI领域中非常经典的一篇论文,也是一篇和适合入门的学术型论文。
我将会从以下四个方面进行系统的讲解,即脑机接口技术的概述、BCI2000系统的设计、BCI2000系统的初始实现、以及BCI2000系统的在线评价和验证四个方面。
首先,我们先来简单的了解一下BCI技术。
脑计算机接口(BCI)技术旨在通过大脑活动来控制外部系统。 这种系统的主要部分之一是软件接口,它在大脑和计算机或连接到计算机的附加设备之间进行清晰的通信。
人脑被认为是宇宙中最复杂的系统。 现代科学目前试图理解大脑各个部分之间复杂的相互联系。
有许多科学学科涉及人脑;例如数值神经科学、神经信息学、信息学或医学。 他们每个人都带来了理论,可以解释不同的大脑活动。 数值神经科学带来了数学和生物物理模型,它们能够模拟神经元和神经网络中的基本过程。 神经信息学的主要目标是系统地开发数据库,旨在收集信息,如大脑形态、脑部件解剖及其功能连接、脑电生理学、磁共振获得的脑状态及其整合。此外,它寻求开发建模工具,其目的是最准确地模拟大脑活动。 在信息学中,复杂网络非常适合于模拟一个复杂的系统,其中大脑包括。 医学的贡献是无可争议的,特别是在脑解剖研究中。
这就牵扯到了BCI技术。脑机接口(brain computer interface)BCI技术是一种涉及神经科学、信号检测、信号处理、模式识别等多学科的交叉技术。第一次BCI国际会议给出的BCI的定义是:脑-计算机接口是一种不依赖于正常的由外围神经和肌肉组成的输出通路的通讯系统。
BCI系统可以把大脑发出的信息直接转换成能够驱动外部设备的命令,并代替人的肢体或语言器官实现人与外界的交流以及对外部环境的控制。
BCI完全不依赖肌肉和外围神经的参与,直接实现脑和计算机的通信.BCI系统可以把大脑发出的信息直接转换成能够驱动外部设备的命令,并代替人的肢体或语言器官实现人与外界的交流以及对外部环境的控制。.BCI的基本工作原理:通过对特征信号进行分类识别,分辨出引发脑电变化的动作意图,再用计算机语言进行编程,把人的思维活动转变成命令信号驱动外部设备,实现在没有肌肉和外围神经直接参与的情况下,人脑对外部环境的控制。BCI技术的核心是吧用户输入的脑电信号转换成输出控制信号或命令的转换算法。寻找合适的信号处理与转换算法,使神经电信号能够实时、快速、准确地通过BCI系统转换成可以被计算机识别的命令或操作信号。
原理上,BCI系统一般由输入、输出和信号处理及转换等功能环节组成:
①、输入环节的功能是产生、检测包含有某种特性的脑电活动特征信号,以及对这种特征用参数加以描述。我们常说的脑电信号实际上指的是特征性脑电信号,即人脑在特定的外部刺激或思维任务下可以产生具有一定时间或频率特征的脑电信号。
②、信号处理的作用是对原信号进行处理分析,把连续的模拟信号转换成用某些特征参数(如幅值、自回归模型的系数等)表示的数字信号,以便计算机的读取和处理,并对这些特征信号进行识别分类,确定其对应的意念活动
③、信号转换是根据信号分析、分类之后得到的特征信号产生驱动或操作命令,对输出设备进行操作,或直接输出表示患者意图的字母或单词,达到与外界交流的目的。作为连接输入和输出的中间环节,信号分析与转换时BCI系统的重要组成部分,在训练强度不变的情况下,改进信号分析与转换的算法,可以提高分类的准确性,以优化BCI系统的控制性能。
④、输出装置包括指针运动、字符选择、神经假体的运动以及对其他设备的控制等
实际上还能将很多,但在这里就不赘述了,各位如果有兴趣,可以在课后和我一起讨论。
BCI2000由四个模块组成:操作员(operator)、信号源(source storage)、信号处理(signal processing)和应用程序(user application)。操作员(或者说经营者)(operator)模块充当系统配置(system configuration)的中央继电器,并将结果在线形象化地(visualization)呈现给研究者,相当于我们的控制界面。它还定义了操作的开始和偏移。在操作过程中,信息(即信号、参数或事件标记)从源到信号处理、到用户应用、再回到源。
可以看出来,BCI2000是基于一个可以描述任何BCI系统的模型。在这个系统中,这四个模块可以通过基于TCP/IP的有文件记录的网络协议进行通信。 因此,每个都可以用任何编程语言编写,并且可以在网络上的任何机器上运行。
下面,我们按照信号采集-处理-输出的方式,看一下这四个模块的作用
1)源模块:源模块数字化和存储大脑信号,并将它们传递下去,而不需要任何进一步的预处理来处理信号。 由数据采集和数据存储组件组成… 数据存储将获取的脑信号样本连同所有相关系统变量(如系统参数或所有当前事件标记)存储在数据文件中。 记录的文件格式由一个ASCII标头组成,然后是二进制信号样本和事件标记值。 文件格式可以容纳任意数量的信号通道、系统参数或事件标记。
2)信号处理模块:信号处理模块将来自大脑的信号转换成控制输出设备的信号。 这种转换有两个阶段:特征提取和特征翻译。在第一阶段,从源模块接收的数字化信号接受提取信号特征的程序(例如,皮层神经元的放电速率、诱发电位的幅度等)。 在第二阶段,一种转换算法将这些信号特征转换为发送给用户应用模块的控制信号。 信号处理的两个阶段中的每一个阶段都由信号算子的级联组成,每个算子将输入信号转换为输出信号。 单个信号算子(如空间滤波器、时间滤波器、线性分类器)彼此独立,因此可以在不影响他人的情况下组合或互换。实际上就可以理解为一个小信号模块,也就是算子的串联传,通过一系列操作,尽可能的得到我们想要的特征信号,并提高信噪比。
3)用户应用模块:用户应用模块接收来自信号处理的控制信号,并使用它们驱动应用程序。在大多数当今的BCI中,用户应用程序是在计算机屏幕上直观地显示的,包括目标、字母或图标的选择。 用户反馈也可能是听觉或触觉。 选择以各种方式表示。 一些BCI还提供临时输出,例如在选择项目之前向项目移动光标。 其他研究正在探索BCI控制的神经假体或矫形提供手闭合。 每个应用程序都可以用BCI2000实现。这里说明这个BCI2000系统是一个通用型的系统,而并不是只针对于某一种环境或者某一种要求下的定制型系统。
4)操作员模块:操作员模块定义系统参数(例如,特定应用程序中的试验长度或特定的信号处理变量)以及操作的开始和偏移。 系统模型没有指定这些定义是如何定义的-它们可以来自自动算法和/或调查员。此外,操作员可以显示从任何其他模块发送给它的信息(例如,文本消息或信号图),而不需要任何关于这些信息性质的事先信息。 这使得研究人员能够控制一个实验,并使用相同的操作员模块接收关于在线事件的实时信息(例如,显示未处理的大脑信号),而不管实验的细节如何。
下面,我们来看一下这个系统是如何实现的。
首先来看平台
BCI2000系统模型可以容纳任何编程语言、任何开发环境和任何操作系统。 对于论文作者的初始实现,他们选择C++作为编程语言,因为它是能够满足所有系统需求的最高级别语言,Borland C++ 生成器作为开发环境,因为它为C++提供了一个优秀的快速应用开发平台。
论文作者选择Microsoft Windows™2000/XP作为操作系统,因为它提供了最辅助的组件(例如硬件设备驱动程序)。 与大多数操作系统一样,它不是一个实时系统(即事件的时间过程不是确定性的)。 因此,为了确保它满足实时要求,我们仔细设计了软件,以尽可能少地依赖潜在的冗长的操作系统功能,并评估了BCI2000的代表性实现的在线操作的时间过程。他们在Windows™2000/XP(但不是Windows™95/98/ME)在现有硬件上提供了非常令人满意的性能。所以,上文中的not windows 95/98/ME并不是说这个系统不能再上述操作系统中运行,而是指当时论文作者并没有在95以后的版本上进行性能测试,这也是限于当时的硬件设备条件而言的。而对我们来说,我们可以进行自己的性能测试。
而对于模块,作者生成他们进行了两种不同硬件配置和三种不同数据采集/信号处理下实现的性能度量。并得到了以下的结果。
首先,还是来看信号源模块
论文作者在论文发表时已经创建了五个源模块实现。其中三个控制来自不同制造商的A/D转换器板,一个为脑电记录系统提供支持,第五个是用于系统开发和测试的信号发生器。在A/D转换板的情况下,大脑信号必须首先经过调节(即带通滤波和放大),以便能够被A/D硬件检测到。这些源实现中包含的数据存储组件经过高度优化,因此可以在对实时操作延迟影响最小的情况下使用许多数据通道和/或高数字化率。因此,数据信道的最大可能数量及其相关的数字化率主要由数据采集硬件确定。
然后,是信号处理模块,这里也是不管哪个BCI系统中最重要最复杂的模块
信号处理的第一阶段,特征提取,从数字化的脑信号中提取特征。在迄今为止的所有实现中,特征提取由一系列三个信号算子组成。
第一信号算子是执行输入矩阵(即样本块)的线性变换的校准例程,以便将输入信号(即a/D单位的值矩阵)转换为以微伏为单位的输出信号。
第二信号算子是执行线性变换(即,与校准模块的输出的权重的矩阵乘法)的空间滤波器,使得每个输出信道是所有输入信道的线性组合。该信号算子可容纳任何线性空间滤波器操作(例如拉普拉斯推导或共同平均、独立分量或共同空间模式)。
第三个信号算子是时间滤波器。迄今为止,我们已经实现了五种变体:慢波滤波器、5个自回归谱估计、有限脉冲响应滤波器、从神经元动作电位提取放电率的峰值检测例程和平均诱发反应(如P300)的滤波器。
信号处理的第二阶段,即转换算法,将信号特征转换为控制信号,供用户应用程序使用。
在迄今为止的所有实现中,它都由两个信号运算符组成。
第一信号算子是执行线性变换(即,分类矩阵与时间滤波模块的输出的矩阵乘法)的分类器,使得每个输出信道是所有输入信道的线性组合。例如,当时间滤波器的输出是功率谱时,分类器可以在将定义的信道和频率乘以指定的权重后将它们相加。
转换算法中的第二个信号算子是一个规格化器,它对每个输出信道执行线性变换,以创建具有零平均值和特定值范围的信号。归一化器的输出是信号处理模块的输出。
对于BCI2000的某些实现,此过程需要有关用户应用程序模块(记录在事件标记中)的当前状态的信息。为了尽量减少这一要求所需的模块相互依赖性,BCI2000允许研究者定义计算基线的时间段,而不是将这些信息硬编码到软件中。换句话说,我们不是通过编写相关的软件代码将信号处理和用户应用模块显式地捆绑在一起,而是将此职责分配给操作员(他必须通过菜单输入此信息)。因此,用户应用模块中的改变要求信号处理模块仅被重新配置而不是重写。
将信号处理分解为一系列信号算子,提供了高度的互换性和独立性。例如,从产生功率谱的时间滤波器到产生平均诱发反应的时间滤波器的改变不需要在下一阶段进行任何改变,即线性分类器。因此,当前的实现可以很容易地适应各种不同的信号处理方法,并且其他方法(例如那些使用非线性分类器的方法)可以用最小的努力实现。
下面是用户应用模块。到目前为止,我们已经实现了七个不同的用户应用:四个光标移动应用、一个用于评估潜在用户的应用、一个可以呈现用户可选择的听觉和视觉刺激的应用以及一个基于诱发电位的拼写应用。
在用户评估应用中,当特定目标出现在屏幕上并且评估与该运动或图像相关联的信号特征时,指示用户执行特定运动或运动图像。不向用户提供基于这些功能的反馈。
对于操作员模块,上文提到了,由于允许研究者定义计算基线的时间段,所以相当于提高了对操作员的技术要求。在此模块中,会为研究人员提供一个图形界面,显示当前系统参数和其他模块传送的实时分析结果(例如频谱)。它允许调查员启动、停止、暂停、恢复或重新配置系统操作。在典型的BCI2000配置中,用户反馈显示在一个监视器上,操作员模块的图形界面显示在第二个监视器上。
可以看到,与上文不同,这里还增加了一个离线分析工具,这是因为BCI2000以标准格式存储所有大脑信号输入和并发在线事件。当前可用于离线分析的工具包括软件选项,这些软件选项提供:振幅的频谱和特定在线操作周期和特定数据通道的统计测量;振幅和r的头皮地形图;时域中信号的可视化;以及数据到ASCII和Matlab的转换™.。
最后,论文中提到了对BCI2000系统的在线测评和验证。
为了确定BCI2000在实际在线操作中的定时性能,我们评估了不同的代表性实现:输出延迟和输出抖动(即延迟的变化)、系统时钟抖动(即连续获取数据块之间延迟的变化)和不同硬件配置中的平均处理器负载。从图中可以看到,对于所有实现,最大的平均输出延迟为15.11ms,最大的延迟抖动为0.75ms,已经十分低了,而系统时钟的抖动也很低,最大为4.31ms,而人的平均反应速度约为100-125ms(运动型反应),这是最快的反应,而感觉型反应则要160-175ms,更慢,说明此系统已经基本可以满足一般环境下的人机交互要求。同时从表中也可以看到,平均处理器负载没有超过59%,即对CPU的占用也没有非常高。
在线性能我们测试了BCI2000的适应性和在线性能,利用它实现了三种非常不同的BCI设计,每种设计以前都是由自己的高度专业化的软件/硬件系统实现的。 在每一种情况下,BCI2000的实施都需要最小的努力来建立和取得与为专用系统报告的结果相当的结果。 此外,在每种情况下,标准的BCI数据存储格式都很容易支持适当的离线数据分析。
首先是基于感觉运动节律的光标控制。
大多数成年人在脑电中显示8-12Hz和/或18-26Hz节律,记录在初级感觉运动皮层上。 通常,这些感觉运动节律表现为与感觉输入和/或运动或运动图像有关的振幅增加和减小。许多研究表明,人类可以学会控制或节奏振幅独立于实际运动,并使用该控制将光标移动到计算机屏幕上的目标。
为了实现节奏光标控制,我们将BCI2000配置为自回归光谱估计和光标移动应用之一。 一个目标出现在屏幕右边缘的四个可能的位置之一。 然后,光标出现在左侧边缘,并以恒定的速率从左向右移动,其垂直运动由感觉运动皮层上方的一个或节奏频带中的功率控制。 到目前为止,有78人广泛使用了这一系统。 这些结果与以前使用原始专用硬件/软件系统取得的结果基本相当。
然后是基于慢皮质电位的光标控制。
慢皮质电位是头皮记录的脑电图中发生在0.5-10s以上的潜在变化。阴性和阳性慢皮质点位通常与皮层**和失活相关的功能有关。 人们可以学会控制SCP,从而控制计算机屏幕上光标的移动。 在标准格式中,BCI系统在顶点记录脑电图,参考乳突和测量SCP后,消除由眼睛运动或眨眼引起的伪影。 产生的信号控制垂直光标移动到位于屏幕底部或顶部的目标。 每个试验开始于2s准备期,定义参考电压…然后,在接下来的2s周期中,用户控制SCP,以便将光标移动到目标。
为了实现类似的SCP光标控制协议,我们将BCI2000配置为慢波滤波器和光标移动应用程序之一。最后基于BCI2000的SCP系统产生的结果与标准专用SCP系统报告的结果相当。
最后是基于P300电位的拼写控制
不频繁的刺激通常会在刺激呈现后约300ms在顶叶皮层上引起脑电的积极反应。 这种反应(称为“P300”电位),已被用作BCI系统的基础。通过向用户展示一个6x6的字符矩阵。 这个矩阵中的行和列依次随机地以每秒八次的速度闪烁。 用户通过集中注意力来选择一个字符,并计算它闪烁了多少次。 包含此字符的行或列引起P300响应,而其他行或列没有。 在平均多个响应后,计算机可以确定字符的行和列(作为P300振幅最高的行/列),从而确定所需的字符。
为了实现这个BCI范式,我们将BCI2000配置为平均诱发电位的时间滤波器和上文中的第二个拼写应用程序。 迄今为止,已在5个用户中测试了这一实现。 结果与原硬件/软件P300BCI系统的结果相似。
以上就是我针对这篇论文的阅读感受,下面说一下我自己的感受。
首先,这篇文章之所以经典,就是在于他提出了一个通用型的脑机接口系统,相当于变相性的规定了脑机接口的规范的典例,这是一个很了不起的操作,为我们这些后辈的研究指明了方向和道路。
另外,文中不止一次的提到了“模块”和“算子”这两个词,这充分地体现了在这个系统中对模块化的要求程度,而这,也与现在我们的任课老师在我们编写代码时对我们的模块化要求不谋而合,说明了模块化编程的重要。实际上,我所理解的模块化,就是把自己写的代码封装起来,以某个函数也好,以某个库也好,封装起来,别人要用的时候,只需要给定好参数,就能得到他想要的结果,这是一个很基本的,也很重要的要求。
另外,我为了看懂这一篇论文,我看了不下20篇不同类型的中文论文以及多篇英文论文,写了1万3千多字的阅读笔记,但即便这样,我也不敢说我对BCI技术有多理解,但是,同样我也看到了,在BCI最重要的信号处理部分中,所采用的几种主流算法里,有至少三种(人工神经网络、线性判别分析、遗传算法)我们已经了解过一部分的皮毛了,所以,我在这里想告诉各位,脑机接口BCI技术,实际上和我们,就是现在的我们,并不那么遥远。
最后,用一句话来做为结束语“地球是人类的起点,但不应该是人类的终点。我们的肉体或许被限制在地球之上,但我们的精神,应属于无垠的苍穹”,我的分享到此为止,谢谢大家