信息速览
机器人辅助手术的培训一直缺一把客观的尺子。带教老师看一遍录像给个印象分,不同老师给的分数可以差出十几个点;模拟器自带评分,但它只看机械动作,看不见操作者当时有多紧张、注意力落在哪里。要回答「这个人是不是真的学会了」,需要把手术台前的动作、脑子里的负荷、眼睛看的位置放在同一条时间轴上。
这份数据集就是为了这条时间轴而采集的。美国纽约州布法罗的 Roswell Park 综合癌症中心在 2020 年 7 月到 2021 年 11 月之间,请来二十五名从零小时到上千小时不等的机器人手术学习者与从业者,让他们在 da Vinci 技能模拟器上把六个模块的二十七项练习任务逐个做一遍;每人头上戴 128 导脑电帽,脸上架一副 Tobii 眼动眼镜,两路信号同步录制,任务结束时模拟器自动打分。成果在 2023 年 7 月放进 PhysioNet,取名 NIBIB-RPCCC-RAS,DOI 为 10.13026/qj5m-n649。
它既不是通用眼动库,也不是通用脑电库,而是「手术技能学习」这一个场景下的双模态追踪记录:规模不大,结构却相当完整,边界也相当硬——十三个小时量级的总时长、单一中心、二十五个人、只准学术使用。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 正式名称 | Electroencephalogram and eye-gaze datasets for robot-assisted surgery performance evaluation |
| 内部代号 | NIBIB-RPCCC-RAS performance evaluation dataset |
| 发布平台 | PhysioNet,版本 1.0.0,2023 年 7 月 14 日 |
| DOI | 10.13026/qj5m-n649 |
| 受试者 | 25 名,年龄二十至六十七岁,其中十二人无机器人手术经验 |
| 任务 | da Vinci 技能模拟器六个模块,二十七项任务 |
| 脑电记录 | 1636 条 EDF,128 导,500 Hz,Cz 参考 |
| 眼动记录 | 1559 条 CSV,每行 20 列,50 Hz |
| 采集时段 | 2020 年 7 月至 2021 年 11 月 |
| 采集地点 | 美国纽约州布法罗,单一中心 |
| 设备 | AntNeuro eego 128 导脑电帽 + Tobii 眼动眼镜 |
| 标签 | 模拟器百分制评分,另有注视/扫视类型索引 |
| 附属文件 | PerformanceScores.csv、Table1.csv、RECORDS、SHA256SUMS.txt |
| 许可 | 仅限学术研究,禁止商业使用 |
| 典型用途 | 手术技能分级、认知负荷估计、学习曲线建模、双模态融合 |
§1 它要解决的具体麻烦
1.1 技能评估的三种证据,只有一种能同时拿到
判断一名外科医生或学员「行不行」,临床上同时在用三套证据。第一套是结果证据:缝合得好不好、有没有出血、吻合口漏不漏,回看录像由评分表打勾。第二套是动作证据:器械走了多远、碰了几次、耗时多少秒,模拟器自己就能记。第三套是生理证据:这个人当时是不是很吃力,注意力是不是一直在关键区域上——这套最难拿,因为它要求在不打断操作的前提下同步记录多个生理通道。
前两套证据各自都有成熟的公开来源。动作证据几乎完全依附于训练系统,厂商模拟器自带日志,但极少公开;结果证据大量存在于手术视频数据集里。生理证据在通用脑电库里很多,在通用眼动库里也多,可它们几乎从来不是在同一场手术操作中同步采的。
这份数据集把第三套证据补上了,而且补得比较完整:同一个人、同一段操作,脑电和眼动一起录,操作结果由模拟器同时打分。它真正稀缺的地方不是数据量大,而是同一次操作尝试上,生理通道与客观评分能对上号。
1.2 三条常见的错误期待
第一条期待,是把它当成通用眼动数据集。从名字容易联想到「一群人看图片时的注视轨迹」,但这里的眼动全部发生在模拟器屏幕和操作台之间,注视目标是一堆虚拟的环、针、缝线,而不是自然图像。把它拿去做显著性预测或阅读眼动研究,任务背景完全对不上。
第二条期待,是把它当成临床人群的脑电库。二十五名受试者里没有一名是患者,他们全部是自愿参与技能学习的成年人,其中十二人此前从未做过机器人手术。这里的脑电记录的是「学习一项手部精密操作时的大脑」,不是疾病状态下的脑电。
第三条期待,是把它当成一个「大样本、可随意切分」的监督学习数据集。文件的条数看起来是四位数量级,但独立性极低:同一个人把同一项任务做了两到十几次,同一项任务又被二十五个人各做一遍。任何按文件随机切分的做法,都会把同一个人身上的学习过程拆到训练集和测试集两侧。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 手术技能水平的客观分级 | 模拟器百分制评分,逐次尝试;受试者自报经验分四档 | 够做探索与特征验证,样本量不足以训练通用分级器 |
| 认知负荷的生理指标 | 128 导脑电,五百赫兹,任务全程连续 | 够,但要自己切试次、去伪迹 |
| 视线注意分布的量化 | 三维注视点、注视方向、瞳孔直径、眼动类型 | 够,且每行二十列足够重建空间注视位置 |
| 双模态融合方法验证 | 同一段操作的脑电与眼动时间上并行 | 够,这正是它的核心价值 |
| 手术动作轨迹与器械运动学 | 无,模拟器只给分数不给动作序列 | 不够,需要另找带运动学日志的库 |
| 真实手术台上的表现 | 无,全部是模拟器 | 不够,模拟器与真机差距是已知问题 |
| 临床人群或患者队列 | 无,二十五名健康志愿者 | 不够 |
| 跨中心泛化验证 | 单一中心、单一设备组合 | 不够,只能做内部验证或跨库外测 |
| 大规模预训练 | 二十五人 | 不够,容易记死个体 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你在做手术技能自动评估,已经有模拟器日志,缺生理通道 | 提供同一批任务上的脑电与眼动,可与自采日志在任务维度对齐比较 | 先确认你的任务集是否与这二十七项重合,不重合就只做方法迁移 |
| 你想验证「眼动特征是否比脑电更能预测技能水平」 | 同一段操作上两路信号齐全,评分独立于两路信号 | 按受试者而不是按文件划分训练测试,再报告两种特征各自的增益 |
| 你在研究认知负荷,苦于实验室任务太脱离真实工作 | 任务是真实的手术模拟操作,比 n-back 一类范式更接近实际负担 | 用官方评分或任务难度作为负荷代理,明确这是代理而非直接标注 |
| 你要做一个双模态时序对齐的工程验证 | 两个模态、两种采样率、两套设备时钟,正是现实里的对齐难题 | 先建立试次级锚点,再比较不同对齐策略的误差 |
| 你在带教机器人手术,想给学生看「熟练与生疏的差别」 | 二十五人分四档经验,可挑同任务的不同经验者对照 | 用评分与眼动类型分布做对比图,注意个体差异 |
| 你想找一个免训练的公开小库做复现基线 | 总量不大,附评分汇总表,便于快速搭基线 | 直接读 PerformanceScores.csv 建立索引 |
1.5 一句话判断
它更像一份「同一批人在同一套手术练习上的双通道学习档案」,而不是一个供模型大口吞下的样本池;它的价值在于对齐,不在于体量。
1.6 不适合谁:四条边界
不适合需要患者数据的临床研究。 二十五名受试者全部是健康志愿者,从头到尾没有一名患者参与,也没有任何诊断、治疗或随访信息。拿它做疾病相关的脑电分析,人群基础就不成立。
不适合把眼动当金标准的评测。 这里的注视与扫视是厂商软件按固定角速度阈值自动划分的,官方没有报告阈值敏感性,也没有人工复核记录。当模型输入可以,当评分基准不够格。
不适合做大规模训练。 二十五个人、一千五百多条文件,放在深度学习语境里是小样本。真正独立的观测单位只有人,任何把人拆开的训练都会虚高(§7.3)。
不适合商业产品验证。 官方明确写明仅供学术研究,不得用于商业目的,而且没有单独的许可文本文件(§9.3)。想把它接进商业管线,从授权那一步就过不去。
§2 数据构成与规格
2.1 一份记录由三个层次组成
数据在目录上分成三层,理解这三层是接入的第一步。
第一层是两路信号目录。EEG/ 下面是一千六百多条 EDF 文件,EYE/ 下面是一千五百多条 CSV 文件。两个目录的文件名规则相同:受试者编号、任务编号、尝试次序,用下划线连接。编号范围是受试者一到二十五、任务一到二十七,尝试次序从第一次开始往上数。
第二层是索引表。根目录的 PerformanceScores.csv 是唯一把两路文件挂到一起的凭据:每一行是一次尝试,列出对应的脑电文件名、眼动文件名、受试者编号、性别、年龄、优势手、任务编号、尝试次序与模拟器评分。RECORDS 是全部文件名的清单,SHA256SUMS.txt 给出每个文件的校验和。
第三层是任务定义。Table1.csv 用中文以外的两列写明六个模块下二十七项任务的名字与编号,是人读任务含义的唯一入口。
三层之间并不是严丝合缝的:索引表里的尝试条数多于两路文件的条数之和所能解释的范围,因为有些尝试只有一路信号,也有些尝试两路都缺(§7.3)。这个缺口是接入时第一个要处理的问题。
这带来一个实践上的推论:目录里的文件数不能反过来当作样本数。脑电比眼动多出七十七份,这个差值既包含了「有脑电无眼动」的尝试,也包含了索引表里根本没有列出的文件。正确的做法是以索引表为唯一主键,再去目录里核对存在性,而不是先从目录列文件名、再反查索引。按后一种顺序做,最后一定会发现有一批文件在索引表里找不到归属,只能作废。
2.2 字段与记录的完整字典
先看索引表。它是九列,UTF-8 带 BOM 编码,字段名本身带着单位说明:
| 列名 | 含义 | 取值与单位 | 接入注意 |
|---|---|---|---|
| EEG File Name | 对应脑电文件名 | 形如 9_10_1.edf |
行内带一个多余的单引号,需要剥离 |
| Eye File Name | 对应眼动文件名 | 形如 9_10_1.csv |
同上;可能为空 |
| Subject ID | 受试者编号 | 一至二十五 | 字符串,前导一位 |
| Gender(F:Female; M:Male) | 性别 | F 或 M | 表头自带取值说明 |
| Age (year) | 年龄 | 年 | 二十至六十七 |
| Dominant Hand | 优势手 | Right 或 Left | 以右利手为绝大多数 |
| Task ID | 任务编号 | 一至二十七 | 与 Table1.csv 对应 |
| Try | 尝试次序 | 从一递增 | 同一受试者同一任务内唯一 |
| Performance(out of 100) | 模拟器评分 | 零至一百 | 有个别越界值需核 |
再看脑电文件。EDF+C 格式,采样率五百赫兹,Cz 作参考,导联名统一带 CPz 后缀表示参考。名义上是一百二十八导,文件名里出现的导联名可以分成几组:
| 导联分组 | 举例 | 数量关系 | 说明 |
|---|---|---|---|
| 标准十-二十系统 | Fp1、F3、C4、P8、O2 | 约四十个 | 最通用的一组 |
| 中间位点与高密度补充 | AF7、FC5、CP3、PO7、I1 | 约五十个 | 提高空间分辨率 |
| 环绕带位点 | FFC5h、CCP3h、POO1 | 约三十个 | 八通道环形排布常见的中间行列 |
| 四条眼电专用 | HEOGR、HEOGL、VEOGU、VEOGL | 四条 | 官方明确要求不得使用 |
眼动文件是无表头的纯数值 CSV,每行二十个数,一九九列之后分别是:
| 列序 | 字段 | 单位 | 备注 |
|---|---|---|---|
| 1–2 | 注视点 X、Y | 像素 | 屏幕归一化前的原始像素坐标 |
| 3–5 | 三维注视点 X、Y、Z | 毫米 | 以眼动设备为原点 |
| 6–8 | 左眼注视方向 X、Y、Z | 无量纲方向 | 单位向量 |
| 9–11 | 右眼注视方向 X、Y、Z | 无量纲方向 | 单位向量 |
| 12–14 | 左眼瞳孔位置 X、Y、Z | 毫米 | 瞳孔中心在设备坐标系中的位置 |
| 15–17 | 右眼瞳孔位置 X、Y、Z | 毫米 | 同上 |
| 18 | 左眼瞳孔直径 | 毫米 | 直径而非半径 |
| 19 | 右眼瞳孔直径 | 毫米 | 同上 |
| 20 | 眼动类型索引 | 整数 | 一为注视,二为扫视,零与三对应未检出 |
这里有一处官方页面自身的写法不一致,必须点明:正文里说类型索引「一为注视、二为扫视、三为未检出」,而列表示意里写的是「一为注视、二为扫视、零为未知」。两种口径在同一个页面里并存,官方没有说明哪个是最终约定。接入时应当按实际数据里出现的取值统计,而不是照抄任一处。
2.3 一条记录的完整解剖
拿一份真实的脑电文件看结构。以受试者九、任务十、第一次尝试为例,文件头部的关键字段是这样的:
#-- EDF+C 文件头的关键字段(受试者 9,任务 10,第 1 次尝试)
version : 0
n_records : 101
duration_rec : 1 s
n_signals : 129 #-- 128 脑电 + 1 注释通道
signal_names : EEGFp1CPz, EEGFpzCPz, ..., EEGOI2hCPz, EDF Annotations
sample_rate : 500 Hz #-- 每条信号相同
reference : CPz #-- 写在通道名的后缀里
file_size : 12,961,290 bytes
有了头文件,单个文件的时长可以直接算:一百零一条记录、每条一秒,所以是一百零一秒。这与同一次尝试的眼动文件行数可以对上:行数除以五十赫兹,约等于一百零一点四秒。两个模态在试次级长度上是吻合的,这本身就说明两路设备是同时启停的。
把两路文件按试次拼起来的样子,可以用下面的伪结构理解:
#-- 一次尝试在磁盘上的样子(受试者 9 任务 10 第 1 次)
EEG/9_10_1.edf 129 条信号 × 500 Hz × 101 s
EYE/9_10_1.csv 4870 行 × 20 列,50 Hz,约 97 s
PerformanceScores.csv 里对应一行:
EEG File Name = 9_10_1.edf'
Eye File Name = 9_10_1.csv'
Subject ID = 9, Task ID = 10, Try = 1
Performance = 91
注意脑电与眼动的秒数并不严格相等:脑电一百零一秒,眼动九十七秒左右。这说明两路设备的启停并未对齐到同一时刻,中间有四秒左右的出入。这个出入量级不大,但对做事件相关电位的分析来说已经足够致命——你不能假设第零秒是同一瞬间(§7.2)。
2.4 规模与覆盖
规模这一层,官方给了几组可以互相校验的数字:
| 项 | 官方数字 | 校验方式 | 结果 |
|---|---|---|---|
| 受试者 | 25 | 索引表中不重复的编号 | 一致 |
| 任务 | 27 | 六个模块逐一计数 | 一致 |
| 脑电文件 | 1,636 | 目录清单计数 | 一致 |
| 眼动文件 | 1,559 | 目录清单计数 | 一致 |
| 索引表行数 | 未公布 | 按 CSV 行读入 | 一千六百四十九行 |
| 尝试次数分布 | 未公布 | 按受试者与任务分组 | 多数任务两次,最多十五次 |
| 性别构成 | 未公布 | 按索引表统计 | 男性约占七成 |
| 优势手 | 未公布 | 按索引表统计 | 右利手占绝大多数 |
最后一行的现象值得单说:每次任务至少做两遍,如果两遍都没达到七十分就继续做,直到有一次过线为止。这条规则直接决定了数据的不平衡——大部分尝试只做两次,少数困难任务做到十几次。它同时意味着,能进到数据里的每一次尝试,其所属的受试者—任务组合最终都至少有过一次及格。
2.5 与同类资源的字段差异
把这份数据放进脑电或眼动数据集的大图里,字段层面的差别一目了然:
| 对比项 | 本数据集 | 通用临床脑电库 | 通用眼动库 |
|---|---|---|---|
| 主要信号 | 128 导脑电 + 20 列眼动 | 十几到二十几导脑电 | 注视点与瞳孔为主 |
| 同步 | 双模态同步录制 | 单模态 | 单模态 |
| 任务范式 | 二十七项手术模拟操作 | 常见为静息、诱发、睡眠 | 图片、视频、阅读 |
| 标签 | 模拟器评分 + 眼动类型 | 诊断或发作标注 | 试次级兴趣区 |
| 采样率 | 五百赫兹与五十赫兹 | 两百至一千赫兹 | 六十至一千二百赫兹 |
| 受试者数 | 二十五 | 数十到上万 | 十余到数百 |
| 许可 | 仅学术 | 多为开放许可 | 多样 |
它的独特性不在任何单一字段上,而在「双模态 + 任务评分为标签 + 操作过程连续」这三件事的组合。单看脑电,它不如临床库干净;单看眼动,它的采样率在同价位设备里算中等。合在一起,才构成它在库内的位置。
§3 身份与定位:它到底是什么
3.1 一份为「技能」而非「疾病」设计的记录
绝大多数医学生理信号数据集的核心问题是「这个人有没有病」。这份数据的核心问题是「这个人练得怎么样」。这个差别贯穿始终:受试者招募不看病史,任务设计不看症状,标签来自模拟器而不是医生。
它属于神经工效学(neuroergonomics)这条线,而非临床神经诊断。神经工效学研究的是人在执行真实任务时的大脑与行为,典型关心的是负荷、疲劳、注意力、熟练度。这份数据把战场选在了机器人手术模拟器上,理由是手术操作的负荷高、可重复、结果可量化。
3.2 三个层级的能力:动作、生理、评分
把数据按信息层级拆开,可以看清它在回答哪一类问题时占优:
| 层级 | 记录内容 | 能回答的问题 | 依赖精度 |
|---|---|---|---|
| 动作层 | 无直接记录,只有评分 | 好不好 | 依赖模拟器正确性 |
| 生理层 | 脑电与眼动连续记录 | 当时吃力不吃力、看哪里 | 依赖设备与同步 |
| 评分层 | 百分制分数 | 结果如何 | 依赖模拟器评分模型 |
中间的生理层是这份数据的独有部分。动作层只有结果没有过程,评分层只有一个数,而生理层给的是整段过程的连续曲线。这意味着它可以回答「过程中的哪一段最难」这类动作层与评分层都答不了的问题。
3.3 它站在哪个学术脉络上
这份数据出自一组连续发表的研究。截至 2026 年初,同一批作者围绕它至少发了十来篇论文,主题从技能分级、学习率预测,到认知负荷估计、脑功能网络指标,再到用眼动特征单独预测缝合操作评分。这些论文的共同模式是:从脑电和眼动中抽取特征,用传统机器学习或浅层网络,去预测模拟器评分或专家评分。
这个脉络说明两件事。其一,这份数据是为「特征工程 + 小样本监督」这条路线准备的,不是为了端到端深度学习。其二,围绕它已经形成了一套事实上的评测口径,想要把自己的方法放进来比较,最好沿用同一套受试者划分方式,否则数字没法直接比。
§4 质量与特色
4.1 质量的三根支柱
判断一份生理信号数据靠不靠谱,通常看三件事:采集条件是否可控、标签是否独立于信号、原始数据是否保留。
采集条件上,这份数据做得比较规矩。所有受试者在同一台模拟器、同一套脑电帽与眼动眼镜下完成同一批任务,前置还有一段统一的示范视频。这意味着设备与流程带来的差异被压到最低,剩下的差异主要来自人。
标签独立性上,它有优势也有隐患。优势是评分来自模拟器,不由人工判读,同一段操作永远得到同一个分数,没有评分者间差异。隐患是评分与信号同源:模拟器算分用的时间、器械路径、碰撞次数,和脑电眼动记录的是同一段操作过程,两者之间不是「标签预测信号」那样的天然距离。
原始数据保留上,脑电给的是未经滤波的原始采样,官方明说希望使用者自由选择处理方法;眼动则已经在设备端做过平滑。两种模态的预处理程度不一致,这是接入时必须记住的一点。
4.2 它比同类强在哪
| 维度 | 本数据集 | 库内同类 | 差别要点 |
|---|---|---|---|
| 双模态同步 | 脑电与眼动逐次同步 | 多为单模态 | 能直接做融合 |
| 任务设计 | 真实手术模拟操作 | 实验室诱发范式 | 生态效度更高 |
| 结果标签 | 模拟器逐次评分 | 常缺行为结果 | 可做结果关联 |
| 经验跨度 | 零到上千小时 | 多为同质人群 | 可模拟学习曲线 |
| 任务难度梯度 | 同一任务有三级变体 | 通常单一难度 | 可做难度效应 |
第三行与第五行是它最值钱的地方。真实手术数据极少能拿到逐次的客观结果分,而模拟器任务天然有这个属性;难度梯度则让「同一技能在不同难度下表现如何」成为可研究的问题,比如匹配板一到三、环与轨道一到二、能量切割一到三,都是同族任务逐级加难。
4.3 案例:受试者九的两次任务十
把 §4.3 的案例放在成绩单上看最直观。受试者九,女性,二十四岁,右利手,先做任务十的第一次尝试,模拟器给九十一分;紧接着做第二次,九十二分。两次都过线,于是没有再补做。同一份索引表里,她的脑电与眼动文件都齐全,两次尝试的总时长都在一百秒上下。
这个案例能说明三件事。第一,评分确实逐次记录,不是取平均。第二,过线规则会让大多数受试者在两次之内结束,因此样本天然集中在「刚学会」这一段,而不是「练到精通」。第三,同一个人相邻两次尝试之间的分数差很小,说明模拟器评分的重复性不差,但也意味着同一受试者的多条记录之间相关性极高,不能当独立样本。
换个视角,如果这位受试者第一次只拿了五十几分,第二次才过线,我们就得到了一条纵向的学习轨迹;而 §4.3 的案例恰好是两次都过线,丢掉了第一次的失败信息。这不是数据缺陷,是采集规则的副作用:只有「通过与否」决定是否重做,失败本身不被单独记录为状态。
这个案例还有第三层用途:它是一把量人对齐的尺子。拿这位受试者的两份眼动文件,扫视次数与注视时长的相对关系在两次之间应当稳定,若某一次突然异常,多半是设备或佩戴问题而非人的状态变化。做质量筛查时,优先用这类「同一人同一任务的相邻两次」做自比对,比拿不同受试者互相比更干净。§5.2 的索引核对、§7.3 的缺失统计,用的都是同一个切分口径。
4.4 与眼电类词条的关系
这份数据自带四条眼电导联,但它们被官方明确标注为「不得使用」。原因不难理解:眼电导联在这里是脑电帽上的助手通道,用来帮助识别眨眼与眼动伪迹,而不是为了单独研究眼电。四条通道里在部分文件中还有明显的异常——有的通道整段为零,有的通道幅度比脑电高出好几个数量级。
所以它与库内任何眼电或眼动类词条的关系是互补而非重叠:那些词条关心眼动本身,这份数据只看眼动与手术技能的关系;它们的眼动多来自自然观看,这份数据来自手术操作(§6.1)。
§5 取数与接入
5.1 下载入口
项目页在 https://physionet.org/content/eeg-eye-gaze-data/1.0.0/,文件目录在 https://physionet.org/files/eeg-eye-gaze-data/1.0.0/。目录下是 EEG/、EYE/ 两个子目录加上五个附属文件。全部匿名开放,不需要注册,也不需要签署使用协议——但「开放下载」不等于「可随意使用」,使用范围由项目页正文的许可段落约束。
下列命令可以直接列出并拉取索引文件:
#-- 建立本地目录并拉取四个小文件
mkdir -p data/ras && cd data/ras
base="https://physionet.org/files/eeg-eye-gaze-data/1.0.0"
curl -sL "$base/PerformanceScores.csv" -o PerformanceScores.csv
curl -sL "$base/Table1.csv" -o Table1.csv
curl -sL "$base/RECORDS" -o RECORDS
curl -sL "$base/SHA256SUMS.txt" -o SHA256SUMS.txt
wc -l PerformanceScores.csv RECORDS
如果只需要任务定义与评分,到这里就够了;要拿波形再去下一节。
5.2 建立索引并核对缺口
索引表的字段名带括号与分号,读数时要按原样引用。文件里还有两处格式上的小坑:表头带 UTF-8 BOM,文件名两端各带一个多余的单引号。下面的脚本一次性处理掉这两处,并统计两路文件的覆盖情况:
#-- 读索引、剥单引号、统计覆盖(python3,依赖 pandas)
import pandas as pd
df = pd.read_csv("PerformanceScores.csv", encoding="utf-8-sig")
df.columns = [c.strip() for c in df.columns]
for col in ("EEG File Name", "Eye File Name"):
df[col] = df[col].fillna("").astype(str).str.strip("'").str.strip()
have_eeg = df["EEG File Name"].ne("").sum()
have_eye = df["Eye File Name"].ne("").sum()
have_both = ((df["EEG File Name"] != "") & (df["Eye File Name"] != "")).sum()
print("行数", len(df))
print("有脑电", have_eeg, "有眼动", have_eye, "两者都有", have_both)
print("受试者", df["Subject ID"].nunique())
print("年龄范围", df["Age (year)"].min(), df["Age (year)"].max())
输出的数字可以用来判断自己的分析能在哪些行上做:只要脑电的分析覆盖全部有脑电的行,双模态分析就缩到两者都有的那一部分。
5.3 读一份脑电文件
EDF 的读取在 Python 里最省事的路径是 MNE。下面的脚本读一个文件、打印通道数与采样率、并按官方要求把那四条眼电导联标为坏道:
#-- 读单份 EDF 并剔除眼电专用导联(依赖 mne)
import mne, numpy as np
mne.set_log_level("ERROR")
raw = mne.io.read_raw_edf("EEG/9_10_1.edf", preload=True, verbose=False)
eog = [c for c in raw.ch_names if "HEOG" in c or "VEOG" in c]
raw.set_channel_types({c: "eog" for c in eog})
raw.set_channel_types({c: "misc" for c in eog})
raw.info["bads"] = eog
print("通道数", len(raw.ch_names), "采样率", raw.info["sfreq"])
print("时长秒", round(raw.n_times / raw.info["sfreq"], 1))
print("眼电通道", eog)
X = raw.get_data(picks=mne.pick_types(raw.info, eeg=True))
print("脑电矩阵", X.shape)
读出来之后会立刻发现,同一个任务的不同文件在时长上差别很大:短的三四十秒,长的一两分钟。这不是读取错误,而是任务本身耗时不同。
5.4 读一份眼动文件
眼动文件没有表头,直接按二十列读入并赋列名即可。下面的脚本给出列名并做最基本的判读:
#-- 读一份眼动 CSV,赋列名并统计眼动类型
import pandas as pd
COLS = ["gaze_x", "gaze_y",
"gaze3d_x", "gaze3d_y", "gaze3d_z",
"dir_lx", "dir_ly", "dir_lz",
"dir_rx", "dir_ry", "dir_rz",
"pupil_lx", "pupil_ly", "pupil_lz",
"pupil_rx", "pupil_ry", "pupil_rz",
"pupil_d_l", "pupil_d_r", "em_type"]
eye = pd.read_csv("EYE/9_10_1.csv", header=None, names=COLS)
print(eye.shape, "时长秒", round(len(eye) / 50, 1))
print(eye["em_type"].value_counts(dropna=False).sort_index())
print(eye[["pupil_d_l", "pupil_d_r"]].describe().loc[["min", "mean", "max"]])
类型列的取值就是判断官方那处口径不一致的直接证据:数一遍零、一、二、三各出现多少次,就知道实际文件用的是哪一套编码。
5.5 把两路信号拼到一条时间线上
两路设备各自从头计时,官方没有给出零时刻对应关系。工程上可行的做法是用试次级锚点:假设任务开始与结束之间的操作是连续的,则把两路信号各自拉伸到同一长度,误差通常在一两秒内;更细的做法是用显著的眼动事件(大幅度扫视、眨眼)去匹配脑电上的眼动伪迹。
下面给出前一种做法的骨架,把眼动重采样到脑电的时间轴上:
#-- 按试次级线性对齐:眼动 50 Hz 重采样到脑电 500 Hz
import numpy as np, pandas as pd
eeg_sf, eye_sf = 500, 50
eye = pd.read_csv("EYE/9_10_1.csv", header=None).values
n_eeg = int(101 * eeg_sf) #-- 由 EDF 头算出
t_eye = np.arange(len(eye)) / eye_sf
t_eeg = np.arange(n_eeg) / eeg_sf
eye_d = np.zeros((n_eeg, eye.shape[1]))
for j in range(eye.shape[1]):
eye_d[:, j] = np.interp(t_eeg, t_eye, eye[:, j])
print("对齐后", eye_d.shape, "眼动原始", eye.shape)
这段代码只做长度归一,不做时钟校准。对追踪慢变量(瞳孔直径的缓慢起伏、注视区域的分布)够用;对事件相关电位这类毫秒级分析不够,需要额外的锚点(§7.2)。
5.6 构建受试者级的划分
最后一步是把划分做对。下面的代码按受试者分层,保证同一受试者不会同时出现在训练集和测试集:
#-- 按受试者划分训练/测试,绝不打散同一人的多次尝试
import numpy as np, pandas as pd
df = pd.read_csv("PerformanceScores.csv", encoding="utf-8-sig")
df["Subject ID"] = df["Subject ID"].astype(str)
subs = np.array(sorted(df["Subject ID"].unique()))
rng = np.random.default_rng(20261028)
rng.shuffle(subs)
cut = int(len(subs) * 0.2)
test_subs, train_subs = set(subs[:cut]), set(subs[cut:])
train = df[df["Subject ID"].isin(train_subs)]
test = df[df["Subject ID"].isin(test_subs)]
print("训练受试者", len(train_subs), "测试受试者", len(test_subs))
print("训练行", len(train), "测试行", len(test))
print("交叠检查", set(train["Subject ID"]) & set(test["Subject ID"]))
二十五个人的百分之二十是五个人。这个测试集规模决定了任何报出来的性能区间都会很宽,报告时必须给置信区间,否则使用者无从判断差异是否真实。
回到 §4.3 的案例:同一个人、同一项任务,相邻两次尝试的分数只差一分,但若把这两次尝试分别放进训练集与测试集,模型就会把「这个人在这项任务上的稳定表现」当成可迁移的规律。验证泄漏最直接的办法,就是在划分后统计每个测试受试者在训练集里还剩几次尝试——答案必须是零。
§6 与库内词条的关系
6.1 关系图谱
在库内的生理信号与眼动类词条之间,这份数据的位置可以按「信号种类」与「场景」两个轴摆出来:
| 库内词条 | 信号 | 场景 | 与本数据集的关系 |
|---|---|---|---|
| TUH EEG Corpus | 临床脑电 | 医院 | 同为脑电,但人群是患者、任务是临床判读 |
| EEGMMIDB | 运动想象脑电 | 实验室 | 同为脑电范式数据,任务抽象、无行为结果 |
| DEAP | 脑电与生理多模态 | 实验室 | 同为多模态,但刺激是影音素材,无技能标签 |
| HBN-EEG | 高密度脑电 | 儿童青少年 | 同为高密度,人群与任务完全不同 |
| MIMIC-Eye | 眼动与临床数据 | 医院阅片 | 同为眼动,场景是影像判读而非操作 |
| REFLACX | 眼动与影像报告 | 医院阅片 | 同为眼动加任务,但任务是诊断不是操作 |
| SAR-RARP50 | 手术视频 | 机器人手术 | 同为机器人手术,它给视频与动作,本数据给生理信号 |
| CholecT50 | 腹腔镜视频 | 手术 | 同为手术技能相关,模态完全不同 |
这张表里最容易被混淆的是后两行。它们关心「手术怎么做」,而这份数据关心「做的人状态如何」。如果研究目标是器械动作识别,该去视频库;如果是操作者负荷或技能水平,才轮到这份数据。
6.2 检索路径
| 你要找的东西 | 检索词 | 会落到哪里 |
|---|---|---|
| 双模态脑电加眼动 | multimodal EEG eye-tracking |
本数据集与 DEAP 一类 |
| 手术技能客观评估 | surgical skill assessment |
本数据集与手术视频库 |
| 机器人手术相关数据 | robot-assisted surgery |
本数据集与 SAR-RARP50 |
| 眼动叠加任务的标签 | gaze and task performance |
本数据集与 REFLACX |
| 认知负荷生理指标 | cognitive workload EEG |
本数据集与实验室范式库 |
| 高密度脑电范式 | 128-channel EEG |
本数据集与 HBN-EEG |
检索时的一个实用技巧:本数据集在 PhysioNet 内部的名字是 eeg-eye-gaze-data,而在论文里更常被称作 NIBIB-RPCCC-RAS 或「RAS performance evaluation dataset」。两个名字要同时试,单用一个会漏检。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
先纠正一个容易发生的误判:把「二十五个人」当成「样本量太小、不值得用」。如果这份数据的目标是做统计推断,二十五人确实不够;但它的目标是提供一种别人拿不到的观测组合——同一段手术操作上的脑电、眼动与客观评分。判断它该不该用,不该套「越大越好」的尺子,而该问:我的研究问题是否恰好需要这个组合?
这个校正会改变评分的读法。规模一项它拿不到高分,在双模态与场景稀缺性上却几乎无可替代。把两件事混在一起,就会得出「不值得用」的错误结论;分开看,结论应该是「按问题选,而不是按体量选」。
7.1 五维评分
按 DAIMS 的常用维度打分,每项一到五分,分数针对「作为手术技能与认知负荷研究数据」这个用途:
| 维度 | 分数 | 理由 |
|---|---|---|
| 数据规模 | 2 | 二十五人,独立的观测单位很少 |
| 标注质量 | 3 | 模拟器评分客观一致,但眼动类型标签来自默认阈值 |
| 任务适配 | 5 | 双模态同步加行为结果,同类中几乎没有替代 |
| 文档完整 | 3 | 项目页写得详细,但许可文件为空、类型索引口径不一致 |
| 可获取性 | 5 | 免注册直接下载,附带校验和清单 |
五项合计十八分(满分二十五)。分数结构说明它的定位:规模与文档是短板,适配性拉满,可获取性极高。这个组合适合快速验证想法,不适合作为唯一数据源支撑一篇大样本结论。
7.2 同步与对齐的真实难度
官方只有一句话交代同步:「脑电与眼动数据由每名受试者在每次练习中同时录制」。这句话在语义上没有问题,但在工程上留下了三件事要自己解决。
第一件是零时刻。两份文件各自从头开始,没有共享时间戳,也没有事件标记文件。前一节算过,同一次尝试的脑电与眼动在总时长上差了几秒,这部分差异只能靠锚点估计。
第二件是采样率。五百赫兹与五十赫兹相差十倍,任何跨模态的瞬时关联都要先决定重采样方向:升采样会让眼动看起来比实际更平滑,降采样会丢掉脑电的高频成分。
第三件是设备间延迟。眼动眼镜的成像、检测、传输与脑电放大器的采样之间必然存在固定延迟,厂商没有在这份数据里披露数值。对慢变量无所谓,对事件相关电位就是系统性偏移。
| 分析类型 | 对齐精度要求 | 这份数据能支持吗 |
|---|---|---|
| 注视区域分布统计 | 秒级 | 能,试次级长度归一就够 |
| 瞳孔直径的负荷响应 | 亚秒级 | 基本能,需注意延迟 |
| 扫视与脑电伪迹的耦合 | 十毫秒级 | 需自建锚点,风险较高 |
| 事件相关电位 | 毫秒级 | 不建议,缺事件标记 |
7.3 已知的、可枚举的偏差
| 偏差 | 具体表现 | 影响 | 缓解方式 |
|---|---|---|---|
| 人群偏差 | 二十五人中十二人零经验,男性约七成 | 代表性有限 | 按经验分档报告,不做人群推断 |
| 中心偏差 | 单一中心、单一设备组合 | 无法跨中心验证 | 只能做内部验证或跨库外测 |
| 词表偏差 | 任务全为模拟器练习,非真实手术 | 生态效度打折 | 明确结论的适用边界 |
| 缺失偏差 | 部分尝试只有一路信号,个别受试者全无眼动 | 双模态样本更少 | 用索引表先筛,报告筛选后的规模 |
| 评分同源 | 评分与信号来自同一段操作 | 预测性能可能虚高 | 加对照,剔除与评分定义直接同源的变量 |
| 个体相关性 | 同一人多次尝试 | 随机划分会泄漏 | 按受试者划分(§5.6) |
| 标签阈值单一 | 眼动类型按三十度每秒一刀切 | 边界样本归错 | 不把类型当金标准 |
| 文件缺口 | 清单里列出但实际下载返回缺失 | 加载脚本报错 | 用校验和清单先筛,加载时容错 |
缺失这一项需要展开。索引表里有一百零三行是只有脑电、没有眼动的,这些行集中在七名受试者身上,其中一名受试者的二十七次尝试全部缺眼动。这意味着任何双模态分析的可用样本,在按受试者划分后可能进一步缩水,做交叉验证时要先算清每个折里还剩多少人。
另外还有一类更隐蔽的缺口:RECORDS 清单里出现的文件名,并不都能在目录里取到。接入脚本如果按清单盲取,会在某几个文件上直接报 404,必须写成可跳过缺失文件的容错形式。
7.4 外部验证矩阵
| 验证方向 | 可用外部资源 | 可行性 | 注意 |
|---|---|---|---|
| 与临床脑电库比较特征 | TUH EEG Corpus | 可行 | 任务完全不同,只能比特征稳定性 |
| 与运动想象库比较范式 | EEGMMIDB | 可行 | 同为诱发范式,人群差异大 |
| 与眼动阅片库比较注视 | REFLACX、MIMIC-Eye | 可行 | 场景都是专业任务,注意力组织可类比 |
| 与手术视频库比较任务 | SAR-RARP50、CholecT50 | 部分可行 | 只能对齐任务层面,模态不可对齐 |
| 跨中心验证 | 无 | 不可行 | 没有第二家同协议数据 |
这张表说明一个现实:它没有真正的跨中心对照。所有外部比较都只能是「方法迁移」而不是「性能外推」。研究者若想证明模型能泛化,必须自己再采一批。
7.5 它为何能持续:占着一个别人不愿再占的坑
它自 2023 年首发后没有新版本,却持续被引用,原因是它站在一个采集成本很高的交叉点上:要同时凑齐愿意公开的手术模拟器场地、128 导脑电设备、眼动眼镜,以及一批从零经验到上千小时的真实学习者。这四样东西缺一样都做不出来,而愿意把全部数据放出来的机构更少。只要「双模态 + 手术技能 + 客观评分」这个组合仍然稀缺,它作为小样本验证平台的价值就不会被新库轻易替掉。
§8 生态位与历史
8.1 历史沿革
项目的种子是一项 NIH 资助计划。NIBIB 的 R01EB029398 号项目支持在 Roswell Park 开展机器人手术训练数据采集,成果在 2020 年 7 月开工,2021 年 11 月收尾。数据先在内部用于一系列方法学研究,2022 年 11 月底完成目录整理,2023 年 1 月补上清单,最终在 2023 年 7 月 14 日以 1.0.0 版本发布。
从时间线上看,它从采集到公开隔了一年半,这段时间主要花在去标识化与文件整理上。文件名里的受试者编号是重新编排的,脑电头里的受试者标识与记录标识也是脱敏值,且官方特别提醒:那些标识里出现的日期是文件转换日期,不是采集日期。
8.2 出版与引用脉络
数据本身以资源形式挂在 PhysioNet 上,同时有一篇配套的描述性论文。围绕同一批数据,作者团队发表了多篇方法学论文,主题覆盖技能分级、学习率预测、认知负荷、脑功能网络与深度学习评估。
| 方向 | 典型做法 | 与本数据的关系 |
|---|---|---|
| 技能分级 | 眼动与脑电特征 + 梯度提升 | 直接把受试者经验档当类别 |
| 学习率预测 | 用前几次尝试预测后续提升 | 依赖同一人的多次尝试序列 |
| 认知负荷 | 脑电频谱与时频特征 | 以任务难度或评分为代理 |
| 脑功能网络 | 相干性与相位滞后指标 | 128 导提供足够空间分辨率 |
| 端到端模型 | 深度网络直接吃原始片段 | 样本量是主要瓶颈 |
8.3 在手术教育生态里的位置
机器人手术培训有几个公认的评估层次:模拟器练习、动物或模型练习、真实病例带教、术后结果复盘。每个层次都有各自的数据形态。模拟器层最容易被数字化,也最容易标准化;真实手术层最有价值,却最难公开。这份数据把模拟器层做成了可公开的形式,因此它天然站在「训练早期」这一段。
这意味着它的结论最适合指导课程设计与早期反馈,而不适合用来推断执业后的手术质量。把它当作「从新手到合格」这一段的观测窗,比当作「从合格到优秀」的观测窗更稳妥。
8.4 与通用生理数据生态的关系
在更大的生理数据版图里,它是一类正在变多的数据:不只是记录信号,还记录人在做什么、做得如何。这类数据对方法学的要求比纯信号数据更高,因为标签与信号之间的因果方向不清晰——是负荷高导致分数低,还是分数低导致负荷高,数据本身回答不了。
它在这类数据里算早期样本之一,文档写得比较直白,把局限也列了出来。后来的同类工作如果想做得更好,最常见的改进方向是补事件标记、补器械运动学、补多中心。
§9 使用指引
9.1 三种角色的路径
| 角色 | 你最关心什么 | 建议路径 | 跳过什么 |
|---|---|---|---|
| 方法研究者 | 双模态融合能不能带来增量 | 先读索引表建样本集,再做受试者划分,最后比单模态与双模态 | 不必先下全部脑电 |
| 手术教育者 | 熟练与生疏的差别体现在哪 | 只看评分与眼动类型分布,按经验档分组对照 | 不需要碰脑电 |
| 数据工程师 | 两种格式怎么接、怎么对齐 | 先跑通单文件读取,再处理索引缺口,最后做时间对齐 | 不必先做建模 |
三种角色的共同第一步都是读索引表,因为它决定了后面能做什么。跳过索引直接下载全量,往往在合并时才发现名称对不上。
9.2 一条最短的可用流程
下面这条流程从零到能做一次基线,全部步骤都在单机上完成:
#-- 最短可用流程:索引 -> 单文件验证 -> 受试者划分
cd data/ras
python3 -c "
import pandas as pd
df = pd.read_csv('PerformanceScores.csv', encoding='utf-8-sig')
df.columns = [c.strip() for c in df.columns]
for c in ('EEG File Name','Eye File Name'):
df[c] = df[c].fillna('').astype(str).str.strip(\"'\").str.strip()
print(df.shape)
print(df.groupby('Subject ID').size().to_string())
"
curl -sL "https://physionet.org/files/eeg-eye-gaze-data/1.0.0/EEG/9_10_1.edf" -o EEG_9_10_1.edf
curl -sL "https://physionet.org/files/eeg-eye-gaze-data/1.0.0/EYE/9_10_1.csv" -o EYE_9_10_1.csv
python3 -c "
import mne; mne.set_log_level('ERROR')
r = mne.io.read_raw_edf('EEG_9_10_1.edf', preload=False, verbose=False)
print(len(r.ch_names), r.info['sfreq'], round(r.n_times / r.info['sfreq']))
"
跑完这三步,你就拿到了样本清单、一对可用文件和一份已验证的读取方式。接下来所有工作都建立在这三步之上。
9.3 引用方式
官方给出的引用格式是作者列表加标题、版本与 DOI,应原样使用:
| 项 | 内容 |
|---|---|
| 作者 | Shafiei S B、Shadpour S、Mohler J、Seilanian Toussi M、Doherty P、Jing Z |
| 年份 | 2023 |
| 标题 | Electroencephalogram and eye-gaze datasets for robot-assisted surgery performance evaluation |
| 版本 | 1.0.0 |
| DOI | 10.13026/qj5m-n649 |
| 平台 | PhysioNet |
许可方面有一处需要在论文里说清楚:目录下的 LICENSE.txt 是一个空文件,具体条款只存在于项目页正文。正文的说法是「本数据集为学术研究发布,不用于商业用途」,属于宽泛的用途限制,既不是知识共享许可,也不是某个标准开源许可。引用时按官方给出的格式署名,并在方法部分说明用途限于学术研究,是最稳妥的写法。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,编辑负责结构与事实把关 |
| 数字来源 | 规模、结构、边界三类数字取自 PhysioNet 项目页与文件目录 |
| 文件核验 | 索引表、任务清单、文件清单经直接读取确认;三份脑电样本经读取头文件确认 |
| 口径不一致 | 眼动类型索引的取值说明在项目页内有两处不同写法,已在 §2.2 并列 |
| 论文信息 | 仅参考 Europe PMC 检索到的摘要与元数据,未读全文 |
| 未核验内容 | 全量文件的时长分布、各受试者的具体评分序列、缺失文件的确切成因 |
| 图像 | 无配图;封面为生成式提示词,不含真实数据 |
| 免责 | 本文不构成临床或教学决策建议;使用须遵守官方用途限制 |
常见误读(避坑清单)
| 常见说法 | 实际 | 证据 |
|---|---|---|
| 这是个通用眼动数据集 | 场景固定在机器人手术模拟器的二十七项任务上 | 项目页方法与任务说明 |
| 二十五个人太少,没法用 | 独立观测单位是人,适合小样本验证而非规模训练 | §7.1 评分表 |
| 脑电和眼动有统一时间戳 | 两套设备各自计时,没有对齐文件 | 项目页只写同时录制 |
| 注视标签是人工金标准 | 厂商软件按角速度阈值自动划分 | 项目页数据描述段 |
| 四条眼电导联可以当眼电数据用 | 官方明确要求不得使用 | 项目页使用说明 |
| 每个文件都标了一百二十八导 | 头文件里是一百二十九条信号,多出的一条是注释通道 | 读取 EDF 头确认 |
| 评分和信号互相独立 | 二者来自同一段操作,存在同源风险 | §4.1 第三段 |
| 所有受试者都有眼动数据 | 有一名受试者全部尝试都缺眼动 | 索引表逐行核对 |
| 清单里有的文件都能下到 | 个别文件名实际返回缺失 | 目录访问确认 |
| 可以商用 | 官方写明仅限学术研究 | 项目页许可段落 |
FAQ
Q1:它和 TUH EEG Corpus 是竞争关系吗?
不是。TUH 面向临床脑电判读,人群体量在万级,任务是诊断;这款数据面向手术技能研究,二十五名健康志愿者,任务是操作练习。两者在「脑电」这一个词上相交,其余维度基本不重叠。
Q2:眼动采样率五十赫兹够不够?
要看用途。做注视区域分布、瞳孔直径的缓慢变化、按试次比较注意力,五十赫兹够用;做微扫视、扫视峰值速度、注视微动这类毫秒级现象,五十赫兹明显不够。官方没有给出更高采样率的版本。
Q3:能不能用它训练一个通用技能评分模型?
可以训练,但要清楚适用范围。二十五人、单一中心、单一模拟器,训出来的模型几乎一定绑定这台模拟器与这套任务。跨任务、跨中心的泛化需要额外数据支撑。
Q4:为什么有的受试者完全没有眼动数据?
官方只说部分数据因录制系统问题未能采到,没有逐人说明原因。索引表里可以看出缺失集中在七名受试者身上,其中一人全部缺失。这是设备或流程问题,不是数据筛选的结果。
Q5:评分里有超过一百分的值怎么办?
索引表里存在个别等于一千的异常值,与官方声明的零到一百不符。处理方式是先按定义区间过滤,或把它当缺失值,不要直接放进回归目标。
Q6:注视与扫视的类型编码到底用哪一套?
项目页两处写法不同:一处说三为未检出,另一处说零为未知。解决办法是统计实际文件里类型列的取值,按出现过的值来写映射,而不是照抄任一处。
Q7:能不能只用脑电做分析?
可以,而且这是数据量更大的一条路:有脑电的尝试比两者都有的多出九十条。只用脑电时,缺失眼动不再构成限制,人群覆盖也更完整。
Q8:怎么处理那四条眼电导联?
标记为坏道或非脑电类型后排除。部分文件里这些通道整段为零,部分文件里幅度异常高,混进脑电会污染任何空间滤波结果。
Q9:可以直接学作者的论文做法吗?
可以借鉴,但要注意他们常在样本内做特征选择。复现时应按受试者划分,并报告划分方式,否则性能数字不可比。
Q10:数据多久更新一次?
自 2023 年 7 月的 1.0.0 版本后没有新版本。官方没有公布扩版计划。
Q11:模拟器与真机差多少?
这是机器人手术教育的公开问题,官方页面没有讨论。用这份数据得出的结论,应限定在模拟器场景,不宜直接外推到真实手术。
Q12:能不能基于它做商业产品?
不能。官方写明仅限学术研究,不得商业使用。即便模型只用了从中提取的特征,也建议先取得明确授权。
术语表
| 术语 | 英文 | 含义 |
|---|---|---|
| 脑电 | EEG | 头皮电极记录的大脑电活动 |
| 眼动追踪 | eye tracking | 用摄像与算法估计视线方向 |
| 注视 | fixation | 视线在一点附近停留的状态 |
| 扫视 | saccade | 视线在两点之间的快速跳转 |
| 瞳孔直径 | pupil diameter | 瞳孔大小,常作为负荷代理 |
| 参考电极 | reference | 所有导联电位相对的基准点 |
| 导联 | lead / channel | 一路电位记录 |
| 高密度脑电 | high-density EEG | 通常指六十四导以上 |
| 眼电 | EOG | 记录眼球运动的电位通道 |
| 模拟器 | simulator | 用于训练的虚拟手术环境 |
| da Vinci | — | 主流手术机器人系统与其模拟器 |
| 技能评估 | skill assessment | 对操作水平的量化判断 |
| 认知负荷 | cognitive workload | 完成任务时的心理资源占用 |
| 神经工效学 | neuroergonomics | 研究真实任务中的大脑与行为 |
| 试次 | trial | 一次完整的任务尝试 |
| 采样率 | sampling rate | 每秒采样次数 |
| 伪迹 | artifact | 非生理来源的信号干扰 |
| 去标识化 | de-identification | 移除可直接识别身份的字段 |
| 受试者级划分 | subject-wise split | 同一人只落在训练或测试一侧 |
| 数据泄漏 | data leakage | 测试信息以非预期方式进入训练 |
| 置信区间 | confidence interval | 估计值的不确定范围 |
| 生态效度 | ecological validity | 实验环境接近真实场景的程度 |
| 时间对齐 | time alignment | 不同来源信号在同一时间轴上的对应 |
| 结果标签 | outcome label | 描述任务结果的目标变量 |
附录 A:核心数字核对表
| 项 | 值 | 来源 | 来源层级 |
|---|---|---|---|
| 受试者数 | 25 | 项目页摘要与方法 | 官方页面 |
| 任务数 | 27 | 项目页与任务清单 | 官方页面 |
| 模块数 | 6 | 任务清单 | 官方页面 |
| 脑电文件数 | 1636 | 项目页数据描述与目录 | 官方页面 |
| 眼动文件数 | 1559 | 项目页数据描述与目录 | 官方页面 |
| 脑电采样率 | 500 Hz | 项目页 | 官方页面 |
| 眼动采样率 | 50 Hz | 项目页 | 官方页面 |
| 脑电导联 | 128 | 项目页;头文件含一条注释通道 | 官方页面与读取 |
| 眼动列数 | 20 | 项目页列表示意 | 官方页面 |
| 眼动类型阈值 | 30 度每秒 | 项目页 | 官方页面 |
| 通过线 | 70 | 项目页 | 官方页面 |
| 年龄范围 | 20–67 | 项目页 | 官方页面 |
| 采集时段 | 2020-07 至 2021-11 | 项目页 | 官方页面 |
| 索引表行数 | 1649 | 直接读取 | 已确认 |
| 双模态齐全行数 | 1546 | 直接读取 | 已确认 |
| 单文件时长样例 | 101 秒 | 头文件推算 | 已确认 |
| DOI | 10.13026/qj5m-n649 | 项目页 | 官方页面 |
附录 B:数字的来源分层
官方页面: 受试者数、任务数与模块数、两类文件数、两路采样率、导联数、眼动列数与列含义、角速度阈值、通过线、年龄区间与经验分档、采集起止时间、许可表述、局限性段落。这些全部来自项目页正文或其引用的附属文件。
直接读取: 索引表行数、各文件的覆盖情况、缺失行为何集中在七名受试者、单文件头里的信号条数与时长、目录清单条数、清单与目录之间个别文件名取不到的事实。这些通过访问文件本身得到,不是官方给出的汇总数。
未核实: 全量文件的时长分布、每个受试者的完整评分序列、各个任务的平均耗时、缺失文件的确切成因。这些需要下载全量后统计,本文按要求不写。
附录 C:完整参考文献
| 序号 | 文献 | 链接 | 用途 |
|---|---|---|---|
| 1 | 项目页(v1.0.0) | https://physionet.org/content/eeg-eye-gaze-data/1.0.0/ | 全部规模与结构数字 |
| 2 | 文件目录 | https://physionet.org/files/eeg-eye-gaze-data/1.0.0/ | 文件清单与附件 |
| 3 | 评分汇总表 | https://physionet.org/files/eeg-eye-gaze-data/1.0.0/PerformanceScores.csv | 覆盖与缺口核对 |
| 4 | 任务清单 | https://physionet.org/files/eeg-eye-gaze-data/1.0.0/Table1.csv | 任务编号与模块 |
| 5 | 文件清单 | https://physionet.org/files/eeg-eye-gaze-data/1.0.0/RECORDS | 条数与名称规则 |
| 6 | 校验和清单 | https://physionet.org/files/eeg-eye-gaze-data/1.0.0/SHA256SUMS.txt | 完整性核对 |
| 7 | 配套论文(DOI) | https://doi.org/10.13026/qj5m-n649 | 引用主键 |
| 8 | 同一团队的方法学论文 | https://doi.org/10.1038/s41539-024-00216-y | 学习率建模方向 |
| 9 | 同一团队的技能分级论文 | https://doi.org/10.1097/as9.0000000000000292 | 眼动特征方向 |
| 10 | 同一团队的双模态负荷论文 | https://doi.org/10.1177/00187208241285513 | 融合方法方向 |
附录 D:任务代码
| 编号 | 任务 | 所属模块 |
|---|---|---|
| 1 | Pick and place | EndoWrist 操作一 |
| 2–3 | Peg board 1–2 | EndoWrist 操作一 |
| 4–8 | Match board 1–3、Ring and rail 1–2 | EndoWrist 操作二 |
| 9–14 | Camera targeting 1–2、Scaling、Ring walk 1–3 | 镜头与离合 |
| 15–16 | Needle targeting、Thread the rings | 针具控制 |
| 17–22 | Suture sponge 1–3、Dots and needles 1–2、Tubes | 针具驱动 |
| 23–27 | Energy switching 1–2、Energy dissection 1–3 | 能量与分离 |
附录 E:如果只记五件事
- 它是手术模拟器上的双模态记录,不是通用眼动库,也不是临床脑电库。
- 二十五名受试者、二十七项任务、脑电五百赫兹与眼动五十赫兹同时录制,官方给出的是这一组数。
- 标签是模拟器百分制评分,与信号同源,做预测时要防虚高。
- 两路设备各自计时,没有对齐文件,跨模态分析要自建锚点。
- 许可仅限学术研究,LICENSE.txt 为空文件,条款以项目页正文为准。
编辑说明
本文的核验时间为 2026 年 10 月 28 日。核对方式为直接访问 PhysioNet 项目页与文件目录,读取了评分汇总表、任务清单与文件清单,并下载三份脑电样本与两份眼动样本确认格式:头部信号条数为一百二十九(含一条注释通道)、采样率五百赫兹、单次尝试时长一百零一秒,眼动文件无表头、二十列、五十赫兹,两路时长差数秒。论文侧只检索了 Europe PMC 的摘要与元数据,未读全文。未覆盖的内容包括全量文件的时长分布、每个受试者的完整评分序列、缺失文件的确切成因,这些需要下载全量后统计。项目页内部有一处口径不一致(眼动类型索引的第三值与零值),本文并列陈述,不作判断。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- dreamer — 共享标签:生理信号 / 脑电信号 / 可穿戴传感 / 多模态
- mental-fnirs — 共享标签:生理信号 / 脑电信号 / 可穿戴传感 / 多模态
- multimodal-gait-dataset — 共享标签:生理信号 / 脑电信号 / 可穿戴传感 / 多模态
- wesad — 共享标签:生理信号 / 可穿戴传感 / 多模态
- cgmacros — 共享标签:生理信号 / 可穿戴传感 / 多模态
- tame-pain — 共享标签:生理信号 / 可穿戴传感 / 多模态
- bigp3bci — 共享标签:生理信号 / 脑电信号 / 多模态
- ephnogram — 共享标签:生理信号 / 可穿戴传感 / 多模态
- body-sway-music-vr — 共享标签:生理信号 / 可穿戴传感 / 多模态
- ibl-brain-wide-map — 共享标签:生理信号 / 脑电信号 / 多模态
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

