ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

大样本EEG数据集盘点:获取、预处理与坏道检测实战指南

大样本EEG数据集盘点:获取、预处理与坏道检测实战指南 做脑电EEG相关研究的人八成都有过这种经历文献里模型跑得飞起、指标刷得漂亮轮到你自己复现的时候第一步“数据从哪来”就把人卡住了。我自己这几年做情绪识别和运动想象分类前前后后下载、整理、清洗过的公共EEG数据集不下十几个。从在几个经典数据集上来回折腾到后来接触上千例样本的临床语料库最大的感受是EEG公开数据这两年确实是“卷”起来了但资源越丰富越需要知道怎么选、怎么用、怎么避坑。这篇文章我就把目前主流的大样本EEG公共数据集按任务类型整理一遍包括每个数据集的规模、设备参数、标注方式、获取渠道和我实际踩过的坑最后附上预处理和坏道检测的实用流程。适合刚入门EEG深度学习、需要做论文实验对比、或者想在项目里快速验证算法效果的朋友参考。1. 为什么“大样本”是EEG数据集的第一道分水岭很多刚开始做EEG深度学习的人第一反应是找个公开数据集跑通模型就开始调参。但跑两轮就会发现同一个模型在DEAP上精度还行换个数据集就崩。这里面的核心问题往往不是模型不行而是数据的样本量、被试量和任务范式根本不匹配。1.1 大样本的三个维度被试量、时长、试次数说“大样本”的时候不能只看一个数字我一般拆成三个维度来看。被试量有多少个人做过实验。这直接决定模型的跨个体泛化能力。被试太少模型很容易记住人的身份特征而不是任务特征换个新人就失效。很多经典数据集只有二三十个被试但大家还在用就是因为它在其他两个维度上补了回来。单试次时长与试次数每个被试做了多少个trial、每个trial多长。这决定了训练时能切出多少样本窗口。比如DEAP每个trial有63秒按5秒切窗一个被试就能切出上百个样本32个被试加起来就是上万条样本。通道数与采样率决定空间分辨率和数据量。32通道、128Hz 和64通道、1000Hz的数据量完全不是一个量级也直接影响你后续能不能做空间滤波、源定位以及模型输入设计。所以你会发现一个现象有些数据集被试量不多但在深度学习论文里照样是“硬通货”原因就是试次数多、单条样本长切窗后样本量够大。而像TUH这种动辄上万例的临床语料库虽然单段记录更长但标注粒度、电极位置变化都更复杂处理成本也高得多。1.2 大样本不等于好样本标注质量与数据标准化这是我最想强调的一点。EEG数据集的“坑”远比图像数据集多。图像数据集大不了就是标注框偏了几个像素EEG数据集里的问题可以致命电极顺序和文档不一致、参考电极不同、坏道没剔除、事件标记延迟、甚至有被试中途睡着导致数据质量崩塌。判断一个数据集能不能用我会先看三件事第一有没有明确的实验范式说明第二标注是不是由专业人员完成、有没有一致性校验第三数据格式和文档是否完整比如是否提供通道位置文件、事件标记说明。这三点过关数据才值得往下走。很多号称“开源”的数据集文档写得含糊其辞下载下来光是搞明白数据组织方式就要好几天这种时间成本也要算在选型里。2. 按任务类型拆解主流大样本EEG数据集一览下面这部分是全文的核心我按常见的任务类型把数据集分成五组逐一说明每个数据集都标了关键参数和获取方式方便做选型。2.1 情绪识别DEAP、SEED、SEED-IV、MAHNOB-HCI情绪识别是EEG应用里最“卷”的方向公开数据集也最多用得最多的还是DEAP和SEED两个。DEAP全称Dataset for Emotion Analysis using EEG, Physiological and video signals是伦敦玛丽女王大学和日内瓦大学联合发布的经典数据集。32名被试观看40段一分钟音乐视频同步记录32导EEG和8导外周生理信号原始采样率512Hz发布版本统一降到128Hz。网上下到的mat文件里每个trial是63秒乘40通道的数据前3秒是基线。看完视频后被试自己打标签标注维度有效价、唤醒度、优势度、喜好度评分范围1到9。论文里最常用的做法是把效价和唤醒度按中位数二分做成四分类。这个数据集下载需要去官网填申请表、签license然后通过邮件拿下载链接对学术用户基本免费这也是“deap数据集下载”常年排在检索热词前面的原因——大家不是不想下是流程上容易卡壳。SEED是上海交通大学BCMI实验室发布的情绪数据集中文语境下特别常用。15名被试观看15段中文电影片段分为积极、中性、消极三类每个被试在三个不同日期各做一遍。采集用的是62导NeuroScan设备发布版本是降采样到200Hz的数据。SEED和DEAP最大的区别是它自带比较完整的预处理流程还提供了差分熵等手工特征做传统机器学习的论文可以直接拿特征去跑分类省掉一大段预处理代码。SEED-IV和SEED-V是后续扩展SEED-IV把情绪类别扩到四类对细粒度情绪识别更有挑战性。不过被试量依然不大对深度学习来说主要还是靠切窗和数据增强来补样本。MAHNOB-HCI是法国研究机构发布的情绪数据库30名被试看视频片段后标注效价和唤醒度32导EEG、256Hz采样。它的特点在于同时记录了面部视频、眼动和外围生理信号适合做多模态融合研究。情绪识别这块真正常用的就是这几个选型逻辑很简单没有多模态需求就DEAP和SEED二选一或者都跑做中文场景或者想省预处理时间就用SEED做多模态就上MAHNOB-HCI。2.2 临床与癫痫检测CHB-MIT、TUH系列如果说情绪数据集是“实验室干净数据”那临床数据集就是“真实世界的脏数据”两者对算法的考验完全不同。CHB-MIT是波士顿儿童医院公开的小儿难治性癫痫头皮脑电数据库也是目前癫痫发作检测论文里引用最多的基准。数据来自23名患儿共24个记录采样率256Hz多数记录为23通道包含发作起止时刻的专业标注总时长累计超过800小时发作事件有100多次。这个数据集的价值在于它是真实临床环境采集的包含大量干扰和伪迹模型能扛住它基本就算过了第一关。下载需要去PhysioNet注册账号完成培训后签署数据使用协议。TUH全称Temple University Hospital EEG Corpus是当下全球规模最大的公开临床EEG语料库来自天普大学医院多年积累的真实临床记录累计病历数上万。它不是一个数据集而是一个家族TUH EEG Corpus是主体分正常和异常两大类TUAB是异常检测专门子集做二分类TUSZ是癫痫发作检测子集带发作标注还有专门研究伪迹和慢波的子集。TUH的采样率基本是250Hz通道数在20到30多之间电极位置用10-20系统。因为量大很多大模型、预训练工作都拿它当预训练语料。缺点是文件格式复杂、标注体系不统一上手成本明显比实验室数据集高新手建议先拿CHB-MIT练手再过渡到TUH。2.3 运动想象与BCIBCI Competition IV、EEGMMIDB运动想象是脑机接口领域最经典的范式BCI Competition系列数据集几乎是所有做运动想象分类的人都绕不开的基准。BCI Competition IV里的Dataset 2a和2b最常用。2a有9名被试22导EEG250Hz四类运动想象任务包括左手、右手、双脚、舌头每个被试有两个session每个session每类48次共288个trial。2b同样是9名被试但只有3导分别是C3、Cz、C4做左右手二分类也是250Hz。2b更有名的地方在于它包含多session的跨天数据能考验模型对个体差异和电极佩戴差异的鲁棒性。这两个数据集官方比赛结束后依然开放下载格式是GDF用MNE可以直接读。EEGMMIDB全称EEG Motor Movement/Imagery Dataset是PhysioNet上规模最大的运动想象数据集109名被试64导160Hz采样包含睁眼、闭眼、左右手握拳、双脚运动及想象等任务。它的样本量大但单次trial很短4秒左右而且数据质量比较参差很多trial里有明显伪迹。我的建议是做算法对比优先用BCI Competition因为标注干净、格式统一做跨被试泛化测试再考虑EEGMMIDB毕竟109人的规模在EEG领域很稀有。2.4 睡眠分期Sleep-EDF、MASS睡眠分期是EEG里标注体系最成熟的方向每30秒一个epoch由睡眠技师逐个标注标准相对统一。Sleep-EDF是PhysioNet上的经典睡眠数据集Expanded版本包含197个整夜多导睡眠记录来自61名受试者涵盖EEG、EOG、下颌EMG采样率100Hz每个30秒epoch都有专业睡眠分期标注。做睡眠分期、睡眠呼吸暂停检测的论文基本都用它起步。这里有个有意思的点它用的只是Fpz-Cz和Pz-Oz两个单极导联通道极少但分期效果却很好说明睡眠分期的关键特征在时域和频谱结构不一定依赖空间分布。MASS全称Montreal Archive of Sleep Studies是加拿大蒙特利尔团队整理的睡眠数据库合集汇总了多个研究队列版本和子集比较多分为SS1到SS5多个子集总记录超过200个整夜各子集采样率和导联配置不同。它的优势是标注更精细部分子集提供了觉醒、纺锤波等微结构标注适合做比睡眠分期更细粒度的研究。缺点是获取需要逐个子集申请流程比Sleep-EDF繁琐很多时间紧的话先用Sleep-EDF起步更划算。2.5 健康人群与多模态LEMON、GIGA等千级样本新趋势最后说一类容易被忽视的“大样本”——健康人群的静息态和多模态数据集。LEMON全称Leipzig Study for Mind-Body-Emotion Interactions是德国莱比锡团队发布的健康人群数据集。216名年龄在20到77岁之间的健康成人同时采集了静息态和任务态EEG还配套了T1/T2结构像和弥散加权成像等MRI数据。EEG是多通道覆盖全脑数据质量很高公开在开源仓库里下载不需要复杂的申请流程。它特别适合研究年龄对脑电特征的影响以及做EEG-fMRI多模态融合研究的基线数据。除了LEMON近两年出现了好几个“千人级”EEG数据集比如GIGA包含1000名健康受试者的多模态数据涉及EEG、心率等信号和基本人口学信息对研究正常人群脑电基线非常有价值。这类千级样本数据集的出现意味着EEG深度学习正式进入大数据时代预训练、基础模型这类在自然语言处理和计算机视觉里已经跑通的技术路线开始在EEG领域有了真正可用的训练语料。3. 数据集获取实操注册、下载、文件结构数据和目录都讲完了接下来是最实际的问题这些数据集到底怎么下、下完怎么读。3.1 不同平台的获取方式对比我先按平台把获取方式做个对比避免大家在第一步就走弯路。平台或数据集获取方式是否需要申请典型数据格式DEAP官网填表、签license、邮件获取链接需要.mat、.datSEED官网邮箱申请填协议发邮件需要.matPhysioNetCHB-MIT、Sleep-EDF、EEGMMIDB免费注册完成培训并签署数据协议需要.edf、.csvBCI Competition IV官方页面直接下载不需要.gdfOpenNeuro注册后直接下载大多不需要BIDS格式TUH官网申请或通过学术数据平台获取需要.edf、.csv几个平台的共同点是需要邮箱注册强烈建议用机构邮箱。很多数据集的license条款写得明确只允许学术和非商业用途机构邮箱能减少来回解释的时间。另外凡是需要签协议的签之前一定把条款看完特别是能不能二次分发、能不能商用、发论文要不要致谢这些直接影响你后期能否顺利发表和落地。3.2 DEAP数据下载与mat文件读取详解DEAP是被问得最多的数据集因为检索热词常年排在EEG数据集前列。它的完整包包括三部分data_preprocessed_matlab核心数据S01.mat到S32.mat一个被试一个文件。每个mat里有两个变量data和labels。data的维度是40乘40乘8064含义是40个trial、40个通道前32个是EEG后8个是外周信号顺序固定、8064个采样点对应128Hz乘63秒。labels是40乘4对应每个trial的效价、唤醒度、优势度、喜好度评分。video40段短视频的网页抓取文件和部分视频本体体积比较大如果只做EEG分类可以不下载。participant_ratings.csv被试在实验过程中的实时评分基本用不到。用Python读取非常简单import scipy.io as sio import numpy as np mat sio.loadmat(data_preprocessed_matlab/S01.mat) data mat[data] # (40, 40, 8064) labels mat[labels] # (40, 4) # 去掉前3秒基线只保留60秒刺激段 data_stim data[:, :, 3 * 128:]这里有个常见的坑用scipy读取时不同版本的mat文件结构可能有细微差异先print一下所有变量名确认有data和labels再往下走。另外很多教程建议把前3秒基线去掉也就是从第384个采样点之后开始取数只保留60秒刺激呈现段。这个细节直接影响精度因为基线段的脑电和刺激段差异很大混在一起会稀释任务相关特征。3.3 PhysioNet下载与授权申请PhysioNet是最大的生理信号数据仓库CHB-MIT、Sleep-EDF、EEGMMIDB都在上面。流程分三步注册账号、完成数据使用培训、申请具体数据集。培训内容不难看一遍关于数据引用和伦理的说明就可以。申请通过后在数据集页面选择要下载的文件。下载时推荐用wget这类命令行工具做断点续传因为临床数据集单个文件经常几百MB浏览器下载中断了就要重来。wget -c https://physionet.org/files/chbmit/1.0.0/chb01/chb01_03.edf数据下下来是EDF格式读取首选MNEimport mne raw mne.io.read_raw_edf(chb01_03.edf, preloadTrue) print(raw.info[sfreq], raw.info[nchan]) print(raw.ch_names) print(raw.annotations)读完马上做两件事打印通道名和文档核对顺序查看annotations确认事件标记时间是否在合理范围内。这两步能省掉后面大量排错时间。EDF格式看起来统一但不同医院设备导出的EDF“方言”很多MNE读不出来的情况不罕见。遇到报错不要硬刚用pyedflib这类底层库先读头文件判断格式问题出在哪再决定手动指定通道名还是补全缺失信息。4. 预处理与坏道检测等实用技巧数据集下好只是开始真正的功夫在预处理。这一节把我自己的标准流程和大家最关心的“坏道检测”单独展开讲。4.1 一套能通用的EEG预处理流程我给自己定的预处理流程是这样的在DEAP、SEED、Sleep-EDF上都验证过执行顺序建议保持一致降采样如果原始采样率远高于分析需要的频率先降采样。DEAP本身就是128Hz不用动SEED降到200Hz再处理就行。滤波先做陷波50Hz或60Hz视当地工频而定再做带通滤波常用范围0.5到40Hz或者1到50Hz。带通下限不要设太高否则会滤掉慢电位和有意义的低频成分。坏道检测与剔除这是最容易忽略的一步下面单独讲。重参考常用平均参考或者双侧乳突参考。不同数据集的参考方式不同处理后尽量统一否则跨数据集对比会被参考效应污染。分段与基线校正按事件标记切epoch用刺激前基线做基线校正。伪迹剔除幅度阈值法比如超过正负100微伏的时段剔除再用独立成分分析去除眼电和心电伪迹。注意ICA对数据长度有要求太短的数据跑ICA不稳定。切窗增强做深度学习的话再按2到5秒窗口切开并加重叠扩大样本量。这套流程里最容易被新手跳过的是重参考。很多开源代码直接把原始数据塞进模型不同数据集的参考电极不一样出来的特征空间完全不同跨数据集泛化基本是空谈。4.2 坏道检测的几种实用方法所谓“EEG坏道检测”就是找出数据质量不达标的通道。坏道分两类一种是完全不工作的信号是平线或者纯噪声另一种是接触不良幅值忽大忽小、充满尖峰。检测方法从简单到复杂方差或标准差法坏道的方差要么极低代表平线要么极高代表噪声。计算每个通道在静息段的标准差明显偏离所有通道中位数的就标记为坏道。相关系数法正常脑电通道之间有一定空间相关性如果一个通道和相邻通道的相关系数都很低大概率有问题。频域特征法计算每个通道的相对功率谱。坏道通常在特定频段有异常比如50Hz工频分量过大或者全频段功率分布异常。实际操作时我一般先算标准差做初筛再用相关系数复核最后目视检查确认。MNE里有自动找坏道的函数可以做初步筛选但自动方法误判率不低一定人工过一遍。在DEAP上很多人不剔坏道直接跑那是因为发布数据已经做过基本预处理但在TUH、EEGMMIDB这种真实采集数据上坏道不处理模型精度能掉5到10个点。4.3 数据划分与跨被试验证最后说一个最影响论文说服力的问题数据怎么划分。EEG数据有一个天然陷阱同一个被试的相邻trial高度相关如果打乱后直接随机切训练集和测试集会造成“被试泄漏”测试集里混进同一个人的数据精度虚高放到真实场景立刻现出原形。标准做法有两种被试内划分每个被试的数据单独划分训练和测试都用同一个人的不同trial适合评估模型对个体的适应能力。跨被试划分按被试整体划分比如109个被试里训练100个、测试9个测试的是完全没见过的人适合评估模型泛化能力。跑任何实验之前先想清楚应用场景是哪类。做脑机接口个性化模型用被试内做通用情绪识别、睡眠分期用跨被试。审稿人最常挑的问题就是数据划分方法错误这个坑提前避开能省很多修改时间。5. 常见问题与排查实录最后把我在实际下载和使用EEG数据集时踩过的坑整理成速查表方便收藏对照。问题原因解决办法申请DEAP后几天没收到下载链接审核周期长邮件被拦截用机构邮箱重新提交检查垃圾箱一般1到3天回复mat文件读出来维度不对版本不同或读了别的变量先print所有变量名确认存在data和labels注意老版本可能是struct嵌套EDF文件读不了或通道名乱码医院设备导出的EDF头文件不标准用pyedflib读取并检查头文件手动指定通道名CHB-MIT事件标记偏移记录设备触发延迟结合临床注释人工校准发作起点把发作前后各5秒当边界模糊区跨数据集泛化差通道数、参考、采样率不一致统一重参考和带宽保留10-20系统公共通道子集Sleep-EDF里有些记录没有标注原始数据不完整或格式旧用PhysioNet提供的独立标注文件按record name匹配这里有几条值得展开说。第一DEAP申请邮件被当垃圾邮件的概率很高。我帮实验室好几个师弟申请过都遇到过收到很慢或者没收到先别慌重新填一次表单、检查邮箱过滤规则就行。第二EDF格式看着统一实际“方言”很多。不同厂商设备的EDF头文件差异明显通道名可能是拉丁缩写也可能是自定义缩写读数据时最好把通道名统一映射成标准名称再进流程。第三CHB-MIT的发作标注是临床医生通过视频和脑电综合判断的时间点有主观误差。做发作检测时建议把标注的发作起点前移5秒、终点后移5秒当作模糊区处理别把边界上的点当成明确的标签去硬训。除了这些还有两条经验对我帮助很大。一是先下载最小子集试跑再下全量。很多数据集网站支持按文件下载先下两三个文件跑通整个流程再批量下载避免下了几百GB发现格式理解错了。二是每次都写数据加载脚本并固定随机种子。EEG数据预处理链路长任何一步出错都会导致结果不可复现把加载、坏道剔除、划分逻辑固化成脚本是效率提升最大的一件事。我在实际使用中还有一个体会不要迷信“越大越好”。大样本数据集确实能支撑更复杂的模型但前提是你有足够的机器资源去处理和存储。TUH这种级别的一天处理不了多少先把DEAP、SEED这些中等规模数据集上的流程跑顺再上大型临床语料库节奏才稳。另外每次用数据集之前确认作者要求的引用方式论文致谢里把数据集引用写对既是对原团队的尊重也能让后续做对比实验的人少走弯路。
返回列表