Remote PPG 皮肤反射模型
一、 绪论引言
远程光体积描记术(RPPG)通过使用多波长RGB相机检测脉冲引起的人体皮肤表面细微的颜色变化,从而实现对人体心脏活动的非接触式监测。
近年来,已经提出了几种从视频中提取脉搏信号的核心rPPG方法。其中以De Haan团队做出的成果最为显著,他们团队提出或运用的方法包括:
1)盲源分离(BSS)(例如,基于主成分分析(PCA)的[2]和基于独立成分分析(ICA)的),它使用不同的标准将时间RGB轨迹分离成不相关或独立的信号源以恢复脉冲;
2)Chrom,它通过假设标准化的肤色来线性地组合色度信号以白平衡图像;
3)PBV,它使用不同波长的血量变化的特征来恢复脉冲;
4)2SR,它测量用于脉冲提取的皮肤像素空间子空间的时间旋转。
5)Pos, 肤色正交平面。
二、皮肤双反射模型
假设皮肤反射模型如下图:
并做如下假设:光源的光谱组成是恒定的,但强度是变化的,在相机处观察到的强度取决于光源到皮肤组织和相机传感器的距离。相机测量的皮肤有一种特定的颜色,这种颜色会随着时间的推移而变化,这是由于运动引起的强度/镜面反射的变化和脉冲引起的细微的颜色变化。这些时间变化与亮度强度水平成正比。
基于双反射模型,可以将记录图像序列中每个皮肤像素的反射定义为RGB通道中的时变函数,变化是由身体运动和脉动的血液引起的
C k ( t ) = I ( t ) ( v s ( t ) + v d ( t ) + v n ( t ) ) C_k(t)=I(t) (v_s(t)+v_d(t)+v_n(t)) Ck(t)=I(t)(vs(t)+vd(t)+vn(t))
Ck(t)表示第k个皮肤像素的RGB通道(即,按列排序);
I(t)表示吸收由于光源以及光源、皮肤组织和相机之间的距离变化而引起的强度变化的亮度强度级别;
I(t)由双反射模型中的两个分量调制:镜面反射vs(T)和漫反射Vd(T)。
vn(t)表示相机传感器的量化噪声。
假设镜面反射不包含任何脉动信息,则其光谱组成等同于光源
v s ( t ) = u s ( s 0 + s ( t ) ) v_s(t)=u_s (s_0+s(t)) vs(t)=us(s0+s(t))
us表示光谱的单位颜色向量,s0和s(t)分别表示镜面反射的静止和变化部分;
漫反射与皮肤组织对光的吸收和散射有关,皮肤组织中的血红蛋白和黑色素导致血管漫反射向量变化
v d ( t ) = u d ∗ d 0 + u p ∗ p ( t ) v_d(t)=u_d*d_0+u_p*p(t) vd(t)=ud∗d0+up∗p(t)
ud表示皮肤组织的单位颜色向量,d0表示静态反射强度,
up表示RGB通道中的相对脉动强度,p(t)表示脉冲信号
则镜面反射和漫反射的常量部分可以表示为静止皮肤反射的单个分量
c 0 ∗ u c = u s ∗ s 0 + u d ∗ d 0 c_0*u_c=u_s*s_0+u_d*d_0 c0∗uc=us∗s0+ud∗d0
带入到总反射公式,关键把变量和常量分离开来,得到
C k ( t ) = I 0 ( 1 + i ( t ) ) ∗ ( c 0 ∗ u c + u s ∗ s ( t ) + u p ∗ p ( t ) ) + v n ( t ) C_k(t)=I_0(1+i(t))*(c_0*u_c+u_s*s(t)+u_p*p(t))+v_n(t) Ck(t)=I0(1+i(t))∗(c0∗uc+us∗s(t)+up∗p(t))+vn(t)
只有p(t)与脉搏波相关,怎么从Ck得到p(t)?
三、已有但有缺陷的提取模型
对于相机噪声vn(t),如果皮肤像素足够多足够大,可以默认为常数,但是实验中常常只ROI,就不能视作常数,实验中可以通过空间滤波去除,或者直接取一块区域的灰度均值。得到一块区域的光强值后,拆开模型公式,光强可近似为:
C ( t ) = I 0 ( u c ∗ c 0 + u c ∗ c 0 ∗ i ( t ) + u s ∗ s ( t ) + u p ∗ p ( t ) ) C(t)=I_0(u_c*c_0+u_c*c_0*i(t)+u_s*s(t)+u_p*p(t)) C(t)=I0(uc∗c0+uc∗c0∗i(t)+us∗s(t)+up∗p(t))
us和up都是向量
BSS方法(ICA、PCA)
Y ( t ) = W ∗ C ( t ) Y(t)=W*C(t) Y(t)=W∗C(t)
其中Y(T)表示由脉冲和噪声组成的分解信号;
W表示可由PCA或ICA估计的分离矩阵。
PCA和ICA在估计W时具有不同的限制:
1)PCA使用RGB信号的协方差来估计W(即,特征向量),这要求脉冲和噪声的幅度的变化足够不同以确定特征向量方向;
2)ICA假设Y(T)中的分量在统计上是独立的并且对于导出W是非高斯的,这要求C(T)是能够进行统计测量的长信号。这可能会使分离变得更加困难,因为还可能包括不同的频率分量(如呼吸)。
重要的是!!!盲源分离技术是一般是基于概率及迭代方式实现特征值矩阵的获取,不适宜用于解决rPPG特定问题的独特和特征皮肤反射属性。
PBV/CHORM 方法
首先加一步消除常量的光强操作
C ( t ) ‾ = u c ∗ I 0 ∗ c 0 \overline{C(t)}=u_c*I_0*c_0 C(t)=uc∗I0∗c0
令 N ∗ C ( t ) ‾ = 1 N*\overline{C(t)}= 1 N∗C(t)=1,将C(t)转化为变量的集合
C ′ ( t ) = 1 ∗ ( 1 + i ( t ) ) + N ∗ u s ∗ I 0 ∗ s ( t ) + N ∗ u p ∗ I 0 ∗ p ( t ) C'(t)=1*(1+i(t))+N*u_s*I_0*s(t)+N*u_p*I_0*p(t) C′(t)=1∗(1+i(t))+N∗us∗I0∗s(t)+N∗up∗I0∗p(t)
C’(t)由三项构成,
1)强度: 1 ∗ ( 1 + i ( t ) ) 1*(1+i(t)) 1∗(1+i(t)) 表示沿时间归一化方向向量 1 的光强变化。通常是C(t)中最大分量。
2)镜面反射: N ∗ u s ∗ I 0 ∗ s ( t ) N*u_s*I_0*s(t) N∗us∗I0∗s(t) 表示沿缩放镜面反射方向的时间变化。自然光下,可以假设us=1
3)漫反射(脉搏): N ∗ u p ∗ I 0 ∗ p ( t ) N*u_p*I_0*p(t) N∗up∗I0∗p(t) ,RGB通道中G>B>R。
这两种方法都将C(t)的直流信号去除掉提取脉冲。定义为:
C n ( t ) ˉ = C n ( t ) − 1 = 1 ∗ i ( t ) + N ∗ u s ∗ I 0 ∗ s ( t ) + N ∗ u p ∗ I 0 ∗ p ( t ) \bar{C_n(t)}=C_n(t)-1=1*i(t)+N*u_s*I_0*s(t)+N*u_p*I_0*p(t) Cn(t)ˉ=Cn(t)−1=1∗i(t)+N∗us∗I0∗s(t)+N∗up∗I0∗p(t)
PBV
将C(t)投影到Z方向,
p ( t ) ^ = C n ( t ) ˉ . T ∗ z = k ∗ p ( t ) \hat{p(t)}=\bar{C_n(t)}.T*z=k*p(t) p(t)^=Cn(t)ˉ.T∗z=k∗p(t)
k是个比例因子。
假设p(t)与其他信号源不相关, E [ p ( t ) ∗ i ( t ) ] = E ( p ( t ) ∗ s ( t ) ) = 0 E[p(t)*i(t)]=E(p(t)*s(t))=0 E[p(t)∗i(t)]=E(p(t)∗s(t))=0
可以得到信号的期望
E ( C n ( t ) ^ ∗ p ( t ) ) = E ( C n ( t ) ˉ ∗ C n ( t ) ˉ . T ∗ z ) = k ∗ N ∗ I 0 ∗ u p ∗ E ( p ( t ) ∗ p ( t ) ) = u p v b ∗ k ∗ E ( p ( t ) 2 ) E(\hat{C_n(t)}*p(t))=E(\bar{C_n(t)}*\bar{C_n(t)}.T*z)= k*N*I_0*u_p*E(p(t)*p(t))=u_{pvb}*k*E(p(t)^2) E(Cn(t)^∗p(t))=E(Cn(t)ˉ∗Cn(t)ˉ.T∗z)=k∗N∗I0∗up∗E(p(t)∗p(t))=upvb∗k∗E(p(t)2)
z = E ( ( C n ( t ) ˉ ∗ C n ( t ) ˉ . T ) − 1 ∗ u p v b ∗ k ∗ E ( p ( t ) 2 ) z=E(\bar{(C_n(t)}*\bar{C_n(t)}.T)^{-1}*u_{pvb}*k*E(p(t)^2) z=E((Cn(t)ˉ∗Cn(t)ˉ.T)−1∗upvb∗k∗E(p(t)2)
推出
z ∝ = E ( ( C n ( t ) ˉ ∗ C n ( t ) ˉ . T ) − 1 ∗ u p v b z\propto=E(\bar{(C_n(t)}*\bar{C_n(t)}.T)^{-1}*u_{pvb} z∝=E((Cn(t)ˉ∗Cn(t)ˉ.T)−1∗upvb
对于RGB通道,基于卤素灯和UI-2220SE-C相机的光学RGB滤光片的条件。
upvb为[0.33,0.77,0.53]
PBV有一个明显的优点:当投影的假设成立时,估计的投影轴对于脉冲恢复是最优的。然而缺点在于,它有两个限制。首先,矩阵的秩小于3时,解不存在。在奇异或接近奇异的情况下,所获得的z是噪声驱动的,并且对于秩=1的情况下,所有z都是有效解。这是模型中I(T)=s(T)=0的典型情况,也就是说,皮肤是在没有变形的完美条件下测量的。其次,为了正确地抑制噪声,需要对血容量脉冲矢量有准确的了解,即当upbv!=N·I0·up时,投影质量下降。算法的结果对PBV的特定参数设置很敏感,而PBV又由特定的记录设置定义(并因此受限于),具体取决于光谱和相机传感器。
CHORM
与PBV的去常量信号的解决方案不同,Chrom选择在估计投影方向时引入灵活性,并降低对用于脉冲提取的先验知识的敏感性。它首先通过消除镜面反射分量来降低分离任务的维数。由于仅考虑色度信号来实现,我们将其描述为˜Cn(t)在与镜面变化方向正交的平面上的投影。为了在不考虑照明颜色的情况下实现正确的功能,该方法采用标准化的肤色向量,这使得能够实现图像的自动白平衡。因此,我们将标准化肤色向量和相关联的映射矩阵定义为
M − 1 ∗ u s k i n = 1 M^{-1}*u_{skin}=1 M−1∗uskin=1
uskin表示白光下的3*1维平均肤色向量
M表示对角映射矩阵,将Cn(t)表示为:
M ∗ C n ˉ ( t ) = M ∗ 1 ∗ i ( t ) + M ∗ N ∗ u s ∗ I 0 ∗ s ( t ) + M ∗ N ∗ u p ∗ I 0 ∗ p ( t ) M*\bar{C_n}(t)=M*1*i(t)+M*N*u_s*I_0*s(t)+M*N*u_p*I_0*p(t) M∗Cnˉ(t)=M∗1∗i(t)+M∗N∗us∗I0∗s(t)+M∗N∗up∗I0∗p(t)
其中在白光下将时间归一化肤色映射到假定的标准肤色。镜面反射矢量N·us·I0被近似映射到白光的方向
M ∗ N ∗ u s ∗ I 0 = k ∗ 1 M*N*u_s*I_0=k*1 M∗N∗us∗I0=k∗1
k是系数,将M*C(t)投影到与1正交的平面,独立于镜面反射变化(肤色矫正后)
S ( t ) = P c ∗ M ∗ C n ˉ ( t ) = P c ∗ M ∗ 1 ∗ i ( t ) + P C ∗ M ∗ M ∗ u p ∗ I 0 ∗ p ( t ) S(t)=P_c*M*\bar{C_n}(t)=P_c*M*1*i(t)+P_C*M*M*u_p*I_0*p(t) S(t)=Pc∗M∗Cnˉ(t)=Pc∗M∗1∗i(t)+PC∗M∗M∗up∗I0∗p(t)
Pc是2*3的矩阵,它由成行的投影轴组成,在时间归一化的RGB空间中定义一个平面。
这样的投影矩阵具有吸引人的特性:它在S(T)中产生两个投影信号,其中运动诱导/脉冲诱导的变化出现在同相/反相。经过“alpha调谐”
p ^ ( t ) = S 1 ( t ) − α ∗ S 2 ( t ) \hat{p}(t)=S_1(t)-\alpha*S_2(t) p^(t)=S1(t)−α∗S2(t) 且 α = σ ( S 1 ) / σ ( S 2 ) \alpha=\sigma(S_1)/\sigma(S_2) α=σ(S1)/σ(S2)
其中σ(·)表示标准偏差运算符,并且Si表第i个投影信号。当脉动成分占主导地位时,S1和S2是反相的,因此以一种创造性的方式相加,即 p ( t ) ≈ 2 ⋅ S 1 ( t ) ∝ p ( t ) p(t)≈2·S_1(t)∝p(t) p(t)≈2⋅S1(t)∝p(t)。当运动诱导的扰动占主导地位时,(27)将同相运动分量抵消到近似p(T)。只有当运动诱导分量和脉冲诱导分量的强度达到平衡时,ˆp(T)才是p(T)的次优估计。Chrom的强大之处在于它对非白色照明具有一定的稳健性。然而,在真实视频内容中测量的镜面反射分量N·us·I0必须由假设的标准化肤色矢量uskin补偿。否则,它将在投影信号中显示镜面残差.
Data-Driven
最近开发的2SR方法创建了一个与受试者相关的肤色空间,并跟踪色调随时间的变化来测量脉搏,其中瞬时色调是基于图像域中皮肤像素的统计分布来确定的。使用色调作为脉冲提取的基本参数的概念。由于色调驱动测量,因此该方法在早期固有地抑制了所有强度变化。从这个意义上说,2SR类似于下一节介绍的方法,即在时间归一化的RGB空间中定义一个正交于1的投影面来提取脉冲。然而,2SR构建的子空间轴完全是数据驱动的,没有生理考虑。在实践中,当空间测量不可靠时(即蒙皮蒙版是否有噪声或选择不当),这意味着测量存在问题。
四、肤色正交平面模型
Remote PPG 皮肤反射模型相关推荐
- The Way to my Heart is through Contrastive Learning:Remote PPG from Unlabelled Video
前言 与PPG相比,rPPG信号非常细微,人眼难以感知.但如果知道信号活跃的区域在哪里,我们就可以在数字图像中将它们提取和放大,通过从网络摄像头拍摄的视频中发现这些信号,并使用它们来估计心脏活动.如图 ...
- ASP.NET Core MVC 中的模型验证
数据模型的验证被视为是数据合法性的第一步,要求满足类型.长度.校验等规则,有了MVC的模型校验能够省却很多前后端代码,为代码的简洁性也做出了不少贡献. 原文地址:https://docs.micros ...
- 语音后验图特征PPG(Phonetic Posteriorgram)特征简介
最近有个数字人的项目,接触了下后验图PPG这个特征. 简介 PPG的全称是 phonetic posteriorgrams,即语音后验概率,PPG是一个时间对类别的矩阵,其表示对于一个话语的每个特定时 ...
- rPPG算法简述(一) 2021-08-30
远程PPG(rPPG)算法原理简述(论文:Algorithmic Principles of Remote-PPG) 文章目录 远程PPG(rPPG)算法原理简述(论文:Algorithmic Pri ...
- 远程光电容积脉搏波描记法(rPPG)
远程光电容积脉搏波描记法(remote photoplethysmography,rPPG)是指通过摄像头等传感器来捕捉由心动周期造成的皮肤颜色周期性变化的技术.利用rPPG技术可以提取血液体积脉冲信 ...
- 2020-4-24 Open Web Application Security Project (OWASP)
英文 中文 The Open Web Application Security Project (OWASP) is a nonprofit foundation that works to impr ...
- 【论文翻译】-- Clipper: A Low-Latency Online Prediction Serving System
NSDI2017文章. Clipper:一个低延迟在线预测服务系统. 翻译内容不见得是逐词或逐句翻译,很多是个人理解着翻译的,有不合适的地方欢迎评论指出. 本文内容涉及体系结构&机器学习.本人 ...
- 算法平台在线服务体系的演进与实践
图灵平台是美团配送技术团队搭建的一站式算法平台,图灵平台中的在线服务框架--图灵OS主要聚焦于机器学习和深度学习在线服务模块,为模型和算法策略的线上部署和计算提供统一的平台化解决方案,能够有效提升算法 ...
- 【可穿戴算法开发】-基于PPG信号的血氧与血压检测模型
文章目录 1.血氧检测方法 (1) 测量原理 0 检测原理 (2)标定试验 (3)基于线性回归的特征值R提取算法 (4)基于移动平均的特征值提取算法 2.血压监测方法 (1)原理 (2)计算公式 3. ...
最新文章
- 容器管理大战:Kubernetes vs.Docker Swarm与Amazon ECS
- Ubuntu Server中安装keepalived
- Python函数(2)
- MyBatis-学习笔记05【05.使用Mybatis完成CRUD】
- winform在表格中输入一个完整的时间字段_B端交互组件之表格篇
- 人工智能之知识图谱-学习笔记
- [MEGA DEAL]专家级Java捆绑包新手(96%)
- 编译错误 错误:PL/SQL: ORA-00932: 数据类型不一致: 应为 DATE, 但却获得 NUMBER 行
- 机器学习面试问题大概梳理(转)
- Python中lambda表达式的常见用法
- 基于Matlab高斯光束菲涅耳衍射的模拟
- 白话区块链 之 12 - 未花费事务输出 (UTXO) 是什么?
- java表白我爱你代码_微信翻译代码我爱你怎么写 微信翻译表白代码大全
- 2 spss 统计绘图与线性回归
- Vijos P1008 篝火晚会
- ionic3 生命周期方法
- Matlab2020a安装
- 解决Eclipse中无法直接使用sun.misc.BASE64Encoder及sun.misc.BASE64Decoder的问题
- 菜鸟学堂:新手应该掌握的Linux命令(转)
- color 透明度对照表