Brno University of Technology Smartphone PPG Database — 智能手机 PPG 质量评估与心率估计专家共识标注库

布尔诺理工大学手机摄像头 PPG 数据库:48 条起步、3888 条收官,50 名受试者耳/指双部位、静息到咳嗽大笑八种运动状态,5 或 3 名生物医学专家以 IEC 60601-2-27 更严阈值共识标注质量与参考心率,同步参考 ECG 与三轴 ACC,CC BY 4.0 于 PhysioNet 公开

来源 PhysioNet BUT PPG v2.0.0——智能手机摄像头(Xiaomi Mi9 / Huawei P20 Pro,30 Hz)采集的 PPG + Bittium Faros 360/180 同步参考 ECG(1,000 Hz)与三轴 ACC(100 Hz)+ QRS 位置 + quality-hr-ann.csv 专家共识质量/HR 标签 + subject-info.csv 人口学与 BP/血糖/SpO2 参考;WFDB 格式,203.3 MB发布时间: 2026-10-03最后更新: 2026-10-20 阅读 49
Brno University of Technology Smartphone PPG Database — 智能手机 PPG 质量评估与心率估计专家共识标注库

信息速览

数据集名称Brno University of Technology Smartphone PPG Database — 智能手机 PPG 质量评估与心率估计专家共识标注库
数据类型人工标注,生理信号,原始数据
规模50 名受试者(25 女 / 25 男,19-76 岁,33±17 岁)|3,888 条 10 秒 PPG 记录(v1 48 + 扩展 3,840)
接入方式PhysioNet BUT PPG v2.0.0——智能手机摄像头(Xiaomi Mi9 / Huawei P20 Pro,30 Hz)采集的 PPG + Bittium Faros 360/180 同步参考 ECG(1,000 Hz)与三轴 ACC(100 Hz)+ QRS 位置 + quality-hr-ann.csv 专家共识质量/HR 标签 + subject-info.csv 人口学与 BP/血糖/SpO2 参考;WFDB 格式,203.3 MB
AI 就绪度

Brno University of Technology Smartphone PPG Database (BUT PPG) — 智能手机 PPG 质量评估与心率估计专家共识标注库

一句话定位:这是目前少数公开、带专家共识质量标注、且用真实智能手机摄像头采集的 PPG 数据集——它回答的不是"心率算法准不准",而是更靠前的一步:“这 10 秒的手腕/指尖/耳侧信号,到底值不值得拿去算心率?”


§0 导读:这个数据集解决什么问题

0.1 一个被忽视的前置问题

智能手机摄像头测心率(camera-based heart rate)是过去十年消费级健康监测最普及的应用之一:把指尖按在镜头与闪光灯上,或把手机贴在耳边,前置摄像头就能从皮肤反射的微弱光强波动里"读"出心跳。这类技术便宜、无袖带、随手可得,手机厂商与 App 厂商竞相把它包装成"随时随地的健康管家"。

但几乎所有权威评估都会指出同一个尴尬事实:大量心率估计 App 既未经测试、也未经认证、更未经过医学专家验证(本数据集论文原文即作此判断,少数例外如用于房颤检测的 Preventicus Heartbeats、FibriCheck、Happitech)。问题的根源不在"算法不够聪明",而在输入信号本身经常不可用:手指没按稳、镜头被指甲遮挡、走路时的抖动、环境光突变、说话或咳嗽带来的体动伪迹……这些情况下,PPG 波形已经"脏"到无法可靠定位脉搏峰,任何下游算法都只会给出错误的心率。

因此,一个工程上更稳健的架构是:先做信号质量评估(Signal Quality Assessment, SQA),再决定是否估计心率。若质量差,设备应丢弃这段信号并提示用户重测,而非硬算出一个漂亮却错误的数字。BUT PPG 数据集,正是为这个"前置质量闸门"而生的公开标注库。

0.2 BUT PPG 的独特之处

布尔诺理工大学(Brno University of Technology, BUT)生物医学工程系的心脏学团队,用两部真实智能手机(小米 Mi9、华为 P20 Pro)的摄像头,招募 50 名受试者,在其静息与八种刻意制造伪迹的运动状态下,采集了 3,888 条 10 秒 PPG 信号,并同步用医疗级设备录制参考 ECG 与三轴加速度。每条 PPG 信号都由生物医学专家按国际标准(IEC 60601-2-27)的更严阈值独立估读心率,再取共识,得到二值质量标签。

它的不可替代性体现在三点:

  1. 真实设备、真实伪迹:不是实验室台式 PPG 仪,而是手机摄像头;伪迹不是"后期添加的噪声",而是受试者真的在走路、咳嗽、大笑、说话、变光时录下来的。
  2. 专家共识而非单一标注:每条信号 3 或 5 名专家独立估读心率,达到共识比例才判"良好",避免单标注者的主观偏差。
  3. 完全开放:CC BY 4.0,PhysioNet 无 gated 直链下载,可自由用于商业与非商业研究。

0.3 这份条目怎么读

  • 想快速了解规模与获取:看 §1 速览 与 §6 获取与许可。
  • 想直接上手做算法:看 §2 数据构成、§5 加载与复现骨架、附录 C 数据字典。
  • 想理解"质量标注是怎么来的":看 §3 标注体系与共识机制(这是本数据集最核心的方法学)。
  • 想避开检索与使用陷阱:看 §10 避坑清单与坑点档案。
  • 想找同类数据集做对照:看 §9 与库内条目的关系。

0.4 阅读前须知:三个最常被搞错的点

在进入正文前,先记住三件事,能帮你避免 90% 的误读:

  1. 规模看版本:论文里写的 48 条是 v1.0.0 的旧规模,最新 v2.0.0 有 3,888 条。看到"BUT PPG 只有 48 条"的说法,多半是读了 2021 年的旧资料。
  2. 标签是"能不能测出心率":质量标签 1/0 不是"波形好不好看",而是"专家能否从这段 PPG 测出与 ECG 参考相差 ≤5 bpm 的心率"。这是功能性定义。
  3. 一致率才是可信度证据:判断标注可不可信,看专家与共识的 93.3% 一致率,而不是论文里那三个自动基线的 56.6%/67.1%/74.1%——后者只是对照,不代表数据集质量。

带着这三点进入正文,你会发现这个数据集的设计逻辑其实非常清晰:用真实设备采集、用专家共识标注、用开放许可分发,把"信号质量评估"这件被长期忽视的事,做成了可复现的公共基础设施。


§1 数据集速览:十问十答

Q1:BUT PPG 是什么?
布尔诺理工大学智能手机 PPG 数据库(Brno University of Technology Smartphone PPG Database, BUT PPG),是一个带专家共识质量标注的智能手机摄像头 PPG 数据集,托管于 PhysioNet,用于开发与评估 PPG 信号质量评估算法和心率估计算法。

Q2:它有多大?
最新版本 v2.0.0 含 3,888 条 10 秒记录,来自 50 名受试者(25 女 / 25 男,19-76 岁)。最初 v1.0.0 仅 48 条(12 名受试者),2024 年扩展版新增 3,840 条(38 名受试者)。

Q3:信号是怎么采的?
用智能手机摄像头:小米 Mi9(v1)与华为 P20 Pro(v2)后置摄像头测指尖,或前置摄像头测耳侧(打电话姿势)。视频逐帧对红(v2 起含绿、蓝)通道取平均得到 PPG,采样率 30 Hz。同步用 Bittium Faros 360/180 采集单导联参考 **ECG(1,000 Hz)**与三轴 ACC(100 Hz)。

Q4:有哪些标签?
每条信号有:二值质量标签(1 良好 / 0 差)、参考心率 HR、QRS/心搏位置;扩展部分还附血压、血糖、SpO2 单值。

Q5:质量标签可靠吗?
由 3 或 5 名生物医学工程专家独立估读心率,以"与参考 HR 绝对误差 ≤5 bpm"为良好判据(依据 IEC 60601-2-27 且更严),达到共识比例方判"良好"。标注者与最终共识的一致率达 93.3%。

Q6:好信号多还是差信号多?
扩展部分 良好仅 20.7%(795 条),差 79.3%(3,045 条)。耳部信号质量明显更差(良好 10.6%),指部较好(良好 31.3%)。

Q7:许可是什么?能商用吗?
CC BY 4.0(Creative Commons Attribution 4.0 International),PhysioNet 标记为 Database Open Access,无申请门槛,署名即可用于商业与非商业用途。

Q8:怎么下载?
PhysioNet 内容页 https://physionet.org/content/butppg/2.0.0/ 直接下载,或用 wget -r -N -c -np https://physionet.org/files/butppg/2.0.0/,或 aws s3 sync --no-sign-request s3://physionet-open/butppg/2.0.0/ DESTINATION。未压缩 203.3 MB,ZIP 86.7 MB。

Q9:主要拿来做什么?
① PPG 质量评估(二分类);② 心率估计;③ QRS/心搏检测;④ 从 PPG 估计血压/血糖/SpO2;⑤ 用 ACC 辅助质量评估。

Q10:谁适合用?
可穿戴健康与远程患者监测算法团队、PPG/ECG 信号处理研究者、手机健康 App 的产品与验证团队、数字健康监管研究团队。


§2 数据构成与规格

2.1 规模、来源与机构构成

BUT PPG 由布尔诺理工大学(Brno University of Technology)电气工程与通信学院**生物医学工程系(DBME)**的心脏学团队创建。全部作者来自同一机构,部分作者兼属捷克科学院仪器科学研究所(Institute of Scientific Instruments, The Czech Academy of Sciences)。核心成员包括 Andrea Nemcova、Eniko(Enikö)Vargova、Radovan Smisek、Lucie Marsanova(Maršánová)、Lukas Smital、Martin Vitek;扩展版本加入 Marina Filipenska、Pavlina Sikorova、Pavel Gálik。

数据集分两个版本发布,规模呈数量级跃升:

项目 v1.0.0(2021-01-18) v2.0.0(2024-08-23)
记录数 48 条 10 秒 3,888 条 10 秒
受试者 12(6 女 / 6 男) 50(25 女 / 25 男)
年龄 21-61 岁(均值 36,中位 24) 19-76 岁(33±17 岁)
手机 小米 Mi9 小米 Mi9 + 华为 P20 Pro
采集部位 仅指尖 耳(1,962)+ 指(1,878)
颜色通道 仅红通道 红 + 绿 + 蓝(112001 起)
ACC 数据 无 有(100 Hz,三轴)
QRS 位置 有 有(扩展部分 49,540 个心搏)
生理参考 无 血压 / 血糖 / SpO2 单值
记录期 2020-08 至 2020-10 2020-08 至 2021-12

其中,v2.0.0 相对 v1.0.0 的净增部分(记录 112001 起)为 3,840 条新信号、38 名新受试者(19 男 / 19 女),是 2024 年 CinC 论文所描述的"扩展"(extension)。38 + 12 = 50,3,840 + 48 = 3,888,两个版本在人数与信号数上精确闭合。

扩展部分受试者的人体测量范围为:身高 154-194 cm(174±10 cm)、体重 47-110 kg(73±15 kg)、BMI 18-33,Fitzpatrick 皮肤类型 II-IV。作者明确说明受试者为健康受试者,这是使用该数据集做模型训练时必须记住的人群边界。

2.2 信号规格与文件组织

所有数据以 PhysioNet 标准的 **WFDB(WaveForm Database)**格式提供。每条记录是一个以六位数字命名的文件夹:

  • 记录 ID 规则:六位数字 = 前三位受试者标识 + 后三位该受试者的测量序号。例如 141105 = 受试者 141 的第 105 次测量。记录 100001-111004 属 v1.0.0,112001 起属 v2.0.0 扩展。
  • 分文件:PPG → ID_PPG.dat + ID_PPG.hea;ECG → ID_ECG.dat + ID_ECG.hea;ACC → ID_ACC.dat + ID_ACC.hea(112001 起);QRS 位置 → ID.qrs。

采样率与通道:

信号 采样率 导联/通道 采集设备
PPG 30 Hz 红(v2 起红/绿/蓝) 手机摄像头(小米 Mi9 / 华为 P20 Pro)
参考 ECG 1,000 Hz 单导联 Bittium Faros 360 或 180
ACC 100 Hz 三轴 Bittium Faros 360 或 180

PPG 的生成方式:录一段手机视频,对每一帧的(红)通道取平均得到该时刻一个 PPG 样本,最后对信号取反(inverted)。v1 视频分辨率 720×1280 px;只取中间 10 秒(去掉开头的不稳定段)以消除信号漂移。

2.3 标注文件与元数据

除波形外,数据集附带三个关键文本文件:

  1. quality-hr-ann.csv(质量与 HR 标注):三列——信号 ID、二值质量标签(1 良好 / 0 差)、参考心率 HR。
  2. subject-info.csv(受试者与测量元信息):人口学(性别、年龄、身高、体重)、采集部位、运动状态、生理参考。
  3. raw-HR-annotations.csv(v1):各标注者的原始 HR 估读值(便于研究者复现共识判定)。

subject-info.csv 的字段编码尤其重要,它把每条信号放进明确的"情境"中:

  • 采集部位:0 = 耳(前置摄像头,打电话姿势);1 = 指(后置摄像头)。
  • 运动状态:0 静息 / 1 加指耳压 / 2 镜头移动 / 3 步行 / 4 咳嗽 / 5 大笑 / 6 变光 / 7 说话。
  • 生理参考:血压(Fora D40)、血糖(Fora Diamond Mini)、SpO2(Gima 脉搏血氧仪)。

这套编码让研究者可以精确地做分层评估——例如"仅指部静息信号上的质量模型,迁移到耳部步行信号时掉多少分"。这是很多 PPG 数据集缺失、而 BUT PPG 特意保留的维度。

2.4 采集协议:八种伪迹如何被"制造"出来

扩展部分的采集协议设计得相当细:每名受试者在两次独立 session 中各走一遍包含静息与活动的流程,开头 15 秒用于信号稳定(不入库),随后依次为:140 s 静息 → 20 s 加指/耳压 → 20 s 静息 → 20 s 镜头移动 → 20 s 静息 → 20 s 步行 → 20 s 静息 → 20 s 咳嗽(≥3 次)→ 20 s 静息 → 20 s 大笑 → 20 s 静息 → 40 s 变光 → 20 s 静息 → 20 s 说话 → 120 s 静息结束。

这种"静息-伪迹-静息"交替的块状设计有明确目的:既能拿到干净的基线信号,又能拿到对应真实生活场景的、带可控伪迹的信号,且每种伪迹都有大量重复而非孤立样本。它直接支撑了 CinC 2024 论文里那张"各活动下良好质量信号占比"的柱状图(Figure 1)——结论是各种活动都会拉低 PPG 质量,对耳部信号尤甚。

2.5 与 v1 的边界:一次性看清楚版本差异

一个常见的检索困惑是"该引用哪个版本、用哪个 DOI"。这里给出一张对照:

  • v1.0.0:Published 2021-01-18;DOI 10.13026/7vy8-av04;48 条;主论文 10.1155/2021/3453007(Biomed Res Int 2021)。
  • v2.0.0:Published 2024-08-23;discovery DOI 10.13026/tn53-8153;3,888 条;扩展说明见 CinC 2024 论文 10.22489/CinC.2024.055。
  • latest version DOI:10.13026/gxwp-p940(PhysioNet 提供的"始终指向最新版"的 DOI)。

若做研究,建议:用数据引 v2.0.0,方法引主论文,版本扩展引 CinC 2024,另附 PhysioNet 平台标准引用(Goldberger 2000)。PhysioNet 页面本身也给出了这套组合引用建议。

2.6 一句话理解三个文件的分工

初次接触该数据集的人常被"波形 + 两个 CSV"搞混。这里用一句话说清分工:

  • 波形文件(ID_PPG/_ECG/_ACC + ID.qrs):是"原料",信号本身。
  • quality-hr-ann.csv:是"答案纸",告诉你每条信号好不好、心率是多少。
  • subject-info.csv:是"背景卡",告诉你这条信号是谁、在哪测的、什么状态下测的、当时的血压血糖血氧。

做质量评估只需前两者;做分层分析(按部位/运动状态)必须用第三份;复现共识判定则用 v1 的 raw-HR-annotations.csv。三份文件通过六位记录 ID 关联,这是整个数据集的主键。

2.7 数据规模在同类中的量级感受

为了建立直觉:3,888 条 × 10 秒 ≈ 10.8 小时的 PPG 信号;若只取质量良好的 795 条,约 2.2 小时。对训练轻量质量分类器而言,这个量级足够;对训练端到端深度心率估计模型而言,则偏小,通常需要与其它数据集联合或做迁移学习。理解这一点,能避免"数据下载完发现不够训大模型"的落差。


§3 标注体系与共识机制:本数据集的方法学核心

3.1 为什么质量标签要"多人共识"

PPG 质量评估看似简单(信号好不好),实则高度主观:同一条波形,有经验的专家可能认为"勉强能测出心率",另一位则判"不可靠"。若数据集只由一人标注,标签里就混进了该标注者的个人偏好,训练出的模型学到的可能是"某人的口味"而非"信号的真实可用性"。

BUT PPG 的应对是多专家独立标注 + 共识判定 + 国际标准阈值,三者缺一不可。这也是作者反复强调的"unique feature":

“the quality annotations of each signal is based on 5 experts’ annotations and their consensus, meeting international standard guidelines, and moreover meeting the stricter variation.”

3.2 标注流程四步

第一步:专家估读 HR。 标注者为生物医学工程专家(v1 为 5 人,扩展版从 6 人池中每次抽 3 人)。他们使用作者自研的标注软件,软件界面包含:原始 PPG 波形、经平稳小波变换(Stationary Wavelet Transform, SWT)分解后的各频带、各频带估出的 HR、经快速傅里叶变换(FFT)得到的频谱及谱估 HR、以及一把用于手动测量峰间距的"标尺"。

第二步:对 ECG 盲。 标注者只能看到 PPG 信号,看不到参考 ECG——因为 ECG 是用来做标准答案的。他们也可以选择"拒绝估读",即当认为无法可靠估计 HR 时直接放弃,这正是判"差"的一种表达。

第三步:随机呈现、去情境。 PPG 段以随机顺序出现,标注者不知道某段是静息还是运动状态采集的。这避免了"看到是步行段就先入为主判差"的暗示偏差。

第四步:共识判决。 判据分两层:

  • 单专家层:其估读 HR 与参考 HR 的绝对差 ≤ 5 bpm,则从该专家视角这是"良好"信号。阈值 5 bpm 来自国际标准 IEC 60601-2-27(心电监护设备的基本安全与性能要求),且本数据集比标准更严格。
  • 共识层:v1 要求 5 人中 ≥3 人判良好,扩展版要求 3 人中 ≥2 人判良好;达标记 1(良好),否则记 0(差)。

3.3 一致率:标注可信度的量化证据

作者报告了标注者个体判断与最终共识的一致率:

分层 一致率
全体信号 93.3%
耳部信号 94.1%
指部信号 92.4%

三个数字都在 92% 以上,说明专家之间的判断高度收敛,共识标签是可信的。值得注意的是耳部一致率略高于指部——这看似反直觉,实则合理:耳部信号整体质量差、界限更分明(要么好要么明显差),而指部信号质量分布更连续、处于"临界区"的信号更多,反而更容易产生分歧。

3.4 非专家自动基线的对照(重要坑点)

CinC 2024 论文还用三个"非专家"自动化方法做了对照,看它们与共识的匹配率有多低:

自动化方法 说明 与共识匹配率
中位 HR(77 bpm) 用全库中位心率作固定值,按同法判质量 56.6%
文献均值 HR(65 bpm) 基于 Quer 等对 92,457 名受试者的均值心率 67.1%
SWT 第 4 频带峰值法 对每段 PPG 做 SWT 分解,在约 0.9-1.9 Hz 频带自动找峰估 HR 74.1%

这里埋着一个必须警示的坑:这三个数字只是"指示性"的(indicative only),作者明确说它们并未参与共识判定。也就是说,56.6% 这类数字不是"专家准确率",而是"一个粗糙自动规则碰巧撞对多少"。检索者若把 56.6% 误读为"该数据集质量标注不可靠",就完全误解了论文。真正的可信度证据是 3.3 节的 93.3% 一致率。

3.5 与既有质量评估方法的差异

传统 PPG 质量评估算法多基于规则或信号统计特征(峰间期变异、模板相关性、频谱质量指数等)。BUT PPG 的价值在于:它提供了一个以"能否准确测出 HR"这一临床/功能目标为导向的质量标签——“良好"不是"波形好看”,而是"这段信号足以让专家测出接近真值的心率"。这一定义与下游任务(心率估计)直接对齐,比纯形态学判据更有针对性。


§4 质量发现:伪迹、部位与心率的真实图景

4.1 好信号其实是少数

扩展部分 3,840 条信号的质量分布为:

类别 数量 占比
良好(quality = 1) 795 20.7%
差(quality = 0) 3,045 79.3%

也就是说,真实手机摄像头采集的 PPG 里约八成不可靠。这个结果对"手机测心率很准"的流行叙事是一个直接的反驳:在受控采集、受试者配合、专家在场的情况下,仍只有约五分之一信号达到"可用于心率估计"的标准。它从实证角度论证了质量前置闸门的必要性——如果不做质量筛选,直接对全部信号算心率,错误率将极高。

4.2 耳 vs 指:一个数量级的质量差

按采集部位拆开看,差距非常显著:

部位 信号数 良好率
耳(前置摄像头,打电话姿势) 1,962 10.6%
指(后置摄像头,指尖按压) 1,878 31.3%

指部良好率约为耳部的三倍。原因符合生理与工程直觉:指尖按压镜头时接触稳定、光照路径固定、血流灌注信号强;而耳侧采集时手机难以固定、环境光干扰大、姿势易漂移,且头部运动(说话、咳嗽、笑、走路)直接耦合进信号。

双口径提示:CinC 2024 摘要把这两个数字四舍五入为"耳 11% / 指 31%“,并给出总良好率"21%”;正文精确值为"10.6% / 31.3%",扩展部分精确计数良好 795 条(20.7%)。本条目以正文精确值为主,括注摘要口径。

4.3 各运动状态下的质量坍缩

论文 Figure 1 用柱状图给出了"静息 vs 各类活动"下良好质量信号的占比。定性结论可以概括为:

  • 静息是质量最高的状态(无论耳或指)。
  • 加指/耳压、镜头移动、步行、咳嗽、大笑、说话、变光等都会降低质量,其中多种活动叠加于耳部时质量下降最剧烈。
  • 耳部在所有活动下都系统性低于指部,且差距在运动状态下进一步拉大。

这些活动恰好覆盖了日常使用手机测心率的典型场景——通勤(步行)、聊天(说话/大笑)、生病(咳嗽)、在明暗变化的环境中使用(变光)。因此该数据集捕捉的伪迹谱比实验室合成噪声更贴近真实部署。

4.4 HR 分布:以静息心率为主

扩展部分的参考 HR 直方图(论文 Figure 2)覆盖约 40-160 bpm,但主要集中于静息心率区间。作者说明:由于所设计的活动"体力负担都不重"(走路、咳嗽、笑等而非剧烈运动),HR 变异其实相当大但整体仍以静息为主。

这一点对算法开发的启示是:不要把 BUT PPG 当作"运动心率"数据集。它擅长的是"在杂散伪迹下能否测准静息偏差不大的心率",而非"在高强度运动导致心率飙到 150 时能否追踪"。若研究目标是运动心率追踪,应结合其他数据集(如 PPG-DaLiA 的日常活动场景,见 §9)。

4.5 过渡段与同步误差:两个必须知道的边界

作者在"局限性"一节主动披露了两个边界条件,使用者必须清楚:

  1. 手动同步误差:PPG 与参考 ECG 是手动对齐的,两条信号可能相差一个心搏以内。不过由于质量标注只用"整段中位 HR"而非逐搏对齐,该误差对标签影响有限,作者据此判断其可接受。
  2. 过渡段问题:当一种活动切换到另一种时,段与段之间会存在"过渡段",其质量特征处于两种状态之间。由于标签是逐段单一标签,过渡段的存在会引入一定标签噪声。作者并未对过渡段做特殊剔除。

这两点是"诚实的数据集"标志——它们不是缺陷被掩盖,而是被明确标出,供研究者决定是否需要在预处理阶段额外处理。

4.6 本数据集对领域的意义

从 §4.1-§4.5 可以提炼出一个清晰的方法学主张:

在消费级健康监测中,"信号是否可用"本身就是一个需要被专门建模的预测任务,且这个任务可以由一个高质量、贴近真实伪迹的公开数据集来支撑。

BUT PPG 用"专家共识 + 更严标准 + 真实设备 + 多伪迹场景"的组合,把这个此前多为私有、或标注粗糙的任务,变成了一个可公开复现、可横向比较的基准。这也是它被广泛引用、并被多篇 PPG 质量评估论文选作评测集的原因。

4.7 对产品团队的直接启示

如果读者来自消费级健康 App 或可穿戴产品团队,§4 的发现可以直接转化为几条产品设计原则:

  1. 默认开启质量闸门:既然约八成信号不可用,产品若不做质量评估就直接出 HR,误报率必然高。应在 HR 显示前先跑一个轻量质量分类器。
  2. 引导用户到指部采集:指部良好率(31.3%)约为耳部(10.6%)三倍。若产品同时支持耳/指两种模式,应优先引导指尖按压,把耳侧作为宽松场景的降级选项。
  3. 运动状态给不同预期:步行、说话、大笑时信号质量骤降。产品可检测到这些状态时提示"请保持静止",而非静默给出可疑读数。
  4. 用 ACC 作为质量先验:三轴 ACC 的能量是质量下降的强提示,可作为轻量前置信号。

这些原则并非 BUT PPG 的"官方建议",而是从数据分布中自然推出的工程实践——本数据集的价值恰恰在于让这些设计决策有数据可依,而非拍脑袋。

4.8 一个被低估的用途:失败案例挖掘

多数研究者关注"良好"信号,但 BUT PPG 中占 79.3% 的"差"信号对鲁棒性与失效分析研究同样宝贵:

  • 它们是真实世界失败的完整记录,可用于分析"算法在何种伪迹下崩盘"。
  • 它们可构造困难负样本,训练模型学会"何时该拒绝输出"。
  • 结合 subject-info.csv 的运动状态,可做归因分析:究竟是步行动作、还是光照变化导致了失败。

换句话说,BUT PPG 的"差信号"不是噪声,而是有标注的、可归因的失败语料库——这在异常检测、选择性预测(selective prediction)、以及"算法何时该说不"的研究中,价值不亚于良好信号。


§5 加载与复现:从下载到第一个质量分类器

5.1 下载与目录结构

BUT PPG 在 PhysioNet 上提供三种获取方式(见 §6.2),下载后目录大致如下:

butppg/2.0.0/
├── 100001/
│   ├── 100001_PPG.dat
│   ├── 100001_PPG.hea
│   ├── 100001_ECG.dat
│   ├── 100001_ECG.hea
│   ├── 100001.qrs
│   └── ...
├── 112001/
│   ├── 112001_PPG.dat
│   ├── 112001_PPG.hea
│   ├── 112001_ECG.dat
│   ├── 112001_ECG.hea
│   ├── 112001_ACC.dat
│   ├── 112001_ACC.hea
│   ├── 112001.qrs
│   └── ...
├── quality-hr-ann.csv
├── subject-info.csv
└── raw-HR-annotations.csv   # v1

关键点:记录 ID 的前三位是受试者号,后三位是测量号。做交叉验证时切记按受试者分组划分(同一受试者的多次测量不能跨训练/测试集),否则会因受试者泄漏而高估性能。

5.2 用 WFDB 读取单条记录

import wfdb

# 读取一条 PPG 记录(采样率 30 Hz)
rec = wfdb.rdrecord("butppg/2.0.0/112001/112001_PPG")
ppg = rec.p_signal[:, 0]          # 形状 (300,) —— 10 秒 × 30 Hz
fs = rec.fs                        # 30

# 读取同步参考 ECG(1000 Hz,单导联)
ecg_rec = wfdb.rdrecord("butppg/2.0.0/112001/112001_ECG")
ecg = ecg_rec.p_signal[:, 0]

# 读取 QRS 心搏位置(样本索引)
ann = wfdb.rdann("butppg/2.0.0/112001/112001", "qrs")
r_peaks = ann.sample

# 读取质量与 HR 标注
import pandas as pd
ann_df = pd.read_csv("butppg/2.0.0/quality-hr-ann.csv")
# 三列:信号 ID、二值质量标签、参考 HR

5.3 构造质量分类数据集

import pandas as pd, numpy as np, wfdb
from pathlib import Path
from sklearn.model_selection import GroupKFold

root = Path("butppg/2.0.0")
ann = pd.read_csv(root / "quality-hr-ann.csv")
meta = pd.read_csv(root / "subject-info.csv")
# 合并元信息(部位、运动状态、人口学)
df = ann.merge(meta, left_on="record", right_on="record", how="left")

X, y, groups = [], [], []
for _, row in df.iterrows():
    rid = str(row["record"])
    rec = wfdb.rdrecord(str(root / rid / f"{rid}_PPG"))
    sig = rec.p_signal[:, 0].astype(np.float32)
    X.append(sig)
    y.append(int(row["quality"]))       # 1 良好 / 0 差
    groups.append(rid[:3])              # 前三位 = 受试者号,用于分组 CV

X = np.array(X)        # (N, 300)
y = np.array(y)
groups = np.array(groups)

# 按受试者分组交叉验证,避免受试者泄漏
gkf = GroupKFold(n_splits=5)
for tr, te in gkf.split(X, y, groups):
    ...  # 训练/评估

5.4 一个最小特征基线

质量评估的经典做法是提取信号特征再分类。以下骨架给出可复现的起步特征:

import numpy as np
from scipy.signal import welch, find_peaks

def ppg_features(sig, fs=30):
    feats = {}
    sig = sig - np.mean(sig)
    # 1) 频谱质量:主频带能量占比
    f, pxx = welch(sig, fs=fs, nperseg=min(len(sig), 128))
    band = (f >= 0.7) & (f <= 3.5)      # 约 42-210 bpm
    feats["band_ratio"] = pxx[band].sum() / (pxx.sum() + 1e-12)
    # 2) 峰间期变异
    pk, _ = find_peaks(sig, distance=int(0.4 * fs))
    if len(pk) >= 2:
        ibi = np.diff(pk) / fs
        feats["ibi_std"] = float(np.std(ibi))
        feats["ibi_mean"] = float(np.mean(ibi))
        feats["n_peaks"] = len(pk)
    else:
        feats["ibi_std"] = np.nan
        feats["ibi_mean"] = np.nan
        feats["n_peaks"] = 0
    # 3) 信号幅度与动态范围
    feats["amp_std"] = float(np.std(sig))
    feats["amp_ptp"] = float(np.ptp(sig))
    # 4) 频谱熵(低熵=干净)
    p = pxx / (pxx.sum() + 1e-12)
    feats["spec_entropy"] = float(-np.sum(p * np.log(p + 1e-12)))
    return feats

用这些特征训练一个梯度提升树或逻辑回归,即可得到一个可用的质量分类基线。注意类别不均衡(良好约 20%):评估时务必报告敏感性/特异性或平衡准确率、AUROC、AUPRC,而非单看准确率——把所有信号判"差"就能拿到 79% 的准确率,这是无意义的。

5.5 把 ACC 用起来

记录 112001 起附三轴 ACC(100 Hz)。运动是质量下降的主要外部原因,因此 ACC 可以直接作为质量评估的辅助输入:

acc_rec = wfdb.rdrecord("butppg/2.0.0/112001/112001_ACC")
acc = acc_rec.p_signal              # (1000, 3) —— 10 秒 × 100 Hz × 3 轴
acc_mag = np.linalg.norm(acc, axis=1)   # 合加速度幅值
acc_energy = np.sum(acc_mag ** 2)        # 运动能量,越大越可能信号差

作者在 “Usage Notes” 中明确指出:ACC 信号可用于 ECG/PPG 的质量评估。这是一个常被忽略但很有价值的信号源。

5.6 关于「多通道」的复现注意

扩展部分的 PPG 从视频的红、绿、蓝三通道分别提取(v1 仅红通道)。数据集提供的 PPG 文件通常以红通道为主标注对象(质量标签基于红通道),但三通道波形对研究"哪一通道更抗伪迹"很有用。使用时先确认具体版本的通道配置,避免把单通道当三通道读取。

5.7 常用评估口径建议

由于本数据集是分类 + 回归的复合任务,建议报告:

  • 质量评估:AUROC、AUPRC、平衡准确率、敏感性/特异性、F1(good 类)。
  • HR 估计:MAE、RMSE(bpm)、Pearson r、Bland-Altman 一致性界限,以及"误差 ≤5 bpm 比例"(与标注阈值对齐,便于横向比较)。
  • 分层报告:耳 vs 指、静息 vs 各活动,避免总体数字掩盖部位/状态差异。

§6 获取与许可:一扇几乎无门槛的门

6.1 许可:CC BY 4.0

BUT PPG 的文件许可为 Creative Commons Attribution 4.0 International(CC BY 4.0),PhysioNet 数据库层面标记为 Database Open Access。这意味着:

  • 可自由使用:复制、分发、改编、商用均允许。
  • 唯一硬性义务是署名:需保留作者署名、许可声明,并注明是否做了修改。
  • 无 gated、无申请、无签署协议:不需要注册账号、不需要发邮件求权限、不需要填写用途说明。

这在生理信号数据集里相当罕见——很多同类数据(如部分临床 PPG/ECG 库)需要签署数据使用协议(DUA)或走机构申请流程。BUT PPG 的开放性显著降低了复现与研究门槛,也是它被广泛采用的重要原因之一。

6.2 三种下载方式

方式一:网页下载。 打开 https://physionet.org/content/butppg/2.0.0/ ,在 “Files” 区直接下载 ZIP(86.7 MB)或单文件。

方式二:wget 递归下载(推荐,可断点续传):

wget -r -N -c -np https://physionet.org/files/butppg/2.0.0/

方式三:AWS 命令行(no-sign-request):

aws s3 sync --no-sign-request s3://physionet-open/butppg/2.0.0/ DESTINATION

方式四(Python):用 wfdb 库配合 PhysioNet 直链批量拉取,或使用 physionet 相关工具。

未压缩总大小 203.3 MB,对本地实验非常友好。

6.3 引用规范

使用该数据集时,PhysioNet 页面建议的引用组合为:

  1. 数据本体(v2.0.0):
    Nemcova, A., Smisek, R., Vargova, E., Maršánová, L., Vitek, M., Smital, L., Filipenska, M., Sikorova, P., & Gálík, P. (2024). Brno University of Technology Smartphone PPG Database (BUT PPG) (version 2.0.0). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/tn53-8153

  2. 原始论文:
    Nemcova A, Vargova E, Smisek R, Marsanova L, Smital L, Vitek M. Brno University of Technology Smartphone PPG Database (BUT PPG): Annotated Dataset for PPG Quality Assessment and Heart Rate Estimation. BioMed Research International. 2021 Sep 7;2021. https://doi.org/10.1155/2021/3453007

  3. PhysioNet 平台标准引用(使用任何 PhysioNet 资源都应附):
    Goldberger, A., Amaral, L., Glass, L., Hausdorff, J., Ivanov, P. C., Mark, R., … & Stanley, H. E. (2000). PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research resource for complex physiologic signals. Circulation, 101(23), e215-e220.

若使用了扩展部分,还宜引用 CinC 2024 扩展论文:Nemcova A, et al. Extension of the PhysioNet Brno University of Technology Smartphone PPG Database. Computing in Cardiology 2024;51. https://doi.org/10.22489/CinC.2024.055

6.4 AI-Ready 评估:一个开放数据集的高分样例

从"AI-Ready 数据集"的五个维度看,BUT PPG 表现突出:

维度 评估
可发现性(Discoverability) 高——PhysioNet 权威托管,有稳定 DOI、RRID、论文双重锚点
可获取性(Accessibility) 高——CC BY 4.0 无 gated,多种下载方式,体积小
可互操作性(Interoperability) 高——WFDB 标准格式,wfdb 库原生支持,CSV 标注易解析
可复用性(Reusability) 高——清晰元数据、部位/运动编码、原始标注文件、专家共识标签
溯源与归因(Provenance) 高——版本化 DOI、论文、IRB 批号、资助信息完整披露

唯一需要留意的复用边界是人群与设备:健康受试者、Fitzpatrick II-IV 皮肤类型、两款特定手机。跨人群/跨设备迁移时需外部验证。

6.5 与库内可获取性光谱的对照

在本库(qianfanghub)的生理信号类条目中,BUT PPG 属于开放程度最高的一档。对照如下:

  • CC BY / 完全开放:BUT PPG、部分 PhysioNet 开放库。
  • DUA/申请制:部分临床波形库需签署使用协议。
  • 受控访问:需 IRB 与机构审批(如某些 ICU 数据库)。
  • 仅论文、数据不公开:部分队列研究。

BUT PPG 的"开放 + 专家标注 + 真实设备"组合,使其在可获取性光谱上处于"高开放度"端,同时标注质量又不因开放而打折,这是它区别于许多"开放但标注粗糙"数据集的关键。

6.6 使用许可时的实务提醒

  • 署名要到位:CC BY 要求注明作者、来源、许可,并标注修改。发表论文/产品文档中至少引用上述 DOI。
  • 不要声称官方背书:CC BY 允许商用,但不代表布尔诺理工大学为你的产品背书。
  • 注意 v1/v2 引用:若只用了 48 条 v1 数据,引 v1 DOI;若用了 3,888 条,引 v2 DOI。混引会让复现者困惑。
  • 医学免责:数据集用于算法研究,不构成医疗器械或临床诊断依据;任何面向患者的应用需另行完成监管验证。

6.7 与需要签署协议的数据集对比

为了帮助读者判断"该不该优先选 BUT PPG",这里对照三类常见获取门槛:

类型 典型要求 典型周转 BUT PPG
完全开放(CC BY) 无需申请,署名即可 即时 ✅ 属此类
申请制(DUA/请求) 邮件说明用途、机构隶属,签署协议 数天至数周 —
受控访问(IRB 审批) 机构 IRB 批准 + 数据使用委员会 数周至数月 —
不公开 仅论文、数据不发放 不可及 —

BUT PPG 处于"即时可得"这一最开放档。对于想快速验证想法、或缺少机构 IRB 通道的研究者/小团队/独立开发者,这个可获取性优势尤其明显——你可以在一个下午内下载完数据、跑通第一个质量分类基线。


§5.8 复现清单:从零到可复现结果

为了让"复现"落到可操作的粒度,这里给出一个端到端清单:

  1. 环境:Python 3.9+,安装 wfdb numpy pandas scikit-learn scipy。
  2. 下载:aws s3 sync --no-sign-request s3://physionet-open/butppg/2.0.0/ ./butppg。
  3. 核对:确认 quality-hr-ann.csv 行数与记录文件夹数一致(v2 应约 3,888)。
  4. 加载:用 wfdb.rdrecord 批量读取 PPG,得到形状 (N, 300)。
  5. 合并元数据:把 subject-info.csv 按记录 ID 并入标注表。
  6. 特征/模型:见 §5.4 骨架或直接用一维 CNN。
  7. 分组划分:GroupKFold 按 rid[:3] 分组,5 折。
  8. 不均衡处理:class_weight 或重采样。
  9. 评估:AUROC/AUPRC/平衡准确率,并分耳/指、静息/活动报告。
  10. 记录:保存随机种子、划分方式、指标,附引用。

把这十步写进 README,你的结果就是可被他人复现的。


§7 生态与影响:一个捷克实验室的持续工程

7.1 前作与谱系

BUT PPG 并非孤立产物,而是布尔诺理工大学生物医学工程系在"智能手机生理监测"方向上的连续积累:

  • Nemcova 等(2020):Monitoring of heart rate, blood oxygen saturation, and blood pressure using a smartphone. Biomedical Signal Processing and Control, 59. doi:10.1016/j.bspc.2020.101928——智能手机监测 HR/SpO2/BP 的方法学先导。
  • Smital 等(2020):Robust QRS Detection Using Combination of Three Independent Methods. Computing in Cardiology 2020——本数据集用于生成参考 HR 的鲁棒 QRS 检测器即出自此,三种独立方法组合后手动核验。
  • Peng 等(2015):Extraction of Heart Rate Variability from Smartphone Photoplethysmograms.——手机 PPG 提取 HRV,是红通道提取方法的引用基础。

这条谱系说明:BUT PPG 的方法(视频取帧平均得 PPG、QRS 组合检测、专家共识)都有扎实的前作支撑,不是一次性的数据发布。

7.2 版本演进的动机

从 v1(48 条)到 v2(3,888 条)的跃升,背后是明确的工程动机:作者指出,AI 方法要开发稳健准确的算法,需要大的数据量,且"经过核验的标注"更为可贵。v1 证明了"手机 PPG + 专家共识标注"的可行性;扩展版则把它做到"足以训练深度学习模型"的规模,并补充了 ACC、多通道、生理参考值等模态。

CinC 2024 论文的 “Challenge” 一节还展望了后续方向:持续增加信号、把标注扩展到绿/蓝通道 PPG、标注心律异常(arrhythmia)等。这说明该数据集是一个活的项目,未来可能有新版本。

7.3 在智能手机 PPG 数据集景观中的位置

CinC 2024 论文以一张对比表(Introduction 部分)列出了同类智能手机 PPG 数据集,这为检索者提供了重要的"横向坐标":

数据集 规模 特点 开放获取
BUT PPG(本条目) 48 → 3,888 条 专家共识质量+HR 标注,参考 ECG/ACC,多种真实伪迹 是(CC BY 4.0)
Welltory PPG 21 条(68-112 s) 13 名受试者,附 Polar H10 胸带 RR 间期 视情况
1KPPG 1,000 条 1,000 名受试者,RGB PPG + ACC + 生命体征单值 —
Fingertip Videos for HR 51 条 24 名参与者,单值 HR 参考 —
Blood dataset HH 180 名受试者 主要用于血红蛋白水平测定 否
AnxiECG-PPG 47 名受试者 PPG + ECG,用于焦虑评估 否

从表中可见,BUT PPG 在"规模 × 标注质量 × 开放性"三者上同时占优——尤其"专家共识质量标注"这一列,其他数据集大多不提供。作者也据此强调:多数数据库缺少标注,而这是 BUT PPG 的一大优势。

7.4 被外部使用与引用的方向

作为一个 CC BY 4.0 的公开质量评估基准,BUT PPG 被广泛用于以下研究场景(基于其设计定位推断):

  1. PPG 质量评估算法的训练与评测——这是它的首要用途,提供可比的二分类 ground truth。
  2. 心率估计算法的鲁棒性测试——用带伪迹的真实手机 PPG 检验算法在恶劣输入下的表现。
  3. QRS/心搏检测算法开发——全部信号含手动核验的心搏位置。
  4. 多模态生理参数估计——从 PPG 估计血压/血糖/SpO2(扩展部分提供参考值)。
  5. 手机健康 App 的验证基线——为消费级产品提供客观评测集。

7.5 资助与开放科学姿态

该数据集由美国海军研究办公室(ONR)Global 资助,award 号 N62909-19-1-2006(v1)与 N62909-23-1-2050(扩展)。作者声明无利益冲突。研究经布尔诺理工大学 DBME 学院 IRB 两次批准(2018-07-27 EC:EK:05b/2018;2021-09-30 EC:EK:06b/2021),受试者签署书面知情同意。这种"资助—伦理—开放发布"的完整链条,是 AI-Ready 数据集在治理层面的良好实践。


§8 方法学启示:三条可迁移的经验

8.1 "以任务目标定义质量"比"以波形形态定义质量"更实用

多数 PPG 质量评估用形态特征(基线漂移、模板匹配度、频谱集中度)判好坏,但 BUT PPG 的质量定义是功能性的:“这段信号能否让专家测出接近参考的心率”。这一转向带来两个好处:一是标签与下游任务(心率估计)直接对齐,训练出的质量模型天然服务于实际应用;二是判定标准(误差 ≤5 bpm)客观、可复现、有国际标准依据。

可迁移经验:设计信号质量标签时,先问"质量好的最终目的是什么",用目标任务的成败来定义标签,而非用信号本身的美学特征。

8.2 多专家共识 + 去情境盲评,是低成本高可信的标注范式

BUT PPG 的标注范式值得任何需要主观判定的医学数据集借鉴:

  • 多人独立(3 或 5 人),减少单标注者偏差;
  • 盲评关键信息(对 ECG 盲、不知运动状态),阻断暗示;
  • 标准阈值(IEC 60601-2-27,且更严),让判据可辩护;
  • 共识比例判定(≥2/3 或 ≥3/5),而非简单多数或平均;
  • 报告一致率,让使用者能评估标签可信度。

这套组合的成本可控(专家只估读一个数值),却把标签可信度提升到 93% 以上。

8.3 真实伪迹的价值高于合成噪声

许多数据集用"对干净信号加高斯噪声/基线漂移"来造伪迹。BUT PPG 反其道而行:让受试者真的走路、咳嗽、大笑、说话、变光,把现实世界耦合进信号。这样得到的伪迹分布——非平稳、多源叠加、与生理耦合——远比人工噪声复杂,训练出的模型更可能迁移到真实部署。

可迁移经验:在条件允许时,优先采集"真实场景下的故障/异常样本",而非合成。伪迹的"真实性"本身就是数据价值。

8.4 版本化开放:一个可持续的数据集治理样本

BUT PPG 从 v1 到 v2 的演进,示范了一个良性循环:先发布小规模可用版本验证方法 → 积累使用反馈与引用 → 扩展规模并补充模态 → 用新论文记录扩展。其治理特征值得借鉴:

  • 版本化 DOI:每个版本有独立 DOI,latest DOI 自动指向最新,兼顾可引用性与可追溯性。
  • 增量而非覆盖:v2 在保留 v1 记录的基础上新增,旧研究的复现不受影响。
  • 文档齐备:Release Notes 明确写清"v1 含哪些记录、v2 新增哪些",检索者不会困惑。
  • 伦理延续:扩展部分走新的 IRB 批号(2021-09-30),合规链条不断裂。

对数据集发布方而言,这是一份可复制的"如何把一次性数据发布做成长期资产"的模板。

8.5 边界诚实:局限的公开披露

BUT PPG 在文档与论文中主动披露了多处局限(手动同步误差、过渡段、健康受试者、皮肤类型局限),这种"把短板写在明处"的做法,本身就是高质量数据集的标志。它降低了使用者的误用风险——你不会在论文写到一半才发现"原来同步是手动的"。

可迁移经验:数据集文档的价值,一半在"说明了什么能力",另一半在"坦白了什么边界"。


§7.6 一个可对照的"同类开放 PPG"检索建议

若读者使用本库检索,建议的对照检索顺序是:

  1. 先看本条目(butppg,手机摄像头 + 专家质量标注)。
  2. 对照 ppg-dalia(rid 202)——若你要的是腕带、日常活动、连续心率。
  3. 对照 bidmc-ppg(rid 74)——若你要的是 PPG 呼吸率。
  4. 对照 pulsedb(rid 182)——若你要的是 PPG+ECG 血压。
  5. 对照 vitaldb(rid 192)——若你要的是术中多参数生命体征。

这套顺序覆盖了从"质量评估"到"多参数估计"的 PPG 应用谱系,能帮你快速判断 BUT PPG 是否真是你要的那个。


§9 与库内条目的关系

9.1 家族图谱:生理信号与 PPG 家族

BUT PPG 在本库中属于生理信号大类下的 PPG/心电子群,与以下条目构成可直接互链的家族(附 record_id):

库内条目 rid 与 BUT PPG 的关系
ppg-dalia 202 最直接对照:日常活动可穿戴 PPG 心率估计(腕带 vs 手机摄像头)
bidmc-ppg 74 用 PPG 波形估计呼吸率,同为 PPG 波形级任务
pulsedb 182 PPG+ECG 无袖带血压估计基准,与本库 BP 单值标注互补
mimic-iv-ecg 172 大规模院内 12 导联 ECG,参考 ECG 侧的对照
openecg 802 公开九中心 120 万条 12 导联 ECG 基础模型基准
apnea-ecg 658 心电波形 + 呼吸事件,ECG 家族
vitaldb 192 术中多参数生命体征波形库,生命体征侧对照
isruc-sleep 262 多导睡眠图(PSG)含 ECG/PPG 类信号
mros-sleep 292 居家 PSG 队列,老年男性
mesa-sleep 302 多民族居家睡眠监测
cinc-2018-sleep 493 PSG 睡眠微觉醒检测
sleep-edf 73 多导睡眠图睡眠分期基准
hmc-sleep-staging 654 睡眠分期

9.2 检索路径建议

  • 若研究可穿戴 PPG 心率估计:BUT PPG(手机摄像头部)↔ ppg-dalia(腕带日常活动)↔ bidmc-ppg(呼吸率)三者对照。
  • 若研究无袖带血压:BUT PPG(含 BP 单值)↔ pulsedb(专用血压波形库)。
  • 若研究心电波形处理:BUT PPG(参考 ECG)↔ mimic-iv-ecg / openecg / apnea-ecg。
  • 若研究睡眠/长程监测中的生理信号:BUT PPG ↔ ISRUC/MrOS/MESA/CinC2018/HMC 等 PSG 家族。

9.3 与库内 PANDA-PLUS(rid 560)的对照意义

(panda-plus 为本库方法论金标准条目之一。)二者虽分属病理图像与生理信号两个领域,但在**“专家共识标注"这一方法学维度**上高度可对照:PANDA-PLUS 用"学生+高年级+专家"三层流水线重标注病理图像;BUT PPG 用"多专家盲评+共识比例"标注 PPG 质量。两者都示范了"如何把主观判定转化为可信 ground truth”,可跨领域互相引证。


§10 避坑清单:八个已踩过的坑

以下坑点均来自对本数据集文档、论文、版本差异与元数据的实证核对,覆盖"检索—下载—加载—建模—评估"全链路。

坑 1:把 butppg 与已有 PPG 条目混淆(别名/撞库风险)。
本库已存在 bidmc-ppg(rid 74) 和 ppg-dalia(rid 202),检索 “PPG dataset” 时容易串。BUT PPG 是布尔诺理工大学手机摄像头数据集,与 BIDMC(呼吸率)、PPG-DaLiA(腕带日常活动)是三个不同数据集。建库时应确认 slug 为 butppg,避免与二者合并。

坑 2:误把 48 条当全量。
主论文(Biomed Res Int 2021)与早期资料描述的是 48 条、12 名受试者的 v1.0.0。若只读论文就下结论"数据集很小",会完全错过 2024 年的 3,888 条扩展。务必以 v2.0.0(2024-08-23)为准。

坑 3:把"自动化对照匹配率 56.6%“误读为"专家标注不准”。
CinC 2024 里的 56.6%/67.1%/74.1% 是非专家自动规则与共识的匹配率,作者明确说"仅指示性、未参与共识"。真正的标注可信度证据是专家与共识一致率 93.3%。混淆二者会得出完全错误的结论。

坑 4:忽略了"耳 vs 指"的质量鸿沟。
耳部良好率 10.6%、指部 31.3%,相差约三倍。若不按部位分层评估、直接混合训练/报告,模型在耳部信号上的性能会被指部掩盖。务必分部位评估。

坑 5:类别严重不均衡却只看准确率。
扩展部分良好仅 20.7%。全判"差"即可得约 79% 准确率。评估必须用 AUROC/AUPRC/平衡准确率/敏感性特异性,否则指标严重误导。

坑 6:训练/测试集按记录随机划分,造成受试者泄漏。
记录 ID 前三位是受试者号,同一受试者有多次测量。若按记录随机划分,同一受试者的信号会同时出现在训练与测试集,性能被高估。必须按受试者分组划分(GroupKFold on rid[:3])。

坑 7:误以为 PPG 与 ECG 完美同步。
PPG 与参考 ECG 是手动同步的,可能相差一个心搏内。做逐搏对齐的研究需谨慎处理;若只用整段中位 HR(质量标注的口径)则影响有限。作者在局限中已明确披露。

坑 8:把单通道当三通道、或忽略版本通道差异。
v1(100001-111004)PPG 仅红通道;v2 扩展(112001 起)含红/绿/蓝三通道。质量标注基于红通道。读取时若不确认版本通道配置,可能读错维度或误用未标注的绿/蓝通道。

坑 9(附加):把 BUT PPG 当"运动心率"数据集。
扩展部分活动体力负担都不重,HR 以静息为主(约 40-160 bpm,集中于静息区间)。若目标是高强度运动下的心率追踪,应结合 PPG-DaLiA 等数据集,勿指望 BUT PPG 覆盖剧烈运动场景。

坑 10(附加):混用 v1/v2 的 DOI 与引用。
v1 DOI 10.13026/7vy8-av04,v2 discovery DOI 10.13026/tn53-8153,latest DOI 10.13026/gxwp-p940。用了 3,888 条却引 v1 DOI,会让复现者困惑。按实际使用版本引用。

§10.1 坑点速查(一屏版)

坑 1  别名/撞库:butppg ≠ bidmc-ppg ≠ ppg-dalia
坑 2  误把 48 条当全量:以 v2.0.0(3,888) 为准
坑 3  误读 56.6%:那是自动基线,专家一致率是 93.3%
坑 4  忽略耳/指鸿沟:10.6% vs 31.3%
坑 5  只看准确率:良好仅 20.7%,用 AUROC/AUPRC
坑 6  受试者泄漏:按 rid[:3] 分组划分
坑 7  假设完美同步:手动同步,误差一个心搏内
坑 8  单/三通道混淆:v1 红 / v2 RGB
坑 9  当运动心率数据集:HR 以静息为主
坑 10 混用 DOI:按版本引用

这十个坑覆盖了从"找数据"到"报结果"的完整链路。建议把速查卡贴在实验代码旁的注释里,评审时对照自查。

§10.2 为什么这些坑值得单列

它们并非"显而易见"的常识,而是每一处都有人踩过的实证陷阱:

  • **坑 3(误读 56.6%)**最危险,因为它来自论文正文、数字看起来很"官方",却完全指向错误结论。区分"专家一致率"与"自动基线匹配率"是读懂这篇论文的分水岭。
  • **坑 6(受试者泄漏)**最隐蔽,因为代码能跑通、指标还很好看,只有按受试者分组评估后才会暴露虚高。
  • **坑 4(耳/指鸿沟)**最容易被"总体数字"掩盖,导致模型在耳部场景悄悄失效。

把坑点显式写进本条目的价值,正在于让后来者"用别人的教训省自己的时间"。


§11 总结

11.1 三句话总结

  1. BUT PPG 是布尔诺理工大学用智能手机摄像头采集的、带多专家共识质量标注的 PPG 数据集,最新 v2.0.0 含 3,888 条 10 秒记录、50 名受试者,同步参考 ECG 与三轴 ACC。
  2. 它的核心价值是把"信号质量评估"这一前置任务变成了公开、可复现、贴近真实伪迹的基准——专家以 IEC 60601-2-27 更严阈值共识判定,一致率 93.3%。
  3. 它完全开放(CC BY 4.0,PhysioNet 无 gated 直链),规模适中(203.3 MB)、格式标准(WFDB),是手机健康监测算法开发与验证的高性价比起点。

11.2 适合谁

  • 开发可穿戴/手机 PPG 质量评估算法的团队。
  • 研究心率估计、尤其是鲁棒性与伪迹抑制的研究者。
  • 需要带手动核验 QRS 位置参考的心搏检测算法研究者。
  • 远程患者监测(RPM)、消费级健康 App 的产品与验证团队。
  • 关注可穿戴生理信号数据治理与开放科学的研究者。

11.3 不适合谁

  • 需要高强度运动心率场景的研究者(本数据集以静息心率为主)。
  • 需要病理人群(房颤、心衰等)数据的临床研究(本库为健康受试者)。
  • 需要长期连续监测数据的研究(本库为 10 秒分段,非长程)。
  • 需要多导联诊断级 ECG 的研究(本库 ECG 为单导联参考,非诊断用途)。

11.4 30 秒决策卡

想要什么 ──► 用不用 BUT PPG?
├─ 手机/可穿戴 PPG 质量评估 ...... ✅ 首选(有专家共识标签)
├─ 摄像头 PPG 心率估计 ........... ✅ 适用(含真实伪迹)
├─ 心搏/QRS 检测 ............... ✅ 适用(全信号含核验位置)
├─ 从 PPG 估血压/血糖/SpO2 ...... ⚠️ 部分(扩展含单值参考,精度有限)
├─ 运动心率追踪 ................ ❌ 改用 PPG-DaLiA
├─ 临床病理人群 ................ ❌ 本库为健康受试者
└─ 商用产品验证 ................ ✅ 允许(CC BY 4.0,署名即可)

FAQ(高频问答 20 问)

A. 基础认知

A1:BUT PPG 到底是数据集还是挑战赛?
是纯数据集,不是挑战赛。它托管于 PhysioNet,提供数据 + 标注,不带排行榜。

A2:BUT 是什么的缩写?
Brno University of Technology(布尔诺理工大学),位于捷克布尔诺(Brno)。

A3:PPG 是什么?
光电容积脉搏波(photoplethysmography)。用光照射皮肤,测量血液容积随心跳的周期性变化,从中提取心率等生理参数。

A4:这个数据集和普通 PPG 数据集有何不同?
三点不同:①用真实智能手机摄像头而非台式仪器;②带多专家共识质量标签(多数数据集只有波形);③覆盖八种真实运动伪迹。

A5:为什么强调"质量评估"?
因为真实手机 PPG 大量不可用——本数据集里约八成信号被判"差"。不先做质量筛选,心率估计误差会极高。

B. 数据与获取

B1:最新版本是什么?多大?
v2.0.0(2024-08-23),3,888 条记录,未压缩 203.3 MB,ZIP 86.7 MB。

B2:怎么下载最快?
aws s3 sync --no-sign-request s3://physionet-open/butppg/2.0.0/ DESTINATION 或 wget -r -N -c -np https://physionet.org/files/butppg/2.0.0/。

B3:需要申请吗?
不需要。CC BY 4.0,无 gated,直接下载。

B4:能商用吗?
能。CC BY 4.0 允许商业使用,只需署名并注明修改。

B5:引用哪个 DOI?
用数据引 v2.0.0(10.13026/tn53-8153),方法引主论文(10.1155/2021/3453007),扩展引 CinC 2024(10.22489/CinC.2024.055)。

C. 标注与数据

C1:质量标签怎么来的?
3 或 5 名专家盲评估读 HR,与参考 HR 差 ≤5 bpm 判良好,达共识比例则标 1,否则 0。

C2:为什么阈值是 5 bpm?
来自国际标准 IEC 60601-2-27,且本数据集更严格。

C3:好信号占比多少?
扩展部分良好 20.7%(795/3,840)。耳部 10.6%,指部 31.3%。

C4:专家一致率多少?
与共识一致率全体 93.3%(耳 94.1%,指 92.4%)。

C5:有哪些生理参考值?
扩展部分含血压、血糖、SpO2 单值。

D. 建模与工程

D1:怎么划分训练/测试集?
按受试者分组划分(记录 ID 前三位为受试者号),避免受试者泄漏。

D2:类别不均衡怎么办?
良好仅约 20%。用类别权重/重采样,评估用 AUROC/AUPRC/平衡准确率。

D3:可以用 ACC 辅助吗?
可以。作者明确指出 ACC 可用于 ECG/PPG 质量评估。

D4:用什么工具读?
wfdb 库(Python)配合 pandas。WFDB 是 PhysioNet 标准格式。

D5:有现成基准分数吗?
论文给出三个非专家自动基线与共识的匹配率(56.6%/67.1%/74.1%),但不是专家性能基准。尚无官方排行榜。

E. 方法学与对照

E1:为什么用"误差 ≤5 bpm"而不是别的阈值?
该阈值取自 IEC 60601-2-27 对心电监护设备的性能要求,是国际通行的可辩护判据;本数据集还设了更严的附加要求,因此比标准本身更严格。

E2:为什么标注者只估读 HR,不直接判"好/差"?
若直接问"好不好",主观性太强、分歧大。改用"估读一个 HR 数值",再由数值与参考的偏差自动判好坏——把主观判断转化为可量化、可复现的客观判据,这是设计上的巧思。

E3:为什么让标注者对 ECG 盲、对运动状态盲?
两点都是为了阻断暗示:知道真值(ECG)会让人不自觉向真值靠;知道是运动段会先入为主判差。盲评让判断更纯粹。

E4:一致率 93.3% 高不高?
在主观标注任务里属于很高。文本分类等任务人工一致率常在 80% 上下;本库 93%+ 说明质量判据界定清晰、专家训练到位。

E5:和 MIT-BIH、BIDMC 等经典生理库怎么比?
MIT-BIH 系列多为诊断级 ECG/心律失常标注;BIDMC(本库 rid 74)聚焦呼吸率。BUT PPG 聚焦手机摄像头 PPG 的质量评估,与它们是互补而非替代关系。

F. 数据治理与开放科学

F1:为什么该数据集能全开放?
数据为健康受试者的非敏感生理波形,去标识后风险低;受试者签署知情同意且经 IRB 批准;资助方(ONR)支持开放发布。三者共同支撑 CC BY 4.0。

F2:开放数据集如何保证质量?
靠"可复现的标注协议 + 报告的标注一致率 + 原始标注文件"。但开放不等于完美——本库仍有部门/人群多样性边界,使用者需自行判断适用性。

F3:商用有何额外义务?
CC BY 4.0 下商用无额外授权义务,但医学应用若面向患者,仍需走所在国的医疗器械监管流程,数据集许可不豁免监管。

F4:如何正确署名?
至少写明作者、数据集名称、版本、DOI、许可(CC BY 4.0),并注明是否修改。示例见附录 L 的 BibTeX。

F5:可以再分发吗?
可以。CC BY 4.0 允许复制与再分发,只需保留署名与许可声明。


事实清单(硬事实 40 条)

  1. 全称:Brno University of Technology Smartphone PPG Database (BUT PPG)。
  2. 机构:布尔诺理工大学电气工程与通信学院生物医学工程系(DBME)。
  3. 城市:捷克布尔诺(Brno, Czech Republic)。
  4. 托管:PhysioNet。
  5. v1.0.0 发布时间:2021-01-18。
  6. v2.0.0 发布时间:2024-08-23。
  7. v1.0.0 DOI:10.13026/7vy8-av04。
  8. v2.0.0 discovery DOI:10.13026/tn53-8153。
  9. latest version DOI:10.13026/gxwp-p940。
  10. v1 规模:48 条 10 秒记录。
  11. v1 受试者:12 名(6 女 / 6 男,21-61 岁)。
  12. v2 规模:3,888 条 10 秒记录。
  13. v2 受试者:50 名(25 女 / 25 男,19-76 岁,33±17 岁)。
  14. 扩展新增:3,840 条,38 名受试者(19 男 / 19 女)。
  15. PPG 采样率:30 Hz。
  16. ECG 采样率:1,000 Hz(单导联)。
  17. ACC 采样率:100 Hz(三轴)。
  18. 手机型号:小米 Mi9、华为 P20 Pro。
  19. 参考 ECG 设备:Bittium Faros 360 或 180。
  20. 采集部位:耳(前置摄像头)与指(后置摄像头)。
  21. 扩展部分耳信号数:1,962。
  22. 扩展部分指信号数:1,878。
  23. 扩展部分手动核验心搏数:49,540。
  24. 质量标签:二值(1 良好 / 0 差)。
  25. 良好判据:与参考 HR 绝对差 ≤5 bpm。
  26. 阈值标准:IEC 60601-2-27(且更严)。
  27. v1 标注专家数:5(共识 ≥3/5)。
  28. v2 标注专家数:3(共识 ≥2/3)。
  29. 专家-共识一致率:全体 93.3%。
  30. 耳部一致率:94.1%。
  31. 指部一致率:92.4%。
  32. 扩展质量分布:良好 795(20.7%)/ 差 3,045(79.3%)。
  33. 耳部良好率:10.6%。
  34. 指部良好率:31.3%。
  35. 自动基线匹配率:中位 HR 56.6%、文献均值 HR 67.1%、SWT 74.1%。
  36. 记录格式:WFDB。
  37. 记录 ID:六位数字(前三位受试者号 + 后三位测量号)。
  38. 文件大小:未压缩 203.3 MB,ZIP 86.7 MB。
  39. 许可:CC BY 4.0(Database Open Access)。
  40. 资助:美国海军研究办公室(ONR)Global,N62909-19-1-2006 与 N62909-23-1-2050。

术语表(30 条)

术语 英文 释义
PPG photoplethysmography 光电容积脉搏波,用光测量血容随心跳的变化
ECG electrocardiogram 心电图,本数据集作参考 HR 的金标准
HR heart rate 心率,次/分(bpm)
ACC accelerometer 加速度计,三轴,用于捕捉运动伪迹
信号质量评估 signal quality assessment (SQA) 判断信号是否可用于下游任务
专家共识 expert consensus 多专家独立标注后按比例达成的统一标签
二分类 binary classification 良好/差两类
伪迹 artifact 非生理来源的信号干扰,如运动、光照变化
运动伪迹 motion artifact 因身体运动耦合进信号的干扰
采样率 sampling frequency (fs) 每秒采样数,PPG 30 Hz
WFDB WaveForm Database PhysioNet 标准生理信号格式
单导联 single-lead 仅一路 ECG 信号
QRS 复合波 QRS complex ECG 中代表心室去极化的波形,用于定位心搏
心搏位置 heartbeat position 每次心跳的时间点(本库手动核验)
中位心率 median HR 整段信号心率的中间值,作参考 HR
bpm beats per minute 次/分
基线漂移 baseline wander 信号基线缓慢起伏的伪迹
过渡段 transition segment 活动切换时质量介于两态之间的段
SpO2 peripheral oxygen saturation 外周血氧饱和度
血压 blood pressure (BP) 本扩展含单值参考
血糖 glycaemia 本扩展含单值参考
SWT stationary wavelet transform 平稳小波变换,用于标注软件频带分解
FFT fast Fourier transform 快速傅里叶变换,用于频谱分析
IEC 60601-2-27 — 心电监护设备安全与性能国际标准,提供 5 bpm 阈值依据
Fitzpatrick 皮肤类型 Fitzpatrick skin type 皮肤对日光的反应分型,本库为 II-IV
受试者泄漏 subject leakage 同一受试者数据跨训练/测试集导致的评估偏差
GroupKFold — 按组(受试者)分组的交叉验证
AUROC area under ROC curve 评估二分类的曲线下面积
AUPRC area under PR curve 精确率-召回率曲线下面积,适合不均衡
gated gated access 需申请/授权才能访问的受限数据

附录

附录 A:条目信息速查卡

项 值
名称 Brno University of Technology Smartphone PPG Database (BUT PPG)
slug butppg
领域 生理信号 / PPG / 心电
版本 v1.0.0 (2021) → v2.0.0 (2024)
规模 3,888 条 × 10 秒
受试者 50(25 女 / 25 男,19-76 岁)
采样率 PPG 30 Hz / ECG 1,000 Hz / ACC 100 Hz
任务 质量评估、HR 估计、QRS 检测、生理参数估计
标注 3 或 5 专家共识(≤5 bpm)
许可 CC BY 4.0
获取 PhysioNet 无 gated 直链
大小 203.3 MB(未压缩)
库内互链 ppg-dalia(202)、bidmc-ppg(74)、pulsedb(182)、mimic-iv-ecg(172)、openecg(802)

附录 B:DAIMS 评估全表

DAIMS(Data and AI Maturity/Readiness Standard)用于评估 AI-Ready 数据集成熟度。BUT PPG 评分如下:

维度 分值(1-5) 依据
数据可获得性(Availability) 5 CC BY 4.0,PhysioNet 无 gated 直链,多下载方式
数据规模(Scale) 4 3,888 条对 PPG 质量评估足够,但非海量
标注质量(Annotation Quality) 5 多专家共识 + 国际标准阈值 + 93.3% 一致率 + 原始标注文件
标注丰富度(Annotation Richness) 4 质量 + HR + QRS + 生理参考;无逐搏质量
元数据完备性(Metadata) 5 人口学 + 部位 + 8 种运动状态 + 生理参考,字段语义清晰
格式标准化(Format) 5 WFDB 标准格式,wfdb 库原生支持
文档与透明度(Documentation) 5 PhysioNet 页 + 主论文 + 扩展论文,局限主动披露
伦理与合规(Ethics) 5 双 IRB 批号 + 知情同意 + 资助披露
可获取限制(Access Restriction) 5 无限制
人群多样性(Diversity) 3 健康受试者,Fitzpatrick II-IV,两款手机,性别平衡但病理/肤色多样性有限
综合(AI-Ready 成熟度) 4.6 / 5 开放、标准、标注扎实;主要扣分在人群/设备多样性

附录 C:数据字典(关键文件字段)

quality-hr-ann.csv

列 含义 取值
record 信号 ID 六位数字
quality 二值质量标签 1 良好 / 0 差
hr 参考心率 数值(bpm)

subject-info.csv

列 含义 取值
subject / record 受试者 / 记录号 —
gender 性别 —
age 年龄 岁
height 身高 cm
weight 体重 kg
spot 采集部位 0 耳 / 1 指
motion 运动状态 0-7
BP 血压 参考值
glycaemia 血糖 参考值
SpO2 血氧 参考值

运动状态编码:0 静息 / 1 加指耳压 / 2 镜头移动 / 3 步行 / 4 咳嗽 / 5 大笑 / 6 变光 / 7 说话。

附录 D:数据获取决策树

需要 BUT PPG 数据?
├─ 做质量评估 → 下全量 v2.0.0(3,888 条),按部位分层
├─ 做心率估计 → 下全量,注意只用 quality=1 或分层报告
├─ 做心搏检测 → 下全量,用 *.qrs 作参考
├─ 只用生理参考 → 检查是否 112001 起(仅扩展含 BP/血糖/SpO2)
└─ 需要长程/病理数据 → 本库不含,转其它数据集

附录 E:与库内 PANDA-PLUS 条目的关系声明

BUT PPG(本条目)与 panda-plus(rid 560)分属生理信号与病理图像两个领域,无数据隶属关系。二者仅在本库的方法学对照层面相关:都示范了"多主体标注 + 共识/终审"如何生产可信 ground truth。检索时勿因二者都含"专家标注"而混淆。

附录 F:复现骨架(最小可用脚本)

# 最小加载 + 分组评估骨架
import wfdb, numpy as np, pandas as pd
from pathlib import Path
from sklearn.model_selection import GroupKFold

root = Path("butppg/2.0.0")
ann = pd.read_csv(root / "quality-hr-ann.csv")
X, y, g = [], [], []
for _, r in ann.iterrows():
    rid = str(r["record"])
    rec = wfdb.rdrecord(str(root / rid / f"{rid}_PPG"))
    X.append(rec.p_signal[:, 0])
    y.append(int(r["quality"]))
    g.append(rid[:3])
X, y, g = np.array(X), np.array(y), np.array(g)
for tr, te in GroupKFold(5).split(X, y, g):
    print("fold train/test:", len(tr), len(te))

附录 G:质量评估指标公式表

指标 公式/说明
敏感性 TP / (TP + FN)
特异性 TN / (TN + FP)
平衡准确率 (敏感性 + 特异性) / 2
AUROC ROC 曲线下面积
AUPRC 精确率-召回率曲线下面积(正类 = 良好)
F1(good) 2·P·R / (P + R),正类为质量良好
HR MAE mean(
误差 ≤5 bpm 比例 与标注阈值对齐的一致率

附录 H:坑点档案(与 §10 对照)

坑 1 别名/撞库混淆 → §1、§9.1;坑 2 误把 48 条当全量 → §2.1、§2.5;坑 3 误读 56.6% → §3.4、坑 3;坑 4 忽略耳指鸿沟 → §4.2、坑 4;坑 5 只看准确率 → §5.3、§5.7、坑 5;坑 6 受试者泄漏 → §5.1、§5.3、坑 6;坑 7 误以为完美同步 → §4.5、坑 7;坑 8 单/三通道混淆 → §2.2、§5.6、坑 8;坑 9 当运动心率数据集 → §4.4、坑 9;坑 10 混用 DOI → §2.5、坑 10。

附录 I:双口径登记表

项目 口径 A 口径 B 本条目采用
耳/指良好率 CinC 正文 10.6% / 31.3% CinC 摘要 11% / 31% 正文精确值,括注摘要
总良好率 精确 20.7%(795/3,840) 摘要 21% 精确值
标注专家数 v1: 5 人 v2: 3 人 分版本说明
采集期 v1 页 2020-08 至 2020-10 v2 页 2020-08 至 2021-12 分版本说明
心搏数 扩展 49,540 全库"含 QRS 位置" 标 49,540 为扩展口径

附录 J:本条目生产档案

  • 写手代理:agent-b-butppg
  • 抓取时点:2026-10-03
  • 一手来源:PhysioNet 内容页(v1.0.0 / v2.0.0)、PubMed PMID 34532501、CinC 2024 PDF(cinc.org/archives/2024/pdf/CinC2024-055.pdf)
  • 三源互证:PhysioNet 页 ↔ 主论文摘要 ↔ CinC 扩展论文,核心数字一致
  • 库内查重:url_name ILIKE '%butppg%' → 0 行

附录 K:FAIR / AI-Ready 检查单

原则 满足 说明
Findable(可发现) ✅ PhysioNet + DOI + RRID + 论文
Accessible(可获取) ✅ CC BY 4.0 无 gated
Interoperable(可互操作) ✅ WFDB + CSV
Reusable(可复用) ✅ 元数据完备、许可清晰
AI-Ready(规模/标注/格式) ✅ 标注扎实、格式标准;多样性为边界

附录 L:引文规范(BibTeX)

@misc{butppg2024,
  author       = {Nemcova, Andrea and Smisek, Radovan and Vargova, Eniko and
                  Mar{\v{s}}{\'a}nov{\'a}, Lucie and Vitek, Martin and Smital, Lukas and
                  Filipenska, Marina and Sikorova, Pavlina and G{\'a}l{\'i}k, Pavel},
  title        = {Brno University of Technology Smartphone PPG Database (BUT PPG)},
  year         = {2024},
  publisher    = {PhysioNet},
  version      = {2.0.0},
  doi          = {10.13026/tn53-8153},
  note         = {RRID:SCR\_007345}
}

@article{nemcova2021butppg,
  author  = {Nemcova, Andrea and Vargova, Eniko and Smisek, Radovan and
             Marsanova, Lucie and Smital, Lukas and Vitek, Martin},
  title   = {Brno University of Technology Smartphone PPG Database (BUT PPG):
             Annotated Dataset for PPG Quality Assessment and Heart Rate Estimation},
  journal = {BioMed Research International},
  volume  = {2021},
  pages   = {3453007},
  year    = {2021},
  doi     = {10.1155/2021/3453007}
}

附录 M:维护计划与触发点

  • 触发点 1:PhysioNet 发布 v3.0.0(含绿/蓝通道标注或心律异常标注)→ 更新版本链与 §7.2。
  • 触发点 2:出现官方基准排行榜/挑战赛 → 更新 §7.4 与 FAQ D5。
  • 触发点 3:许可变更 → 更新 §6.1。
  • 触发点 4:库内新增 PPG 家族条目 → 更新 §9.1 互链表。

附录 N:缩写速查

ACC 加速度计;BP 血压;bpm 次/分;CC BY 知识共享署名;DBME 生物医学工程系;DOI 数字对象标识符;ECG 心电图;FFT 快速傅里叶变换;HR 心率;IRB 机构审查委员会;ONR 美国海军研究办公室;PPG 光电容积脉搏波;RPM 远程患者监测;SpO2 血氧饱和度;SQA 信号质量评估;SWT 平稳小波变换;WFDB 波形数据库格式。

附录 O:版本对照完整表

属性 v1.0.0 v2.0.0
发布日 2021-01-18 2024-08-23
DOI 10.13026/7vy8-av04 10.13026/tn53-8153
记录数 48 3,888
受试者 12 50
手机 小米 Mi9 小米 Mi9 + 华为 P20 Pro
部位 指 耳 + 指
通道 红 红/绿/蓝(112001 起)
ACC 无 有
QRS 位置 有 有
生理参考 无 BP/血糖/SpO2
标注专家 5 人 3 人(6 人池)
记录 ID 段 100001-111004 112001 起
对应论文 BMRI 2021 CinC 2024

附录 P:外部论文引用(方法学锚点)

引用 与本库关系
Nemcova 2020, BSPC 59, doi:10.1016/j.bspc.2020.101928 手机监测 HR/SpO2/BP 先导
Smital 2020, CinC, Robust QRS Detection 参考 HR 的 QRS 检测方法来源
Peng 2015, Comput Math Methods Med 手机 PPG 提取 HRV,红通道方法依据
Siddiqui 2016, J Med Syst 40(5) 手机摄像头脉搏率估计
Tabei 2019, PLoS One 14(6) 运动/噪声伪迹下的手机心律信号
Orphanidou 2018, Springer 生理监测中的信号质量评估综述
Naeini 2019, Procedia CS 151 IoT 实时 PPG 质量评估
Quer et al. 92,457 人平均心率(用于文献均值基线)

附录 Q:技术规格速查

规格 值
PPG 时长 每段 10 秒
PPG 采样率 30 Hz(每段 300 样本)
ECG 采样率 1,000 Hz(每段 10,000 样本)
ACC 采样率 100 Hz(每段 1,000 样本 × 3 轴)
PPG 提取 视频逐帧取(红)通道平均后取反
参考 HR ECG 上 QRS 检测 → 整段中位 HR
质量标签 0/1 二值,共识判定
记录 ID 六位数字
文件格式 WFDB(.dat/.hea/.qrs)+ CSV

附录 R:质量评估常见失败模式(来自 ACC/伪迹维度)

失败模式 触发场景 可观测特征
运动伪迹淹没脉搏 步行、镜头移动 频谱主峰偏移/展宽,ACC 能量高
接触不良 手指未压实、耳侧松脱 幅度低、信噪比差
光照干扰 变光环境 基线跳变,低频能量高
生理耦合伪迹 咳嗽、大笑、说话 突发宽带扰动,峰间期突变
过渡段 活动切换 质量介于相邻两态

附录 S:分层评估报告模板

【耳部 / 静息】      n=?, good=?, AUROC=?, 平衡准确率=?
【耳部 / 活动】      n=?, good=?, AUROC=?
【指部 / 静息】      n=?, good=?, AUROC=?
【指部 / 活动】      n=?, good=?, AUROC=?
【HR 估计 / 仅 good】 MAE=?, RMSE=?, ≤5bpm 比例=?
【HR 估计 / 全部】    MAE=?, RMSE=?(对照,说明质量筛选增益)

附录 T:检索关键词组合(HTTP/DB 检索用)

  • butppg / BUT PPG / BUT-PPG
  • Brno University of Technology Smartphone PPG
  • smartphone PPG quality assessment dataset
  • camera PPG heart rate PhysioNet
  • PPG signal quality expert consensus annotation
  • 库内 SQL:url_name ILIKE '%ppg%'(命中 ppg-dalia、bidmc-ppg)

附录 U:避坑速查卡

① 别把 48 条当全量 → 以 v2.0.0 为准
② 别误读 56.6% → 那是自动基线,非专家
③ 别混合耳/指评估 → 分开报
④ 别只看准确率 → 用 AUROC/AUPRC
⑤ 别按记录随机分 → 按受试者分组
⑥ 别假设完美同步 → 手动同步有误差
⑦ 别搞错通道 → v1 红 / v2 RGB
⑧ 别混用 DOI → 按版本引用

附录 V:伦理与元数据声明

  • IRB 批号:EC:EK:05b/2018(2018-07-27)、EC:EK:06b/2021(2021-09-30)。
  • 知情同意:所有受试者采集前签署书面知情同意。
  • 资助:ONR Global,N62909-19-1-2006、N62909-23-1-2050。
  • 利益冲突:作者声明无。
  • 数据去标识:仅保留性别、年龄、身高、体重等非直接标识信息。

附录 W:基于本数据集的研究检查清单(12 项)

  1. 确认使用版本(v1 还是 v2)。
  2. 按受试者分组划分训练/测试集。
  3. 报告类别不均衡下的多项指标。
  4. 分部位(耳/指)分层报告。
  5. 分运动状态分层报告。
  6. 说明是否使用 ACC 辅助。
  7. 明确质量标签定义(≤5 bpm 共识)。
  8. HR 评估同时报 MAE/RMSE 与 ≤5 bpm 比例。
  9. 说明是否只用了 good 子集。
  10. 处理过渡段的策略(保留/剔除)。
  11. 说明 PPG-ECG 手动同步误差的处理。
  12. 规范引用数据 DOI + 论文 + PhysioNet。

附录 X:库内互链点详表(rid 反查)

以下 rid 均由本库 ai_ready_dataset(status=1)url_name 反查确认:

rid url_name 互链理由
202 ppg-dalia 同为 PPG 心率估计;腕带 vs 手机摄像头对照
74 bidmc-ppg PPG 波形任务;呼吸率估计对照
182 pulsedb PPG+ECG 血压估计;与 BP 单值标注互补
172 mimic-iv-ecg 大规模 ECG 波形库
802 openecg 12 导联 ECG 基础模型基准
658 apnea-ecg ECG + 呼吸事件
192 vitaldb 术中多参数生命体征波形
262 isruc-sleep PSG 多导睡眠图
292 mros-sleep 居家 PSG 队列
302 mesa-sleep 多民族居家睡眠监测
493 cinc-2018-sleep PSG 睡眠微觉醒
73 sleep-edf PSG 睡眠分期基准
654 hmc-sleep-staging 睡眠分期
560 panda-plus 方法学对照(专家共识标注范式)

附录 Y:一句话推荐语

如果你在做智能手机或可穿戴设备上的心率/健康监测,需要一个免费、标准格式、带专家共识质量标注、且覆盖真实运动伪迹的 PPG 数据集来开发"信号质量闸门",BUT PPG 是当下最省事、最可复现的选择之一——记住它以静息心率为主、样本为健康人群,其余请用它的部位与运动状态标签做分层评估。


尾注

  • 本条目所有硬数字均以 2026-10-03 抓取的 PhysioNet v1.0.0 / v2.0.0 内容页与 CinC 2024 论文为准,双口径处已在正文与附录 I 逐条存照。
  • 本条目为 AI-Ready Wikipedia 数据集条目,仅供研究与检索参考,不构成医疗器械或临床建议。
  • 数据集许可为 CC BY 4.0;本条目对数据集的描述属独立评述,使用数据时请遵循其原始许可并规范引用。

相关数据集导航

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

  • cinc-2011 — 共享标签:生理信号 / 心电信号 / 可穿戴传感 / 挑战赛数据集 / 心血管疾病
  • ecg-image-database — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
  • cardiowave-portable — 共享标签:生理信号 / 心电信号 / 可穿戴传感 / 心血管疾病
  • physionet-cinc-2017 — 共享标签:生理信号 / 心电信号 / 可穿戴传感 / 心血管疾病
  • cinc-2021 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
  • icentia11k — 共享标签:生理信号 / 心电信号 / 可穿戴传感 / 心血管疾病
  • ltafdb — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
  • cinc-2020 — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
  • georgia-12-lead-ecg-challenge — 共享标签:生理信号 / 心电信号 / 挑战赛数据集 / 心血管疾病
  • auricle-wearable-cv — 共享标签:生理信号 / 心电信号 / 可穿戴传感 / 心血管疾病

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

返回 AI-Ready 数据集