程敏,陈兆学
上海理工大学医疗器械与食品学院,上海200093
随着人类生活水平的提高,人们对自身健康越来越重视,但患心血管疾病、冠心病等慢性病的人也越来越多。心率作为人体重要的生理参数之一,定期测量心率能够有效预防及控制心血管疾病。心率是指心脏每分钟搏动的次数,反映人体机体运血的状况,正常成年人在平静状态下的心率范围为60~100次/min[1]。目前,对心率的检测有触诊式心率测量、心音测量法、电磁波检测法、红外技术检测法和光电容积脉搏波描记法(Photoplethysmography,PPG)等。其中,PPG是一种借助光电手段检测人体皮肤组织下血管血液容积变化可实现无创检测脉搏波的方法[2]。由于脉搏波的波动导致指端血液吸收光强度的不同,基于视频的光电容积脉搏波测量方法每帧图像中求得的像素值存在波动与变化,因此能够获得连续波动的PPG信号。在一个心率周期内,当血管内压力最大时,血液吸收光强达到最大值,图像的像素均值最小,呈现在PPG波形中,此时出现在PPG的谷底;当血管的压力最小时,血液吸收的光强最少,图像的像素均值最大,反映在PPG波形中,此时出现在PPG的峰值点。光电容积脉搏波包含着血液流动、心脏跳动等重要信息,通过PPG可获得血氧饱和度、心率、血压、心输出量等人体参数以及呼吸的监测[3-4]。
通常,脉搏波信号处理方法有数字滤波法、小波变换法、功率谱法等[5-7]。由于运动所引起的干扰信号与正常脉搏波信号相重叠,所以传统的低通、高通和带通滤波器很难对其进行处理。马俊领等[8]采用反射式光电测量法来获取人的桡动脉信号,并对其进行快速傅里叶变换,再分析谱峰得到人体的心率和呼吸率。赵素文等[4]采用小波变换结合快速傅里叶变换从PPG信号中提取呼吸率,但小波分解层数的选定和小波基选择的不同会对测量结果造成很大的误差。雷恒波等[9-10]采用经验模态分解法对从人脸视频、手指视频中获取的PPG信号消除高频噪声和低频基线漂移,但可能会存在模态混叠问题[11]。而对基于PPG信号与运动干扰、肤色变化等信号间的独立性假设,独立成分分析(Independent Component Analysis,ICA)成功地应用到PPG信号与其他混合信号的分离。Poh等[12-13]提出了基于盲源分离的心率检测算法,通过ICA分析从人脸皮肤颜色的变化、光照强度的变化、人体动作引起的颜色变化的混合信号中选择功率谱最大幅值的源信号作为心率变化的信号。本文基于ICA分析对获取的光电容积视频脉搏波信号进行处理,并与波峰法测得的心率进行对比,得到一种稳定的心率检测算法。
ICA的起源是为了解决盲源信号分离问题,即鸡尾酒问题。它是一种基于统计分析的信号处理方法,目的是把信号分离成统计独立的非高斯信号的信号源的线性组合,即从线性组合信号里恢复出基本的源信号。ICA在数字信号处理、图像处理技术、生物医学等领域的分析有着一定的研究,例如心电信号和脑电信号的随机噪声消除、功能磁共振成像中事件相关活动区域的检测以及在PPG信号处理中的应用[14]。
ICA是假设存在相互独立的统计源信号S,观测信号X是源信号各分量的线性组合,即:
其中,X是观测信号,A是未知非奇异混合矩阵,S是待分离的源信号。ICA的目的是在只知道混合信号X的情况下,获得解混矩阵W:
其中,Y中的各分量尽可能相互统计独立。这样Y分量就可以作为源独立成分的估计,即:
其中,̂为源独立成分的估计[15-16]。
FastICA算法,即快速独立成分分析算法,也称为不变点(Fixed-Point)算法,收敛速度快、计算简单,相比其他的独立成分分析算法可以更为快速找到所有非正态分布的独立分量。通常在计算时,非高斯性常采用峰度(Kurtosis)、负熵(Negentropy)或互信息(Mutual Information)表示,采用迭代法实现描述非高斯性的特定目标函数的最优化。本文采用FastICA算法实现对采集的PPG信号的盲源分离,具体步骤如下[17-18]:(1)对数据进行中心化和白化得到z(t);(2)选择一个具有单位范数的初始化矩阵W;(3)对每个i=1,…,n,令,函数g是根据数据的高斯性选定的非线性函数;(4)对矩阵进行对称正交化;(5)如果不收敛,返回步骤(3)。得到分离矩阵W后,代入式(1),可以得到估计的源信号。
在本文中,用摄像头获取的指端区域R、G、B时间序列也可以看作反射的PPG信号与运动、光线等因素的线性组合[19],目的是分离后的独立分量中分别找到和R、G通道最为接近的一组分量,作为提取心率信号来分析。
彩色视频的每帧图像都存储为一个三维矩阵,矩阵的3个维度分别代表红、绿、蓝3个通道的图像数据信息。在选择颜色通道时,考虑以下两个因素:一是血液对相应波段光的吸收率;二是所选择波段的照明光是否能够穿透人体表皮,以达到表皮以下的微动脉层。大多数文献中,采用与绿色通道的信号做相关性分析,因为绿光处于血液吸收光线的峰值位置,又能够穿透皮肤的微动脉层。而在文献[20]中,选用与红色通道信号相关性最小的分量来进行分析。考虑到摄像头采集的是反射式信号,血液对红色光的吸收能力最弱,因此红色通道的信号信噪比比较小,所以本文分别选取红、绿色分量与盲源分离后的估计信号进行相关性分析,筛选出相关性最大的作为后续提取心率的信号。
本文采用苹果手机摄像头采集人指端视频获取PPG信号,每段采集20 s,帧率是30 fps。拍摄的过程中,打开手机的闪光灯,提高视频图像亮度。选取6名试验者,手指同时覆盖在闪光灯和摄像头上,拍摄一段20 s的视频。采集过程中,试验者保持不动。采集完成后,通过USB数据线将视频传输到电脑上,在MATLAB平台上处理数据。首先对图像进行分帧处理,图片的帧序列即视频的时间序列。截取图片的中心区域的像素分析,以减少其他光线的干扰。截取的区域如图1所示。
图1 感兴趣区域(ROI)的选取Fig.1 Selection of region of interest
然后,对每帧感兴趣区域(ROI)进行RGB三通道基色分离,并对每个通道取空间均值,每个区域中像素灰度值的变化得到血液容积变化的时序曲线,并进行归一化,得到结果如图2所示。从图中可以看出存在低频的基线漂移和一些高频的噪声,这会影响PPG信号的准确度,从而影响从PPG信号中提取一些人体生理参数的精度,因此需要进行滤波处理。
ICA的目的是把信号分离成统计独立的非高斯信号的信号源的线性组合,即从线性组合信号里恢复出基本的源信号。因此,本文采用FsatICA对视频PPG脉搏波信号进行处理,并用MATLAB中corrcoef函数求相关性。将得到的估计信号分别与R、G通道的原始信号作相关性分析,分别得到相关性最大的信号,并进行快速傅里叶变换得到功率谱,得到的独立分量的结果如图3所示。同时本文对比原始信号与经ICA处理后的频谱,结果如图4和图5所示。
在频谱图中,在心率范围(1.0~1.6 Hz)内最大的功率谱对应的频率即为估计的心率[15],得到心率(单位:次/min):HR=frequency×60。试验者5采集数据经ICA处理后的结果如图3所示,再通过corrcoef函数求相关性。3个估计成分与R通道的相关系数绝对值分别为0.818 7、0.124 5、0.640 8,第一个相关性最大,频谱图峰值为1.272 Hz,即心率为1.272×60≈76(次/min);与G通道相关系数绝对值分别为0.639 3、0.691 4、0.174 2,第二个相关性最大,频谱图峰值为1.272 Hz,即心率为1.272×60≈76(次/min)。通过对比原始信号与ICA处理后的相关独立分量的频谱图,可以看出,当信号采集不太好时,FastICA能够使心率峰值更加突出,从而提高心率检测的稳定性。
图2 试验者5归一化的R、G、B通道信号Fig.2 Normalized R,G and B channel signals of experimenter 5
图3 试验者5归一化的信号经ICA处理后的结果及相应频谱Fig.3 Normalized signals of experimenter 5 after independent component analysis(ICA)processing and the corresponding spectra
图4 试验者5归一化原始信号与ICA处理后相关信号及相应频谱Fig.4 Normalized original signals and ICA processed signals of experimenter 5 and the corresponding spectra
实验的其他结果如表1所示。另外,本文分别统计原始信号、与R和G通道相关独立分量的心率值,以每个波峰为一次心跳,结果如表2和表3所示。其中出现的误差可能有这几种原因:一是采集指端视频时须图像有跳动时效果更好,若人体脉搏比较弱,则不理想,如试验者3的测量结果;二是统计峰值时与时间窗的截取有关。
图5 试验者6归一化原始信号与ICA处理后相关信号及对应频谱Fig.5 Normalized original signals and ICA processed signals of experimenter 6 and the corresponding spectra
为了评价利用手机摄像头获取的R、G通道信号的一致性以及本文算法与统计波峰法获取心率的一致性,本文采用SPSS软件对数据进行相关性分析,结果如表4~表7所示。图中相关性系数表明,选取R、G通道信号的一致性在95%以上,本文算法与统计波峰法获取心率的一致性在95%以上。因此,在本实验中,选取R、G通道均可以实现心率的有效检测,本文所提出的算法可以运用到日常的心率测量中。
表1 相关独立分量经傅里叶变换后测量结果Tab.1 Measurement of correlation independent components after Fourier transform
本文采用手机摄像头采集指端视频的方式获取人体PPG信号,通过ICA分析处理,分别与R、G通道作相关性分析,两个通道最终测得的心率值一致性在95%以上,同时本文算法与统计波峰法获取的心率具有一致性,因此在实际过程中,采取这两个通道均可。通过本文的方法可以有效地实现心率检测,该算法具有较高的鲁棒性,适合多种场合的测量,对于基于光电容积视频脉搏波的人体生理参数获取具有重要意义。本文通过指端视频获取PPG脉搏波信号,采集的数据较少,在后续的实验中,我们将对寸关尺部位进行研究,并用不同的手机采集更多的数据,以验证所提出的算法对不同部位、不同手机的适用性。
表2 原始信号经波峰法测量结果Tab.2 Measurement of original signal by wave peak detection
表3 相关独立分量经波峰法测量结果Tab.3 Measurement of correlated independent components by wave peak detection
表4 原始R、G通道信号统计波峰法相关性分析结果Tab.4 Correlation analysis of R and G channel signals obtained by wave peak detection
表5 R、G通道经ICA后相关性分析结果Tab.5 Correlation analysis of R and G channel signals after ICA
表6 R、G通道相关独立分量统计波峰法相关性分析结果Tab.6 Correlation analysis of correlation independent components related to R and G channels by wave peak detection
表7 基于FastICA算法与统计波峰法相关性分析结果Tab.7 Correlation analysis of FastICA algorithm and wave peak detection