PulseGAN

研究背景

远程光电容积描记术 (rPPG) 是一种非接触式技术,用于测量面部视频中的心脏信号。健康监测和情绪识别等许多领域都迫切需要高质量的 rPPG 脉冲信号。然而,由于脉搏信号不准确的限制,现有的大多数rPPG方法只能用于获取平均心率(HR)值。

问题

基于深度学习的 rPPG 方法通常可以分为两种类型:端到端类型和特征解码器类型。前者直接建立视频帧到目标心率值或脉冲信号的映射关系,后者通过解码视频帧预处理后的潜在信息得到心率目标。自 2014 年生成对抗网络 (GAN) 提出,由于其最先进的性能,在图像处理和计算机视觉领域已成为主流的生成方法。 因此 rPPG 脉冲波形的提取也可以考虑从生成模型的角度来看。

方法

本文中提出了一个名为 PulseGAN 的新框架,以使用条件 GAN (cGAN) 提取 rPPG 脉冲信号。
整体架构

将 CHROM(CHROM 的原理基于皮肤光学反射模型,选择 CHROM 方法是因为它对运动伪影快速且稳定)导出的脉冲信号作为生成器 G 的输入,以脉搏血氧仪同步记录的 PPG 信号作为参考。判别器 D 从参考信号中判断生成的信号,其中 G 的脉冲信号输入作为条件。考虑到脉冲信号的明显特性,除了对抗性损失之外,并且本文还结合了时域中的波形误差损失和频域中的频谱误差损失,以强制生成波形与其参考之间的匹配。通过 G 和 D 之间的对抗训练,生成器学习构建一个接近真实心率的 rPPG 脉冲。

Acquisition of rough rPPG pulses

作者在论文中使用了第二类的深度学习方法,通过解码视频帧预处理后的潜在信息得到心率目标。于是在输入 PulseGAN 之前,使用一些常规方法获得粗略的 rPPG 脉冲信号。如果粗糙的 rPPG 脉冲与其参考脉冲足够接近,就可以显着简化 PulseGAN 的训练难度。

The PulseGAN framework

PulseGAN 由生成器 G 和判别器 D 组成。生成器 G 用于将粗略的 CHROM 信号 X 映射到接近参考 PPG 信号 Xc 的目标 rPPG 信号 G(X)。判别器 D 用于区分地面实况 Xc 和信号 G(X)。

GAN 的架构图

为了更好地配对输入和输出,作者参考条件 GAN 的方法,将其中输入 X 设置为判别器中的条件。因此,判别器的输入由 (G(X), X) 和 (Xc,X) 两个通道组成,判别器 D 对于输入 (G(X),X) 的情况下输出较低的分数,而输入为 (Xc,X) 则提供较高的分数。通过生成器和判别器之间的对抗学习不断学习PPG信号的特征,使得输出信号具有与参考PPG信号的分布一样接近的分布。

Loss function

由于脉冲信号具有清晰的时域和频域特征,作者定义了两个域的误差损失,以更好地指导发生器学习参考信号的特征。
生成器 G 的损失函数:
L G = 1 2 ( D ( G ( X ) , X ) − 1 ) 2 + λ ∣ ∣ X c − G ( X ) ∣ ∣ 1 + β ∣ ∣ X c f − G f ( X ) ∣ ∣ 1 L_G = \frac{1}{2}{(D(G(X),X)-1)^2+\lambda||X_c-G(X)||_1 + \beta||X_{cf}-G_f(X)||_1} LG=21(D(G(X),X)1)2+λ∣∣XcG(X)1+β∣∣XcfGf(X)1
判别器 D 的损失函数:
L D = 1 2 ( D ( G ( X ) , X ) ) 2 + 1 2 ( D ( X c , X ) − 1 ) 2 L_D = \frac{1}{2}{(D(G(X),X))^2+\frac{1}{2}{(D(X_c,X)-1)^2}} LD=21(D(G(X),X))2+21(D(Xc,X)1)2
L G L_G LG 的第一项是类似于最小二乘 GAN(LSGAN)的对抗性损失,第二项和第三项分别是在时域和频域中定义的波形损失和频谱损失。判别器的损失函数与 LSGAN 相同,它强制 D 区分生成信号和参考信号。
频谱损失中的 G f ( X ) G_f (X ) Gf(X) X c f X_{cf} Xcf 分别通过对 G ( X ) G(X) G(X) X c X_c Xc 的 1024 点快速傅里叶变换 (FFT) 计算得出。 ∣ ∣ ⋅ ∣ ∣ 1 ||·||_1 ∣∣1 表示 L1 范数。 λ 和 β 分别是波形损失和频谱损失的权重。生成器被强制通过最小化误差损失来学习时频特性。因此最终可以有效提高生成波形的质量。

总结

PulseGAN 是基于生成对抗网络框架设计的,在时间和频谱域中都定义了 Loss 损失。它以 CHROM 信号为输入,通过深度生成模型输出一个 rPPG 脉冲。并且作者表示这种架构也很容易与现有的基于深度学习的 rPPG 方法集成,并进一步提高它们的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AD域组策略

题目: 除manager 组和IT组,所有用户隐藏C盘;除manager 组和IT组,所有普通给用户禁止使用cmdIT01用户登陆域后,会自动增加驱动器X,该驱动器自动关联DC1的C:\tools文件夹;sales用户组的InternetE…

2023“信息安全管理与评估“---单机取证(高职组)

介绍: 竞赛有固定的开始和结束时间,参赛队伍必须决定如何有效的分配时间。请认真阅读以 下指引! (1)当竞赛结束,离开时请不要关机; (2)所有配置应当在重启后有效&#xf…

ESP32S3+HX8347+3线SPI运行LVGL例程

一、clone lv_port_esp32到本地 git clone https://github.com/lvgl/lv_port_esp32.git 二、增加hx8347.c、hx8347.h components\lvgl_esp32_drivers\lvgl_tft下新增2个文件:hx8347.c、hx8347.h。因为lv_port_esp32中没有hx8347的驱动,需要自己写。这两个…

1.2.0 IGP高级特性之FRR

理论部分参考文档:Segment Routing TI-LFA FRR保护技术 - 华为 一、快速重路由技术 FRR(Fast Reroute)快速重路由 实现备份链路的快速切换,也可以与BFD联动实现对故障的快速感知。 随着网络的不断发展,VoIP和在线视频等业务对实时性的要求越…

web:[BJDCTF2020]The mystery of ip(ssti模板注入、Smarty 模板引擎)

题目 进入页面显示如下 点击flag页面得到ip 点击hint页面 在hint.php的源代码页面中发现 由题目可以知道要从ip入手 这里尝试抓包加上X-Forwarded-For请求头修改为127.0.0.1 因为直接将127.0.0.1输出到页面,可以猜测是ssti模板注入 可以继续验证 这里发现输入什么…

【数据结构】八、查找

一、基本概念 静态查找:只查找,不改变集合内数据元素 动态查找:有则输出元素,无则添加元素 二、静态查找表 2.1顺序查找 在线性表、链表、树中依次查找 2.2折半查找(二分查找) 在有序的线性表中&…

HTML5 `<audio>` 面试题

HTML5 <audio> 面试题 什么是HTML5 <audio>元素&#xff1f; 元素是HTML5的音频播放器。它允许在网页中嵌入音频文件&#xff0c;并提供了控制音频播放的功能。 如何在HTML中嵌入音频文件&#xff1f; 使用 <audio> 元素&#xff0c;通过设置 src 属性指定…

获取PG库 database与 user 创建时间以及cluster初始化时间

代码实现 echo "获取数据库创建时间" data_dir$(psql -U postgres -d postgres -X -qAt -c "show data_directory" ) db_dirs$(ls $data_dir/base |grep -v pgsql_tmp) for db_oid in $db_dirs dodb_exists$(psql -U postgres -d postgres -X -qAt -c &qu…

macos下转换.dmg文件为 .iso .cdr文件的简单方法

为了让镜像文件在mac 和windows平台通用, 所以需要将.dmg格式的镜像文件转换为.iso文件, 转换方法也非常简单, 一行命令即可 hdiutil convert /path/to/example.dmg -format UDTO -o /path/to/example.iso 转换完成后的文件名称默认是 example.iso.cdr 这里直接将.cdr后缀删…

C#高级 08Json操作

1.概念 Json是存储和交换文本信息的语法。类似于XML。Json比XML更小、更快、更易解析。Json与XML一样是一种数据格式。Json是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。Json采取完全独立于语言的文本格式&#xff0c; 但是也使用了类似于C语言的习惯。这些特性使…

Kotlin基础语法

Kotlin基础语法 Kotlin内置数据类型变量可读可写变量可读变量 自动类型推导机制when表达式range表达式字符串模版函数函数定义函数简写默认参数具名函数参数Unit函数反引号函数匿名函数隐式返回函数作为形参函数引用函数作为返回值 可空性高级函数 let非空断言空合并操作符 高级…

Mac系统通过homebrew安装postgresql和postgis

花费了大概一天的时间安装postgresql和postgis&#xff0c;期间遇到了大量的坑&#xff0c;记录下来分享给大家&#xff0c;方便自己以后再次安装&#xff0c;也帮助别人踩坑 tip:我的系统是MAC ,通过homebrew安装的 最开始是通过homebrew安装了 postgresql13 &#xff0c;但…

2047过滤空格(C语言)

目录 一&#xff1a;题目 二&#xff1a;思路分析 三&#xff1a;代码 一&#xff1a;题目 二&#xff1a;思路分析 1.首先&#xff0c;这道题是一个字符串的问题&#xff0c;我们要先知道字符串存放在char类型的数组中的&#xff0c;并不是一个变量就可直接存放的下一个完整…

1.Linux快速入门

Linux快速入门 Linux操作系统简介Linux操作系统优点Linux操作系统发行版1. Red Hat Linux2. CentOS3. Ubuntu4. SUSE Linux5. Fedora Linux 32位与64位操作系统的区别Linux内核命名规则 Linux操作系统简介 Linux操作系统是基于UNIX以网络为核心的设计思想&#xff0c;是一个性…

云计算:OpenStack 配置云主机实例的存储挂载并实现外网互通

目录 一、实验 1. 环境 2.配置存储挂载 3.云主机实例连接外部网络&#xff08;SNAT&#xff09; 4.外部网络连接云主机实例&#xff08;DNAT&#xff09; 二、问题 1.云主机 ping 不通外部网络 2.nova list 查看云主机列表报错 3.nova list 与 virsh list --all有何区…

Go语言中的包管理工具之Go Modules的使用

GoLang 中常用的包管理的方式 常用的有三种 Go PathGo VendorGo Modules 关于 Go Modules 1 ) 概述 Go的包管理&#xff0c;经过社区和官方的共同努力下&#xff0c;最终在百家争鸣后Go官方在 2018.8 推出了go 1.11版本中的Go Modules&#xff0c;并且很快成为一统江湖的包…

python学习 21 excel分列

简单做了个模板&#xff0c;能干这个&#xff1a; 指定sheet中某列数据进行按需拆分&#xff0c;拆分后新建一个test的sheet&#xff0c;将数据分别存入test的不同列中。 import os import xlwings as xw import re #excel路径 pathrC:\Users\xxx\Desktop\123.xlsx#设置需要…

【代码随想录】刷题笔记Day42

前言 这两天机器狗终于搞定了&#xff0c;一个控制ROS大佬&#xff0c;一个计院编程大佬&#xff0c;竟然真把创新点这个弄出来了&#xff0c;牛牛牛牛&#xff08;菜鸡我只能负责在旁边喊加油&#xff09;。下午翘了自辩课来刷题&#xff0c;这次应该是元旦前最后一刷了&…

行车记录仪变清晰,变高清的办法一定要收藏

有时候我们会发现行车记录仪拍摄的视频不够清晰&#xff0c;特别是出现事故需要视频为证的时候&#xff0c;如果视频太模糊&#xff0c;很难获得交警的支持&#xff0c;那么如何让行车记录仪拍摄的视频变得更加清晰呢&#xff1f; 小编给大家分享几个办法&#xff0c;建议收藏…

Android实验:contentprovider 实验+SQLite 数据库的实现

目录 SQLite实验目的实验内容实验要求项目结构代码实现结果展示 SQLite SQLite 是一个开源的嵌入式关系数据库&#xff0c;实现了自给自足的、无服务器的、配置无需的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库系统不同&#xff0c;…