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 方法集成,并进一步提高它们的性能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云上攻防--云服务对象存储(域名接管)弹性计算(元数据泄露)

云上攻防–云服务&&对象存储(域名接管)&&弹性计算(元数据泄露) 目录标题 云上攻防--云服务&&对象存储(域名接管)&&弹性计算(元数据泄露)对象存储权限配置错误域名接管AK/SK泄漏: 弹性计算元数据泄露加固措施 对象存储 各个厂商对于…

第6章 网页布局

学习目标 熟悉网页布局,能够说明DIVCSS布局的含义。 掌握元素的浮动属性,能够为元素添加和清除浮动。 熟悉overflow属性的用法,能够设置不同的内容溢出状态。 掌握元素的定位属性,能够设置不同的定位模式。 了解元素的类型&am…

外汇天眼:Valdas Dapkus和Tradewale因零售外汇欺诈计划被判支付280万美元

美国衍生品市场监管机构商品期货交易委员会(CFTC)宣布,美国新泽西地区法院于11月28日发布了对位于伊利诺伊州的Valdas Dapkus的最终裁定默认令。5月4日,法院对Dapkus控制的两家实体——Tradewale LLC和Tradewale Managed Fund发布…

自动化测试po模式是什么?自动化测试po分层如何实现?

一、什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage:封装一些最基…

10、RabbitMQ高频面试题

1、你们项目中哪里用到了RabbitMQ RabbitMQ是我们项目中服务通信的主要方式之一 , 我们项目中服务通信主要有二种方式实现 : 通过Feign实现服务的同步调用通过MQ实现服务的异步通信 下面要结合自己的项目中功能来说两个地方 xxx xxx 2、为什么会选择使用RabbitMQ 我们项…

flutter 之proto

和嵌入式用proto协议来通信,以mac来演示 先在电脑上安装protobuf(在博主文章内容里面搜Mac安装protobuf),然后在桌面上放这几个文件,且build_proto_dart.sh文件内容如图所示 #!/bin/bashSCRIPT$(readlink -f "$0…

【数据结构】C语言实现双链表的基本操作

双链表及其基本操作的实现 导言一、单链表与双链表二、双链表类型的创建三、双链表的初始化四、双链表的创建五、双链表的遍历六、双链表的查找七、双链表的插入八、双链表的删除结语 导言 大家好,很高兴又和大家见面啦!!! 经过…

Spire.Office for Java 8.12.0

Spire.Office for Java 8.12.0 发布。在该版本中,Spire.XLS for Java支持检索使用WPS工具添加的嵌入图像;Spire.PDF for Java 增强了从 PDF 到 SVG、PDF/A1B 和 PDF/A2A 的转换。此外,该版本还修复了许多已知问题。下面列出了更多详细信息。 …

算法基础day1

归并排序模版 #include <iostream> using namespace std; int n; const int N 1e610; int q[N],tmp[N]; void merge_sort(int l,int r,int q[]){if(l>r) return;int mid lr>>1;merge_sort(l,mid,q);merge_sort(mid1,r,q);//归并的的过程int k0,il,jmid1;while(…

蔓灵花组织wmRAT攻击武器对比分析

概述 蔓灵花&#xff0c;又名"Bitter"、"APT-C-08"、"T-APT-17"以及"苦象"&#xff0c;常对南亚周边及孟加拉湾海域的相关国家发起网络攻击&#xff0c;主要针对巴基斯坦和中国两国。其攻击目标主要包括政府部门、核工业、能源、国防…

openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码

文章目录 openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码178.1 前提条件178.2 操作步骤 openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码 openGauss可以通过调用SQL函数&#xff0c;…

GLTF编辑器-位移贴图实现破碎的路面

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 位移贴图是一种可以用于增加模型细节和形状的贴图。它能够在渲染时针…

PCL 空间直角坐标转大地坐标(直接求解法C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 二、代码实现 由于此类坐标系的转换涉及到大坐标,PCL的float类型数据结构,无法保证数据精度,用…

彭涛:2023年终复盘,工作,团队,个人!

眨眼2023即将结束&#xff0c;2024即将开启&#xff0c;每年这个时候&#xff0c;都会简单总结下自己这一年&#xff0c;既是对今年的一个复盘和回顾&#xff0c;也是对新一年的向往和期待。 我的2023年&#xff0c;大概分为 「个人」&#xff0c;「家庭」&#xff0c;「团队」…

Qt篇——QwtPainter::drawPie绘制扇形

QwtPainter::drawPie(QPainter *painter, const QRectF &rect, int startAngle, int angle); 一、参数含义&#xff1a; painter&#xff1a; 重绘函数中的painter对象 rect&#xff1a; 要绘制扇形的圆的外切矩形。 startAngle: 要绘制的扇形的起始角 …

【Unity地形】使用地形工具创建场景环境-Terrain

如上图Unity的地形工具可以让我们实现创建复杂、丰富的3D室外环境。 我们创建地形很简单&#xff0c;在层级面板中右键-3Dobject-Terrain 就可以创建一个默认的地形模型&#xff01;这个模型是Unity内置的。 接下来的地形编辑功能全部集中在这个地形的组件上 主要功能如下&…

万物简单AIoT物联网平台快速开始

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 万物简单AIoT物联网提供一站式的AI物联网的学习平台&#xff0c;以及物联网SaaS私有化部署的解决方案。从终端硬件系统、云平台到APP前端的物联网能力&#xff0c;助力企业和开发者的设备具备1分钟快速上云的…

Matplotlib找不到Times New Roman的解决方案

问题背景 在使用seaborn或者matplotlib进行论文画图的时候&#xff0c;一般都会用Times New Roman这个字体&#xff0c;但是在Linux系统里&#xff0c;经常会遇到以下的问题: findfont: Font family [Times New Roman] not found. Falling back to DejaVu Sans. 也就是说找不…

实战14 权限处理

目录 1、权限处理后端接口 1.1 SpringSecurityConfig 1.2 在控制器中加入权限控制 2、前端页面按钮权限判断 2.1 保存权限字段 2.2 编写按钮权限判断 2.3 引入按钮权限判断脚本 2.4 按钮权限判断脚本使用 3、token过期处理 3.1 编写Store代码 3.2 编写刷新token新代码…