CIN
计算智能和神经科学
1687 - 5273
1687 - 5265
Hindawi出版公司
363565年
10.1155 / 2011/363565
363565年
研究文章
Craniux:为脑机接口研究一种基于labview的模块化的软件框架
Degenhart
艾伦·D。
1
凯利
约翰W。
2
安石
罗宾·C。
3
冷却
Jennifer L。
3、4
泰勒。
伊丽莎白·C。
1、5
韦伯
道格拉斯J。
1、3、4
王
魏
1、3
Baillet
Sylvain
1
生物工程学系
匹兹堡大学
宾夕法尼亚州匹兹堡15219
美国
pitt.edu
2
电子与计算机工程系
卡内基梅隆大学
宾夕法尼亚州匹兹堡15213
美国
cmu.edu
3
物理医学与康复
匹兹堡大学
宾夕法尼亚州匹兹堡15213
美国
pitt.edu
4
退伍军人事务部
人体工程学研究实验室
宾夕法尼亚州匹兹堡15206
美国
herlpitt.org
5
神经外科学系
匹兹堡大学
宾夕法尼亚州匹兹堡15213
美国
pitt.edu
2011年
20.
02
2011年
2011年
01
10
2010年
07年
12
2010年
24
01
2011年
2011年
版权©2011阿兰·d·Degenhart et al。
这是一个开放的文章在知识共享归属许可下发布的,它允许无限制的使用,分布和繁殖在任何媒介,提供最初的工作是正确的引用。
本文提出“Craniux”,开放获取,开源软件为脑机接口(BMI)研究框架。在虚拟仪器开发的,一个高级的图形化编程环境,Craniux既提供了开箱即用的功能和模块化的软件框架,BMI是容易可扩展。具体地说,它允许研究人员利用多个特性固有的虚拟仪器环境动态数据可视化、并行处理、多线程、和数据保存。介绍Craniux的基本功能和系统结构,描述了系统的验证实时BMI操作使用模拟和真实electrocorticographic (ECoG)信号。我们的研究结果表明,Craniux能够实时操作一致,使无缝工作流程实现大脑控制光标移动。Craniux软件框架提供了科学研究社区提供一个基于labview的未来体重指数BMI软件平台研发。
1。介绍
脑机接口(BMI)技术旨在建立直接联系大脑和外部设备之间传输信息。它提供了一个丰富和自然为残疾人辅助设备控制接口(
1 ,
2 ),是一个正在快速推进,非常活跃的研究领域的神经科学和神经工程领域。各种神经信号形式,包括脑电图(EEG) (
3 ),脑磁图描记术(MEG) (
4 ),electrocorticography (ECoG) [
5 ),皮层局部场电位(联赛)
6 ),和神经元活动率(
7 - - - - - -
9 ),已经使用了BMI的研究。不管输入模式,所有BMI系统需要的基本套件软件能够不断获得神经信号,在实时或接近实时转换成特定的BMI为外部设备控制命令,如假体,以完成特定的任务。
进行创新和独特的BMI的研究中,研究人员经常需要实现新的信号处理技术,神经解码算法,BMI软件包或实验范式。考虑到迅速发展的领域,它是可取的减少所花费的时间从一个新想法的概念到软件实现,数据收集和数据分析。然而,BMI系统的日益复杂使得这个问题。例如,复杂的神经解码算法之前在脱机分析研究正在调查(BMI实时控制
10 ]。此外,更高级的外部设备被BMI控制系统,如灵巧假肢和手系统开发的革命性修复项目(
11 ,
12 ]。这些进步呼吁一个开源软件框架,使BMI研究者更好地专注于基本的工程和科学问题他们正在调查和开发高级BMI功能更有效率。这个框架应该能够管理基本的软件操作常见许多BMI研究高级编程环境中,应该很容易扩展为编程提供了方便和灵活性新BMI模块。
一个成功的开源软件包通用BMI BCI2000,模块化c++的神经信号采集系统,数据保存,刺激表示,更多的
13 ],广泛分布在学术机构,通过大量研究[
14 ]。源代码和二进制可执行文件都是免费下载,允许最终用户使用软件或修改它来满足自己的需求。BCI2000最大的优势之一是它的模块化,轻量级,和便携式设计,使其非常受欢迎和成功的BMI研究社区。最近,BCPy2000开源框架(
15 )已经作为BCI2000用户贡献包可用。BCI2000这个框架遵循相同的系统体系结构,但它允许BMI人员开发新模块在Python中,大大减少了软件的高级语言编程复杂性新的BMI软件的快速原型设计。
介绍一个开源开放获取实时BMI软件框架受到BCI2000称为“Craniux”,使用虚拟仪器开发(国家仪器公司),一个高级多平台的图形开发环境。Craniux为BMI操作实现核心框架,包括模块化的体系结构,模块间的网络通信,数据流控制、数据可视化、数据存储和图形用户界面。Craniux提供了一套独特的优势,可以极大地促进软件开发和研究BMI。首先,它使BMI人员开发和分享新的BMI模块在虚拟仪器开发环境和充分利用许多特性固有环境,如
(我)
高级图形编程快速开发和运行时调试,
(2)
一组丰富的数据可视化选项和图形用户界面元素,
(3)
易于多线程编程和并行处理,包括自动并行性和多核处理器的支持,
(iv)
大量的高质量的虚拟仪器信号处理函数库和全方位的集成与广泛的工程硬件(例如,国家仪器控制器卡),
(v)
定制的虚拟仪器模块的重用和共享sub-VI(虚拟仪器)块。
其次,通过上述虚拟仪器功能,我们进一步实现功能指数研究的关键
(我)
实时的操作系统能够获得一块神经数据,处理这些数据,并生成一个输出之前收到下一个数据块(
13 ,
16 ]。
(2)
在线神经解码器培训能力通过实时操作之间数据共享和并行译码器训练。
(3)
“动态”数据可视化和网络实验参数控制。
(iv)
确定性控制系统执行,包括参数可视化数据的更新和显示。
(v)
流媒体和存储的原始神经数据、各种中间处理数据,磁盘离线分析和实验参数。
(vi)
BMI模块分布在计算机使用定义良好的通用网络通信协议优化软件模块之间的数据传输。
最后,Craniux开发是一个轻量级,可扩展的,可移植的软件框架。其模块化的体系结构,定义良好的用户界面,和通用网络通信协议使它很容易保持和发展BMI引擎。现有的发动机和标准模板引擎为新引擎开发提供一个起点。
在下面几节中,我们将首先介绍的基本系统架构Craniux软件。我们将提供系统性能测试结果根据模拟和真实的实验数据。最后一节将进一步讨论这个软件框架的独特性与其他现有的BMI软件工具相比,其优势和局限性,和未来的发展方向。
2。系统架构
Craniux软件包已经被设计为一个高度模块化的系统,能够在一个分布式网络的计算机和一台计算机。为了实现这一点,并使引擎尽可能可靠之间的数据传输,所有数据是在使用TCP / IP协议进行通信。数据保存使用虚拟仪器实现tdm(技术数据管理流)框架(
17 ),确保所有系统数据流到磁盘尽快为了最大化系统的性能。以下部分描述的系统框架,引擎执行GUI操作,节省通信协议和数据操作的进一步细节。
2.1。分布式引擎框架
图
1 描述了Craniux系统的设计。灵感来自于BCI2000框架,这个系统包括五个不同的部分:系统启动程序,采集引擎,信号处理引擎,应用程序引擎和数据保存经理和可能分布在多达四台电脑。此外,每个引擎都有一个关联的图形用户界面(GUI),通过它用户与引擎交互。主系统组件执行以下功能。
图1
Craniux系统框架。 Craniux系统由采集、信号处理、和应用引擎,它们相关的gui,系统启动,数据保存经理。引擎和用户界面元素分布在四个网络主机:收购主机、信号处理主机应用程序的主机,主机和用户界面,虽然在同一台计算机作为多个主机。网络之间的通信系统引擎,引擎之间的通信以及gui,使用TCP / IP协议执行。一块神经数据进入系统通过收购引擎,将预处理数据发送给信号处理引擎。信号处理引擎生成控制信号,然后发送到应用程序引擎。然后应用程序引擎将任何相关的特定于应用程序的数据(例如,目标信息用于神经解码器培训)收购引擎,它读取下一个数据块的神经。之间的双向数据传输发生引擎特定的GUI及其关联引擎,与系统参数从GUI转移到引擎和可视化数据从引擎转移到GUI。最后,系统启动程序负责加载所需的发动机,一般实验参数,跟踪和实验控制。
系统启动程序
系统启动程序初始界面,用户就会在运行软件时,允许用户在运行时指定系统级参数。在这里具体的引擎,他们的网络位置,高级实验参数(如主题ID、日期、调查员和会话编号)指定。此外,系统启动控制启动和停止执行虽然本身不是一个实时操作系统的一部分。
采集发动机
收购引擎负责采集和初始的预处理(如光谱估计)的神经等信号源的数据放大器或用户数据报协议(UDP)连接。
信号处理引擎
信号处理引擎接收数据从采集引擎和负责处理这些数据,比如生成控制信号。
应用程序引擎
应用程序引擎接收信号的数据处理引擎和负责控制主体之间的相互作用和体重指数。
数据保存经理
数据保存管理器负责储蓄Craniux数据和接收输入的采集、信号处理和应用程序引擎。
为了确保数据通过每个引擎的顺序处理,系统执行收购所得发动机信号处理引擎,然后应用程序引擎,最后从应用程序引擎回到收购引擎;只有一个的每种类型的引擎可以运行在一个给定的时间。这种周期性数据流保证每个数据块接收到采集引擎处理和生成系统输出在处理下一个数据块的开始。
在任何时候在操作时,系统可能会暂停和任何引擎取代另一个相同类型的,保留那些引擎仍然运行的状态。这对BMI是可取的操作,系统参数如神经解码器获得的权重在操作过程中与一个特定的应用程序(例如,一个星系中心电脑光标任务)可能被保留并立即用于一个新的应用程序(例如,一个机械手臂的控制)。表
1 提供了一个列表的当前引擎Craniux系统可用。
表1
当前列表采集、信号处理和应用程序引擎。
引擎的名字
发动机型号
描述
采集模板
收购
“空”收购引擎产生随机数据用于维护系统数据流
读UDP二进制
收购
读取原始神经数据通过UDP传输
SimECoG
收购
生成合成ECoG数据
信号处理模板
信号处理
“空”的信号处理引擎用于维护系统数据流
线性解码器
信号处理
产生一个控制信号使用的线性组合输入功能
人口向量
信号处理
使用人口向量算法产生一个控制信号(
18 ]
奥立
信号处理
产生一个控制信号使用的最优线性估计算法(
19 ]
应用程序模板
应用程序
“空”的应用程序引擎用于维护系统数据流
星系中心的光标控制
应用程序
两个或三维的光标控制应用程序
阈值过
应用程序
UDP发送命令到外部设备时控制信号交叉用户定义的阈值
圆图
应用程序
圆/ ellipse-drawing应用程序(
20. ]
生物反馈
应用程序
显示实时反馈的神经控制信号
2.2。引擎执行
每个引擎系统运行的一个基本的序列,首先接收数据从先前的引擎,处理接收到的数据,并发送相关的结果的处理链中的下一个发动机信号。图
2 概述了个体的执行引擎的基本流程。引擎执行初始化开始的所有参数,包括指定的参数文件的加载,这些引擎特定的识别参数被保存。从这里开始,执行所得的主序引擎,引擎(1)等待数据的前面的引擎在信号链,(2)处理接收的数据(或执行其他操作),和(3)将处理结果发送给链中的下一个发动机信号。执行所得回(1),该引擎等待下一个块的输入数据。并行操作这个主序列是一个额外的线程数量,如数据储蓄,引擎特定的流程不能或不需要实时操作(如神经解码器培训),和沟通与发动机的GUI。引擎执行的详细描述,包括执法中的确定性执行引擎组件,提供的补充材料(见补充材料网上doi: 10.1155 / 2011/363565)。
图2
引擎执行。 初始化后,每个引擎收益到主序列循环,核心引擎过程是顺序执行。数据信号链中的第一个收到前面的引擎,和任何参数值变化收到本地引擎的更新GUI。系统下执行任何操作特定于单个引擎(例如,计算控制信号或更新显示),并将这些行动的结果发送给链中的下一个发动机信号。当前值的数据项可视化被放置在一个队列,和数据发送到数据保存经理。引擎然后继续主序列循环的开始等待下一个输入的到来。平行于主序列循环并行流程设计的异步操作。这些过程总是包含从GUI和接收参数值更新发送数据可视化GUI,并可能包括个人引擎特定的操作,如解码器培训或监视事件。阴影块代表这些地区要修改的由开发人员在创建新的引擎,而白色代表的部分代码块提供核心功能。
2.3。图形用户界面(GUI)的元素
每个引擎负责两个动态的GUI控制引擎特定的参数以及可视化引擎特定的数据。允许动态控制是至关重要的成功的BMI操作,像在实时闭环BMI操作常常需要动态调整参数如计算机辅助水平或电脑光标速度(
8 ]。而不是传统的图形用户界面,它作为前端用户界面虚拟仪器应用程序中,gui Craniux系统作为独立应用程序存在。正是通过这些应用程序,用户与每个引擎交互。gui及其关联引擎维持互惠的双向沟通;参数值变化事件监控的GUI和传播相关的引擎通过TCP / IP,而数据可视化传播从引擎到GUI。应该注意的是,参数值变化瞬间传播从GUI访问引擎,引擎开始时的主序,以确保所有参数值的一致性在处理一个数据块。参数值变化也是指数跺着脚,保存到磁盘,允许完整的完成重建或回放过程中系统状态离线分析。为了让数据可视化,所有数据元素从发动机传递到GUI,为实验者提供最准确的表示状态的引擎。这发生与实时并行主序执行,这样沟通不干扰的时机的主要序列的执行引擎。
2.4。组件之间的通信
Craniux组件间的通信利用self-establishing和自我修复网络连接,提供高效、可靠的数据流强劲发送任何数据类型和变量的组合。在引擎之间进行通信,这些连接环的形式,维护数据流和控制程序的执行。引擎和gui或之间的通信数据保存经理,一个建立TCP连接。在创建新引擎时,这枚戒指不需要输入和单连接只需要开发人员提供一个网络主机名。唯一的用户输入必要的是每个引擎的IP地址,这是指定系统上的发射器。为每个连接自动选择可用的端口。
所有网络连接使用TCP协议。选择TCP / UDP因为其优越的可靠性是非常重要的在一个环形结构负责控制程序执行;引擎将打破之间的丢失的数据包的戒指,让每个引擎等待数据永远不会到来。同样重要的是要注意,纳格尔的算法(
21 )是残疾Craniux系统中使用的所有连接。纳格尔算法试图减少TCP包开销和故意拖延传输带宽使用情况,这样可以结合多个数据包发送之前。在这里,由该算法引入延迟是不可接受的,带宽使用情况并不是一个问题。纳格尔背后的概念的算法被保留在我们的系统;然而,正如所有数据发送同时结合成一个单一的数据包传输之前。
通过网络发送的变量,开发人员只需要创建的变量名称列表的发送端连接。不需要变量类型或大小的信息。提供的变量名挤在一起与他们的价值观到一个虚拟仪器的“变种”数据类型的变量,然后通过网络发送。的接收端连接,数据读取和解析成正确的价值观,这是写给那些现有的变量在接收端用相同的名称和数据类型的变量。附加组件之间的信息传输的信息已经被提供的补充材料。
2.5。数据保存
保存数据的Craniux框架是一个可靠的过程,最大限度地减少延迟引入的储蓄和创建高度访问的数据。数据是由一个独立的数据保存保存管理器,接收数据从所有引擎。最初这个数据是保存在虚拟仪器的tdm格式,这是专门为快速和连续流创建大量数据的硬盘,以帮助消除存盘瓶颈通常由慢速度写入磁盘(
17 ]。保存数据时,一个包,其中包含所有的变量值被保存和数据包指数被存入一个先进先出(FIFO)缓冲区。平行的主要执行Craniux,这些数据包从缓冲区中删除和发送到数据保存经理,位于主机用户界面,通过部分中描述的通信框架
2。4 。收到一个数据包时,数据保存经理tdm文件流数据。在创建新引擎时,只需要提供一个列表变量名得救;这些物品将自动识别和它们的值相应的保存。
一个tdm文件保存为每个实验运行;停止或暂停系统执行关闭所有当前数据文件的引用。在每个数据文件中,每个引擎保存的数据分为两组:采样和控制变量。样本变量数据采样不断在每个更新的BMI系统,如光标位置在人脑控制光标移动任务。作为控制通常很少更新的参数设置(例如,目标的数量),这些值时才保存更改。当前数据包数量包括在每一个保存操作,以便实验能重建之后的数据合理对齐。创建了一个单独的虚拟仪器VI将Craniux tdm文件到MATLAB (Mathworks公司)垫格式。这些垫子文件包含每个引擎结构搭配每个数据类型(样本变量和控制)。为每个变量保存的值存储在一个数组,数组数据包数量为每个元素提供时间指数。数组变量是存储为细胞阵列,允许他们与它们相关的数据包数量,使数据结构来处理数组大小BMI会话期间的动态变化。
3所示。系统验证
3.1。使用ECoG信号模拟闭环控制光标移动
实验设置用于验证Craniux系统如图
3 。electrocorticographic (ECoG) experimenter-controlled鼠标光标移动的信号模拟器是用来调节高gamma-band活动的合成信号。这个模拟器能够生成32通道模拟信号与定向调高γ乐队(70 - 120赫兹)活动模拟ECoG信号记录从人类受试者
2 ,
22 )根据以下(
6 ,
18 ),
(1)
年代
=
年代
1
+
d
因为
(
θ
)
年代
2
,
在哪里
年代
是一个模拟定向调制ECoG信号,
年代
1
粉红噪声信号与一个吗
1
/
频率
功率下降(
23 ]。
年代
2
是第二个粉红噪声信号带通滤波在70年和120赫兹之间,
d
控制的调制深度高γ乐队,和
θ
是首选的方向之间的角度模拟ECoG信号和从电脑屏幕的中心向量指向当前鼠标光标位置在电脑屏幕上。32个模拟信号的首选方向均匀分布在二维(2 d)空间。模拟信号在2400 Hz生成使用国家仪器NI pci - 6723 32通道模拟计算机上的模拟输出板(x86操作系统,Windows XP的AMD Athlon 64 fx - 62双核CPU @ 2.81 GHz 3.5 GB RAM, NVIDIA GeForce 7900 GS视频卡),然后下台与典型的振幅ECoG从人体信号记录。
图3
模拟ECoG实验设置。 Experimenter-controlled仿真电脑上的鼠标位置调节的高γ力量模拟定向调ECoG信号。这些信号输出在2400 Hz使用国家仪器D / a卡和读取到Craniux系统使用g。USBamp放大系统和BCI2000。然后Craniux系统解码所需的光标位置使用人口从模拟信号向量算法。
模拟ECoG的信号被采样使用g在1200赫兹。USBamp放大系统(贵港市技术,OEG)在一个单独的计算机(x86操作系统Windows XP,英特尔酷睿i7 920 @ 2.67 GHz CPU, 2.49 GB RAM, 2 NVIDIA GeForce 9800 GT的视频卡)和发送到Craniux系统二进制UDP数据包BCI2000软件包的使用一个简化的版本。BCI2000在这种情况下,由于其使用的可靠性和效率与g。USBamp放大系统。这些原始时域信号首先进入Craniux系统转化为频域使用虚拟仪器内置的自回归(AR)谱估计函数(10 Hz垃圾箱,500 ms窗口)在阅读UDP二进制收购引擎,然后传递到人口矢量信号处理引擎。在这里,信号被规范化pseudo-Z-scores基于以下(
24 ,
25 ),
(2)
f
规范
,
我
,
j
=
f
我
,
j
- - - - - -
f
¯
我
,
j
σ
我
,
j
,
在哪里
f
规范
,
我
,
j
,
f
我
,
j
,
f
¯
我
,
j
是规范化、原始和平均功率的
我
th通道和
j
th频段,分别
σ
我
,
j
的标准偏差是原始乐队的力量吗
我
th通道和
j
频带。平均值和标准偏差值计算基于收集的数据在一个基线条件的仿真计算机上电脑光标仍在屏幕的中心(即。,没有调制高γ乐队活动)。
大脑控制的任务是一个典型的2 d星系中心设计,使用游标的运动方向由多个ECoG信号控制功能在32频道根据人口向量算法(
18 ]
(3)
f
我
=
b
0
,
我
+
b
x
,
我
米
x
+
b
y
,
我
米
y
,
P
=
∑
我
N
(
d
我
- - - - - -
b
0
,
我
)
C
我
,
在哪里
f
我
是个体的活动特性
我
,
米
x
,
米
y
所需的运动吗
x
和
y
方向,
b
0
,
我
,
b
x
,
我
,
b
y
,
我
使用线性回归相关系数发现所需的运动特性的活动吗
我
,
P
我
是轨迹向量预测活动的特性
我
,
d
我
的瞬时活动功能吗
我
,
C
我
=
(
b
x
,
我
b
y
,
我
]
/
(
b
x
,
我
2
+
b
y
,
我
2
)
1
/
2
是一个向量代表的首选方向特性
我
。
标准的工作流用于实现ECoG-controlled 2 d光标移动与Craniux框架描述如下。虽然模拟ECoG信号被使用来验证系统,此工作流将类似真正的神经信号。
(1)
基线数据的集合。 Craniux系统一旦开始,大约3分钟的基线数据收集,Craniux系统将计算功能的平均值和标准偏差值。这些将被用于计算pseudo-Z-scores ECoG实时信号特性。
(2)
训练数据的收集神经解码器。 在此期间,实验者将利用ECoG信号模拟器生成调制ECoG信号(即基于目标位置。,想要的光标移动方向)。ECoG数据与目标位置自动缓冲为神经Craniux译码器训练。
(3)
训练神经解码的。 在此期间,缓冲数据用于训练神经解码器。多元线性回归过程用于确定定向调优的程度和优先方向ECoG如上所述信号特性(
26 ,
27 ]。由此产生的
R 平方的价值观和优先方向人口矢量显示的GUI,允许动态实验结果形象化和交互式地选择一个子集的定向调ECoG大脑控制信号特性。
(4)
大脑的实时控制。 活动ECoG信号特征选择在步骤(3)然后用于生成人口向量,一个2 d速度控制信号驱动光标。图
4 大脑显示了人口向量GUI在闭环控制,说明对用户提供的用户界面元素在这个过程。
图4
在基于矢量控制人口Craniux系统截图。 (a)的每个特性的瞬时活动用于光标控制沿其首选方向(蓝色)和合成人口向量(红色)。(b)
R
2
值指示的分布
R
2
值获得在人口向量训练(蓝色)与平均值相比,第80、第90、第95百分位
R
2
值经过1000次迭代训练target-shuffled获得数据(红色、黑橙光橙、黄线)。上面的阈值特性选择用于由粉色线译码器显示。(c)
R
2
值获得在人口向量训练安排的通道和频带。注意,70 - 120赫兹频段特性显示高
R
2
值在所有渠道,符合该方法用于生成模拟ECoG信号。(d)的首选方向分布的特性。红线对应于这些特性
R
2
值高于user-determined阈值,而白线是这些功能下降低于阈值。
值得注意的是,上述过程是连续进行的BMI会话没有停止和重新启动Craniux系统。这一简化的工作流程允许BMI研究顺利有效地进行。此外,步骤(2)和(3)可以在任何时候进行在BMI与步骤(4)。这使得神经解码器是动态地调整适应任何潜在的变化或非平稳输入神经信号,实现和维护可靠的大脑控制关键要素(
28 ]。图
5 显示了一个示例的定向调制规范化数据时频ECoG信号Craniux保存系统,以及在实时大脑控制光标的轨迹。
使用ECoG数据模拟闭环控制大脑。 (a)时频块一个模拟ECoG信号平均所有重复的8-target星系中心光标控制任务。情节是一致的目标在时间
t
=
0
(白色虚线)。,总共32通道的模拟定向生成调谐ECoG信号。光标(b)实时轨迹控制的模拟ECoG信号使用人口向量算法。
(一)
(b)
3.2。人脑控制光标移动使用真实ECoG信号记录从人类的话题
Craniux进一步验证系统在人类主题发生硬膜下癫痫进行监控。从主题之前获得知情同意是测试;实验过程都是匹兹堡大学的机构审查委员会批准并遵循所有的人体研究的指导方针。实验方法是类似于在
29日 ),除了Craniux系统用于数据收集和大脑控制。标准ECoG电极表现出高γ带调制响应明显运动筛查任务选择用于闭环控制。高γ和频带能量(70 - 110赫兹)的两个相邻ECoG电极被用来控制光标,推拉的垂直运动计划,显示光标控制信号计算:
(4)
c
y
=
一个
(
年代
1
- - - - - -
年代
2
)
- - - - - -
b
,
在哪里
c
y
是一维的控制信号,
年代
1
和
年代
2
高γ和频带能量的两个相邻电极用于控制,然后呢
一个
和
b
增益和偏移术语规范化的控制信号为零均值和方差单位。因此,为了达到满意的大脑控制,这个问题不得不decorrelate两个电极产生的活动所需的光标控制信号。大脑控制会话开始收集基线数据规范化的目的如前一节所述。个人试验始于光标的位置的中心计算机屏幕上的演示两种外围目标位于垂直面的工作区(例如,“中心”任务)。试验的主题能够击中了目标在10秒的最大试验长度被认为是成功的;失败导致一个失败的试验。所有试验都是紧随其后的是一个国米试验间隔2秒的游标和目标是可见的。图
6 显示了一个大脑控制会议的结果,在此期间的主题能够实现88%的成功率。
图6
闭环ECoG-based电脑光标控制 。一维计算机使用Craniux光标控制系统植入主题ECoG电极。上面。原始时域ECoG信号的两个电极用于光标控制。上。时间频率数据保存Craniux系统相同的电极。底部的中间。Craniux系统产生的控制信号来控制电脑光标移动。积极的控制信号值移动光标的方向,而消极控制信号的值将电脑光标向下移动。注意控制信号值是没有单位的,因为他们已经标准化的零均值方差和单元。 Bottom. Vertical cursor positions generated by the neural control signal. Dashed black lines represent target onset, green circles indicate the position of presented targets, blue lines indicate cursor trajectories for successful trials, and red lines indicate cursor trajectories for unsuccessful trials.
3.3。系统时间
评价系统性能的一致性、时间特性进行了分析使用一个典型的Craniux设置15阶自回归(AR)谱估计10 Hz频率垃圾箱在0.5秒的窗户模拟神经数据(见部分
3所示。1 )、线性译码器信号处理引擎和星系中心的光标控制应用程序引擎。模拟和数字数据采样的g。USBamp放大系统在1200赫兹和直接收购Craniux 33.3毫秒的帧速率。数字信号触发定时事件,被从Craniux回数字放大器的输入,所以时间事件可以获得精确的同步和原始的模拟输入信号在1200赫兹。
三个不同的时间进行了测试:一个系统处理测试,显示更新的速度测试,整个系统延时测试。前两个测试(系统处理和显示更新率)进行单个计算机(x86操作系统Windows XP,英特尔酷睿i7 920 @ 2.67 GHz CPU, 2.49 GB RAM, 2 NVIDIA GeForce 9800 GT的视频卡)和Craniux分布在整个网络中,数据采集,谱估计,和gui是托管在一台电脑(用于当地的计时测试的一样,见上图),信号处理和应用引擎,包括3 d渲染窗口,驻留在一个单独的计算机(x86操作系统,Windows XP的AMD Athlon 64 fx - 62双核CPU @ 2.81 GHz 3.5 GB RAM, NVIDIA GeForce 7900 GS视频卡)。对于这两个配置,进行测试使用16日32和64个频道的数据。第三个测试(系统延迟)是只运行在单台计算机配置处理32通道上执行的数据。
第一个测试使用5000连续帧的收集数据测量系统处理时间,之间的时间的到来一块数据放大器,和Craniux时系统已经完成所有加工数据,开始等待下一个块。这些结果显示在表的第二列
2 。正如预期的那样,处理时间被发现增加的数量加工渠道,但仍低于33.3毫秒时间保持一致的帧率,防止数据丢失。通过网络分发Craniux显示改善处理时间对所有通道配置。因为处理时间只需要保持帧率下,运行Craniux作为一个分布式系统是没有必要的,除非系统高负荷下。发现AR谱估计需要处理时间,尤其是渠道的数量增加。这些结果表明额外的处理时间可用当Craniux运行作为一个分布式系统可以很容易地使用更复杂的信号处理算法运行或降低帧率。
表2
描述系统的时机。 Craniux系统处理时间,刷新率,和延迟的本地和网络系统配置在不同处理负载。值显示平均时间值加上或减去一个标准差的意思。
系统配置
处理时间(女士)
刷新率(女士)
延迟(女士)
本地的,16个通道
12.8
±
0.7
33.3
±
0.5
N /一个
网络,16个通道
9.9
±
0.6
33.3
±
0.5
N /一个
本地32通道
17.8
±
0.8
33.3
±
0.7
33.2
±
9.6
网络,32通道
15.2
±
1.0
33.3
±
0.4
N /一个
本地的,64个频道
28.0
±
1.3
33.3
±
0.7
N /一个
网络,64个频道
24.9
±
0.9
33.3
±
0.4
N /一个
连续第二个测试也用5000帧刷新率,但是现在测量的数据之间的时间连续显示更新在星系中心的光标控制引擎。结果显示在第三列的表
2 。刷新时间是33.3毫秒为所有配置,恰恰将给出系统的帧速率。此外,低变异性的时机表明用户将经历一个一致的游标更新没有明显的抖动。
最后的测试测量系统延迟,神经信号事件之间的时间,和时间点Craniux系统可以生成一个行动应对这一事件。10 Hz正弦波与零点偏移1通道放大器的输入;这个通道是美联储通过Craniux系统的数据点显示在星系中心的光标控制引擎更新,发生前处理完全完成,系统开始等待下一个数据块。在这一点上,如果一个正弦波零交叉检测,数字输出位被写回到放大器被翻转。在这种情况下,运行时间之间的零交叉的正弦波(模拟神经活动)和比特值变化(系统的时间响应)系统延迟。数据收集5000年连续正弦波零交叉,与对称分布的零交叉事件每个33.3 ms数据帧的中心。在以这种方式分配零交叉,众所周知,平均延迟应该略低于一半的帧长度加上平均处理时间(这个配置33.9毫秒)和一系列几乎等于帧长度。被发现的延迟的平均值和标准偏差
33.2
±
9.6
女士,会议的期望。
4所示。讨论
Craniux是一个功能强大,但简单且容易扩展,BMI研究开源框架,需要高性能实时BMI软件。目前,许多开源软件解决方案BMI可用于学术研究使用。这些软件包包括非常专业,开销较大系统用于非人类灵长类动物的体重指数研究[
8 ,
28 ,
30. ),高度模块化,visual-programming-based OpenViBE等软件平台(
31日 ),以及便携式、轻量级的系统对人类身体质量指数研究[
13 ]。更具体的BMI研究软件工具应用程序也可用,从工具箱允许实时梅格系统的接口使用BMI (
32 ,
33 )能够快速识别信号的实时脑映射软件electrocorticographic电极与大脑皮层活动对应于公开运动,演讲,和感官刺激
34 ,
35 ]。
Craniux框架受BCI2000的系统架构设计的启发,我们相信它利用虚拟仪器图形化开发环境的一些独特的特性开发实时BMI软件。通过它开放获取和开源软件框架,我们希望为研究社区在至少两个方面。首先,在最基本的层面上,Craniux BMI与一个易于使用的图形用户界面软件解决方案。这些研究人员感兴趣的bmi指数可以使用这个软件进行研究而无需编写定制软件。其次最重要的是,我们希望这个框架将促进新的BMI范式和信号处理算法的发展通过研究团体提供BMI系统操作的基本功能,允许研究人员专注于他们的特定的研究问题的发展。最后,这个框架是建立在虚拟仪器环境中,自然继承了很多优势提供的虚拟仪器编程的高级图形性质。
在其目前的形式来看,Craniux框架展示了福利,可以方便地使用和修改开发新模式和算法。虚拟仪器编程语言的简单性使得创建新的BMI引擎访问个人可能不熟悉面向对象的编程。准提供引擎的开发人员可以简单地一个模板,实现他们想要的操作,并保存下发动机新名字(这个过程更详细地描述在补充材料)。这个新引擎将使用在Craniux框架中,而不需要编译的代码到可执行文件根据编程语言如C / c++。新创建的调试引擎也可以轻松地执行在运行时通过使用虚拟仪器内置的调试工具。Craniux的dataflow-driven性质进一步简化了调试,使系统执行暂停和恢复操作期间任何时候不损失系统的当前状态。这些工具和先进的数据可视化选项,使高度复杂的神经信号处理的快速成型技术。
Craniux目前提供了一组丰富的选项来可视化BMI飞在多个数据处理阶段以各种格式。神经信号,如脑电图、梅格或ECoG,可以看作是滚动时频块或动态时空的阴谋在频域。这是有利于神经信号质量的在线检测,为某些特性可能很难在一个简单的时域图原始神经信号。期间执行的结果计算神经解码算法的训练和应用也可以动态可视化,为研究人员提供机会选择神经信号功能,可视化解码权重,并检查解码器输出没有暂停系统的操作。例如,实现人口的向量算法允许研究人员动态更改的值
R
平方阈值用于特征选择、查看当前选中的易磁化方向分布特性,并查看瞬时贡献所有功能的控制信号输出的算法。这个可视化能力尤为重要在使用和发展复杂的解码算法,因为它允许BMI人员判断的有效性解码动态权重,使神经信号处理和其他BMI实验参数的调整。
我们还展示了潜在的增强Craniux性能通过其分布在多个网络主机,作为分配单独的引擎独立电脑消除引擎系统资源之间的竞争的可能性。图形用户界面元素的分离从实时引擎进一步改善系统性能,确保实时引擎执行不受用户界面交互事件影响或数据可视化。此外,Craniux系统能力分配到多个网络主机可能是长期人类身体质量指数研究特别有用。实验课程可以每天远程运行,消除需要科目或者调查人员前往参加这些会议。这将成为重要的BMI技术进入临床前和临床试验。
Craniux为体重指数研究也提供了一个简化工作流程。它允许动态控制的具体实验参数,为BMI用户培训提供实验极大的灵活性。例如,一个实验者可以快速调整神经译码器的输出增益如果认为人脑控制光标是朝着正确的方向前进,但以很低的速度。根据我们的经验,这种灵活性有效BMI训练是至关重要的。同时,Craniux系统能够捕获所有实验参数的变化以及体重指数数据,允许研究人员执行离线分析BMI会话。此外,不同BMI程序,包括收集基线数据的归一化的神经信号和神经解码算法的训练,可能没有停止执行系统操作。这为BMI人员和实验对象提供了一个无缝的体验中,系统参数可以不断更新提高BMI性能。
应该注意,Craniux系统依赖的时机收购的时机引擎,目前可以从神经由UDP数据包发送采集硬件或显式地控制由采集引擎本身(例如,“SimECoG”引擎)。任意数量的神经记录硬件解决方案可用于BMI操作提供数据记录下这些设备可以打包并通过UDP传输。另外,也可以创建特定于硬件采集引擎内Craniux框架。
此外,重要的是要提到编辑或开发新的BMI引擎Craniux框架需要购买的虚拟仪器。然而,开源并不少见研究工具是建立在商业软件;两个这样的例子是EEGLAB [
36 )对神经数据分析和实地考察包。这些包都是建立在MATLAB,一个非常强大的商业数据分析软件包。正如许多研究人员现在另外使用MATLAB代替C程序进行数据分析,我们认为,节省的时间和精力使用BMI Craniux系统软件开发的成本将超过虚拟仪器软件。此外,如果Craniux软件作为一个独立的开箱即用的软件包,所有引擎都可以编译的二进制可执行文件,使用免费的虚拟仪器运行时引擎运行,消除了虚拟仪器软件的需要。最后,正如在部分
3 ,鉴于当前个人电脑的计算能力和执行的代码优化固有的虚拟仪器环境,Craniux系统的总体性能与BMI系统使用其他编程语言的开发。因此,使用高级虚拟仪器编程环境不重要的牺牲为代价的系统性能。
Craniux软件包,包括深入所有引擎文档和详细的操作说明,取得了免费的学术机构和可以访问
http://hrnel.pitt.edu/Software.html 。Craniux软件包可以下载作为图书馆的虚拟仪器虚拟仪器(vi),和稳定的系统更新将可供下载。
5。结论
而其他开放开源BMI目前可用的软件解决方案,我们认为Craniux软件包填补了一个特定的需要在BMI领域研究。强大而轻,这个系统允许实验者快速开发和测试尖端技术在网络环境中,无论是新的神经信号处理技术,新的神经解码器,或先进的假肢设备。这个系统提供了一个易于使用的“开箱即用”的解决方案对BMI的研究以及其他神经数据可视化和处理的目的。此外,Craniux系统提供一个可扩展的框架通过提供模板引擎。所提供的框架具有闭环BMI实验运行的基本架构,使其他研究人员利用虚拟仪器功能设计和开展新颖的实验范式,而不需要实现自己的核心系统框架。同样值得注意的是,Craniux框架提供的功能也适合用于其他神经科学研究甚至neurorehabilitation应用程序能够受益于神经数据的实时处理和可视化,如皮质源成像使用脑电图或梅格录音。记住这些特征,我们觉得Craniux软件包将被证明是一个重要的附加BMI研究社区。
确认
作者感谢Gerwin Schalk博士帮助讨论关于BCI2000 BMI和实时软件。他们还想感谢这里介绍的主题数据自愿参与本研究。这项工作是支持的远程医疗与先进技术研究中心(TATRC)的美国陆军医学研究和材料命令协议w81xwh - 07 - 1 - 0716。它是由一个特殊的格兰特高级副总理办公室的匹兹堡大学健康科学。这份出版物也通过授予5号UL1 RR024153和KL2 RR024154从国家研究资源中心(NCRR)的一个组成部分,国家卫生研究院(NIH)和国家卫生研究院医学研究路线图和支持国防科学与工程研究生奖学金,由美国空军科学研究办公室,国家科学基金会(NSF)研究生研究奖学金,和生活质量技术中心,在NSF批准号eeec - 0540865。其内容是完全的责任作者,不一定代表官方的观点NCRR或国家卫生研究院。NCRR信息是可用的
http://www.ncrr.nih.gov/ 。信息重组的企业可以获得临床研究
http://commonfund.nih.gov/clinicalresearch/overview-translational.aspx 。这个项目由克雷格·h·Neilsen基金会还支持。提供额外的资金支持的国家卫生研究院的基金NIBIB (1 r01eb007749)和研究所(1 r21ns056136)。这种材料支持部分由研发、办公室康复研发服务,VA卓越中心的轮椅和相关的康复工程,批准号B6789C。这个刊物的内容并不代表的意见退伍军人事务部或美国政府。
[
]1
施瓦兹
答:B。
崔
x T。
韦伯
D。
莫兰
d . W。
人脑控制接口:与神经假肢运动恢复
神经元
2006年
52
1
205年
220年
2 - s2.0 - 33749062944
10.1016 / j.neuron.2006.09.019
[
]2
王
W。
冷却
j·L。
佩雷斯
m·A。
泰勒。
e . C。
科恩
l·G。
Birbaumer
N。
麦片汤
s W。
施瓦兹
答:B。
去骨
m . L。
韦伯
d . J。
神经康复的接口技术:利用和促进神经可塑性
物理医学与康复诊所北美
2010年
21
1
157年
178年
2 - s2.0 - 70649103111
10.1016 / j.pmr.2009.07.003
[
]3
麦克法兰
d . J。
Sarnacki
w·A。
沃尔波
j . R。
脑电图扫描器三维运动的控制
《神经工程
2010年
7
3
2 - s2.0 - 77952407089
10.1088 / 1741 - 2560/7/3/036007
036007年
[
]4
悟道
J。
Schalk
G。
布劳恩
C。
Preissl
H。
罗森斯蒂尔
W。
Birbaumer
N。
Kubler
一个。
一个MEG-based脑机接口(BCI)
科学杂志
2007年
36
3
581年
593年
2 - s2.0 - 34250360319
10.1016 / j.neuroimage.2007.03.019
[
]5
Schalk
G。
米勒
k·J。
安德森
n R。
威尔逊
j . A。
史密斯
m D。
奥杰曼
j·G。
莫兰
d . W。
沃尔波
j . R。
鲁塔德
e . C。
二维运动控制在人类使用electrocorticographic信号
《神经工程
2008年
5
1
75年
84年
2 - s2.0 - 40549142375
10.1088 / 1741 - 2560/5/1/008
[
]6
Heldman
d . A。
王
W。
陈
美国年代。
莫兰
d . W。
dmoran@wust1.edu
局部场潜在光谱调优在达到运动皮层
IEEE神经系统和康复工程
2006年
14
2
180年
183年
10.1109 / TNSRE.2006.875549
[
]7
业务
l R。
Serruya
m D。
Friehs
g . M。
Mukand
j . A。
萨利赫
M。
卡普兰
a . H。
清净机
一个。
陈
D。
潘
r D。
多诺霍
j . P。
神经系综控制假肢设备通过人类的四肢瘫痪
自然
2006年
442年
7099年
164年
171年
2 - s2.0 - 33746160271
10.1038 / nature04970
[
]8
Velliste
M。
Perel
年代。
斯伯丁
m . C。
美国华福
答:S。
施瓦兹
答:B。
大脑皮层控制假肢的设限
自然
2008年
453年
7198年
1098年
1101年
2 - s2.0 - 45749117611
10.1038 / nature06996
[
]9
Ganguly
K。
Carmena
j . M。
出现一个稳定的皮质地图neuroprosthetic控制
公共科学图书馆生物学
2009年
7
7
2 - s2.0 - 68049146044
10.1371 / journal.pbio.1000153
e1000153
[
]10
小山
年代。
追逐
s M。
美国华福
答:S。
Velliste
M。
施瓦兹
答:B。
卡斯
r·E。
比较脑机接口译码算法在开环和闭环控制
计算神经科学杂志》上
2010年
29日
73年
87年
2 - s2.0 - 70350766687
10.1007 / s10827 - 009 - 0196 - 9
[
]11
Adee
年代。
迪安卡门的卢克手臂假肢准备临床试验
IEEE频谱 2008年2月,
http://spectrum.ieee.org/biomedical/bionics/dean-kamens-luke-arm-prosthesis-readies-for-clinical-trials
[
]12
Adee
年代。
赢家:革命将prosthetized
IEEE频谱 2009年1月,
http://spectrum.ieee.org/robotics/medical-robots/winner-the-revolution-will-be-prosthetized
[
]13
Schalk
G。
麦克法兰
d . J。
Hinterberger
T。
Birbaumer
N。
沃尔波
j . R。
BCI2000:通用脑机接口(BCI)系统
IEEE生物医学工程
2004年
51
6
1034年
1043年
2 - s2.0 - 2442715236
10.1109 / TBME.2004.827072
[
]14
Schalk
G。
BCI2000为实验提供了基础下面的同行评议的期刊论文
BCI2000网站
[
]15
Bcpy2000
2010年8月,
http://bci2000.org/downloads/BCPy2000/BCPy2000.html
[
]16
威尔逊
j . A。
悟道
J。
Schalk
G。
威廉姆斯
J。
过程测量延迟的大脑计算机接口
IEEE生物医学工程
2010年
57
7
1785年
1797年
2 - s2.0 - 77953729940
10.1109 / TBME.2010.2047259
[
]17
倪tdm文件的格式
国家仪器,2010年8月,
http://zone.ni.com/devzone/cda/tut/p/id/3727
[
]18
乔治欧普罗斯
答:P。
施瓦兹
答:B。
Kettner
r·E。
神经元人口编码运动方向
科学
1986年
233年
4771年
1416年
1419年
2 - s2.0 - 0023034513
[
]19
萨利纳斯
E。
阿伯特
l F。
向量重建解雇率
计算神经科学杂志》上
1994年
1
1 - 2
89年
107年
2 - s2.0 - 0028457488
10.1007 / BF00962720
[
]20.
施瓦兹
答:B。
莫兰
d . W。
雷纳
g。
微分表示额叶皮层的感知和行动
科学
2004年
303年
5656年
380年
383年
2 - s2.0 - 0346294230
10.1126 / science.1087788
[
]21
纳格尔
J。
在TCP / IP跨网拥塞控制
1984年1月,
http://tools.ietf.org/html/rfc896
[
]22
鲁塔德
e . C。
Schalk
G。
沃尔波
j . R。
奥杰曼
j·G。
莫兰
d . W。
在人类使用electrocorticographic脑机接口信号
《神经工程
2004年
1
2
63年
71年
2 - s2.0 - 6344249527
10.1088 / 1741 - 2560/1/2/001
[
]23
Keshner
m . S。
1 / f噪声
IEEE学报》
1982年
70年
3
212年
218年
2 - s2.0 - 0020102486
[
]24
Tallon-Baudry
C。
贝特朗
O。
Henaff
m·A。
Isnard
J。
费舍尔
C。
注意调节gamma-band振荡不同人类侧枕叶皮层和梭状回
大脑皮层
2005年
15
5
654年
662年
2 - s2.0 - 17744388165
10.1093 / cercor / bhh167
[
]25
爱德华兹
E。
纳
美国年代。
中间人
美国年代。
Canolty
r·T。
樱桃酒
h·E。
巴巴罗
n·M。
骑士
r·T。
时空成像皮质激活在动词的生成和图片命名
科学杂志
2010年
50
1
291年
301年
2 - s2.0 - 75249099404
10.1016 / j.neuroimage.2009.12.035
[
]26
施瓦兹
答:B。
Kettner
r·E。
乔治欧普罗斯
答:P。
灵长类动物的运动皮层和自由臂运动视觉目标在三维空间中。即单个细胞放电和运动方向之间的关系
神经科学杂志》上
1988年
8
8
2913年
2927年
[
]27
王
W。
陈
美国年代。
Heldman
d . A。
莫兰
d . W。
在达到运动皮质的位置和速度
神经生理学杂志
2007年
97年
6
4258年
4270年
2 - s2.0 - 34447122226
10.1152 / jn.01180.2006
[
]28
泰勒
d . M。
Tillery
s . i . H。
施瓦兹
答:B。
直接皮层控制3 d的实验鼠
科学
2002年
296年
5574年
1829年
1832年
2 - s2.0 - 0037036102
10.1126 / science.1070291
[
]29日
王
W。
Degenhart
答:D。
冷却
j·L。
Vinjamuri
R。
Sudre
g . P。
阿德尔森
p D。
持有人
d . L。
鲁塔德
e . C。
莫兰
d . W。
去骨
m . L。
施瓦兹
答:B。
Crammond
d . J。
泰勒。
e . C。
韦伯
d . J。
人工运动皮层活动期间与micro-ECoG电极记录单个手指的动作
31日年度国际会议的程序IEEE,生物医学工程学会:工程的未来生物医学(EMBC ' 09)
2009年9月
586年
589年
2 - s2.0 - 77950982223
10.1109 / IEMBS.2009.5333704
[
]30.
巴彻
D。
McFerron
J。
•克里
N。
巴蒂斯塔
一个。
闭环neuroprosthetics的实验平台
海报作为神经科学学会会议的一部分
2008年9月
美国华盛顿特区
1
5
[
]31日
里纳德
Y。
乐天
F。
吉波特
G。
Congedo
M。
也许
E。
Delannoy
V。
贝特朗
O。
Lecuyer
一个。
OpenViBE:开源软件平台设计、测试和使用脑-机接口在现实和虚拟环境
存在:遥控机器人和虚拟环境
2010年
19
1
35
53
2 - s2.0 - 77951744719
10.1162 / pres.19.1.35
[
]32
Sudre
G。
王
W。
首歌
T。
Kajola
M。
Vinjamuri
R。
冷却
J。
Degenhart
一个。
Bagic
一个。
韦伯
d . J。
djw50@pitt.edu
rtMEG:实时软件工具箱使用magnetoencephelography脑机接口
28
学报》第17届国际会议上生物磁学的发展生物磁学(Biomag 10)
2010年3月
362年
365年
10.1007 / 978 - 3 - 642 - 12197 - 5 - _85
[
]33
实地考察缓冲对脑电图/梅格数据的实时访问
2010年10月,
http://fieldtrip.fcdonders.nl/development/realtime/buffer
[
]34
Schalk
G。
鲁塔德
e . C。
布伦纳
P。
奥杰曼
j·G。
格哈特
l。
沃尔波
j . R。
实时检测与事件相关的大脑活动
科学杂志
2008年
43
2
245年
249年
2 - s2.0 - 53249109334
10.1016 / j.neuroimage.2008.07.037
[
]35
Schalk
G。
布伦纳
P。
格哈特
l。
女孩
H。
沃尔波
j . R。
脑-机接口(bci):检测而不是分类
神经科学杂志》上的方法
2008年
167年
1
51
62年
2 - s2.0 - 36548999202
10.1016 / j.jneumeth.2007.08.010
[
]36
Delorme
一个。
Makeig
年代。
EEGLAB:一个开源工具箱等实验分析EEG动态独立分量分析
神经科学杂志》上的方法
2004年
134年
1
9
21
2 - s2.0 - 1242283941
10.1016 / j.jneumeth.2003.10.009