NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

设计脑机接口的实践指南

  • 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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

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

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

关注

评论

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

Plato Farm有望通过Elephant Swap,进一步向外拓展生态

鳄鱼视界

关于 StatefulWidget,你不得不知道的原理和要点!

岛上码农

flutter ios 前端 安卓开发 签约计划第三季

聊聊自动化测试的度量指标

老张

自动化测试 质量度量

2200字详细讲解计算机网络的“流量管理员”:QoS 服务质量

wljslmz

流量控制 QoS 网络技术 7月月更

【函数式编程实战】(九) Optional实战大全

小明Java问道之路

java8 Optional Stream API 7月月更 签约计划第三季

第五届数字中国奖项出炉,昇腾人工智能融合赋能平台斩获十佳首展成果奖

Geek_2d6073

模块8(消息队列存储消息数据的mysql表格)

Geek_701557

缓存一致性与内存屏障

蝉沐风

volatile 内存屏障 缓存一致性 MESI

Prometheus 运维工具 Promtool (三)Debug 功能

耳东@Erdong

Prometheus 7月月更 Promtool

客户案例 | 关注老年用户体验,银行APP适老化改造要避虚就实

易观分析

用户体验 银行app 老龄化

次轮Okaleido Tiger即将登录Binance NFT,引发社区热议

股市老人

Plato Farm通过LaaS协议Elephant Swap,为社区用户带来全新体验

股市老人

次轮Okaleido Tiger即将登录Binance NFT,引发社区热议

鳄鱼视界

参数解析与跳石板

未见花闻

7月月更

在灯塔工厂点亮5G,宁德时代抢先探路中国智造

脑极体

小程序怎样助力智能家居生态新模式

Geek_99967b

物联网

音乐体验天花板!14个网易云音乐的情感化设计细节

张姣发

创新 交互设计 网易云音乐

React 学习记录2📝

程序员海军

React 7月月更

平成千字文(へいせいせんじもん)    (平成12年9月10日 石渡 明 作)  宇宙広遠 銀河永久 日月運行 不乱無休 地球公転 季節変移 黄道星座 太陽年周 故郷群島 南熱北冷 海洋温暖 気候順良 青空飛雲 諸野深緑 湖泉静息 谷川清流 春桜一面 新芽

贾献华

7月月更

【函数式编程实战】(七) Collection在Java8和9中的增强

小明Java问道之路

Lambda collection Stream API 7月月更 签约计划第三季

数据资产管理的概念

奔向架构师

数据资产 7月月更

【函数式编程实战】(八) 如何将你的代码重构

小明Java问道之路

设计模式 函数式编程 7月月更 签约计划第三季 Lambda表达式

传统车企数字化转型如何打通最后一公里?

雨果

车联网 DaaS数据即服务

提前批到底影不影响正式批?

KEY.L

7月月更

Mybatis中LRU缓存实现

ue4

mybatis LRU mybatis源码

Okaleido Tiger 7.27日登录Binance NFT,首轮已获不俗成绩

BlockChain先知

C# 中的转译字符'/b'

陈言必行

7月月更

为啥国内大厂都把云计算当成香饽饽,这个万亿市场你真的了解吗

雨果

DaaS数据即服务

Plato Farm全新玩法,套利ePLATO稳获超高收益

EOSdreamer111

Bootstrap的导航元素和Well详解【前端Bootstrap框架】

恒山其若陋兮

7月月更

Okaleido Tiger 7.27日登录Binance NFT,首轮已获不俗成绩

EOSdreamer111

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