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.mfbz.cn/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新代码…
最新文章