进行脑机接口(BCI)研究对技术和软件有很高的要求。为了加速BCIs的开发和可访问性,研究人员开发了BciPy,一个基于Python的用于BCI研究的开源软件。该款软件可用于事件相关电位(ERP)拼写接口恢复通信;它也可用于其他非拼写和非ERP BCI范式。该系统的主要模块包括支持数据采集、数据查询、刺激显示、信号处理、信号查看与建模、语言建模、任务构建以及简单的图形用户界面(GUI)。
体系结构
BciPy高级模块和实现的示意图,如下图所示。该图演示了使用BCI所需的组件,以及在当前版本中BciPy模块是如何分区的。实现图将功能分为前端和后端,其中BciPy的可观察输出被认为是面向前端(Frontend)组件
BciPy体系图
下图为BciPy试验会话结果。图(a)原始数据结果。使用BciPy系统在RSVP校准模式下收集脑电数据。图中的效果证明了软件在Oz频道上以4 Hz的显示速率使用PSD收集P300(左)和SSVEP(右)等ERP的能力。据同一会话的数据进行的模型训练得出的AUC为0.82,表明良好的目标/非目标识别
BciPy试验会话结果
流数据被发送到Buffer对象。缓冲区在内存中保留可配置的数据量,并使用后端SQLite3数据库将数据定期存储到磁盘。缓冲区有一个用于执行任意数据查询的接口。 BufferServer是缓冲区的接口,并确保对缓冲区的读取和写入操作是异步的,以防止出现竞争情况。通过向上述数据获取客户端提供直观命令,可以访问这些数据。这个库的优点之一就是数据检索的简便性如图3所示。
数据采集客户端演示
上图为数据采集客户端演示。数据采集客户端是BciPy与任何外部数据设备的主要交互。上面的代码段演示了如何在注册表中查找设备,开始获取,查询数据以及停止获取。
数据服务器演示
上图数据服务器演示,DataServer通过其独特的交互协议来配置数据源,并将数据提供给BciPy。上面的代码段演示了如何定义协议,初始化数据服务器并停止它。
显示模块图表示较大的框架和显示之间的交互。使用的参数取决于任务类型,任务类型定义了刺激类型和显示元素,这两者会被展现在PsychoPy窗口上。
显示
RSVP Keyboard GUI提供了一个简单的界面来执行和配置RSVP的已注册BciPy任务。首先,用户可以编辑参数,计算先前会话的AUC或输入用户ID。用户ID是开始实验所必需的,并用于为会话的时间戳标记数据文件夹。输入用户ID或选择先前的用户ID(从参数文件中的数据文件夹位置提取)后,可以选择实验类型。
RSVP Keyboard
BciPy GUI具有一个集成的Signal Viewer(见下图)。这个GUI组件允许临床医生和研究人员在实验期间监控脑电图信号,以确保设备连接稳定,数据质量一致。
BciPy信号查看器
BciPy Signal Viewer会在实验之前和/或过程中显示从BciPy提供的数据,以进行质量检查。默认情况下会显示BciPy的每个可用通道,但可以通过单击底部带有相应频道名称的复选框将其从查看器中删除。单击Start按钮将发送流数据到查看器,可以将其设置为2、5或10秒的更新间隔。右下方的下拉菜单允许将显示窗口配置为所需的长度。此外,还有自动缩放和过滤复选框,可方便地进行显示配置。此查看器中使用的过滤器是所有任务使用的默认带通过滤器。
BciPy地址:
https://github.com/CAMBI-tech/BciPy
论文信息:
BciPy: brain–computer interface software in Python
版权声明:编译作者:邹思
文章仅用于学术交流,不用于商业行为,
若有侵权及疑问,请后台留言,管理员即时删侵!