rPPG-Toolbox 实战:用摄像头测心率,三步跑通远程生理监测
【免费下载链接】rPPG-ToolboxrPPG-Toolbox: Deep Remote PPG Toolbox (NeurIPS 2023)项目地址: https://gitcode.com/gh_mirrors/rp/rPPG-Toolbox
晚上十点,你只想看一眼老人今天的身体状态,又不想打电话打扰。这时一段普通的摄像头视频就能帮忙:rPPG-Toolbox 用摄像头测心率,把心率和呼吸从画面里算出来,完成远程生理监测。三步就能跑通。
rPPG-Toolbox 解决什么问题 💢
- 戴手环太难受。手腕带一宿,皮肤发红,数据还不一定准。rPPG 不用戴任何东西,一段正面视频就行。
- 算法论文各写各的。几十种 rPPG 算法,代码结构、数据格式互不兼容,复现一个基线就要折腾一两周。
- 跨数据集对比麻烦。换个数据集,加载和评估脚本就得重写一遍。这个工具箱把数据加载、训练、推理、评估放进同一套代码里。
各数据集的加载器统一放在 dataset/data_loader/,格式、预处理一步到位。
它怎么"看到"你的心率 ❤️
血液每跳一次,皮肤下的血管就充盈一次,画面里脸部的红色通道会跟着极轻微地"涨落"。肉眼看不见,把连续帧的信号提取出来,节奏就现形了。
两条路线:
- 无监督:取面部肤色均值,转到对血容量敏感的颜色空间,分解出心率分量,如 POS、CHROM、GREEN。
- 监督:视频片段直接喂给网络,端到端学出心率曲线。
三步跑起来:安装、数据、首次推理 🚀
第 1 步:装环境
git clone https://gitcode.com/gh_mirrors/rp/rPPG-Toolbox cd rPPG-Toolbox bash setup.sh conda第 2 步:放数据。按 README 的目录结构摆好数据集(如 UBFC-rPPG 每人一个文件夹),把路径写进 yaml 的DATA_PATH。
第 3 步:首次推理
python main.py --config_file configs/infer_configs/PURE_UBFC-rPPG_TSCAN_BASIC.yaml预训练权重在 final_model_release/,把MODEL_PATH指过去就能直接推理,不用从零训练。
数据集和模型怎么选
两条路线各有分工:
| 监督神经网络 | 无监督信号处理 | |
|---|---|---|
| 代表算法 | TS-CAN、PhysFormer、PhysMamba、EfficientPhys | POS、CHROM、GREEN、OMIT |
| 是否需要标签 | 需要 | 不需要 |
| 跨数据集表现 | 更稳 | 易受运动、光照影响 |
| 适合场景 | 刷基准、复现论文 | 快速基线、低算力环境 |
支持 SCAMPS、UBFC-rPPG、PURE、BP4D+、MMPD、iBVP、UBFC-PHYS 等数据集。官方建议用 UBFC-rPPG、PURE、SCAMPS、iBVP 做训练,同步性和体量更合适。
模型代码在 neural_methods/model/,无监督算法在 unsupervised_methods/methods/,所有配置集中在 configs/。
效果到底如何:基准成绩
| 模型 | 训练集 | 测试集 | MAE | MAPE |
|---|---|---|---|---|
| TS-CAN | PURE | UBFC-rPPG | 1.29 BPM | 1.50% |
1.29 BPM 是什么概念?大约 5 分钟里只数错一拍。换了数据集还能保持这个精度,泛化已经相当可靠。
评估指标支持 MAE、RMSE、MAPE、Pearson 相关等,在 yaml 的TEST.METRICS里勾选,评估代码在 evaluation/。
还能怎么玩:摄像头测心率的应用场景
居家健康监测
把家属日常视频接进来,心率异常时提醒家人。预训练模型开箱即用,换个DATA_PATH就能换数据。
运动场景下的 rPPG
MMPD 是手机拍摄的运动视频数据集,SCAMPS 提供合成运动数据。用它训练,模型在晃动、光照变化下更抗造。
多任务学习:心率、呼吸、面部动作一起测
BigSmall 一次输出多项指标,BP4D 上按 Fold 训练的多任务权重也已放出,可以做更完整的生理状态评估。
rPPG-Toolbox 入门避坑指南 ⚠️
Q:运行 main.py 报 "Unsupported dataset!"?数据集名必须和 yaml 里的写法完全一致,包括大小写和连字符,例如UBFC-rPPG。
Q:第一次跑特别慢?把DO_PREPROCESS设为True,预处理结果会缓存;之后再跑同一份数据就改回False。
Q:推理需要多大显存?单张普通卡就够,DEVICE在 yaml 里配置即可。
Q:Python 版本有什么要求?3.8 + PyTorch 2.1.2(cu121),setup.sh会自动装好,别手动混装。
Q:输出结果在哪看?预测信号存在model_outputs/,训练日志和曲线在LOG.PATH指向的目录。
写在最后
一句话:rPPG-Toolbox 把"用摄像头测心率"从论文演示,变成三条命令就能复现的远程生理监测工具。
clone 仓库后跑bash setup.sh conda,今天就能看到第一段预测心率曲线。想接自己的数据集,从 BaseLoader 继承一个加载器即可。
【免费下载链接】rPPG-ToolboxrPPG-Toolbox: Deep Remote PPG Toolbox (NeurIPS 2023)项目地址: https://gitcode.com/gh_mirrors/rp/rPPG-Toolbox
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考