面部视频非接触式生理参数感知
2022-03-29嵇晓强刘振瑶李炳霖李贵文粟立威
嵇晓强,刘振瑶,李炳霖,饶 治,李贵文,粟立威
(长春理工大学 生命科学技术学院,吉林 长春 130022)
1 引 言
心率、呼吸率、血氧饱和度(Oxygen saturation,SpO2)作为衡量人体生理状况的重要生理信号,是心血管疾病预防及临床诊断的重要指标[1-3],目前常用的测量手段通常是接触式,不适用于疫情等对接触测量有限制的场合,而且在小儿重症监护病房和烧伤烫伤患者中使用更容易引发交叉感染。
近年来,通过视频对人体生理各项参数进行非接触测量受到了广泛关注。视频非接触式检测原理基于血液中的血红蛋白对光具有吸收作用[4],且吸收量与血红蛋白浓度成正比。随着心脏的跳动,血红蛋白浓度随血管内血液容积发生周期性改变,其反射光的强度也呈现周期性改变,表现为皮肤表面微弱的颜色变化,通过分析检测到的这种颜色变化,便可直观地监测心脏的跳动周期。
2014年,Tarassenko等人[5]使用一台高质量的摄像机,在1 m远的位置对患者进行长时间拍摄,通过自回归模型和极点消除的方法估算患者的心率、呼吸频率和SpO2。2015年,Bal Ufuk[6]用双树复小波变换的去噪算法从人脸视频图像中获取了受试者的心率和SpO2。2018年,Casalino Gabriella等人[7]通过装有摄像头的镜子,采集人体面部视频,使用光电容积描记术处理视频帧,估算出人体心率、呼吸频率和SpO2。同年,荣猛等人[8]借助CCD相机在环境光下对人脸进行视频拍摄,通过视频进行处理后得到的脉搏波信号计算心率、呼吸频率及SpO2等相关参数的值。2020年,李晓媛等人[9]使用普通摄像头采集志愿者的人脸视频图像,通过颜色空间转换提取出Cg通道的光电容积脉搏波信号,利用 Morlet复小波作为母波绘制出信号的小波能量谱,从而计算随时间变化的心率参数;Luguern Duncan等人[10]通过使用连续小波变换获取了最大化信噪比的呼吸信号,以此获得12名成人志愿者的呼吸频率;Rahman Hamidur等人[11]利用RGB和IR相机同时记录受试者的10 min面部视频,通过多感兴趣区域(Region of Interest,ROI)选择方法和改进的最小均方自适应滤波器算法提取出受试者的心率、节拍间隔、心率变异性和SpO2。2021年,戴阳等人[12]使用网络摄像头,利用欧拉放大技术对人脸视频的色度信息进行放大,借助盲源分离等方法提取出远程光电容积描记信号进而估算出心率值。
目前,基于视频的非接触生理参数检测存在的问题一是采集设备过于复杂,采集时间相对较长,限制了日常生活的应用;二是检测的生理参数相对单一。针对以上问题,本文选取经过欧拉放大技术处理后视频中人脸的鼻子附近区域作为感兴趣区域,提取出高质量的成像式光电容积(Imaging photoplethysmography,IPPG)脉搏波源信号,设计了基于小波变换(Wavelet Transform,WT)-主成分分析(Principal Component Analysis,PCA)-盲源分离(Blind Source Separation, BSS)的信号处理方法,估算出受试者在一段时间内的心率、呼吸率、SpO2均值。最后,本文从两个角度验证了所提算法性能:一方面将本文估算结果与其他文献方法的计算结果进行对比;另一方面分析了不同光照场景下的估算结果,与标准仪器测量结果间的一致性。
2 生理参数估算模型
2.1 面部视频图像处理
生理参数估算模型主要分为面部视频图像处理、IPPG源信号处理和非接触式生理参数结果估算3部分,其中面部视频图像处理流程如图1所示。
图1 视频图像处理流程图Fig.1 Flow chart of video image processing
面部视频图像处理首先将录制的人脸面部视频(图1(a))进行欧拉视频放大处理(图1(b)),旨在对心跳引起的微弱颜色变化进行放大[13-15],以放大前、后绿色通道获取的IPPG源信号为例,如图2所示(彩图见期刊电子版),从图中可以看出经过欧拉视频放大后人体面部颜色信息的变化被明显放大,信号幅度相对放大前明显升高。为去除视频图像的背景噪声,使用人脸检测器框选出人脸区域(图1(c));由于鼻子及其附近的脸颊区域毛细血管旺盛,不受到眨眼、抿嘴等不自主动作的影响,所以本文选取该区域作为最后提取IPPG源信号的ROI(图1(d))[16];最后,将ROI内R、G、B颜色通道分离,对各通道内像素强度进行平均得到三通道的IPPG源信号。
图2 放大前、后IPPG源信号对比Fig.2 Comparison of IPPG source signals before and after amplification
2.2 基于WT-PCA-BSS算法的IPPG源信号去噪
经区域均值后获得的一维IPPG源信号通常还包含由体温调节、自主神经系统调节引起的不自主的运动而造成的低频噪声,所以为了获取信噪比高的信号,需要进行去噪处理。本文提出了一种“小波变换-主成分分析-盲源分离”相结合的去噪算法,其流程如图3所示。
图3 IPPG源信号处理流程图Fig.3 Flow chart of IPPG source signal processing
本文选取db8小波基对三通道IPPG源信号进行分解去噪,不同的分解尺度对应不同的频带分解,选择分解尺度的原则是在该尺度下处理后既能有效减少噪声又能尽量保留有用信息[17-18]。由于普通手机的成像帧频为30 Hz,则IPPG源信号的频率范围为0~15 Hz,对IPPG源信号进行6层小波分解,脉搏波信号和呼吸信号主要集中在CD3、CD4、CD5、CD6频带范围内。
接下来对集中脉搏波信号和呼吸信号频段的各层分解分量进行PCA主成分提取[19],这里保留贡献率大于90%的成分[20-21],如图4所示,经PCA降维后分量数量降为3个。PCA运算大致可以归纳为以下步骤(假设有m条n维数据):
(1)将原始数据按列组成n行m列矩阵X。
(2)将X的每一行进行中心化处理,Xi←。
(3)计算协方差矩阵XXT。
(4)求出协方差矩阵的特征值及对应的特征向量。
(5)将特征向量按对应特征值大小从上到下按行排序,选择其中最大的k个。提取其对应的k个特征向量组成特征向量矩阵W。
(6)Y=WX即为降维到k维后的数据。
图4 PCA降维后各成分信号Fig.4 The signal of each component after PCA dimensionality reduction
最后,对PCA主成分提取出的3个分量采用盲源分离和FASTICA算法从3个分量中分离出独立信号s1(t)、s2(t)、s3(t),如图5所示,从图中可以看出,经过FASTICA处理,s3(t)独立成分相比较其他两个独立成分信号更加平滑。
图5 盲源分离出的独立源信号Fig.5 Independent source signal separated by a blind source
由于个体信号存在差异性,为了适应不同的信号情况,本文使用标准化的选取方式对独立成分进行提取。即:将各分离信号与PCA贡献率最大的成分进行相关性分析,提取出相关系数最大的独立成分作为下一步计算的独立分量。使用皮尔森相关系数来分别计算s1(t)、s2(t)、s3(t)与PCA贡献率最大的成分的相关系数,计算公式为
其中,r表示皮尔森相关系数,r越大,表明两者越相关,n为 样本数量,Xi、Yi表示第i个 样本,X、Y为样本均值,SX、SY为样本标准差。相关系数大,说明两者线性相关程度更大,因此本文选取最大相关系数所对应的独立成分作为估算心率、呼吸率、SpO2的分解源信号。
2.3 非接触式心率、呼吸率、血氧饱和度估算
2.3.1 心率值估计
研究发现[22],含氧血红蛋白吸收绿色光的能力超过红色,且绿光的穿透能力比蓝光更强,所以本文选用绿色通道处理后的信号进行心率和呼吸率的估计。由于盲源分离后提取的信号包含感兴趣范围之外的频率分量,本文将感兴趣的静息心率值范围设置为42~180次/min,所以使用截止频率 [0.7, 3] Hz的带通滤波器对提取信号进行滤波,图6为带通滤波后得到的信噪比改善的脉搏波信号。之后,对此脉搏波信号进行快速傅立叶变换[23-27],将信号由时域转换到频域,得到其对应的功率谱图。选取功率谱图中功率最大处对应频率的值fmax进行心率的估计,如图7所示,则心率值为60乘以fmax。
图6 经带通滤波后的脉搏波信号Fig.6 Pulse wave signal after bandpass filtering
图7 傅立叶变换频谱图Fig.7 Fourier transform spectrogram
2.3.2 呼吸率估计
本文将感兴趣的静息呼吸频率范围设置为12~25次/min,由于小波分解后直接去除了频率较低的分量,所以这里使用截止频率为0.42 Hz的低通滤波器对绿色通道提取信号进行滤波,图8为低通滤波之后的呼吸信号。
图8 滤波后呼吸信号Fig.8 Respiration signal after filtering
再利用波峰检测算法检测整段视频时间内的呼吸信号中波峰的数量N,结合式(2)估算出呼吸率值,其中M表示采集视频的总帧数,F表示采集视频的帧率[23]。
2.3.3 血氧饱和度值估计
在传统的脉搏血氧仪中,通常使用光强变化率比值法计算血氧饱和度,计算公式如下:
其中,A和B是根据经验确定的系数,Iac和Idc分别是波长λ1和λ2的透射(或反射)光的脉搏跳动交流和直流分量的振幅。一般情况下,波长λ1和λ2常选择为660 nm的红光和940 nm的近红外光。
本文使用截止频率为[0.7, 3] Hz的带通滤波器处理后的红、蓝通道信号进行血氧饱和度的估算,其中蓝色通道代表传统脉搏血氧仪中使用的红外波长。两通道信号所有脉动周期中峰谷高度的标准差作为交流分量(Iac),所有波峰高度的均值作为直流分量(Idc)。然后,通过脉搏血氧仪测得的SpO2值,与红、蓝通道的光强变化率比值R,拟合出最佳的线性方程来确定常数A、B的值。
3 实验与讨论
3.1 实验装置与过程
本实验选取35名身体健康21天内没有服用药物的志愿者开展实验验证,其中18名男性,17名女性;年龄范围在18~45岁之间,肤色类型为Ⅲ、Ⅳ、Ⅴ型。在测试之前,使志愿者了解实验的全部过程,本着自愿原则。设定了两组实验,第一组实验采集了35名志愿者在自然光下的面部视频;第二组实验随机选取20名志愿者,在自然光、白炽灯(色温在3 000~4 000 K)和日光灯(色温在6 000~6 500 K)的环境下进行拍摄。采集设备为小米MIX3后置摄像头,像素分辨率为544 pixel×960 pixel,帧频为30 frame/s,采集时长为30 s左右。采集过程中要求志愿者静坐在正对手机摄像头并与之水平相距70 cm 左右的位置,采集装置如图9所示。两组视频采集过程中志愿者默数记录下呼吸次数(一呼一吸为一次),同时由透射式手指脉搏血氧仪(DB12,飞利浦投资有限公司)显示并记录受试者的心率和SpO2值,这些数据作为标准参考值。
图9 实验采集示意图及装置图Fig.9 Schematic diagram and real diagram of the experimental acquisition device
3.2 实验结果与讨论
为验证本文所提方法的性能,本文做了以下两种对照实验:一是在自然光场景下,利用本文提出的方法获得的各生理参数估算结果与其他文献提出的检测方法获得的结果进行对比;二是将自然光、日光灯、白炽灯3种场景下获得的心率、呼吸率、SpO2的估算结果与其参考值进行对比,并采用Bland-Altman散点图对所有场景下非接触式测量方法的估算结果与其参考值进行一致性评估。
同时,本文采用以下几种评价指标对比各方法性能:(1)平均绝对误差|Me|,如式(4)所示,式中Est表示估算值,Ref表示参考值,N表示所有数据个数;(2)平均误差Me;(3)误差的标准差SDe;(4)误差的均方根误差RMSE,如式(5)所示;(5)平均误差率Mer,如式(6)所示。部分方法对比时加入了相关性分析Cor,来衡量非接触式估计值与接触式参考值的相关密切程度,由于各文献之间计算的指标不统一,所以具体的评价指标将以参考文献为主。
3.2.1 自然光下性能对比
(1)心率、呼吸率估算性能对比
心率检测性能对比如表1所示,比较发现,3种方法的|Me|均小于5次/min, 满足中华人民共和国医药行业规定的误差标准 (误差≤5次/min),SDe、RMSE均小于4次/min,Mer均小于4%,表明在自然光下,这几种方法都具有良好的性能。但与文献[12]相比,本文方法的|Me|、SDe、RMSE均小于2次/min,Mer比其低约0.5%;与文献[6]相比,本文所选志愿者的静息心率从60次/min到85次/min不等,人数相对较多,年龄不同,且相关性系数高于文献[6]。呼吸率检测性能对比如表2所示,比较发现,两种方法的平均误差均小于1次/min,估算结果与参考值之间的相关性都约为0.6;本文方法的SDe、RMSE比文献[10]均约小2次/min。
表1 自然光下各心率检测算法性能比较Tab.1 Performance comparison of various heart rate detection algorithms under natural light
表2 自然光下各呼吸率检测算法性能比较Tab.2 Performance comparison of various respiratory rate detection algorithms under natural light
从算法的时间复杂度分析,本文在MECHREVO Z3(i7-10870H,GTX1650Ti)笔记本平台上,从IPPG源信号的处理到估算出心率、呼吸率的值所用平均时间约2 s。综上,本文所提出的方法对于心率、呼吸率的估算更具有优势。
(2)SpO2估算性能对比
本文根据式(3),利用手指脉搏血氧仪获取的参考值与红、蓝通道的比率R之间找到最合适的线性方程,估算出式中A和B的数值,最佳拟合线性方程为:
根据此方程估算出各场景中志愿者SpO2的值。SpO2检测性能对比如表3所示,比较发现,3种方法的SDe都在1%左右,RMSE都在3%以下;本文的Me相比于文献[11]小0.73%,Mer比文献[8]约小1.88%,整体的SpO2估算值与参考值更接近,准确率相对更高。
表3 自然光下各SpO2检测算法性能比较Tab.3 Performance comparison of SpO2 detection algorithms under natural light
3.2.2 不同光照条件下的一致性分析
本文从35名志愿者中随机选取了20名进行自然光、日光灯、白炽灯环境下的人脸视频采集实验,分别对比了3种场景下心率、呼吸率、SpO2结果的差异性。为了表征3种环境下实验结果的一致性,选用统计学中的 Bland-Altman 分析方法,设定置信区间为95%作为估算值与参考值是否具有一致性的界限。
(1)心率估算结果一致性分析
心率一致性分析结果如图10所示,各场景的|Me|、SDe、RMSE均小于2.2次/min。此外,自然光、白炽灯、日光灯场景下的Mer分别为:2.54%、2.58%、2.76%,均小于2.8%,相关性Cor分 别 为:0.966 8、0.965 9、0.954 1,均 大于0.95;自然光场景下的各评价指标比其他两场景更有优势。如图11所示,绘制了所有场景下非接触式心率估计结果与手指脉搏血氧仪测量结果的Bland-Altman散点图,横坐标为Ref与Est的平均值,纵坐标为Ref与Est的差值。在3种光照环境下,两种方法偏差的SDe为1.980 7次/min,95%置信区间为[-3.357 1,4.459 5],仅有一个点在一致性界限之外。
图10 3种场景下心率估算结果比较Fig.10 Comparison of heart rate estimation results in three scenarios
图11 3种场景下心率结果Bland-Altman 一致性分析Fig.11 Bland-Altman consistency analysis of heart rate results in three scenarios
(2)呼吸率估算结果一致性分析
呼吸率一致性分析结果如图12所示,各场景的|Me|、SDe、RMSE均小于2.2次/min。此外,自然光、白炽灯、日光灯场景下的Cor分别为0.595 7、0.499 5、0.525 6,白炽灯下的Cor相比于其他两个场景略低。图13为所有场景下非接触式呼吸率估算结果与志愿者默数的呼吸次数的Bland-Altman散点图,两种方法偏差的SDe为1.961 8次/min,95%置信区间为[-4.503 1,3.238 8],有两个点在一致性界限之外。
图12 3种场景下呼吸率估算结果比较Fig.12 Comparison of respiratory rate estimation results in three scenarios
图13 3种场景下呼吸率结果Bland-Altman 一致性分析Fig.13 Bland-Altman consistency analysis of respiratory rate results in three scenarios
(3) SpO2估算结果一致性分析
SpO2一致性分析结果如图14所示,各场景的所有评价指标均小于1.6%,各场景之间的同一评价指标最大差值不超过0.5%;自然光场景下的各指标在3个场景中最好,日光灯场景下的最差。3个场景下SpO2估算结果与脉搏血氧仪测量结果的Bland-Altman一致性散点图如图15所示,两种方法偏差的SDe为1.240 4%,95%置信区间为[-2.721 9,2.173 2],有两个点在一致性界限之外,但距离一致性界限都相对较近。
图14 3种场景下SpO2估算结果比较Fig.14 Comparison of SpO2 estimation results in three scenarios
图15 3种场景下SpO2结果Bland-Altman 一致性分析Fig.15 Bland-Altman consistency analysis of SpO2 results in three scenarios
3.2.3 讨论
从表1~3的对比结果可以看出,本文所提出的非接触式生理参数计算与其他文献方法相比具有一定的优势,其主要原因如下:与文献[6]、[11]所提出的方法相比,本文考虑到采集到的人脸视频信号较微弱,为避免脉搏波信号被其他噪声淹没,借助欧拉放大算法对视频中变化的色度信息进行放大;与文献[8]、[10]、[12]相比,本文针对小波分解后的信号,又进行了主成分分析,去除了一些突变噪声的干扰,重构出更加平稳的脉搏波信号。从图10、12、14的数据对比结果可以看出,尽管在不同的光照场景下,同一评价指标之间的最大差值不超过0.5,各指标基本趋于一致;但与自然光相比,在其他两种场景下的结果相对较差,主要原因是由于光照环境的改变,导致提取的人脸IPPG源信号引入了多余的噪声。从图11、15的Bland-Altman散点图一致性分析结果可以看出,在不同的光照环境下非接触式估算结果与接触式脉搏血氧仪的检测结果具有较强的一致性。综上,本文所提出的心率、呼吸率、SpO2估算方法具有良好的稳定性和普适性,可以在日常生活中作为辅助性检测仪器进行各生理参数的常规检测。
4 结 论
心率、呼吸率、SpO2作为人体重要生理体征,是心血管疾病预防及临床诊断的重要指标。本文借助手机摄像头录制人脸视频,在欧拉放大算法的基础上对IPPG源信号进行WT-PCABSS的去噪,获取到信噪比高的脉搏波信号和呼吸信号进行心率、呼吸率、SpO2的估算。通过计算不同光照条件下非接触式与传统接触式测量结果之间误差的评价指标,结果如下:心率各场景的|Me|、SDe、RMSE均小于2.2次/min,Mer均小于2.8%,相关性Cor均大于0.95;呼吸率各场景的|Me|、SDe、RMSE均小于2.2次/min;SpO2各场景的所有评价指标均小于1.6%,各场景之间的同一评价指标最大差值不超过0.5%。另外,还绘制了所有非接触式估算结果与其参考值之间的Bland-Altman散点图,其中:心率值偏差的SDe为1.980 7次/min,仅有一个点在一致性界限之外;呼吸率值偏差的SDe为1.961 8次/min,有两个点在一致性界限之外;SpO2偏差的SDe为1.240 4%,有两个点在一致性界限之外。证明本文提出的非接触式方法的测量结果同标准仪器的测量结果具有较强的一致性。这种非接触式的检测方法可以让受试者在舒适的、非接触的环境下进行自身心率、呼吸率、SpO2的检测,弥补了以往文献方法中提取生理参数相对单一的缺陷,为日常生活中基本生理参数的检测提供一种便利途径。
当然,本文算法也具有一定的局限性,在剧烈运动和多人出现的场景下,本文所提方法不能进行各参数的准确估算。在未来的工作中,将进一步改善在剧烈运动时获取信号差的问题,以及多人场景下不能同时估算生理参数的局限;还将补充血压、脉搏波传导速度等其他生理参数测量,从而构建全面的视频非接触式生理测量模型。