用 MNE 绘制脑地形图:EEG-Conformer 脑电可视化完全指南

📅 2026/8/18 15:21:20
用 MNE 绘制脑地形图:EEG-Conformer 脑电可视化完全指南
用 MNE 绘制脑地形图EEG-Conformer 脑电可视化完全指南【免费下载链接】EEG-Conformer[TNSRE 23] EEG Transformer 2.0. i. Convolutional Transformer for EEG Decoding. ii. Novel visualization - Class Activation Topography.项目地址: https://gitcode.com/gh_mirrors/ee/EEG-Conformer想要理解深度学习模型在脑电EEG信号上到底看到了什么用MNE 绘制脑地形图就是最直观的答案。本指南结合开源项目EEG-Conformer发表于 IEEE TNSRE 2023 的卷积 Transformer 脑电解码与可视化模型手把手带你从零开始完成脑电地形图绘制、类激活地形图CAT与 t-SNE 特征可视化即使你完全没有脑电处理经验也能快速上手把模型的注意力看得清清楚楚。 脑地形图是什么一张图看懂全脑信号分布脑地形图Topography / Topomap是脑电研究中最经典的呈现方式它将几十个头皮电极采集到的信号强度投影到一张俯视头型的二维平面上用冷暖色阶直观展示哪个脑区更活跃。它的核心价值有三点直观不用看几十条波形一眼定位激活区域可对比不同类别、不同时间窗的分布差异一目了然可解释为深度学习模型的决策提供生理层面的证据在 MNE-Python 中这一切只需一个plot_topomap函数就能实现而 EEG-Conformer 项目恰好提供了一个开箱即用的参考实现非常适合初学者照着学。⚙️ EEG-Conformer自带完整可视化模块的脑电解码模型EEG-Conformer 是清华大学团队提出的一种紧凑型卷积 Transformer 模型核心思想是时空卷积提取局部特征 自注意力捕获全局关联在三大公开数据集上都取得了出色的成绩数据集任务准确率BCI Competition IV 2a四分类运动想象78.66%BCI Competition IV 2b二分类运动想象84.63%SEED三分类情绪识别95.30%更难得的是项目在论文中特别提出了一套类激活地形图Class Activation Topography可视化策略将图像领域的 CAM 技术迁移到脑电领域并且把全部代码开源在了 visualization/ 目录下topography.py —— 用 MNE 绘制脑地形图本文主角CAT.py —— 类激活地形图CAM 地形图tSNE.py —— t-SNE 特征分布可视化utils.py —— GradCAM 核心实现 第一步最快安装方法MNE 环境搭建三步走开始之前先把环境准备好。项目推荐Python 3.10 PyTorch 1.12绘图部分额外依赖 MNEpip install mne matplotlib numpy scipy然后克隆项目代码只做可视化的话重点看visualization目录即可git clone https://gitcode.com/gh_mirrors/ee/EEG-Conformer 小提示topography.py只依赖 MNE 和 NumPy即使不训练模型也能拿来当脑地形图绘制模板使用。 第二步准备脑电数据通道×时间×试验MNE 绘制地形图的前提是准备好每个通道一个数值的标量输入。EEG-Conformer 的数据通常组织为三维数组data - (samples, channels, trials) 样本数 × 通道数 × 试验数 label - (label, 1) 每个试验的类别标签绘制前需要做三步整理转置为(trials, channels, samples)并挑出某一类别的全部试验对该类所有试验求平均得到代表该类的平均波形沿时间轴再求平均得到每个通道的一个代表值mean_ch此外代码里还做了一个标准化处理让各通道量纲统一颜色分布更清晰mean_trial (mean_trial - np.mean(mean_trial)) / np.std(mean_trial)️ 第三步MNE 绘制脑地形图的 4 个核心步骤这是全文的重点。参照 topography.py用 MNE 画脑地形图只需四步① 设置标准电极坐标Montage脑地形图必须知道每个通道在头皮上的位置。项目选用biosemi64标准导联并挑选出 BCI IV 2a 数据集对应的 22 个通道montage mne.channels.make_standard_montage(biosemi64) index [37, 9, 10, 46, 45, 44, 13, 12, 11, 47, 48, 49, 50, 17, 18, 31, 55, 54, 19, 30, 56, 29] montage.ch_names [montage.ch_names[i] for i in index] montage.dig [montage.dig[i 3] for i in index]② 创建 Evoked 对象并绑定电极位置info mne.create_info(ch_namesmontage.ch_names, sfreq250., ch_typeseeg) evoked mne.EvokedArray(mean_trial, info) evoked.set_montage(montage)③ 调用 plot_topomap 绘制地形图im, cn mne.viz.plot_topomap(mean_ch, evoked.info, showFalse) plt.colorbar(im) plt.savefig(./topo/test.png)④ 保存结果一张带色阶的脑地形图就完成了 关键点mean_ch是长度为 22 的向量顺序必须与montage.ch_names一一对应否则画出来的地形图会是张冠李戴的错误分布。 第四步进阶玩法——类激活地形图CAT解释模型决策普通地形图展示的是脑电信号分布而类激活地形图Class Activation Topography展示的是模型决策依据分布——模型认为哪个脑区对分类贡献最大。实现思路在 CAT.py 中非常清晰用 utils.py 中的GradCAM提取目标层梯度与激活生成类激活映射CAM由于 Transformer 的注意力输出形状与卷积不同需要reshape_transform做维度重排将 CAM 与原始信号逐元素相乘得到加权后的激活地形图用plt.subplot上下排布上方画原始平均地形图下方画 CAM 加权地形图形成鲜明对比hyb_all test_all_data * test_all_cam # CAM 加权 fig, [ax1, ax2] plt.subplots(nrows2) mne.viz.plot_topomap(mean_all_test, evoked.info, axesax1, res1200) mne.viz.plot_topomap(mean_hyb_all, evoked.info, axesax2, res1200)这种可视化能帮你回答一个关键问题模型做对分类靠的到底是哪个脑区对写论文、做可解释性分析都非常有用。 第五步t-SNE 特征分布可视化的简单用法除了地形图EEG-Conformer 还提供了 t-SNE 可视化用于观察模型提取特征的聚类效果。核心逻辑在 tSNE.py对 Transformer 输出沿序列维度取平均得到每个样本的特征向量用TSNE(n_components2, initpca)降维到二维平面按真实标签着色并散点绘制同类样本聚得越紧说明特征可分性越好tsne manifold.TSNE(n_components2, perplexityper, initpca, random_state166) X_tsne tsne.fit_transform(data)配合脑地形图一起使用一个看空间分布一个看特征分布论文里的可视化部分就齐活了。 脑地形图绘制的 5 个常见坑与解决办法常见问题原因解决办法地形图形状怪异通道索引与电极坐标不匹配核对index列表与数据通道顺序颜色全部一个色数据未标准化先做 z-score 标准化再绘图提示 montage 错误导联名与标准蒙太奇不一致用make_standard_montage统一命名出图模糊分辨率不足调高res参数如res1200没有色阶忘记加 colorbar用plt.colorbar(im)补上 总结从MNE 绘制脑地形图到类激活地形图再到 t-SNE 特征可视化EEG-Conformer 把脑电解码模型的可解释性工具链完整地开源了出来。对于新手而言最值得做的就是两件事跑通 topography.py吃透 MNE 的montage → Evoked → plot_topomap标准流程对照 CAT.py 理解 CAM 加权如何翻译模型的注意力掌握了这套流程你就能用一张张漂亮的脑地形图讲清楚模型在脑电信号中看到了什么。快去动手试试吧【免费下载链接】EEG-Conformer[TNSRE 23] EEG Transformer 2.0. i. Convolutional Transformer for EEG Decoding. ii. Novel visualization - Class Activation Topography.项目地址: https://gitcode.com/gh_mirrors/ee/EEG-Conformer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考