rPPG-Toolbox:深度远程PPG工具箱

RayRay
rPPG-Toolbox摄像头生理信号检测开源平台算法数据集Github开源项目

rPPG-Toolbox:深度远程PPG工具箱

rPPG-Toolbox是一个开源平台,专为基于相机的生理感知而设计,也称为远程光电容积脉搏波描记法(rPPG)。这个强大的工具箱不仅对现有的最先进的神经和无监督方法进行基准测试,还支持研究人员灵活快速地开发自己的算法。

工具箱概述

rPPG-Toolbox具有以下主要特点:

  • 支持多种先进的rPPG算法,包括传统的无监督算法和基于深度学习的监督算法
  • 集成了多个公开的rPPG基准数据集
  • 提供了完整的数据预处理、模型训练和评估流程
  • 支持自定义数据集和算法的灵活扩展
  • 提供了丰富的可视化工具,用于数据分析和结果展示

工具箱概述图

支持的算法

rPPG-Toolbox支持多种先进的rPPG算法:

  1. 传统无监督算法:

    • GREEN: 基于环境光的远程光电容积成像
    • ICA: 使用网络摄像头的非接触式多参数生理测量的进展
    • CHROM: 基于色度的稳健脉搏率rPPG
    • LGI: 野外面部视频心率估计的局部群不变性
    • PBV: 使用血容积脉冲签名改善远程PPG的运动稳健性
    • POS: 远程ppg的算法原理
    • OMIT: 一种从面部提取血容积脉冲的无监督管道
  2. 监督神经网络算法:

    • DeepPhys: 使用卷积注意力网络的基于视频的生理测量
    • PhysNet: 使用时空网络从人脸视频测量远程光电容积描记信号
    • TS-CAN: 用于设备上非接触式生命体征测量的多任务时间偏移注意力网络
    • EfficientPhys: 实现简单、快速和准确的基于相机的心脏测量
    • BigSmall: 针对不同空间和时间生理测量的高效多任务学习
    • PhysFormer: 使用时间差分变换器的基于面部视频的生理测量
    • iBVPNet: 在iBVP数据集论文中引入的3D-CNN架构

支持的数据集

rPPG-Toolbox支持多个公开的rPPG基准数据集:

  • SCAMPS: 用于相机生理信号测量的合成数据集
  • UBFC-rPPG: 包含面部视频和同步的地面实况PPG信号
  • PURE: 用于移动服务机器人上的非接触式脉搏率测量
  • BP4D+: 用于人类行为分析的多模态自发情感语料库
  • UBFC-Phys: 用于社会压力心理生理研究的多模态数据库
  • MMPD: 多领域移动视频生理数据集
  • iBVP: RGB-热rPPG数据集,具有高分辨率信号质量标签

基准测试结果

rPPG-Toolbox对所有支持的算法和数据集进行了全面的基准测试。下图展示了各种算法在不同数据集上的平均绝对误差(MAE)和平均绝对百分比误差(MAPE)性能:

基准测试结果

使用指南

设置环境

  1. 运行 bash setup.sh
  2. 激活conda环境: conda activate rppg-toolbox
  3. 安装依赖: pip install -r requirements.txt

使用预训练模型

使用 ./configs/infer_configs 下的配置文件进行推理。例如:

python main.py --config_file ./configs/infer_configs/PURE_UBFC-rPPG_TSCAN_BASIC.yaml

训练神经网络模型

使用 ./configs/train_configs 下的配置文件进行训练。例如,在PURE数据集上训练并在UBFC-rPPG上测试TSCAN模型:

  1. 下载PURE和UBFC-rPPG数据集
  2. 修改 ./configs/train_configs/PURE_PURE_UBFC-rPPG_TSCAN_BASIC.yaml 配置文件
  3. 运行:
python main.py --config_file ./configs/train_configs/PURE_PURE_UBFC-rPPG_TSCAN_BASIC.yaml

使用无监督方法

  1. 下载UBFC-rPPG数据集
  2. 修改 ./configs/infer_configs/UBFC_UNSUPERVISED.yaml 配置文件
  3. 运行:
python main.py --config_file ./configs/infer_configs/UBFC_UNSUPERVISED.yaml

数据可视化

rPPG-Toolbox提供了丰富的可视化工具,用于分析预处理后的数据、训练过程和预测结果。

预处理数据可视化

tools/preprocessing_viz 目录下提供了用于可视化预处理数据的Python notebook。该notebook可以自动检测预处理后的数据格式,并绘制输入图像示例和波形。

预处理数据可视化示例

训练损失和学习率可视化

工具箱会自动保存训练和验证损失的图表。这些图表默认保存在 runs/exp 目录下。下图展示了在UBFC-rPPG数据集上训练和验证,并在PURE数据集上测试时的损失和学习率曲线:

损失曲线 学习率曲线

Bland-Altman图

工具箱默认会为监督和无监督方法生成Bland-Altman图,用于图形化比较两种测量技术。这些图表同样保存在 runs/exp 目录下。下图展示了在UBFC-rPPG数据集上训练和验证,并在PURE数据集上测试后生成的Bland-Altman图:

散点图 差异图

神经网络预测结果可视化

tools/output_signal_viz 目录下提供了用于可视化测试集神经网络输出预测和标签的Python notebook。该notebook可以绘制预测的PPG信号与地面实况PPG信号的对比图。

预测结果可视化示例

配置文件说明

rPPG-Toolbox使用YAML文件来控制训练和评估的所有参数。您可以修改现有的YAML文件以满足自己的训练和测试需求。以下是一些重要参数的说明:

  • TOOLBOX_MODE:

    • train_and_test: 在数据集上训练并使用新训练的模型进行测试
    • only_test: 使用预训练模型进行测试,需要设置INFERENCE-MODEL_PATH
  • TRAIN / VALID / TEST / UNSUPERVISED DATA:

    • DATA_PATH: 原始数据的输入路径
    • CACHED_PATH: 预处理数据的输出路径
    • BEGIN & END: 用于训练/验证/测试的数据集部分
    • DATA_TYPE: 如何预处理视频数据
    • LABEL_TYPE: 如何预处理标签数据
    • DO_CHUNK: 是否将原始数据分割成更小的块
    • DO_CROP_FACE: 是否执行人脸检测
  • MODEL: 设置使用的模型(支持Deepphys, TSCAN, Physnet, EfficientPhys, BigSmall和PhysFormer及其参数)

  • UNSUPERVISED METHOD: 设置使用的无监督方法,例如: ["ICA", "POS", "CHROM", "GREEN", "LGI", "PBV"]

  • METRICS: 设置使用的评估指标,例如: ['MAE','RMSE','MAPE','Pearson','SNR','BA']

扩展工具箱

rPPG-Toolbox支持灵活的扩展,您可以轻松添加新的数据集、神经网络算法和无监督算法。

添加新数据集

  1. dataset/data_loader 中创建新的Python文件,例如 MyLoader.py
  2. 实现必要的函数,包括 preprocess_dataset, read_videoread_wave
  3. 根据需要重写可选函数
  4. 在 configs/ 目录下创建新的YAML文件设置参数,并在 config.py 中添加新参数的定义和初始值

添加新的神经网络算法

  1. neural_methods/model 中定义新模型,例如 NewModel.py
  2. neural_methods/trainer 中实现相应的训练/测试例程,例如 NewModelTrainer.py
  3. 在 main.py 中添加逻辑以在 train_and_testtest 函数中使用新模型
  4. 在 configs/ 目录下创建对应新算法的YAML文件

添加新的无监督算法

  1. unsupervised_methods/methods 中定义新算法,例如 NewMethod.py
  2. 在 main.py 中添加逻辑以在 unsupervised_method_inference 函数中使用新算法
  3. 在 configs/ 目录下创建对应新算法的YAML文件

高级功能

弱监督训练

对于不含高质量同步PPG波形标签的数据集,rPPG-Toolbox提供了使用"伪"标签进行训练的选项。这些标签是通过对POS生成的PPG波形进行带通滤波和希尔伯特包络归一化得到的。

伪标签示例

运动增强训练

rPPG-Toolbox支持使用合成的运动增强数据集进行训练,以增加rPPG视频的运动多样性。这些数据集是使用MA-rPPG Video Toolbox生成的。您可以按照以下步骤使用运动增强数据集:

  1. 按照MA-rPPG Video Toolbox的说明生成运动增强数据集
  2. 在配置文件中将 DATA_AUG 参数设置为 'Motion'
  3. 运行相应的配置文件

运动增强示例

多任务学习

rPPG-Toolbox实现了BigSmall作为示例,展示了如何扩展工具

编辑推荐精选

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成热门AI工具AI图像AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具使用教程AI营销产品酷表ChatExcelAI智能客服
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

数据安全AI助手热门AI工具AI辅助写作AI论文工具论文写作智能生成大纲
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

热门AI工具AI办公办公工具智能排版AI生成PPT博思AIPPT海量精品模板AI创作
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

下拉加载更多