基于运动想象的脑控游戏

基于运动想象脑电的神经反馈游戏开发

摘要

脑电图(EEG)已被广泛用于监测受试者/患者的心理状态。利用监测结果作为反馈,神经反馈使患者能够学会调节自身的生理和心理状态,从而改善身体和心理受试者/患者的状态。通过分析运动想象产生的脑电图成分,开发了一种基于运动想象的意念控制游戏,包括脑机接口(BCI)的设计和视频游戏的设计。在游戏中,神经反馈通过视觉方式实现,用户可通过此方式学习提高注意力持续时间。基于运动想象,脑电图信号被分为两类:左手和右手运动想象。分类准确率高达70%。频带功率分析结果表明,用户在实验过程中的注意力水平有所提高。在此神经反馈游戏系统中,脑电图信号不仅用于监测,还用于游戏控制。该游戏为用户提供注意力状态测量。借助脑机接口中的神经反馈,用户与游戏形成闭环交互。所提出的脑机接口视频游戏不仅可用于娱乐和放松目的,还可用于注意力持续时间训练目的。

关键词

脑电图 · 神经反馈 · 脑机接口 · 运动想象 · 视频游戏 · 注意力

1 引言

注意缺陷多动障碍(ADHD)通常以普遍存在的注意力不集中和多动症症状为特征,全球患病率约为5.29%。大多数ADHD患者在儿童时期即表现出症状。除了符合ADHD临床诊断标准的儿童/患者外,由于人类社会快速发展带来的信息过载,越来越多的人在日常生活中面临注意力集中的困难。人们面临的挑战和干扰日益增加,导致社会中心理问题变得越来越严重。然而,一方面,有些人忽视了自己的病情;另一方面,传统的心理治疗或康复通常劳动密集型、耗时,因而费用昂贵。由于这些因素,存在注意力问题的人群可能难以获得可及的治疗。

鉴于这一背景,迫切需要一种方式,使患有症状性心理问题的人能够获得适当的检查、预防和治疗。脑机接口(BCI)中的神经反馈技术显示出良好的应用前景 [20]。已证明其在健康监测、疾病治疗以及改善身体功能方面有效[4]。

脑机接口是一种绕过人体周围神经系统的人类中枢神经系统与外部设备之间的通信与控制系统[27]。近年来,脑机接口技术发展迅速,已成为人们研究和理解大脑功能的重要技术。利用脑电图测量,脑机接口提供了对脑状态的可能无创监测,因此在残疾人康复、娱乐等领域具有广泛的应用[2, 21, 30]。在许多研究中,脑机接口与涉及神经反馈的视频游戏相结合[18, 19]。低准确率和实时性能差是脑机接口游戏开发中的常见问题[5, 29]。近年来,新兴的机器学习和脑电图分析信号处理方法提高了脑机接口在检测心理状态方面的有效性[1, 8, 16, 17]。例如,共空间模式(CSP)在脑电图识别中特别是在运动想象方面得到了广泛研究和应用,并取得了良好效果[10, 15]。

如今,大多数神经反馈应用都使用设备通过视觉或听觉信号来揭示患者的生理和心理活动,旨在通过重复训练活动调节生理和心理功能[12]。然而,这种治疗方式往往枯燥乏味,导致患者可能无法持续地接受治疗[7]。为了使环境更加引人入胜且吸引人,将其与计算机游戏相结合已被证明是一种有效的设计。针对焦虑儿童,舍内费尔德 E A 等人设计了一款名为“心灵之光”的神经反馈游戏[23]。该游戏的背景故事是在一座黑暗的房子中拯救祖母,唯一明亮的东西是心灵之光,它由脑电图α节律和β节律的频带功率控制。对于注意力与记忆训练,托马斯 K P 等人设计了一款神经反馈游戏,要求玩家在 3×3矩阵中记住一组数字,并利用注意力正确填写该矩阵[25, 26]。

但对于上述提到的神经反馈游戏而言,3×3 matrix 游戏更像是一种训练任务,非常枯燥,因此很难吸引人们的兴趣。尽管“Mind-light”加入了拯救祖母的背景故事,看起来更具吸引力,但其开发游戏中的故事情节是预先设计好的,因此在多次游玩后会失去挑战性并变得毫无意义。

因此,在本研究中,我们提出了一种基于运动想象技术、由人脑思维控制的神经反馈游戏,具有更强的娱乐性,可反复游玩。首先,该游戏可自由调节多级难度,并在游戏过程中自动升级游戏等级,从而避免多次游玩后容易失去趣味性。此外,为了更好地适应每位用户,游戏设置了个性化设置。根据用户的偏好以及游戏的不同状态,环境和背景音乐会自动变化。同时,我们将运动想象与注意力训练相结合。

一方面,我们可以通过运动想象脑电来控制游戏;另一方面,游戏表现反过来反映了大脑的状态。玩家注意力越集中,游戏控制效果越好。通过玩游戏,我们不仅可以监测和训练注意力,还能从日常生活的压力中得到放松和减压。因此,该游戏不仅适用于娱乐,也适用于放松或注意力训练,未来或许可用于注意力缺陷多动障碍(ADHD)的辅助治疗[11]。

本游戏系统的结构如图1所示。在整个设计中,使用Neuroscan设备及其配套软件SCAN4.5进行脑电图信号采集。选择Qt Creator进行游戏开发,因其在界面设计方面的优势,而脑电处理算法则通过Python实现。之所以使用Python语言,是因其语法简洁、代码执行效率高,并且拥有丰富的库,尤其是机器学习库[22]。然后我们可以使用MATLAB来实现所有软件之间的通信。因此,整个流程如下:EEG信号由Neuroscan采集,并通过电缆发送到计算机中的SCAN4.5。MATLAB通过TCP客户端与SCAN4.5通信,以实时获取脑电数据。然后MATLAB调用Python程序对原始脑电图数据进行处理,提取并选择特征,再将其分类为两类。之后,我们将分类结果通过UDP套接字发送到视频游戏中,游戏会根据这些结果做出响应。

为了更好地介绍我们的开发工作,我们将其分为两部分:脑机接口的实现和游戏设计,具体内容将在下一节中介绍。

示意图0

2 脑机接口的实现

2.1 运动想象中的ERS/ERD现象

大脑皮层的不同生理状态可使脑电图的波形产生不同的变化。当大脑皮层的某一区域被激活时,该区域的信息处理将导致某些频段脑波的振幅降低或阻断。这种电生理现象称为事件相关去同步化(ERD)。相反,当该区域处于静息状态时,某些脑电图频段的振幅会明显增加,称为事件相关同步化(ERS)。许多研究表明,这些现象不仅出现在实际运动中,也出现在运动想象过程中[31]。因此,当我们想象左手运动时,右侧大脑的脑电图信号能量水平会降低,而左侧大脑则升高。同样,当我们想象右手运动时,左侧大脑的脑电图信号能量水平会降低,而右侧大脑则升高。

示意图1

其中C3和C4是分别位于左右脑的电极。根据这两种想象,我们可以将脑电图信号分为两类。

2.2 通过频段选择实现更优的数据预处理

ERS/ERD现象在8–12赫兹和18–26赫兹频段表现明显。但对于不同受试者,有效频段并不相同。因此,获取有效频段是一项重要任务。频段选择方法如图3所示。首先,为了滤除噪声信号,我们直接在SCAN4.5中使用0.5–40赫兹的带通滤波器。其次,我们依次使用从4赫兹到40赫兹、带宽为4赫兹的9个带通滤波器,以获得有效频段。这9个频带数据将被输入特征提取模型。之后,我们将采用互信息的方法,选取在ERS/ERD上区分度较好的一些特征。

示意图2

2.3 基于共空间模式分析的特征提取方法

在共空间模式中,所需的空间滤波器被构造成投影矩阵。通过这些投影矩阵,可以通过最大化一类信号的方差并最小化另一类信号的方差来提取显著的ERD/ERS,从而在投影空间中区分脑电图信号。

为了获得投影矩阵W,我们需要计算在两种左手或右手运动的运动想象下,从 Nc通道测得的带通滤波后的脑电信号的协方差矩阵。wehave

$$
C_L = \frac{1}{|Q_L|} \sum_{i \in Q_L} \frac{E_i E_i^T}{\text{tr}(E_i E_i^T)} \quad (1)
$$

$$
C_R = \frac{1}{|Q_R|} \sum_{i \in Q_R} \frac{E_i E_i^T}{\text{tr}(E_i E_i^T)} \quad (2)
$$

其中$E_i \in \mathbb{R}^{N_c \times T}$是第i次试验的带通滤波后的脑电信号的数据矩阵,包含$N_c$个电极通道和$T$个采样点,$\text{tr}()$表示矩阵的迹。$Q_L$和$Q_R$表示属于两类的试验集合,即左手运动想象和右手运动想象。设

$$
C = C_L + C_R \quad (3)
$$

特征分解作为

$$
C = U_C \Lambda U_C^T \quad (4)
$$

其中$U_C$为特征向量矩阵,$\Lambda$为特征值的对角矩阵。然后可得到白化变换P为

$$
P = \Lambda^{-1/2} U_C^T \quad (5)
$$

协方差矩阵 $C_L$ 和 $C_R$ 可以转换为

$$
T_L = P \times C_L \times P^T \quad (6)
$$

$$
T_R = P \times C_R \times P^T \quad (7)
$$

$T_L$和$T_R$共享公共特征向量,即:

$$
T_L = B \times \Lambda_L \times B^T \quad (8)
$$

$$
T_R = B \times \Lambda_R \times B^T \quad (9)
$$

且$\Lambda_L$和$\Lambda_R$具有它们的和为1的性质

$$
\Lambda_L + \Lambda_R = I \quad (10)
$$

然后我们可以得到空间滤波器 $W$ 为:

$$
W = (P^T \times B)^T \quad (11)
$$

根据公式(6)–(9)和(11),$C_L$和$C_R$可以通过投影矩阵进行变换:

$$
\Lambda_L = W C_L W^T \quad (12)
$$

$$
\Lambda_R = W C_R W^T \quad (13)
$$

其中 $\Lambda_L = \text{diag}(\lambda_L^m)$, $\Lambda_R = \text{diag}(\lambda_R^m)$ 和 $\lambda_L + \lambda_R = 1$。这意味着如果矩阵$C_L$的特征值$\lambda_L$取最大值,则矩阵$C_R$的特征值取最小值。然后我们将 $\lambda_L$按降序排列,同时调整投影矩阵$W$的相应行。最后,选取投影矩阵$W$的前$l$行和后$l$行,即可提取出具有最强判别信息的方差特征。

$$
f_{csp}(i) = \log\left( \frac{\text{diag}(W E_i E_i^T W^T)}{\sum_{j=1}^{2l} (\text{diag}(W E_i E_i^T W^T))_j} \right) \quad (14)
$$

2.4 线性判别分析的分类

线性判别分析是一种经典的分类方法。该方法的基本思想是将高维样本投影到最优判别向量空间,使得新子空间中的样本具有最大的类间距离和最小的类内距离,以实现最佳的可分性。

假设$x^{(i)} \in {x_1^{(i)}, x_2^{(i)}, …, x_n^{(i)}}, i \in {1, 2}$ 是两类脑电数据序列,可通过投影矩阵$w$ 投影到新空间,$y = w^T x$。投影前后,每类样本的平均值可表示为:

$$
\mu_i = \frac{1}{N_i} \sum_{x \in x^{(i)}} x
$$

$$
\tilde{\mu} i = \frac{1}{N_i} \sum {x \in x^{(i)}} w^T x = w^T \mu_i \quad (15)
$$

投影前后,类内散度可以表示为

$$
S_w = \sum_{i=1}^2 \sum_{x \in x^{(i)}} (x - \mu_i)^2
$$

$$
\tilde{S} w = \sum {i=1}^2 \sum_{x \in x^{(i)}} (w^T x - \tilde{\mu}_i)^2 = w^T S_w w \quad (16)
$$

以及这两个类别之间的散度矩阵如下所示

$$
S_b = (\mu_1 - \mu_2)(\mu_1 - \mu_2)^T
$$

$$
\tilde{S}_b = (\tilde{\mu}_1 - \tilde{\mu}_2)(\tilde{\mu}_1 - \tilde{\mu}_2)^T = w^T S_b w \quad (17)
$$

在分类中,如果样本的类间距离更大且类内距离更小,则分类结果将更好。这里我们介绍费舍尔判别准则:

$$
J(w) = \frac{\tilde{S}_b}{\tilde{S}_w} = \frac{w^T S_b w}{w^T S_w w} \quad (18)
$$

为了获得最佳分类,应选择最优的投影矩阵 $w$ 使得 $J(w)$ 达到最大。根据拉格朗日乘子理论,$w$ 可通过以下公式求得:

$$
S_b w = \lambda S_w w \quad (19)
$$

因此,$w$是$S_w^{-1} S_b$的特征向量。结合上述公式,可推导出投影矩阵$w$:

$$
w = S_w^{-1}(\mu_1 - \mu_2) \quad (20)
$$

然后,基于样本 $x^{(i)} \in {x_1^{(i)}, x_2^{(i)}, …, x_n^{(i)}}, i \in {1, 2}$ 构建分类准则,并可根据该准则对新样本进行分类。该准则可表示为:

$$
y(x) = w^T x + w_0 \quad (21)
$$

其中$x$为新样本,$w$为投影矩阵,$w_0$为偏移值。$y(x) > 0$的计算结果表示样本$x$属于一类,而$y(x) < 0$表示另一类。

3 游戏的设计

3.1 游戏整体描述

如图4所示,视频游戏的界面由三部分组成:游戏窗口、波形显示和用户界面。接下来我们将依次介绍这三个部分。

示意图3

如游戏窗口所示,一个紫色星球放置在一个平台上,该平台可根据从MATLAB发送的脑电图分类结果顺时针或逆时针旋转。

示意图4

如果平台不在水平位置,星球将在重力和支持力的作用下向平台的低端移动,随后移出平台并掉落,如图5所示。为了防止这种情况,应将平台顺时针或逆时针旋转,以使星球保持在平台上。星球停留在平台上的时间越长,得分就越高。为了增加游戏的趣味性,我们设置了三个等级:简单、普通和困难。在进入新等级之前,星球会闪烁2秒以提示玩家。进入后,平台长度和摩擦系数将减少为原始值的0.8倍,但玩家同时可以获得两倍的得分。升级等级的条件是玩家的表现,该表现由公式(22)所示进行评估。这意味着如果玩家更加集中注意力在游戏中,他将进入更高的游戏等级,并在更短的时间内获得更高的得分。为了更直观地反映玩家的状态,游戏窗口的右上角设有一个卡通脸。根据通过(22)获得的对玩家注意力状态的评估,该卡通脸会显示快乐、微笑、平静、不快乐和悲伤,如图6所示。

示意图5

作为我们研究的对象,神经反馈需要一个界面来显示身体状态,从而让我们能够自行调节身体状态。因此,游戏窗口中加入了卡通脸用于神经反馈,但这不足以更详细地评估玩家的心理状态。因此,我们为游戏增加了波形显示模块。该模块可以显示四种波形,包括平台偏转、星球的位置和横向加速度,以及游戏的综合评估。所有这些波形都可以从某个方面反映玩家的注意力。例如,如果星球的位置接近平台中心,说明玩家对游戏的控制较好。因此,对于所有类型的波形而言,越接近0,表示对游戏的控制越好。然而,如上例所示,即使星球位于平台中心,但若其速度较高,则由于惯性作用,星球仍可能移出平台。因此,仅通过位置、速度或偏转来评估游戏控制情况是不够的。应当建立一个综合考虑各方面的综合评估。该综合评估如下所示。

$$
E = \frac{a}{t_f - t_0} \int_{t_0}^{t_f} v(t)^2 dt + b|x| \quad (22)
$$

其中$v(t)$和$x$分别为星球的速度和位置,$t_0$为该时间段内的某一时刻,$t_f$为当前时间。$a$和$b$为权重系数。该综合评估与从$t_0$到$t_f$时间段内的位置及累积速度相关。如果在此期间星球移动缓慢且其位置接近于0,意味着综合评估值“E”非常小,则可以认为游戏被控制得很好。由于惯性,高速运动的星球难以停止,因此我们使用$v(t)^2$而非$v(t)$来防止出现高速度。如前所述,如果玩家注意力不佳导致对游戏的控制较差,“E”将具有较大值,卡通脸会显得不开心甚至悲伤;而当控制良好时,“E”将具有较小值,卡通脸则会露出微笑甚至表现出快乐。一旦$E < \xi$($\xi$为开发者设定的一个小数值),游戏将进入更高关卡。

本研究中神经反馈的目的之一是让玩家通过玩游戏来放松并调节心理状态。但不同的人有不同的偏好,因此需要个性化设计。在用户界面中,玩家可以选择自己喜欢的背景和音乐类型。我们为玩家提供了两种背景,一种是“星光”,另一种是“古堡”,如图7所示。此外,每种类型中存储了大量音乐,在游戏运行时会自动切换。玩家可以通过向数值调节框输入值来更改游戏难度“g”、“u”、“R”和“L”。其中,“g”为重力加速度,“u”为摩擦系数,“R”为旋转速度,“L”为平台长度,而“sinbox”是Qt Creator提供的一个输入控件。如果不输入参数,游戏将使用初始设定的默认值运行。界面中的“User”用于记录最高得分,并保存用户的选择以及所有波形。当玩家下次运行该游戏时,只需输入其姓名并点击“load”按钮,即可恢复上次的所有信息和设置。

示意图6

3.2 游戏部分的实现

图4所示的游戏窗口是 Qt Creator 提供的一个图形视图。与该游戏中界面中的标签和复选框等其他控件一样,图形视图是主窗口的一个子类。主窗口中的所有子类都可以通过信号与槽机制进行连接。在游戏窗口中,星球、平台、卡通脸以及得分和等级的文本都是 Qt Creator 提供的图形项。为了实现星球和平台的基本运动,我们将星球和平台的项设置为父项的子类。这样,这三个项的坐标轴重合。因此,只要父项旋转,星球和平台的坐标轴也会随之旋转。因此,如图8所示,游戏窗口中星球的运动可以分解为沿 X轴 和 Y轴 的运动,这可以通过 Qt Creator 提供的函数 “moveby(dx,dy)” 来实现。此外,为了让星球看起来像是在滚动,星球在移动时应同时进行旋转。因此,可以使用 Qt Creator 提供的 “rotate(angle)” 函数。

示意图7

星球的运动基于牛顿第二定律。首先,我们启用一个时间间隔为0.02秒的定时器。每0.02秒平台旋转一定的角度,这些角度可以累积成为平台的实际角度。然后,我们可以计算在一段时间间隔内星球沿X轴的加速度和位移。我们有

$$
a_x = g \times \sin(\alpha) \
d_x = v_x t + 0.5 a_x t^2 \quad (23)
$$

其中 $\alpha$ 是平台的实际角度,$g$ 是重力加速度,$t$ 是 0.02秒的时间间隔,$v_x$ 是初速度,可通过

$$
v_x = \tilde{v}_x + a_x t \quad (24)
$$

其中 $\tilde{v}_x$ 是上一时间段的初速度。之后,可计算星球的旋转以实现滚动效果。

$$
\text{angle} = \frac{d_x}{R} \times \frac{360}{2\pi} \quad (25)
$$

其中$R$为星球的半径。如果星球移出平台,则沿Y轴产生运动。与上述公式类似,沿Y轴运动的公式直接如下所示。

$$
a_y = g \times \cos(\alpha) \
d_y = v_y t + 0.5 a_y t^2 \
v_y = \tilde{v}_y + a_y t \quad (26)
$$

在获得星球在某一时间间隔内的位移和旋转后,我们可以通过函数“moveby(dx,dy)” 和 “rotate(angle)”来移动星球。由于时间间隔非常短,星球的运动看起来是连续的。

至于游戏的得分,我们也以0.02秒的时间间隔进行更新。得分可以通过以下方式获得

$$
\text{score} = \tilde{\text{score}} + 2^{l-1} \times t \quad (27)
$$

其中$\tilde{\text{score}}$为上一时间段的得分,$t$为0.02秒的时间间隔,$l$为与游戏等级相关的系数,例如在简单级别中$l=1$,在普通级别中$l=2$。因此,游戏等级越高,玩家获得的得分越多。

3.3 波形显示的实现

Qt Creator 提供了一个名为 QWT 的工具库用于数据展示。在我们的设计中,选择了该工具库,因为它易于使用。如图4所示,波形显示的视图是一个名为 QwtPlot 的类。首先,我们需要申请四个“QwtPlotCurve”对象,对应上述四种波形。然后将它们附加到 QwtPlot 上。之后,我们只需为这四个曲线设置样本,它们就会在视图中绘制出来。为了收集曲线的样本,我们可以使用名为 QVector 的容器。每次计算完平台偏转、星球的位置和速度以及评估结果后,都需要将这些数据推入容器中。此外,还有四个为玩家提供了复选框,以便他们可以选择要绘制的波形。为了实现此功能,我们使用了信号与槽机制。每次点击复选框时,都会发送一个信号到槽,Qt 将调用相应的槽函数进行处理。因此,我们只需在槽函数中判断哪个复选框被选中。如果复选框的状态发生改变,我们便使用“setVisible(真/假)”函数来让对应的波形显示或隐藏。通过这种方式,如图9所示,我们可以按需在视图中绘制波形。然而,如果玩家不想绘制任何波形,波形显示视图将对游戏背景产生不良影响。因此,提供了一个名为“波形”的开关按钮,供希望隐藏或显示波形显示视图的玩家使用。

示意图8

3.4 个性化设计的实现

个性化设计意味着游戏设置可以根据不同的玩家进行调整。在本游戏中,玩家可以选择自己喜欢的背景和音乐,并且背景音乐会随着游戏进程进行切换。如图4所示,有一个名为“scene”的组合框用于更改背景。在信号与槽机制下,每当玩家通过该组合框选择新的背景时,组合框会发送一个信号到对应的槽函数,我们只需在该槽函数中更改背景即可。为了实现背景音乐的播放,可以使用一个名为Phono的 Qt类。如图4所示,每个复选框对应一种类型的音乐。我们使用链表来保存属于某一类型的所有音乐的路径,从而可以通过这些路径依次找到并播放背景音乐。如果有两种音乐类型被选中,我们可以将其中一个链表追加到另一个链表之后,形成一个新的链表。至于游戏难度的设置,当输入新的数值时,“g”、“u”、“R”和“L”的值也会通过信号与槽机制发送给游戏部分。所有这些参数、用户的选择以及波形数据,在点击“保存”按钮时都会作为用户信息被保存。可以使用Qt中的 QDataStream类来完成该功能。无论数据类型多么复杂,都可以将其分解为二进制信息流输出到文件中。因此,我们只需将用户的数据依次输出到文件中,然后点击“加载”按钮,就可以按相同的顺序还原这些数据,而无需考虑数据类型。这样,所有个性化设计的功能都得以实现。最后,游戏部分、波形显示、用户界面以及用于保存用户数据的文件之间的连接关系如图10所示。

示意图9

3.5 视频游戏与脑机接口的连接

如前所述,本项目中使用了三种软件。SCAN4.5用于采集脑电图信号,这些信号将通过调用Python在MATLAB中进行处理程序。经过数据处理后,分类结果将作为控制信号发送到使用Qt开发的游戏。因此,视频游戏与MATLAB之间必须建立一个通信通道。这种通信方式有多种选择,但在本研究中我们采用UDP套接字,因为它速度快且轻量。在Qt Creator中,我们只需使用Qt提供的名为“QUdpSocket”的类。通过“QUdpSocket”提供的“bind” 函数绑定IP地址和端口号后,即可通过该UDP套接字发送或接收数据。在 MATLAB中使用UDP更加简便:申请一个UDP对象,输入发送方和接收方的IP地址及端口号,并打开该对象,即可建立发送方与接收方之间的通信通道。这样就实现了视频游戏与MATLAB之间的通信。至于SCAN4.5与MATLAB之间的连接,由于SCAN4.5为我们提供了一个TCP端口,因此可以在SCAN4.5与MATLAB之间建立TCP连接。通过该连接,我们可以在MATLAB中发送命令,使SCAN4.5开始采集、开始记录和停止采集,从而实现实时获取脑电数据。至此,视频游戏与脑机接口之间的连接得以建立。

4 结果

4.1 离线脑机接口实验

脑电数据通过具有27个电极通道的Neuroscan设备获得,如图11所示。采样率为 500赫兹,在SCAN4.5中使用了0.5–40赫兹的带通滤波器。每次试验的长度为10秒,如图12所示。其中包括2秒准备时间、3秒运动想象和5秒静息。

示意图10

实验的整个过程如图13所示。首先,我们需要进行上述提到的试验,以获取用于脑机接口训练和测试的一些样本,例如120个训练样本和60个测试样本。获取样本后,便开始离线训练。在此步骤中,带标签的训练数据将被预处理、特征提取和分类,这部分内容已在第2节中提及。共空间模式和线性判别分析是监督学习方法。特征提取的目的是获得所需的空间滤波器 $W$,而分类的目的则是获得最优投影矩阵$w$ 以及一个偏移量 $w_0$。

示意图11

一旦定义了这三个参数,就建立了特征提取和分类模型,这些模型将在下一步的测试和在线操作中使用。训练完成后,我们需要测试脑电图测试数据的准确率。对无标签的测试数据也进行预处理、特征提取和分类,但由于三个参数已在上一步训练中获得,因此可以直接使用这些参数。然后我们得到了分类结果作为预测测试标签。将这些预测测试标签与实际测试标签进行比较,即可得到测试准确率。本实验中测试数据的准确率达到了70%。虽然这可能不是很高的分类准确率,但当游戏难度设置得相对简单或游戏进程调整得较慢时,游戏仍能有效进行。为了更好地说明分类结果,图14中展示了训练数据和测试数据的分类结果。

示意图12

示意图13

4.2 基于在线脑机接口的游戏控制

经过离线训练和测试后,建立了用于在线脑机接口的特征提取与选择以及分类的模型,然后将在线脑电信号分为两类,作为控制信号发送到视频游戏。如图15所示。玩家只需佩戴Neuroscan的脑电帽并玩视频游戏即可通过意象控制。例如,当星球移动到平台右端时,为了防止其移出平台,玩家应想象右手运动,使平台逆时针方向旋转。相反,当星球移动到平台左端时,玩家应想象左手运动。玩家可借此游戏进行娱乐、放松和注意力训练。本研究共有十名男性参与者,均来自华南理工大学。

示意图14

4.3 实验中的游戏效果

作为一种生理信号,脑电图是中枢神经系统功能的客观测量手段,进而成为认知功能研究的重要途径。不同的心理活动会导致不同频段脑电图的幅度、绝对能量和能量百分比发生变化。普通脑电图的频率分为四个频段:δ波(1–3赫兹)、θ波(4–7赫兹)、α波(8–12赫兹)和β波(13–30赫兹)。当人处于清醒且放松状态时会出现α节律,当人感到困倦时会出现θ节律。β节律在清醒状态下始终存在,但其高密度意味着过度兴奋和紧张。此外,感觉运动节律(13–15赫兹)节律以及θ/β比值(TBR)也得到了广泛研究,越来越多的证据表明,人的注意力与它们之间存在密切关系。通常,感觉运动节律(SMR)的功率与注意力呈正相关,而TBR与注意力呈负相关[3, 9]。

为了理解实验过程中的认知过程,我们分析了脑电图记录中θ波、α波、感觉运动节律(SMR)和β节律的频带功率。图16和17展示了这10名受试者在实验三个阶段(即前期、中期和后期)的感觉运动节律(SMR)功率和TBR。从图16可以看出,除S9外,其余九名受试者在玩游戏过程中SMR功率显著提高,尤其是受试者S2和S4。这可能是因为这些受试者逐渐变得随着注意力水平的提高,游戏变得更加引人入胜。然而,从参与者S1、S2、S4、S5、S6和S10的数据可以看出,注意力并非一直上升。对于S1、S2和S4,在游戏的后半部分呈现出下降趋势。这可能是因为在一段时间的专注状态后感到疲劳所致。但对于S4、S5、S6和S10,下降趋势出现在游戏的中期,可能是由于游戏前期缺乏适应所导致。但这些下降趋势相对较小,且后期的感觉运动节律(SMR)功率仍高于前期。同样,从图17可以看出,在整个实验过程中,八名参与者的TBR有所降低,除了参与者S1和S9。由于TBR通常与注意力水平呈负相关,因此TBR结果与我们通过SMR分析得到的发现是一致的。

示意图15

示意图16

已有研究表明,深度放松和内化注意力可以共存,并可通过某些心理活动同时诱发[6]。此外,注意力集中和放松均可引起α频段功率增加[24]。因此,α节律功率的增强也可以反映参与者的注意力集中水平以及放松水平。如图18所示,除了受试者S5和S9外,其余八位受试者在整个实验过程中阿尔法功率均有所上升,表明受试者可能变得更加放松,甚至更加投入游戏。通过频带功率分析可以看出,除受试者 S9外,九位受试者的放松程度和注意力均有不同程度的提高,这意味着所提出的神经反馈游戏能够在轻松愉快的环境中帮助参与者训练注意力持续时间。

示意图17

5 结论与未来工作

脑机接口(BCI)和神经反馈系统最重要的应用之一是生物医学应用。神经反馈系统在注意力缺陷多动障碍(ADHD)方面尤为有效。因此,在本研究中,我们结合游戏与神经反馈,提出一种通过用户执行运动想象任务来控制游戏的娱乐系统。通过在游戏中引入神经反馈,该系统旨在以娱乐方式提供注意力训练。系统包含两部分:脑机接口的实现和游戏的设计。在脑机接口部分,脑电图数据处理采用了四个步骤,包括使用多通带滤波器进行数据预处理、共空间模式(CSP)进行特征提取、互信息进行特征选择,以及线性判别分析(LDA)进行分类。在游戏设计方面,我们采用Qt Creator进行开发。基于神经反馈的游戏为用户提供了一个视图,使其能够从游戏控制的角度观察自身的心理状态,该状态以波形显示呈现。此外,该游戏的另一优点在于其个性化设计。游戏设置可根据用户的喜好进行调整,特别是背景图片和音乐,从而为用户提供沉浸式游戏体验。为了验证该神经反馈游戏的有效性,共有十名参与者参与了实验。信号处理方法获得了约70%的二元运动想象分类结果,证明了该神经反馈游戏系统的可行性。频带功率分析结果显示,这些参与者在实验过程中变得更加专注和放松,意味着所提出的神经反馈游戏不仅可用于娱乐和放松,还可能提升注意力水平,并在未来进一步拓展为针对注意力缺陷多动障碍(ADHD)的治疗系统。

本文所做的所有工作以及实验中展示的结果仅是我们初步成果的实现与呈现。在未来的的研究中,一方面,我们需要继续优化脑电图数据处理算法,例如使用交互式机器学习[14],来提高运动想象的分类准确率,这对神经反馈游戏系统的效率非常有帮助;另一方面,我们需要简化本系统中的硬件,例如应采用更轻便的设备。例如 Emotiv,并将其设计为移动游戏,使用户能够随时随地进行游戏。此外,我们应优化可视化方法,使用户能够轻松获取系统中的心理状态信息[13]。这些改进将有助于扩展该神经反馈系统。

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍基于Matlab代码实现的四轴飞行器动力学建模与仿真方法。研究构建了考虑非线性特性的飞行器数学模型,涵盖姿态动力学与运动学方程,实现了三自由度(滚转、俯仰、偏航)的精确模拟。文中详细阐述了系统建模过程、制算法设计思路及仿真结果分析,帮助读者深入理解四轴飞行器的飞行动力学特性与制机制;同时,该模拟器可用于算法验证、制器设计与教学实验。; 适合人群:具备一定自动制理论基础和Matlab编程能力的高校学生、科研人员及无人机相关领域的工程技术人员,尤其适合从事飞行器建模、制算法开发的研究生和初级研究人员。; 使用场景及目标:①用于四轴飞行器非线性动力学特性的学习与仿真验证;②作为制器(如PID、LQR、MPC等)设计与测试的仿真平台;③支持无人机制系统教学与科研项目开发,提升对姿态制与系统仿真的理解。; 阅读建议:建议读者结合Matlab代码逐模块分析,重点关注动力学方程的推导与实现方式,动手运行并调试仿真程序,以加深对飞行器姿态制过程的理解。同时可扩展为六自由度模型或加入外部干扰以增强仿真真实性。
基于分布式模型预测制DMPC的多智能体点对点过渡轨迹生成研究(Matlab代码实现)内容概要:本文围绕“基于分布式模型预测制(DMPC)的多智能体点对点过渡轨迹生成研究”展开,重点介绍如何利用DMPC方法实现多智能体系统在复杂环境下的协同轨迹规划与制。文中结合Matlab代码实现,详细阐述了DMPC的基本原理、数学建模过程以及在多智能体系统中的具体应用,涵盖点对点转移、避障处理、状态约束与通信拓扑等关键技术环节。研究强调算法的分布式特性,提升系统的可扩展性与鲁棒性,适用于多无人机、无人车编队等场景。同时,文档列举了大量相关科研方向与代码资源,展示了DMPC在路径规划、协同制、电力系统、信号处理等多领域的广泛应用。; 适合人群:具备一定自动化、制理论或机器人学基础的研究生、科研人员及从事智能系统开发的工程技术人员;熟悉Matlab/Simulink仿真环境,对多智能体协同制、优化算法有一定兴趣或研究需求的人员。; 使用场景及目标:①用于多智能体系统的轨迹生成与协同制研究,如无人机集群、无人驾驶车队等;②作为DMPC算法学习与仿真实践的参考资料,帮助理解分布式优化与模型预测制的结合机制;③支撑科研论文复现、毕业设计或项目开发中的算法验证与性能对比。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注DMPC的优化建模、约束处理与信息交互机制;按文档结构逐步学习,同时参考文中提及的路径规划、协同制等相关案例,加深对分布式制系统的整体理解。
Neuroscan62 是一种用于脑电图(EEG)信号采集的设备,广泛应用于神经科学研究、临床诊断以及脑机接口技术开发中。该设备具备高精度和多通道的数据采集能力,支持多种类型的电信号记录与分析。 ### 技术参数 Neuroscan62 的主要技术参数包括: - **通道数量**:支持多达62个标准电通道,符合国际10-20系统电极放置标准。 - **采样率**:最高可达32,768 Hz,确保对高频电活动的精确捕捉。 - **输入阻抗**:通常大于1 GΩ,以减少对生物信号的干扰。 - **分辨率**:24位ADC,提供高精度的信号量化。 - **带宽**:0.01–1000 Hz,适用于各种电波段的分析。 - **噪声水平**:小于0.5 μV RMS,在无外部干扰环境下可实现低噪声记录。 - **数据传输接口**:USB 2.0或更高版本,保证高速数据传输稳定性。 - **同步功能**:支持与其他实验设备(如眼动仪、fMRI等)进行时间同步[^1]。 ### 使用指南 使用 Neuroscan62 进行电数据采集时,通常包括以下几个步骤: 1. **准备工作**:清洁受试者头皮,按照10-20系统定位并粘贴电极。 2. **设备连接**:将电极帽正确连接至放大器,并确保所有通道接触良好。 3. **设置软件**:启动Acquire或Curry等配套软件,配置采样率、滤波器参数等。 4. **基线校准**:在正式实验前进行基线测量,确保信号质量稳定。 5. **数据采集**:开始记录电信号,并根据实验设计施加刺激或任务。 6. **数据保存与预处理**:采集完成后,导出为EDF、CNT或其他通用格式,并使用EEGLab等工具进行去噪、伪迹去除等后续处理[^1]。 ### 示例代码:使用 EEGLab 加载 Neuroscan 数据 ```matlab % 加载 Neuroscan CNT 文件 EEG = pop_loadcnt('subject01.cnt', 'epochinfo', 'yes'); % 设置电极位置 EEG = pop_setchannellocs(EEG, 'standard_10_20'); % 滤波处理 EEG = pop_eegfiltnew(EEG, 1, 0.1, 30); % 去除眼电伪迹(ICA) EEG = pop_runica(EEG); % 可视化ERP结果 pop_avgplot(EEG); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值