2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

设计脑机接口的实践指南

  • 2022-04-07
  • 本文字数:2302 字

    阅读完需:约 8 分钟

设计脑机接口的实践指南

背景:BCI 是什么意思?

脑机接口(BCI)指的是将大脑与计算机连接起来的工具。过去十年间,业界对 BCI 的关注度迅速增长——一个典型例子就是,埃隆·马斯克名下主要研发脑机接口技术的初创企业 Neuralink 每次开新发布会都会引发舆论热议[1]。Neuralink 可以在大脑中植入人造物来完成多种任务,诸如用思维来控制动作或直接在大脑中播放音乐等。


你会感到恐惧吗?没关系,这是很正常的。但在这篇文章中,我们将只关注一个简单的 BCI 实现,具体来说是用一个娱乐设备[2]记录脑电波活动,即脑电图(EEG)。这个实现不需要对人体做任何手术(也不会有疼痛或死亡风险)。虽然你(很遗憾)不能用它来收听你最喜欢的乐曲列表,但可以实时观看 BCI 佩戴者的情绪波动(只不过是以代码的形式)。

一个用例:用 EEG Unicorn 估测情绪

如前所述,在本教程中我们将从想法一路走到具体的实现,完成所有必要的步骤来设计一个处理具体任务的 BCI。作为示例,我们要做的 BCI 属于情绪估测领域。这个应用旨在估计参与者的情绪状态。



情绪 BCI 图解。


如图所示,这个管道的目的是将参与者的 EEG 信号作为输入,并返回相应的 V-A 情感坐标图。V-A 图是一种应用于生物心理学的情绪坐标,其中 Valence(横轴)代表愉快和不愉快(即积极和消极)的程度,而 Arousal(纵轴)代表兴奋和平静的水平。基于这种表示,任何情感状态均可表示为 VA 坐标平面上的一个点。

设计情绪识别 BCI 的关键步骤

具体而言,为设计和部署 BCI,我们必须遵循几个关键步骤。

范式定义和信号记录

首先我们要定义 BCI 的范式:我想对什么事物建模?或者想要估计哪些信息?我的应用程序的目的是什么?我是否想通过 BCI 来控制机械手/脚?我是要评估驾驶任务中驾驶员/成员的警觉性吗?是要预测疾病的发作几率?还是检测癫痫发作状态?科学界对一些可以插入 BCI 的研究项目存在巨大兴趣。


在本文的案例中,我们决定关注之前的一项研究工作,就是估计参与者观看一些视频时的情绪状态[3]。这篇论文还提出了一个可以促进特定情绪状态的视频列表(我们对此非常感兴趣!)。这些视频的列表和对应的情绪都可以在 youtube 上找到,并列在注[4]中。


因此我们设计了一个实验基准测试,包括在参与者观看宣传特定情绪的视频时记录他们的 EEG 信号。在我们的存储库中,脚本registration_pipeline.py给出了一段完成这一任务的代码,用户只需将他想要处理的视频放在专用目录中(或改变路径)即可。

概要分析

有了上述基准测试,我们就可以完成脑电波信号的记录工作了。这些信号最后将构成训练 ML 模型(甚至是 DL)所必要的数据集。


我们来做这个模型吧......等一下!在建成一个能够从 EEG 信号中估计情绪的管道之前,我们必须提取信息来帮助模型处理数据。如果你有大量信号和/或可用的计算资源,跳过这一步也是可以的。但为了保持简洁,我们考虑采用更自然简单的模型来简化复杂性。一种可能的提取信息的方法是基于脑电图信号的频率特性,也就是说“这个脑电图片段是在高频率还是低频率范围内振荡?”。过去,科学家们发现,一些脑电图信号是由几个频段组成的,每个频段在特定的任务或行为中都会增强/减弱[4]。


  • δ为深度睡眠,[0-4Hz]。

  • θ表示昏昏欲睡,[4-7Hz]。

  • α代表放松和闭目思考,[8-15Hz]。

  • β代表积极思考和与专注相关的状态[16-31Hz]。

  • γ代表感受到更多压力的状态[32-50Hz]。特征提取的图示。



按照这个过程,我们从每个 EEG 片段中提取了一个信息向量。这个过程的目的是提取信息,以便更好地处理生物医学信号。这个步骤可以使用脚本outline_analysis.py的第一部分来处理。


最后(如果你还跟得上的话),你应该知道剩下的步骤是创建一个模型,用它从上面预计算的特征向量中估计情绪状态(是快乐还是悲伤?)。这里为了让我们的方法简单易懂,我们考虑一个由决策树组成的简单模型。这种简单方法背后的想法是寻找动态阈值来区分信息向量,例如第 i 个电极的高α贡献对应于低 arousal,第 j 个电极的中等γ贡献对应于高 valence,等等。


给出特征向量 X 和它的标签 y,就可以创建一个名为 clf 的分类器(对应于决策树)。该分类器可以通过以下几行代码轻松训练。


from sklearn import treeclf = tree.DecisionTreeClassifier() # definition of the modelclf.fit(X, y) # training of the model...
复制代码


在 outline_analysis.py 的第二部分给出了一个更完整的解释,包括整个模型描述和训练。训练完这个简单的决策树后,可以用 joblib 库来保存它。


...from joblib import dumpdump(clf, 'classifier_file_name')
复制代码

实时实现

在训练和保存模型之后,剩下的步骤是将各个部分合并在一起。


两个联合脚本必须并行工作:第一个脚本旨在记录、处理和估计来自 EEG 的情绪状态pylsl_emotion.py;第二个脚本会在图形上显示相应的情绪和对应的笑脸,如play_emotion.py所述。

尝试一下

最后提一句:自己尝试一下吧!上述代码和自述文件都放到了Github上。你可以自己尝试,或者为不同的模型或 EEG 耳机改编代码。


以上就是全部内容了,感谢大家阅读!我并没有说我的代码是完美的,但如果你有意见、问题或想了解更多内容,请不要犹豫,立刻与我联系吧!😊

参考文献

[1] Rolfe Winkler:埃隆·马斯克创办了,旨在将人脑与计算机连接起来。华尔街日报,2017(链接


[2] Unicorn Hybrid Black——脑机接口(链接


[3] Katsigiannis, S 和 Ramzan, N:通过无线低成本货架设备收集到的 EEG 与 ECG 信号情感识别数据库。IEEE 生物医学和健康信息学(2017——链接)。


[4] Gabert-Quillen, Crystal A:情感视频片段打分。行为研究方法(2015——链接)。


[5] William O Tatum:Ellen R.Grass Lecture: extraordinary EEG。2014(链接)。


原文链接:https://towardsdatascience.com/hands-on-guide-to-design-brain-computer-interface-b99bcc198428

2022-04-07 12:092094
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 567.2 次阅读, 收获喜欢 1978 次。

关注

评论

发布
暂无评论
发现更多内容

HarmonyOS Next 记事本应用开发实践

知识浅谈

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

三项市场第一,曙光存储稳居分布式存储领导者象限

科技热闻

特权账号:企业安全的关键要素与防护策略

天翼云开发者社区

安全 特权账号

NocoBase 本周更新汇总:优化及缺陷修复

NocoBase

开源 低代码 零代码 无代码 版本更新

HyperMesh模型导入与几何清理

智造软件

仿真 CAE cad Hypermesh hyperworks

智元主办|机器人赛事AgiBot World Challenge@IROS2025等你来战!

AgiBot World

机器人 机器人开发 具身智能 智元机器人

用户实测YRCloudFile KVCache丨以存代算显著提升AI推理性价比

焱融科技

AI推理 大型语言模型LLM KVCache

CST如何生成简单通用的IBIS模型文件

思茂信息

cst CST软件 CST Studio Suite

从开发者角度看数据库架构进化史:JDBC - 中间件 - TiDB

TiDB 社区干货传送门

开发语言 应用适配 数据库连接 8.x 实践

你的产品功能真的必要吗?

Feedalyze

效率工具 产品开发 产品迭代 用户反馈 用户需求

做好流程管理,打通企业高效阀门!

积木链小链

数字化转型 智能制造 中小企业

1688API接口终极宝典:列表、详情全掌握,图片搜索攻略助你一臂之力

tbapi

1688商品详情接口 1688商品数据接口 1688API 1688图片搜索接口

“最近我给有代码洁癖的同事墙裂安利了通义灵码”

阿里云云效

通义灵码

基于HarmonyOS Next的闹钟应用开发实践

知识浅谈

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

谷歌地图代理 | 使用HTML和矢量模式API更轻松地创建Web地图

Cloud Ace 云一

Bonree ONE 2025春季版全球发布 | 云原生适配+LLM大模型接入成核心亮点!

博睿数据

云原生 博睿数据 LLM模型

办公网络流量隔离:为高效办公保驾护航

天翼云开发者社区

安全 网络

“最近我给有代码洁癖的同事墙裂安利了通义灵码”

阿里巴巴云原生

TiDB 中新 Hash Join 的设计与性能优化

TiDB 社区干货传送门

HarmonyOS工具安装教程

知识浅谈

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT

浅谈环境检查功能框架搭建

inBuilder低代码平台

"开机即战"时代来临!开鸿Bot系列创新开源鸿蒙开发新范式

科技热闻

让每通来电都有价值,百度智能云客悦智能外呼的三原色法则

科技热闻

WebGL软件开发的技术方案

北京木奇移动技术有限公司

软件外包公司 webgl开发 webgl技术

中国电信重塑天翼AI云手机,为用户开启云端智能新生活

极客天地

TiDB 替换 HBase 全场景实践指南 ——从架构革新到业务赋能

TiDB 社区干货传送门

TiDB第四届征文-业务场景实战

Uniapp开发鸿蒙购物应用教程之商品列表

幽蓝计划

WebGIS项目开发技术方案

北京木奇移动技术有限公司

软件外包公司 webGIS开发 webgl开发公司

让用户反馈成为产品迭代的动力源泉

Feedalyze

效率工具 产品经理 产品迭代 用户反馈 用户需求

AI大模型入门 三:5分钟速成Prompt公式,让AI生成代码的通过率从30%到90%

测试人

人工智能

HarmonyOS Next音乐播放器组件开发实践

知识浅谈

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

设计脑机接口的实践指南_AI&大模型_Victor Delvigne_InfoQ精选文章