判读心律的那三十秒 — 十二导联心电图眼动库

六十三人 / 六百三十次判读 / 60 赫兹眼动

来源 https://physionet.org/content/eye-tracking-ecg/1.0.0/发布时间: 2026-10-28最后更新: 2026-10-28 阅读 14
判读心律的那三十秒 — 十二导联心电图眼动库

信息速览

数据集名称判读心律的那三十秒 — 十二导联心电图眼动库
数据类型时序信号,元数据,人工标注,原始影像
规模63 名受试者 / 630 次判读(每人 10 份心电图)
接入方式https://physionet.org/content/eye-tracking-ecg/1.0.0/
AI 就绪度

把一张十二导联心电图摊在面前,三十秒。这是多数门诊里真实存在的节奏:扫一眼节律条,看下壁导联有没有抬高,再回头核对aVR。熟练的人三十秒够用,生手三十秒只够找到V1。这三十秒里眼睛去了哪里、在哪个导联上停了多久、回头看了几次,肉眼看不见,却正是「视觉专长」这四个字最实在的落点。

卡塔尔多哈的一支团队把这三十秒搬进了实验室。六十三名医学生与心血管从业人员,依次坐在一台十三点三英寸笔记本前,看十张静态心电图,每张限时三十秒。屏幕上没有病人、没有病史、没有可点的按钮,只有图。眼动仪以每秒六十次的频率记下瞳孔位置,事后被切成注视、扫视与回视,再按导联区域汇总成两张表。

需要先说清一件事:这个库的名字里虽然有 ECG,但库里没有一条心电波形。ECG 在这里是刺激物,不是被测量的信号。全库真正被测量的只有目光。这个错位值得在开头就摆明,因为它是绝大多数误用的源头。一屏速览见下表。

维度 内容
官方全名 Eye Tracking Dataset for the 12-Lead Electrocardiogram Interpretation of Medical Practitioners and Students
中文通称 十二导联心电图判读眼动数据集
发布平台 PhysioNet,Open Access
版本与日期 1.0.0,2022 年 3 月 16 日发布
DOI 10.13026/gsr5-8b11
采集机构 哈马德·本·哈利法大学科学与工程学院信息与计算技术学部(多哈)
受试者 63 名,十种岗位标签,含医学生、护士、技师、住院医、专科培训医与顾问医师
判读规模 每人 10 份心电图,合计 630 次判读
刺激材料 10 张静态十二导联心电图图片,覆盖正常窦性心律与九种异常
眼动设备 Tobii Pro X2-60,60 赫兹,配 iMotions 8.1
时间限制 每份图 30 秒
兴趣区方案 网格版(每图十六至二十五块)与长短导联版(每图两块)
数据文件 两张 CSV,各 30 列;网格版 15,372 行,长短版 1,890 行
体量 解压后 30.5 MB,压缩包 25.9 MB
许可 ODbL 1.0,可商用,须署名并以同许可开放衍生库
配套论文 JMIR Medical Education 2021、JMIR Human Factors 2022、IEEE BESC 2021

§1 它要解决的具体麻烦

1.1 一个被名字耽误的库

库名把两个词并排放着:eye-tracking 与 ECG。中文语境里最顺的读法是「眼动加心电同步采集」,这也是检索时最容易带上的预期。实际情况相反:心电是画面里的图像,眼动是画面外的记录,两者是刺激与反应的关系,不是两路并行信号。

这个错位不影响数据本身的价值,却决定了它能不能被接进你的流程。心电算法团队打开目录会发现没有 WFDB、没有采样率、没有导联电压,三秒内就会关掉;医学教育团队打开同一目录,看到的是一份难得的、按岗位分层、带限时约束的判读行为记录。

把名字拆开看,三层信息各自成立:eye-tracking 说明测量手段,指的是注视、扫视与回视的汇总指标,不是原始帧也不是录屏;ECG 说明刺激内容,指的是十张静态图片,是画面而不是通道;中间的 interpretation 才是研究主题,指的是限时三十秒的纯看图任务,不带诊断结论也不带对错标签;最后的 practitioners and students 指十种岗位标签下的六十三人,不是清一色的医学生。

1.2 三条常见的错误期待

第一条是期待同步生理记录。库里没有心电、没有皮电、没有瞳孔直径的连续曲线,只有按区域汇总后的注视指标。想研究「看心电图时心率如何变化」,这份数据一行都用不上。

第二条是期待逐例诊断金标准。表里 30 列没有一列记录受试者说了什么、判对还是判错。配套论文报告了各岗位的判读准确率,从顾问医师的九成八到医学生的五成二,但这些数字是论文层面的统计结果,没有回填到数据行里。想复现准确率,得自己重新组织判读并标注。

第三条是期待自然观看行为。任务被限时三十秒,且明确不给病史。这两条约束是设计的一部分,不是缺陷,但它们让数据偏离真实门诊:真实场景里医生会翻病历、会比旧图、会回头问病人。

这三条错位各自对应一类后果:把眼动与心电当成同步信号,生理耦合类研究就无从下手;把标签当成诊断金标准,监督学习就得自建标签;把限时任务当成自由观看,任何外推到门诊的结论都站不住。还有第四种,把汇总当原始帧,结果是想重跑注视切分算法时才发现没有坐标。

1.3 它能给到的与给不到的

你的需求 它给的 够不够
看不同资历的人先看哪个导联 每块兴趣区的首次到达时间与注视时长 够,且是这份数据最硬的用途
比较专家与新手的搜索策略 注视次数、平均注视时长、回视次数 够,按岗位分组即可
训练一个「会看图」的模型 无逐例标签,图也只有十张 不够,样本与标签两头都缺
研究眼动仪算法本身 只有汇总值,无原始坐标 不够,需另找原始帧数据
做教学系统的注意力热区设计 两种粒度的手工兴趣区与示意图 够,可直接借版面切分
复现论文的准确率数字 论文有数字,数据无对应列 不够,只能引用不能复算

1.4 你的处境与它能帮到的事

你的处境 它能帮你什么 下一步该做什么
想证明「专家看图更快更准」 提供按岗位分层的注视与回视对照 先读 §4.4 的案例,确认指标口径
要给规培生做看图训练 提供专家在哪些导联停留久的参照 用网格版做导联级注意力模板
要设计眼动实验但缺范式 提供限时、无病史、随机顺序的完整参数 照 §3.4 的参数复刻,再扩样本
做多模态教学分析 提供行为侧的一半 另配判读结果与考核分数
只想找心电波形做算法 给不了 转心电类库,别在此停留

1.5 一句话判断

它是一份「看图的动作」的记录,不是「图里的信号」的记录;把它当成视觉专长的行为底稿,它够用且稀缺,把它当成心电数据,它一无所有。

1.6 不适合谁:四条边界

第一条,不适合任何需要心电波形、导联电压或心律标注的任务。库里没有这些,未来版本也不会有,因为采集时根本没有接电极。

第二条,不适合需要大样本做深度学习的任务。六十三人、十张图、六百三十次观察,这个量级适合做行为分析、假设检验与教学对照,不适合训练视觉模型。十张刺激图本身就构成了天花板:模型学到的只会是这十张图的版面。

第三条,不适合需要自然情境的研究。限时三十秒与不给病史这两条硬约束,把任务压成了「纯看图」,任何关于临床决策流程、病史整合、团队协作的问题都问不出来。

第四条,不适合需要个体追踪的研究。每人每图只有一次观察,没有前后测、没有重复测量,个体内的学习效应与疲劳效应都无从估计。

边界 具体表现 替代方向
无生理信号 零心电通道 心电波形库
样本量小 63 人、10 张图 大规模判读日志或仿真数据
非自然情境 限时、无病史 真实门诊录屏与访谈
无重复测量 每人每图一次 前后测设计自采

§2 数据构成与规格

2.1 三十兆的三层目录

解压后的体积是 30.5 MB,压缩包 25.9 MB。体积的大头不是数据表,而是十张心电图图片,其中一张 PNG 单文件就有十二兆,另有一张四点七兆。两张 CSV 加起来只有三兆出头。这个比例说明一件事:这是一份「小表加大图」的数据集,下载瓶颈在图片而不在数据。

目录是三层,顶层四个子目录加三个文件。四个子目录分别放兴趣区示意图、两张数据表、刺激图片与三份说明表;三个顶层文件是许可全文、校验和清单,以及一份图表索引。

几个具体文件能说明体积的分布:网格版表 2,961,092 字节,长短版 309,140 字节,两张加起来不到三兆半;房颤那张刺激图的 PNG 是 12,135,497 字节,高钾图 4,672,710 字节;许可全文 25,815 字节,校验和清单 1,929 字节。图片占了整包体积的八成以上,这也解释了为什么弱网下常见的失败是图片截断而不是表损坏。

2.2 字段与记录的完整字典

两张表共用三十列,第一列是没有列名的行号。其余二十九列可以分五组:身份、刺激与时间、凝视汇总、注视汇总、辅助。

身份组七列。Respondent_Name 是匿名代号,形如 Consultant 1、CCU 2、Cathlab 5,按岗位加序号生成;Group 是同源的岗位标签;Gender 与 Age 来自报名表;Study_name 全场只有一个取值。

列名 含义 取值示例
首列(无名) 行号 0、1、2
Study_name 研究名 ECG Study
Respondent_Name 匿名受试者代号 Consultant 1
Gender 性别 MALE、FEMALE
Age 年龄 整数;大量以 0 占位
Group 岗位标签 Consultant、Fellow、Nurse
Type 观察类型 Stimulus、Static AOI

刺激与时间组六列。Label 在整图行里是心电图名称,在区域行里是「区域名加心电图名」;ParentStimulus 是所属心电图全名;Start 与 Duration 以毫秒计。

列名 含义 备注
Label 区域名或图名 如 V5-1 NSR
Start 呈现起始时刻(毫秒) 相对整场实验
Duration 该次呈现时长(毫秒) 名义 30000,实际有长短
ParentStimulus 所属心电图 如 Normal sinus rhythm
Parent_Stimulus_Start 所属图起始时刻 浮点毫秒
Parent_Stimulus_Duration 所属图时长 浮点毫秒

凝视汇总组七列,全部带 G 后缀。Hit_time_G 是首次看到该区域的时刻,Time_spent_G 是在该区域停留的总时长,百分比列把它折算成占整段观察的比例,Respondent_ratio_G 是零一标记,表示这次观察里到底看没看过该区域。

列名 含义 单位
Hit_time_G 首次注视到达时刻 毫秒
Time_spent_G 凝视总时长 毫秒
Time_spent_G_Percentage 凝视时长占比 百分比
Respondent_ratio_G 是否看过该区域 0 或 1
Revisit_G_Revisitors 是否存在回视者 0 或 1
Revisit_G_Visitors 该次是否回视 0 或 1
Revisit_G_Revisits 回视次数 计数

注视汇总组九列,全部带 F 后缀。与 G 组的区别在于统计对象:G 组算的是「目光落在区域内」的时间,F 组算的是被算法判定为注视的那部分时间。两组并列,等于给了两套口径。

列名 含义 单位
TTFF_F 首次注视潜伏期 毫秒
Time_spent_F 注视总时长 毫秒
Time_spent_F_Percentage 注视时长占比 百分比
Revisit_F_Revisitors 是否存在再注视者 0 或 1
Revisit_F_Visitors 该次是否再注视 0 或 1
Revisit_F_Revisits 再注视次数 计数
Fixations_Count 注视次数 计数
First_Fixation_Duration 首次注视时长 毫秒
Average_Fixations_Duration 平均注视时长 毫秒

辅助组只剩一列 Mouse_Clicks,记录该区域内的鼠标点击数,是行为混杂因素的对照项。它在两张表里基本全为零,可用于确认没有人试图用鼠标去指图,但不构成有分析价值的变量列。

2.3 一条记录的完整解剖

取网格版中 Consultant 1 判读正常窦性心律的那一段。整图行只有一个,区域行有二十五个。整图行告诉我们这张图在实验开始后约三百零九秒出现,实际停留十三点四秒,而不是满三十秒;区域行告诉我们,这位顾问医师在 V1 导联上停留了一千三百四十九毫秒、注视十六次。

这段记录里有两个容易被忽略的细节。其一,V5-1 区域的 Fixations_Count 是 0、Average_Fixations_Duration 是负一,说明该区域从未被注视,负一是软件的缺失标记,不是真实时长。其二,同一区域内 G 组与 F 组的数值并不相等,差额来自扫视经过但未形成注视的那部分时间。

#-- 网格版中 Consultant 1 判读正常窦性心律的整图行(列有截断)
Study_name,Respondent_Name,Gender,Age,Group,Type,Label,Start,Duration,ParentStimulus
ECG Study,Consultant 1,MALE,0,Consultant,Stimulus,Normal sinus rhythm,308916,13389,Normal sinus rhythm

#-- 同一段观察里 V1 导联那一行
Type,Label,Start,Duration,ParentStimulus,Hit_time_G,Time_spent_G,Time_spent_G_Percentage,Fixations_Count,Average_Fixations_Duration
Static AOI,V1 NSR,308916,13389,Normal sinus rhythm,7375.0,1349.0,10.0,16.0,47.0
字段 读到的值 怎么读
整图起始 308,916 毫秒 实验进行到五分多钟时出现
整图时长 13,389 毫秒 未用满三十秒,提前结束
该图区域数 25 个 与官方「24 等分」的口径不同
V1 首次到达 7,375 毫秒 看图约七秒后才看 V1
V1 凝视时长 1,349 毫秒 约占整段的十分之一
V1 注视次数 16 次 平均每次约 47 毫秒

2.4 两种兴趣区方案

兴趣区是眼动研究里的量尺:先在刺激图上画出区域,再把注视点归属进去。这个库给了两把尺,粒度差一个数量级。

网格版按导联版面切块。切法不是均匀二十四宫格,而是贴着导联走:胸前导联各占一块或数块,肢体导联同样处理,底部三条节律条各占一块,另有一个信息区。不同心电图的版面不同,切出来的块数也不同,从十六块到二十五块不等。全库合计出现二百三十三个不同的区域名。

块数的分布并不齐整:正常窦性心律、心房扑动、室性心动过速、心室起搏心律与左束支传导阻滞五张各二十五块,版面最规整;沃尔夫-帕金森-怀特与 ST 段抬高型心梗各二十四块;完全性房室传导阻滞二十二块,另有三行 copy 副本;高钾血症二十块;心房颤动十六块,是块数最少的一张。差别来自版面的排版疏密,不是标注质量的差别,但跨图比较前必须先做名称对齐。

长短导联版只切两块,命名就叫 Long 与 Short。第一块是十二个导联组成的上半区,横轴每导联约二点五秒;第二块是底部三条节律条,横轴共十秒。这个切法直接对应临床读图的两段式习惯:先看节律条定节律,再逐导联找形态异常。

2.5 与同类资源的字段差异

同样是眼动数据,字段设计的差别往往比样本量更能决定它能不能用。这个库的核心选择是「只发汇总、不发原始帧」,因此没有坐标、没有瞳孔直径、没有逐帧时间戳。原始帧导出里常见的这三样,在这里一概缺席;反过来,区域级汇总它直接给了两套口径,而原始帧数据要自己算。判读结论两边都没有,刺激原图它倒是把十张都放了出来。

2.6 十张图与它们的诊断

十张刺激图覆盖一个正常节律与九种异常。文件按诊断命名,扩展名混用 PNG 与 JPG,其中房颤那张是十二兆的 PNG,压缩率低,适合投影但不适合批量读入。

文件 诊断 中文
Normal_Sinus_Rhythm.jpg 正常窦性心律 正常窦性心律
Atrial_Fibrillation.png 心房颤动 心房颤动
Atrial_Flutter.jpg 心房扑动 心房扑动
Complete_Heart_Block.jpg 完全性心脏传导阻滞 三度房室传导阻滞
Hyperkalemia.jpg 高钾血症 高钾血症
Left_Bundle_Branch_Block.jpg 左束支传导阻滞 左束支传导阻滞
STEMI.png ST 段抬高型心肌梗死 ST 段抬高型心梗
Ventricular_Paced_Rhythm.jpg 心室起搏心律 起搏心律
Ventricular_Tachycardia.jpg 室性心动过速 室速
Wolf_Parkinson_White_Syndrome.jpg 沃尔夫-帕金森-怀特综合征 预激综合征

这十张图不是随机抽的。正常图作基线,房颤与房扑考节律识别,传导阻滞考 QRS 形态,心梗考 ST 段,高钾考 T 波与 QRS 增宽,起搏与预激考特殊形态。九种异常覆盖了「一眼能看出」和「要逐导联核对」两类难度,这也是后续能把岗位差异拉开的前提。

§3 它是谁的数据:多哈的一间眼动实验室

3.1 四位作者、三所机构

署名四人,机构三处。第一作者 Mohammed Tahri Sqalli 与第二作者 Dena Al-Thani 同属哈马德·本·哈利法大学科学与工程学院的信息与计算技术学部,前者负责实验设计与数据处理,后者偏人机交互方向;第三作者 Mohamed Elshazly 在克利夫兰诊所,负责心血管临床;第四作者 Mohammed Al-Hijji 在哈马德医疗集团的心脏医院,做介入心脏病学。这个组合解释了数据的两面:技术侧负责眼动方法与数据处理,临床侧负责心电图选材与岗位定义。

机构分布也解释了样本为何集中在多哈:受试者来自卡塔尔的医疗机构与医学院,岗位标签里的 CCU、Cathlab 都是本地医院的实际科室。

3.2 配套论文三篇

数据背后有三篇论文。第一篇只分析医学生群体,发在 JMIR Medical Education;第二篇覆盖全部岗位,发在 JMIR Human Factors,也是官方指定的配套引用;第三篇是会议综述,发在 IEEE BESC。

论文 载体 覆盖人群
Interpretation of a 12-Lead Electrocardiogram by Medical Students JMIR Medical Education,2021 仅医学生
Understanding Cardiology Practitioners’ Interpretations of Electrocardiograms JMIR Human Factors,2022 全部岗位
The Journey Towards an Accurate Electrocardiogram Interpretation IEEE BESC,2021 综述

三篇共用一个实验,但分析口径不同。这意味着引用时不能只引数据 DOI:官方明确要求同时引数据与技术论文,因为字段含义、兴趣区画法与统计口径都写在那篇论文里,而不在数据说明页。

3.3 时间线

时间线可以按五个节点排:2020 年伦理批件下达,批号 QBRI-IRB-2020-01-009;2021 年实验执行、论文陆续发表;2021 年 12 月数据文件归档,目录时间戳集中在 12 月 12 日;2022 年 1 月图表索引与说明表定稿;2022 年 3 月 16 日 PhysioNet 发布 1.0.0 版。

从批件到发布约两年,其中大部分时间花在论文而不是数据整理上。这也是为什么数据说明页的结构更像论文的方法节,而不是工程文档。

3.4 采集现场:Tobii Pro X2-60 与 iMotions

设备是一台屏幕式眼动仪 Tobii Pro X2-60,采样率六十赫兹,官方标注正负一赫兹。这个采样率对注视分析够用,对微扫视分析偏粗。软件是 iMotions 8.1,负责刺激呈现、同步与指标导出。

参数 取值 影响
眼动仪 Tobii Pro X2-60 屏幕式,非头戴
采样率 60 赫兹,正负 1 赫兹 微扫视分析偏粗
软件 iMotions 8.1 指标定义随软件版本
注视算法 I-VT 速度阈值 参数需照抄才能复现
窗口长度 20 毫秒 短于常见默认值
速度阈值 每秒 30 度 偏宽松
间隙填补 关闭 眨眼造成的数据缺口不插值
降噪 关闭 保留抖动
短注视丢弃 关闭 极短注视仍在表内
相邻注视合并 关闭 注视计数偏多

后四项全关是个重要选择。关掉填补与降噪,等于把原始判定结果直接交出来,好处是可追溯,坏处是指标里混入了眨眼与抖动造成的碎片。也正因为全关,注视次数会系统性高于开了合并与丢弃的流程,跨数据集比较时必须先对齐这组开关。

校准方面,官方写明逐人重校,校准标准差不超过零点一九英寸,屏幕是十三点三英寸笔记本。这个精度对导联级兴趣区足够,因为一块导联区在屏幕上通常有几十像素宽。

3.5 伦理与知情同意

伦理批件来自哈马德·本·哈利法大学卡塔尔生物医学研究所的伦理委员会,批号 QBRI-IRB-2020-01-009,批件在实验开始前下达。全部受试者签署书面知情同意。数据发布前做了姓名替换,代号采用岗位加序号。

去标识的方式值得停一下看。六十三人分布在十种岗位里,某些岗位只有一两个人,例如住院医只有一名、普通内科医生只有两名。在这种粒度下,「Consultant 3」对本院同事并不算匿名。使用者若要在论文里做岗位级引用,应避免同时披露机构与岗位人数。

3.6 三个口径:六类、五类、十类

同一个岗位变量,官方文本里出现了三种数法。摘要写六类:医学生、护士、技师、住院医、专科培训医、顾问医师。方法节写五类,把住院医并入专科培训医一类。字段说明表写五类,列的是顾问、专科培训医、技师、护士、医学生。而数据表与人口学表实际给出十种标签。

四个出处并列,差额的构成官方没有说明。可以做一种合理推断:摘要按六种身份写,方法节把住院医并进专科培训医,字段说明表进一步把医学生合并、把护士按大类算,而数据表保留了招募时的全部十种岗位。

十种标签的写法是:Med 1 与 Med 2 区分初级与高年级医学生,Nurse、CCU Nurse、Cathlab Nurse 区分普通护士与两个心内科护理岗位,General Doctor 指非心血管专科的医生,其余四种与上面一致。做分析时想合并成五类或六类都可以,但必须自己写映射,数据表不会代劳。

§4 它最独特的东西:把「看图」拆成可数的动作

4.1 两套语义:凝视与注视

同一行里有两组指标,G 组与 F 组。初学者最容易把它们当成重复列,其实两组的统计对象不同。G 组统计「目光落在区域内」的全部时间,包含扫视穿过该区域的那些毫秒;F 组只统计被算法判为注视的片段,要求眼球速度低于每秒三十度并持续超过二十毫秒。

指标族 统计对象 典型用途
G 组(凝视) 目光进入区域的全部时间 区域是否被扫到、覆盖广度
F 组(注视) 速度低于阈值的停留 信息加工深度
差值 扫视穿过的部分 粗略扫视与真正停留的分界

这个差值有实际意义。一个导联区若 G 组时长高而 F 组时长低,说明目光从上面掠过但没有停;若两组都高,说明确实在读。换成四分格更好记:G 高 F 高是深度阅读,G 高 F 低是扫视掠过,G 低 F 高少见、多为极短而密集的注视,G 低 F 低就是没看。对「专家是否逐导联核对」这类问题,比值比绝对值更能说明问题。

4.2 网格化兴趣区的命名法

区域名不是编号,而是「导联名加序号加图名」。例如 V5-1 NSR 指正常窦性心律那张图上 V5 导联的第一块;II-3 AFib 指房颤那张图上 II 导联的第三块。拆开看是四段信息:导联名(V5、II、aVR 之一)、序号(条带内的第几段)、图名后缀(NSR、AFib 等)、以及少数不带序号的整段形式(V1、aVF)。另有一个特殊名 Information,指版面角落的信息区,不属于任何导联。

不同图的命名并不完全统一:有的图导联被切成四段,有的只切两段,有的不切。这不是错误,而是因为十张图的版面排版并不一致,作者是逐图手绘的兴趣区。代价是跨图比较前必须先做名称对齐。

4.3 长短导联版:临床读图的两段式

长短版的切法更贴近临床习惯。上半区是十二个导联,横轴每导联约二点五秒;下半区是三条节律条,横轴共十秒。前者看形态,后者看节律,正好对应「先扫节律条再逐导联」的教科书顺序。两个区块的名字就是 Long 与 Short,一个指导联区、一个指节律条区,表里没有第三种取值。

这个版本的行数只有网格版的八分之一,却保留了「先看哪一块」这个最粗的决策。如果你的研究问题只是「专家是不是先看节律条」,用长短版就够,不必碰网格版。

4.4 案例:Consultant 1 在 V1 上停留的一点三秒

把一个人、一张图、一个区域拉出来看,比读十张汇总表更能理解这份数据的质感。Consultant 1 是九名顾问医师之一,男性,判读正常窦性心律那张图时只用了十三点四秒,比限时短了一半以上。

在这十三点四秒里,他的目光先落在信息区与几个肢体导联,约七点四秒时才第一次进入 V1,随后在 V1 上停了十六次注视、累计一千三百四十九毫秒,占整段观察的十分之一。同一张图上,V5 的第一块只被扫过十七毫秒,注视次数为零。

时刻(毫秒) 动作 读数
0 图出现 起始
约 4875 首次进入 V1 上段 短停
约 6625 进入底部节律条 停留 433 毫秒
约 7375 正式进入 V1 后续累计 1349 毫秒
约 13375 扫过 V5 第一块 仅 17 毫秒,无注视
13389 结束 提前交卷

这段轨迹与论文的结论方向一致:资历高的判读人不必逐块扫,靠形态识别直接锁定关键导联。但要强调,单条记录只能用来理解字段,不能用来证明结论;结论要靠六十三人的分组比较。四项读数可以对照着记:整段时长 13,389 毫秒,只到限时 30,000 毫秒的四成半;V1 注视十六次,是这张图上单区域最多;V1 平均注视四十七毫秒,接近阈值下限;V5 第一块注视次数为零,扫过未停。

§4.4 的案例还暴露了一个使用细节:整段时长并不等于三万毫秒。有人提前结束,有人接近用满,因此凡是以时长为分母的占比指标,分母都随行而变。想比较「在 V1 上花了多少比例的时间」,用表里的百分比列即可,它会自动按该行的实际时长折算。

4.5 边界条件:什么时候这套指标会失真

第一,采样率六十赫兹意味着每十六点七毫秒一个点,短于这个尺度的注视无法分辨。六十毫秒以下的注视在这种采样率下只剩三四个点,判定不稳。

第二,间隙填补关闭意味着眨眼期间的数据是缺口。缺口落在某个导联区上,会让该区域的凝视时长系统性偏低。

第三,兴趣区是手绘的,边界位置带主观性。同一条波形若一半落在两块区域内,注视会被切开,导致两块各记一半。

边界 机制 后果
60 赫兹采样 时间分辨率 16.7 毫秒 极短注视判不稳
填补关闭 眨眼缺口不插值 时长偏低
手绘兴趣区 边界主观 跨图块数不一致
单次观察 无重复测量 个体内波动不可估
限时 30 秒 任务被压缩 策略无法充分展开

§5 怎么拿到:从 curl 到可分析表

5.1 下载面:四个入口

官方给了三条下载路径:网页逐文件、整包 ZIP、以及无需账号的 S3 同步。对脚本化流程,S3 最稳;对只想看两张表的人,直接抓两个 CSV 就够,总共三兆出头。

入口 地址形态 适用
项目页 physionet.org/content/eye-tracking-ecg/1.0.0/ 阅读说明与引用
文件树 physionet.org/files/eye-tracking-ecg/1.0.0/ 逐文件下载
整包 ZIP 项目页下载按钮,25.9 MB 一次性拿全
S3 同步 s3://physionet-open/eye-tracking-ecg/1.0.0/ 脚本批量
wget 递归 官方给出的 wget 命令 保留目录结构
#-- 只取两张表与许可,约 3 MB,几秒完成
BASE=https://physionet.org/files/eye-tracking-ecg/1.0.0
mkdir -p eye-tracking-ecg/Datasets
curl -sSL -o eye-tracking-ecg/Datasets/Grid_Anonymized.csv "$BASE/Datasets/Grid_Anonymized.csv"
curl -sSL -o eye-tracking-ecg/Datasets/Long_Short_Anonymized.csv "$BASE/Datasets/Long_Short_Anonymized.csv"
curl -sSL -o eye-tracking-ecg/LICENSE.txt "$BASE/LICENSE.txt"
ls -la eye-tracking-ecg/Datasets

5.2 校验与目录复原

官方提供 SHA256SUMS.txt,逐文件列出校验和。整包下载后先跑一次校验,能避免图片在传输中损坏却无人察觉。图片总量约二十六兆,其中一张十二兆的 PNG 最容易在弱网下截断。

#-- 全量同步后校验,图片损坏会在这里暴露
aws s3 sync --no-sign-request s3://physionet-open/eye-tracking-ecg/1.0.0/ eye-tracking-ecg/
cd eye-tracking-ecg
sha256sum -c SHA256SUMS.txt
#-- 期望四个子目录、三个顶层文本与 PDF 文件
find . -maxdepth 2 -type d | sort
校验项 期望 失败含义
CSV 行数 网格版 15373 行含表头 下载截断
CSV 列数 30 版本不符
图片数 10 目录不全
SHA256 与清单一致 文件损坏

5.3 读表:先认清三件小事

读进内存后有三件事要先处理:第一列没有列名,pandas 会把它命名为 Unnamed: 0;Age 列有大量 0,不能当成真实年龄;Respondent_Name 带尾随空格,按名字分组前要去空格。

#-- 读表并做第一步体检
import pandas as pd

path = "eye-tracking-ecg/Datasets/Grid_Anonymized.csv"
df = pd.read_csv(path)

print(df.shape)                       #-- 行数与列数
print(df["Type"].value_counts())      #-- 整图行与区域行各多少
print(df["Respondent_Name"].nunique())#-- 受试者数,应为 63
print(df["Age"].unique())             #-- 0 是占位,不是年龄
df["Respondent_Name"] = df["Respondent_Name"].str.strip()
检查 期望结果 说明
形状 15372 行 × 30 列 不含表头
Type 取值 Stimulus 与 Static AOI 两类行含义不同
受试者数 63 与官方一致
Age 取值 含 0 0 为缺失占位

5.4 从长表到「人 × 区域」矩阵

区域行是长表,一行一个区域。做组间比较前通常要转成宽表,或者直接按受试者与区域聚合。转宽表时注意:Type 为 Stimulus 的行没有区域,必须先过滤,否则会多出一列空区域。

#-- 只留区域行,按受试者与区域透视注视时长
aoi = df[df["Type"] == "Static AOI"].copy()
wide = aoi.pivot_table(
    index="Respondent_Name",
    columns="Label",
    values="Time_spent_G",
    aggfunc="sum",
)
print(wide.shape)

四个处理步骤每一步都可能出错:过滤 Stimulus 是为了去掉没有区域的整图行,不过滤会多出空列;去空格是为了统一代号,否则同一个人会被拆成两组;透视是为了得到人与区域的矩阵,区域名不统一会让列错位;补缺是为了区分「没看」与「零」,这两者在眼动数据里含义完全不同。

5.5 划分:按人切,不按行切

六百三十行整图数据来自六十三个人,每人十行。若随机按行切分训练与测试,同一个人的十行会分散到两侧,模型学到的是这个人的眼动指纹,测试分数会虚高。正确做法是按 Respondent_Name 分组切分,或做留一受试者交叉验证。

#-- 按受试者分组切分,避免同一人跨两侧
from sklearn.model_selection import GroupKFold

groups = df.loc[df["Type"] == "Stimulus", "Respondent_Name"]
print(groups.nunique())          #-- 63
gkf = GroupKFold(n_splits=5)
for train_idx, test_idx in gkf.split(X=groups, groups=groups):
    break

四种切法的泄漏风险从高到低排:按行随机最危险,同一人跨两侧;按人分组可以接受;留一受试者在六十三人的规模上最稳;按岗位分层切分则在组间比较时才有意义,前提是每个岗位的人数足够,而这里有四个岗位不足五人,分层后某些折会空。

5.6 六个容易踩的坑

第一个坑是把 Stimulus 行与 Static AOI 行混在一起求均值。整图行的时长是三万毫秒量级,区域行是几百毫秒量级,混算会得到无意义的数。

第二个坑是把 Revisit_F_Revisits 当成布尔值。字段说明表在这一列的取值说明上写得含糊,实际数据里它是计数。

第三个坑是把 Age 的 0 当真。人口学数字应以官方表 1 为准,表里给的是年龄段人数。

第四个坑是忽略 copy 副本。完全性房室传导阻滞那张图有三行标签带 copy 后缀,同一区域被导出多次,不去重会重复计数。

第五个坑是把长短版与网格版拼接。两者行数差一个数量级,拼在一起会让长短版的区域被重复计权。

第六个坑是把标签当诊断金标准。Label 里的 NSR、AFib 是刺激图的名字,不是受试者的判断。

#-- 去重与清洗:剥掉 copy 后缀,再按人去空格
import re
aoi["Label_clean"] = aoi["Label"].str.replace(r"(\s+copy)+$", "", regex=True)
print(aoi["Label_clean"].nunique())
aoi = aoi.drop_duplicates(subset=["Respondent_Name", "Label_clean", "ParentStimulus"])
print(aoi.shape)
坑 表现 处理
混算两类行 均值被整图行拉高 先按 Type 分流
把计数当布尔 出现大于 1 的值 按计数解读
Age 的 0 年龄集中在 0 改用官方表 1
copy 副本 同区重复三行 剥后缀后去重
拼接两版 权重失衡 分开分析
标签当金标准 误当诊断标签 只作刺激标识

5.7 许可:ODbL 意味着什么

许可是开放数据库许可 1.0,不是常见的知识共享署名。两者的差别在于对数据库本身的约束:ODbL 要求衍生数据库以同一许可开放,而不仅是署名。

事项 ODbL 1.0 下的要求
商用 允许
再分发 允许,须保留许可与署名
衍生数据库 须以 ODbL 或兼容许可开放
成果发表 须引用数据 DOI 与配套论文
单独使用其中图片 图片随库授权,仍受同一许可约束

对多数研究团队,这意味着可以直接用、可以发论文、可以把处理后的表随论文公开,但不能把加工后的版本改成闭源商业产品。若产品化,需先与权利人确认。

§6 与库内条目的关系

6.1 关系图谱

库内已有三条眼动相关记录,刺激物各不相同:一条是胸片定位,一条是多模态整合,一条是手术模拟器。本库是唯一以心电图为刺激的。

库内记录 刺激物 与本库的关系
REFLACX 胸片眼动 胸部 X 线片 同为影像判读眼动,刺激模态不同
MIMIC-Eye 多模态整合 多源临床数据 上游整合,本库可作行为侧补充
手术模拟器脑电眼动 模拟手术场景 同为技能评估,任务域不同
本库 十二导联心电图 心电图判读的行为底稿

6.2 检索路径

在站内找同类资源,可按三条线索走:按刺激模态找影像判读类,按测量手段找眼动类,按应用找医学教育类。

线索 检索词 命中方向
刺激模态 心电图、十二导联 心电类数据集
测量手段 眼动、注视、兴趣区 眼动类记录
应用场景 医学教育、视觉专长 教学与考核类
岗位分层 住院医、专科培训医 人力与培训类

6.3 三组对照

第一组对照刺激物。心电图是线条图,胸片是灰度图,两者的注视模式不可直接比较:前者靠局部波形,后者靠整体轮廓。

维度 心电图 胸片
视觉元素 线条与网格 灰度块
判读方式 逐导联扫查 整体扫视加局部放大
兴趣区 导联块 病灶框

第二组对照标签形态。本库的标签是区域与图名,不含病灶位置,也不含判读结论;带定位标签的影像库则相反,区域标签多为病灶框,诊断标签常有,判读结论视库而定。两者能对齐的只有区域这一层。

第三组对照测量深度。本库只发汇总,不发原始帧,因此不能重跑算法:时间分辨率是汇总级,重算不可行,体积只有三十兆;原始帧类数据逐帧保存,可以重算,体积常见数百兆到数吉。这个差别决定了「二次分析」的含义在两类数据里完全不同。

6.4 站外参照

官方在说明页里点名了一条外部参照:曼彻斯特大学 Davies 等人的心电图判读眼动工作,代码在其实验室的 GitHub 仓库,用的心电图不同但异常类别相近。这条参照的价值在于方法复刻:想看同一批异常在另一套范式下的结果,可以从那里取。两者的差别在刺激图与范式,不在异常分类;本库配套的三篇论文则是同一实验的不同分析面,差别在人群覆盖与分析角度。

§7 质量评估与局限性

7.0 阅读本节前的一个前置校正

评估这份数据前,需要先校正一个默认预期:它不是「一份可用于训练的数据」,而是「一份可用于观察的记录」。多数数据集的质量维度围绕完整性、标注一致性与规模展开,而这份数据的价值集中在另一处:它把「资历」这个难以量化的变量,变成了可分组、可对照的岗位标签,并给每组配了同一套刺激与同一套限时。

用错位的标准去评它,会得出「样本太小、标签太少、无法训练」的结论,这个结论本身没错,但对判断没有帮助。正确的问法是:在六十三人这个量级上,它能支持什么样的推断,不能支持什么样的推断。

7.1 五维评分

按 DAIMS 五维打分,满分五分。评分只针对「作为行为研究底稿」这一定位,不针对「作为机器学习数据集」的定位。

维度 分数 依据
文档完备性 4 三份说明表加方法节,字段逐列有定义;岗位类别数前后不一扣一分
采集规范性 4 设备、算法、阈值、校准全部写明;采样率偏低扣一分
完整性与一致性 3 两张表列结构一致;Age 占位、copy 副本、块数不统一各扣分
可获取性 5 开放访问、三条下载路径、附校验和
可持续性 4 有 DOI 与版本号、挂在长期平台;仅一版,无更新计划说明

五个维度里,可获取性满分是实至名归:无需注册、无需申请、无需签署数据使用协议,这一点在临床行为数据里并不常见。完整性的三分主要不是数据缺失,而是一致性代价:同一变量在不同文档里有不同数法,使用者必须自己裁决。逐项看强弱也很清楚:文档的强项是字段逐列定义、弱项是类别数三套口径;采集的强项是参数齐全可复刻、弱项是六十赫兹偏粗;一致性的强项是两表同构、弱项是块数与命名不齐;获取只有强项,没有弱项;可持续的强项是 DOI 稳定,弱项是只有一版。

7.2 标注的两层:区域标签与岗位标签

这份数据的「标注」不是疾病标注,而是两层结构标注。第一层是区域标签,由作者手绘兴趣区产生,决定每个注视点归到哪一块;第二层是岗位标签,由招募时的身份决定,决定每个受试者归到哪一组。

两层标注的可靠性不同。岗位标签是自报加核实,几乎无误差;区域标签是手绘,边界带主观性,且不同图的块数不一致。做组间比较时,真正影响结论的是第二层,因为第一层的误差在组间是随机的,会被平均掉。第三层是图名标签,选材时就已确定,可靠性同样高,用来界定刺激的分类基准。回到 §4.4 的案例:那位顾问医师在 V1 上的十六次注视之所以能比较,靠的是区域标签把目光归到了同一块;而他属于「顾问」这一组,靠的是岗位标签。两层各司其职。

7.3 已知的、可枚举的偏差

第一,选择偏差。受试者来自同一座城市的两三家机构,全部是志愿者。愿意坐下看三十秒心电图的人,本身就对这件事有兴趣。

第二,任务偏差。限时三十秒且不给病史,把判读压缩成纯视觉任务。真实判读里,病史决定了先看哪个导联,这里没有。

第三,设备偏差。屏幕式眼动仪要求头部相对固定,十三点三英寸屏幕限制了图的可视尺寸。真实场景里医生可能看大屏或纸质图。

第四,顺序偏差已被设计消解:十张图以随机顺序呈现,Parent_Stimulus_Start 的取值跨度从九秒到六百七十六秒,说明顺序确实被打乱。这一点是加分项。

偏差 来源 可否校正
选择偏差 单城市志愿者 不可,只能声明
任务偏差 限时无病史 不可,属设计
设备偏差 屏幕式眼动仪 部分,可做敏感性分析
顺序偏差 随机呈现 已被设计消解
块数不一致 手绘兴趣区 可,做名称对齐

7.4 外部验证矩阵

判断一份行为数据是否可信,可以看它在几个方向上被外部证据支撑。这个库的支撑主要来自三篇同源论文,独立复现较少。

验证方向 证据 强度
同源论文 三篇,覆盖医学生与全岗位 强,但非独立
外部方法参照 曼彻斯特团队的同类研究 中,范式不同
独立复现 未见公开复现 弱
跨库一致性 与胸片眼动库的指标口径不同 弱,不可直接比

这张矩阵说明一件事:它的可信度建立在「作者把方法写清楚了」之上,而不是「多个团队得到同样结果」。对方法学复刻,这够用;对结论外推,要谨慎。

7.5 它为何能持续:一份被反复引用的方法学底稿

这个库不会因为版本更新而增值,也不会因为被超越而失效。它的生存逻辑在于占住了一个空位:公开的、带岗位分层的、以十二导联心电图为刺激的眼动数据,目前只有这一份。

任何要做「专家与新手看图差异」的团队,要么复刻它的范式自采数据,要么直接用它做基线。前者成本高,后者只需一次下载。只要医学教育还在讨论视觉专长,这份底稿就会被引用;它被引用的方式不是「用了它的数据训练模型」,而是「用了它的范式与对照」。

这也解释了它为何只有一版:方法学底稿的价值在于稳定,不在于增长。作者把范式、参数、阈值、批号全写清楚,等于把复刻的门槛降到最低,剩下的增量工作留给别人去做。

§8 生态位与历史

8.1 历史沿革:从读片研究到读图研究

眼动进入医学研究并不晚,早期的落点是放射影像。胸片与病理切片有明确的病灶位置,注视点落在病灶上与否可以直接判定专业度。之后扩展到内镜与病理,兴趣区从单一病灶框变成「病灶框加周边区域」。到了以十二导联心电图为刺激这一阶段,兴趣区只能是导联块,因为心电图没有单一「病灶点」,它的信息分布在十二个导联的波形形态里。再往后是联合区域的方向,即把图与报告放在同一屏上,兴趣区跨越两种材料。

把心电图纳入眼动研究,难点不在设备而在兴趣区设计:导联块怎么切、节律条算不算、信息区要不要单列。这个库给出的两套切法,实际上是对这个难点的两种回答。

8.2 这条线上的三个坐标

第一个坐标是「刺激复杂度」。心电图比胸片简单,线条图的信息密度低,注视更集中在少数区域,因此区域级指标比像素级指标更够用。

第二个坐标是「判读人分层」。多数影像判读研究对比两级:专家与新手。这个库分了十种岗位,把「中间层」也纳进来,技师与护士这两类在影像研究里常被忽略。

第三个坐标是「时间约束」。三十秒是刻意选的:足够完成一次快速判读,不足以做深度分析。这个约束把「第一印象」与「系统排查」两种策略的差别放大。

三个坐标合起来看,本库在刺激复杂度上取低值,换来区域级指标够用;在判读人分层上取高值,保住了中间层;在时间约束上取中值,既不让人从容到可以反复核对,也不至于仓促到看不出异常。

8.3 谁在用它,以及官方建议怎么用

官方在说明页里列了三类复用方式:在已有受试者身上挖掘更多指标、复刻范式去比对另一批人、以及扩样本。这三条正好对应三种角色:二次分析者、方法复刻者、数据扩建者。

角色 官方建议的用法 需要的额外投入
二次分析者 换指标重算,如首次到达时间、回视结构 低,只需两张表
方法复刻者 照搬设备、参数、限时与兴趣区 高,需实验室与受试者
数据扩建者 换机构、换人群,扩到更多岗位 最高,需伦理与招募
教学使用者 借兴趣区与版面设计做训练界面 中,需前端开发

值得注意的是官方没有建议「训练模型」。这不是遗漏,而是这份数据的定位本身不含监督学习:没有标签、样本又小,任何模型都只能学到这十张图的版面。

8.4 版本与维护

只有一个版本,2022 年 3 月发布,此后未更新。文件时间戳显示数据在 2021 年 12 月归档,2022 年 1 月补齐说明表,3 月补上校验和。校验和清单的生成日期是 2022 年 3 月 22 日,比发布日晚六天,说明发布后又补过一次完整性核对。DOI 有两个:版本 DOI 指向 1.0.0,最新 DOI 指向当前版本,两者目前等价。
| 更新计划 | 未见公开说明 |

单版本对使用者是好事:不必担心口径漂移,也不必追踪变更日志。对长期引用是坏事:若未来出现 2.0,旧链接与旧分析都需重新核对。

§9 使用指引

9.1 三种角色的路径

角色 第一步 第二步 第三步
只想验证一个假设 下两张 CSV 按岗位分组算注视时长 做组间检验并声明样本量
要复刻实验 读方法节与三份说明表 照抄 I-VT 参数与限时 用同一批异常类型选图
要做教学产品 看两张兴趣区示意图 借版面切分设计热区 用专家数据做参照层

三条路径的共同点是:都不需要碰那十张十几兆的图片。图片只在复刻实验时有用,做分析时表里已经有区域名。

9.2 一条最短的可用流程

从下载到第一张组间对照表,最短的路径是四步:取表、清洗、聚合、对照。下面这段可以直接跑,输出去掉 copy 副本后每位受试者在导联区的平均注视时长,按岗位排序。它跑出来的量纲与 §4.4 的案例一致,都是毫秒,因此可以拿那位顾问医师的一千三百四十九毫秒去对照岗位均值。

#-- 最短流程:下载后的两张表到一个组间对照
import pandas as pd

grid = pd.read_csv("eye-tracking-ecg/Datasets/Grid_Anonymized.csv")
grid["Respondent_Name"] = grid["Respondent_Name"].str.strip()
grid["Label"] = grid["Label"].str.replace(r"(\s+copy)+$", "", regex=True)

aoi = grid[grid["Type"] == "Static AOI"].drop_duplicates(
    subset=["Respondent_Name", "ParentStimulus", "Label"]
)
per_person = (
    aoi.groupby(["Group", "Respondent_Name"])["Time_spent_G"]
    .mean()
    .reset_index()
)
summary = per_person.groupby("Group")["Time_spent_G"].agg(["mean", "count"])
print(summary.sort_values("mean", ascending=False))

这段代码做了三件容易被跳过的事:去尾随空格、剥 copy 后缀、按三元组去重。少了任何一步,分组结果都会偏:不去空格,同一个人会被拆成两组;不剥 copy,房室传导阻滞那张图的权重会翻倍;不去重,同一区域会被重复计数。至于先按人求均值再按组汇总,是为了让每个岗位内部的样本量相等,避免大组被某一个人的极端值带偏。

9.3 引用方式

官方要求两层引用:数据本身与技术论文。数据引用含四位作者、标题、版本、平台与 DOI;论文引用按期刊格式给出。若只在方法节提一句「数据来自 PhysioNet」,在多数期刊的数据可得性声明里是不够的。

引用对象 关键字段
数据集 Tahri Sqalli 等,2022,版本 1.0.0,PhysioNet,DOI 10.13026/gsr5-8b11
技术论文 Sqalli 等,2022,JMIR Human Factors,9 卷,e34058
医学生分册 Sqalli 等,2021,JMIR Medical Education,7 卷,e26675
平台 PhysioNet,RRID SCR_007345
#-- 数据引用的 BibTeX 骨架(字段照官方页面抄录)
@article{PhysioNet-eye-tracking-ecg-1.0.0,
  author  = {Tahri Sqalli, Mohammed and Al-Thani, Dena and Elshazly, Mohamed and Al-Hijji, Mohammed},
  title   = {Eye Tracking Dataset for the 12-Lead Electrocardiogram Interpretation of Medical Practitioners and Students},
  journal = {PhysioNet},
  year    = {2022},
  note    = {Version 1.0.0},
  doi     = {10.13026/gsr5-8b11}
}

§10 AI 使用声明

项目 声明
数据来源 全部数字取自 PhysioNet 项目页、三份官方说明表与两张 CSV 的列结构
是否重算 未重算任何统计量;行数与块数为逐表计数,属结构核对
图像使用 未使用受试者面部或可识别影像,本库本身不含此类内容
生成方式 文字由语言模型辅助起草,事实逐条回查官方页面
不确定性标注 官方前后不一致处并列两口径,未替官方裁决
医学建议 本文不含诊断或治疗建议
许可遵从 引用与转载遵循 ODbL 1.0 与官方引用要求
更新责任 官方若发新版本,以官方页面为准

常见误读

说法 实际 证据
这是心电信号加眼动的同步采集 心电是十张静态图片,无任何生理通道 目录只有 CSV 与图片,无 WFDB 文件
数据里有判读对错 30 列中无结论列 字段说明表逐列列出,无 accuracy
有原始眼动帧可以重跑算法 只有区域级汇总 无坐标列、无逐帧时间戳
采样率是 120 赫兹 60 赫兹,正负 1 赫兹 方法节与字段说明一致
每张图固定看满 30 秒 名义 30 秒,实际有长有短 整图行 Duration 从两千余到三万余毫秒
六类岗位 摘要六类、方法五类、数据表十类 三处文本并列
兴趣区是均匀 24 宫格 逐图手绘,十六到二十五块 各图区域行数不同
六百三十人是六百三十名受试者 63 人各十次 Respondent_Name 去重为 63
可以直接训练判读模型 无标签、十张图 无结论列,刺激图仅十张
许可是 CC-BY ODbL 1.0,衍生库须同许可 LICENSE.txt 与项目页许可栏

FAQ

Q1:这个库到底记录了什么?
只记录目光。受试者看十张静态心电图时的注视位置、时长、次数与回视,被汇总到导联区域一级。心电本身是图片,不是信号。

Q2:63 人够做统计吗?
够做组间描述与中等效应的检验,不够做亚组细分。十种岗位里有四种不足五人,这些组的均值只能当案例看,不能当结论。

Q3:为什么每张图的实际时长不一样?
任务允许提前结束。整图行的 Duration 记录的是这张图真正在屏幕上停留的毫秒数,从两千多到三万多不等。做占比分析时用表里的百分比列,它已按实际时长折算。

Q4:Grid 与 Long_Short 该选哪个?
看问题粒度。问「专家先看节律条还是先看导联」用长短版;问「专家在哪个导联停得久」用网格版。两者列结构相同,可以互相对照但不能拼接。

Q5:表里的 G 与 F 后缀是什么意思?
G 指凝视,统计目光进入区域的全部时间;F 指注视,只统计速度低于阈值并持续足够长的停留。两者差值约等于扫视穿过的部分。

Q6:能从中得到每位受试者的判读准确率吗?
不能。数据表没有结论列,论文里的准确率是另行统计的分组结果,无法回填到具体某一行。若要准确率,必须重新组织判读并标注。

Q7:Age 列为什么大量是 0?
年龄在导出时未逐人写入,0 是占位。真实人口学分布见官方表 1,按年龄段给出人数,六十三人全部覆盖。

Q8:copy 后缀是什么?
完全性房室传导阻滞那张图的三个导联区域在导出时被复制,标签末尾累积了 copy、copy copy、copy copy copy。分析前应剥掉后缀并去重,否则该图权重偏高。

Q9:可以做商用产品吗?
可以,但受 ODbL 1.0 约束:署名,且以本库为基础衍生的数据库须以同一许可开放。把加工后的表闭源嵌入商业产品,需要先与权利人确认。

Q10:为什么只有一版?
方法学底稿的定位决定了它不需要增长。作者把范式与参数写全,价值在于可复刻,而不在于数据量。目前未见更新计划。

Q11:和胸片眼动数据能直接比吗?
不能直接比。刺激的视觉结构不同,兴趣区粒度不同,注视切分参数也可能不同。可比的是方法框架,不是数值。

Q12:引用时最容易被审稿人挑的问题是什么?
只引数据不引论文。字段含义、兴趣区画法与统计口径都在论文里,只引 DOI 会让方法节的描述缺依据。

术语表

术语 英文 含义
眼动仪 eye tracker 记录眼球位置与运动的设备
采样率 sampling rate 每秒记录次数,本库 60 赫兹
注视 fixation 眼球相对静止、信息被加工的时间段
扫视 saccade 注视之间的快速眼动
微扫视 micro-saccade 幅度极小的扫视,约 15 角分
回视 revisit 再次回到曾看过的区域
首次到达时间 time to first hit 从刺激出现到首次看到该区域
首次注视潜伏期 TTFF 到首次形成注视的时间
兴趣区 area of interest, AOI 刺激图上预先划定的统计区域
凝视 gaze 目光落在区域内的状态
注视时长 fixation duration 单次注视持续的毫秒数
注视次数 fixation count 区域内注视的个数
I-VT velocity threshold identification 按速度阈值切分注视的算法
阈值 threshold 判定注视的速度上限,本库 30 度每秒
窗口长度 window length 算法平滑的时间窗,本库 20 毫秒
间隙填补 gap fill-in 对眨眼缺口插值的选项,本库关闭
十二导联 12-lead 从十二个角度记录心电的标准布局
节律条 rhythm strip 图底部长时程记录,用于判节律
视觉专长 visual expertise 长期训练形成的 perceptual 技能
判读 interpretation 对心电图的临床解读行为
导联 lead 一对电极构成的观察角度
校准 calibration 采集前对眼动仪的个体化校正

附录 A:核心数字核对表

项 值 来源 来源层级
受试者数 63 摘要、方法节、数据表 官方页面
刺激图数 10 摘要、目录 官方页面
判读次数 630 方法节,63 × 10 可核 官方页面
单次限时 30 秒 摘要、字段说明 官方页面
采样率 60 赫兹 方法节 官方页面
网格版行数 15,372 行数据 逐表计数,与官方 15,373 行含表头一致 文件核对
长短版行数 1,890 行数据 逐表计数,与官方 1,891 行含表头一致 文件核对
列数 30 两张表表头 文件核对
解压体积 30.5 MB 项目页文件栏 官方页面
岗位标签数 10 数据表 Group 列与表 1 文件核对
男性人数 51 表 1 官方说明表
女性人数 12 表 1 官方说明表

附录 B:数字的来源分层

层级 含义 本库对应内容
官方页面 项目页正文与方法节明写 人数、图数、限时、设备、采样率、许可
官方说明表 三份 PDF 与索引表 人口学分布、异常定义、字段定义
文件核对 逐表计数、逐列比对 行数、列数、区域块数、copy 行
论文摘要 Europe PMC 收录的摘要 各岗位准确率区间
未核实 无公开依据 采集具体场所、实验月份

附录 C:完整参考文献

  1. Tahri Sqalli M, Al-Thani D, Elshazly M, Al-Hijji M. Eye Tracking Dataset for the 12-Lead Electrocardiogram Interpretation of Medical Practitioners and Students. PhysioNet, version 1.0.0, 2022. DOI 10.13026/gsr5-8b11.
  2. Sqalli MT, Al-Thani D, Elshazly MB, Al-Hijji M, Alahmadi A, Sqalli Houssaini Y. Understanding Cardiology Practitioners’ Interpretations of Electrocardiograms: An Eye-Tracking Study. JMIR Human Factors, 2022, 9: e34058. DOI 10.2196/34058.
  3. Sqalli MT, Al-Thani D, Elshazly MB, Al-Hijji M. Interpretation of a 12-Lead Electrocardiogram by Medical Students: Quantitative Eye-Tracking Approach. JMIR Medical Education, 2021, 7: e26675.
  4. Sqalli MT, Al-Thani D, Elshazly MB, Al-Hijji M, Houssaini YS. The Journey Towards an Accurate Electrocardiogram Interpretation: An Eye-tracking Study Overview. IEEE BESC, 2021.
  5. Davies A, Mueller J, Horseman L, et al. How do healthcare practitioners read electrocardiograms? A dual-process model of electrocardiogram interpretation. British Journal of Cardiac Nursing, 2019, 14: 1-19.

附录 D:任务代码

下面这段把十种岗位标签映射成三档资历,并输出每档在导联区的平均首次到达时间。三档划分是本文的建议,不是官方口径。

#-- 十种岗位并三档,比较首次到达时间的档间差异
import pandas as pd

SENIOR = {"Consultant"}
MID = {"Fellow", "resident", "General Doctor"}
JUNIOR = {"Med 1", "Med 2", "Nurse", "CCU Nurse", "Cathlab Nurse", "Technician"}

def tier(g):
    if g in SENIOR:
        return "senior"
    if g in MID:
        return "mid"
    return "junior"

df = pd.read_csv("eye-tracking-ecg/Datasets/Grid_Anonymized.csv")
df["Respondent_Name"] = df["Respondent_Name"].str.strip()
df["tier"] = df["Group"].map(tier)

aoi = df[df["Type"] == "Static AOI"]
first = aoi.groupby(["tier", "Respondent_Name"])["Hit_time_G"].median()
print(first.groupby("tier").agg(["mean", "count"]))
档位 包含标签 人数
senior Consultant 9
mid Fellow、resident、General Doctor 13
junior 其余六种 41

附录 E:如果只记五件事

序号 记住这一条
1 库里没有心电波形,ECG 是刺激图片
2 63 人、10 张图、630 次判读、每次 30 秒
3 两张表同构,差别只在兴趣区粒度
4 无判读结论,无原始帧,无重复测量
5 ODbL 1.0,可商用,衍生库须同许可

编辑说明

本篇的核验时间为 2026 年 10 月 28 日。事实来源为 PhysioNet 项目页(1.0.0 版)、三份官方说明表 PDF、两张 CSV 的表头与行数,以及 Europe PMC 收录的技术论文摘要。行数、列数、区域块数与 copy 行数属结构核对,逐表计数得出;人口学数字直接抄自官方表 1,未做二次统计。官方文本在岗位类别数、兴趣区块数与呈现时长三处存在多个口径,正文并列呈现,未作裁决。未覆盖的内容包括:实验的具体场所与月份、受试者的招募渠道、十张刺激图的原始采集参数。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • kiel-cardio — 共享标签:生理信号 / 心电信号 / 多模态
  • ephnogram — 共享标签:生理信号 / 心电信号 / 多模态
  • deepfake-ecg — 共享标签:生理信号 / 心电信号 / 多模态
  • ecg-spider-clip — 共享标签:生理信号 / 心电信号 / 多模态
  • ninfea — 共享标签:生理信号 / 心电信号 / 多模态
  • ucddb — 共享标签:生理信号 / 多模态
  • qol-stress — 共享标签:生理信号 / 心电信号 / 多模态
  • dreamer — 共享标签:生理信号 / 心电信号 / 多模态
  • heartcycle — 共享标签:生理信号 / 心电信号 / 多模态
  • vitaldb-arrhythmia — 共享标签:生理信号 / 多模态

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集