【成像光敏描记图提取和处理】成像-光电容积描记-提取-脉搏率-估计(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

一、技术原理与生理学基础

1. IPPG的定义与核心机制

2. IPPG与传统PPG的关联与差异

二、IPPG信号提取与处理流程

1. 信号提取关键技术

2. 信号预处理与降噪

3. 脉搏率估计方法

三、噪声抑制与鲁棒性提升

1. 主要噪声源

2. 先进噪声抑制技术

3. 运动补偿策略

四、多模态融合与前沿应用

1. 多模态信号融合

2. 创新应用场景

五、挑战与未来方向

结论

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、文献下载


💥1 概述

摘要:
对于人类和非人类灵长类动物来说,心率是反映个体当前生理状态的可靠指标,其应用范围从健康检查到认知和情绪状态的实验研究。在人类中,皮肤组织的光学特性的变化与心动周期(成像光电容积描记图,iPPG)相关,可以通过其代理脉搏率进行非接触式心率估计。然而,目前还没有一种既定的简单且非侵入性的技术用于清醒和有行为的动物的脉搏率测量。我们使用iPPG证明,可以从面部视频中准确估计恒河猴的脉搏率。我们从四只清醒的头部稳定的恒河猴的八段彩色面部视频中计算了iPPGs。根据iPPGs估算的脉搏率与接触式脉搏血氧计的参考数据非常一致:在83%的时间段内,脉搏率估算的误差低于个体平均脉搏率的5%;在98%的时间段内,误差低于10%。我们得出结论,iPPG允许非侵入性和非接触式估计非人类灵长类动物的脉搏率,这对于生理学研究很有用,可用于研究中的非人类灵长类动物的福利评估。

多步iPPG处理结果可实现更好的脉搏率估计在这项研究中,我们使用了一种多步骤的iPPG信号处理方法。为了证明这一点所有步骤对于脉搏率估计的质量都很重要,我们省略了某些处理步骤来估计脉搏率。这些估计的平均质量指标如所示如表6所示,可以看出只有滤波器的组合才能提高脉搏率估计。iPPG提取方法的比较迄今为止报告的所有结果都是使用G-R方法[42]进行iPPG提取获得的。我们有此外,根据CHROM [22]和POS提取的iPPG信号估计脉搏率[24]方法(iPPG处理与G-R方法相同)。图7显示G-R和POS方法的性能非常相似。CHROM的性能可能更差由于它是基于人类皮肤模型[24]的,因此需要进行额外的研究需要调整它以用于NHP中的iPPG提取。运动对iPPG质量的影响虽然我们在这里考虑了头部稳定的猴子的iPPG提取,但我们的研究对象表现出相当多的面部动作。图8说明了它们的负面影响关于iPPG提取质量:在一个时期内运动越显著,质量越低
提取的iPPG的质量。 

心率是人类、非人灵长类动物(NHP)[1-3]和其他动物[4,5]的功能状态和心理情绪状态的重要指标。测量心率最常用、最直接的工具是心电图(ECG)[6]。心电图采集需要应用多个皮肤电极,即使对于人类受试者来说,这也不总是可能的[7]。NHP的心电图采集很复杂,因为传统的ECG电极需要剃光皮肤,而清醒的动物不容易容忍皮肤附着,除非经过大量训练。因此,NHP的心电图要么从镇静的动物身上采集[6,8,9],要么通过植入遥测装置并结合高度侵入性的体内传感器[10-12]。对于从非镇静的猴子身上采集非侵入性心电图,可以使用可穿戴夹克[1,13,14],但这在准备动物时也需要大量的训练和身体接触,这可能会影响生理状态。

如果感兴趣的是心率,而不是其他心电图参数,光电容积脉搏波图(PPG)是一种低成本的心电图替代方案。PPG利用皮肤反射的光的变化,这与皮肤组织微血管床中血容量的变化有关[15]。PPG可以非常准确地估计脉搏率[16-18]。对于许多应用而言,脉搏率是心率的充分代表,严格来说,后者只能通过直接的心脏测量(如心电图)来评估。传统的PPG仍然需要接触式传感器,该传感器包括用于照亮皮肤的光源和用于测量反射光强度变化的光电探测器,例如用于医用脉搏血氧计。

有人提出将成像光电容积脉搏图(iPPG)作为人类传统PPG的远程和非接触式替代方案[19-21]。iPPG是在专用[19,22-24]或环境[21,25]光下使用摄像机而不是光电探测器获得的。视频通常从手掌或面部区域录制[21-25]。

初步研究表明,有可能从麻醉动物(特别是猪)中提取iPPG[26,27]。由于iPPG可以轻松、无创地估计脉搏率,因此该技术对NHP研究非常有用。如果适用于非镇静和行为动物,例如,它可能有助于研究中所使用的NHP的福利。据我们所知,没有尝试从NHPs中获取iPPG。在本文中,我们展示了从NHP面部视频中提取iPPG,并提供了第一个经验证据,证明可以从iPPG中成功估计恒河猴的脉搏率。

一、技术原理与生理学基础

1. IPPG的定义与核心机制

IPPG(Imaging Photoplethysmography)是一种基于视频的非接触式生理信号检测技术,通过普通摄像头捕捉人体皮肤表面的微弱光强变化,提取与心脏搏动相关的血液容积脉动信息。其原理基于以下生理过程:

  • 血红蛋白的光吸收特性:血液中的血红蛋白对特定波长光(如绿光)具有选择性吸收,当心脏收缩时动脉血容积增大,吸收增强导致反射光强度减弱;舒张期则相反。
  • 朗伯-比尔定律(Lambert-Beer Law) :光强衰减与介质浓度(血红蛋白)及光程呈指数关系:
  • 绿光通道的优越性:绿光(530–590 nm)因在皮肤中的穿透深度浅(<1 mm),主要与毛细血管交互,对血容积变化敏感,信噪比显著高于红、蓝通道。
2. IPPG与传统PPG的关联与差异
特性接触式PPG非接触式IPPG
测量方式透射式/反射式(需贴肤传感器)视频成像(无需接触)
信号源深层动脉(透射)或浅表血管(反射)毛细血管与浅表微循环
适用场景指端、耳垂等局部位置面部、手臂等大面积皮肤区域
抗干扰性易受运动伪影影响需应对光照变化及头部运动
扩展性单点测量空间分辨能力(可映射区域脉搏率)

IPPG是PPG技术的非接触式演进,由Schmitt于2000年首次提出,通过空间像素分析取代单点光电传感器。


二、IPPG信号提取与处理流程

1. 信号提取关键技术
  1. 感兴趣区域(ROI)选择

    • 基于人脸关键点(如眼角、嘴角)定位面部皮肤区域,优先选择前额、脸颊等血管丰富区域。
    • 运动补偿:采用光流法或特征点跟踪抵消头部微小运动。
  2. 信号分离算法

    • 盲源分离(ICA) :将RGB三通道信号分解为独立成分,选取频谱峰值在0.8–2.5 Hz(对应48–150 BPM)的成分作为脉搏信号。
    • 色度模型(CHROM) :利用血液与皮肤的光吸收差异构建信号模型,抑制光照干扰:
    • 相位振动分解:提取心跳引起的皮肤微振动相位,增强运动鲁棒性。
2. 信号预处理与降噪
  • 时域滤波
    • 切比雪夫II型带通滤波器(0.5–8 Hz)去除基线漂移与高频噪声。

    • 自适应滤波器(如LMS)抑制周期性运动伪影。
  • 频域处理
    • 小波变换(如Daubechies基)分离噪声与有效成分。
    • 快速傅里叶变换(FFT)结合功率谱密度(PSD)分析,提取主频心率。

3. 脉搏率估计方法
方法原理优势局限
峰值检测定位PPG波形收缩峰,计算峰间期(IBI)实时性高,硬件需求低易受噪声干扰
频域主导峰FFT频谱中0.8-2.5 Hz最高峰对应心率抗波形畸变能力强分辨率受窗口长度限制
深度学习端到端3D CNN直接输入视频帧输出心率自动学习特征,适应复杂环境需大量标注数据训练

示例:3D CNN模型通过时空特征融合,在UBFC数据集上实现平均绝对误差<5 BPM。


三、噪声抑制与鲁棒性提升

1. 主要噪声源
  • 光照变化:环境光强波动导致像素值漂移。
  • 运动伪影:头部移动或面部表情变化引入干扰。
  • 设备噪声:摄像头采样噪声与压缩失真。
2. 先进噪声抑制技术
  • 空间自适应小波滤波:根据局部图像统计特性动态调整阈值,保留边缘同时抑制散斑噪声,SNR提升>7 dB。
  • 区间二型模糊系统:处理光学相干断层扫描(OCT)中的不确定性,SNR提升10 dB且边缘模糊度低。
  • 多光谱融合:结合RGB与近红外(NIR)通道,利用血红蛋白吸收谱差异增强信号。
3. 运动补偿策略
  • 惯性传感器辅助:融合加速度计数据校正头部运动轨迹。
  • 贝叶斯融合框架:联合视频光信号与运动信号,心率覆盖率从25%提升至84%。

四、多模态融合与前沿应用

1. 多模态信号融合
  • ECG+IPPG:卡尔曼滤波器融合心电R波与IPPG脉搏波,提升心律失常检测鲁棒性。

  • 呼吸率联合估计:从IPPG信号中分离0.08–0.5 Hz频段(呼吸调制成分),结合胸腔运动视频实现双参数监测。
2. 创新应用场景
  • ICU重症监护:非接触监测危重患者血压与血氧趋势,减少传感器接触感染风险。
  • 精神压力检测:通过心率变异性(HRV)分析压力状态,分类准确率>90%。
  • 车载健康监测:驾驶员实时心率预警系统,结合人脸跟踪与运动补偿。

五、挑战与未来方向

  1. 现存挑战

    • 光照敏感性:低光照或强阴影场景信号质量骤降。
    • 深肤色适应:黑色素对蓝绿光吸收干扰信号提取。
    • 计算复杂度:实时处理高清视频需优化算法效率。
  2. 突破方向

    • 多波长IPPG:结合紫外/红外波段提升血氧饱和度(SpO₂)估计精度。
    • 端到端轻量化模型:压缩3D CNN参数量,适配嵌入式设备(如智能手机)。
    • 联邦学习:跨设备数据协作训练,解决数据稀缺与隐私问题。

结论

IPPG技术通过将传统PPG的光学原理与计算机视觉结合,实现了无接触、高空间分辨的生理监测。其在脉搏率估计领域的成熟依赖于信号分离算法(如CHROM模型)、噪声抑制技术(自适应小波滤波)及多模态融合策略的协同优化。未来随着多光谱成像与边缘计算的发展,IPPG有望成为远程医疗、智能穿戴及情绪识别的核心传感技术。

📚2 运行结果

部分代码:

%number of frames nearest to the fftWindow/2 and corresponding to integer number of seconds in video
DFT_WINDOW_SHIFT = [ 510, 510, 500, 1000, 500, 500, 500, 500, 510, 1000, 500];                     

finalPPG = cell(nFile, 1);

shareErrorBelow3p5BPM = cell(nFile, 1);
shareErrorBelow7BPM = cell(nFile, 1);
corrCoef = cell(nFile, 1);
meanError = cell(nFile, 1);
rmse = cell(nFile, 1);
stdError = cell(nFile, 1);
snr = cell(nFile, 1);
corrPvalue = cell(nFile, 1);

%variables for motion estimation
nBins = {6,8,6,4,6,4,8,6,1,1,1};  % optimal number of bins for computing SNR (selected based on estimation errors)
motionData = cell(nFile, 1);
errorForMotion = cell(nFile, 1);
startPosForMotion = cell(nFile, 1);
endPosForMotion = cell(nFile, 1);
dFreqMotion = cell(nFile, 1);

nSubject = length(unique(SUBJECT_INDEX));
subjectHRtrue = cell(nSubject, 1);
subjectHRestimate = cell(nSubject, 1);
subjectSessionIndex = cell(nSubject, 1);
  
hrTrue = cell(1, nFile);
hrEstimated = cell(1, nFile);
xt = cell(1, nFile);

% estimate pulse rates for the dataset and evaluation of estimates' performance 
for iFile = 1:nFile
  % set iPPG parameters for each file

%number of frames nearest to the fftWindow/2 and corresponding to integer number of seconds in video
DFT_WINDOW_SHIFT = [ 510, 510, 500, 1000, 500, 500, 500, 500, 510, 1000, 500];                     

finalPPG = cell(nFile, 1);

shareErrorBelow3p5BPM = cell(nFile, 1);
shareErrorBelow7BPM = cell(nFile, 1);
corrCoef = cell(nFile, 1);
meanError = cell(nFile, 1);
rmse = cell(nFile, 1);
stdError = cell(nFile, 1);
snr = cell(nFile, 1);
corrPvalue = cell(nFile, 1);

%variables for motion estimation
nBins = {6,8,6,4,6,4,8,6,1,1,1};  % optimal number of bins for computing SNR (selected based on estimation errors)
motionData = cell(nFile, 1);
errorForMotion = cell(nFile, 1);
startPosForMotion = cell(nFile, 1);
endPosForMotion = cell(nFile, 1);
dFreqMotion = cell(nFile, 1);

nSubject = length(unique(SUBJECT_INDEX));
subjectHRtrue = cell(nSubject, 1);
subjectHRestimate = cell(nSubject, 1);
subjectSessionIndex = cell(nSubject, 1);
  
hrTrue = cell(1, nFile);
hrEstimated = cell(1, nFile);
xt = cell(1, nFile);

% estimate pulse rates for the dataset and evaluation of estimates' performance 
for iFile = 1:nFile
  % set iPPG parameters for each file

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、文献下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值