基于欧拉放大的桡动脉脉搏波提取方法
2021-02-05李江山杨学志
李江山, 杨学志, 吴 秀, 金 兢
(1.合肥工业大学 计算机与信息学院,安徽 合肥 230601; 2.工业安全与应急技术安徽省重点实验室,安徽 合肥 230601)
0 引 言
脉搏波是反映人体心血管系统健康状况的重要生理参数。心脏泵血运动促进血液流经全身,这是整个动脉系统循环不断的动力源泉。动脉系统随心脏运动而周期性地运动,并引起皮肤表面动脉组织的变化,从而形成搏动特征,脉搏波就是记录这一搏动特征的参数。心血管功能的变化或者病变必然会导致脉搏博动特征的改变,因此,从脉搏波波形中可以获取心血管系统的特征信息[1]。
血液传播引起的皮肤表面变化可以分为2类:① 皮肤表面颜色明暗的变化;② 由血液随着心脏泵血造成皮肤表面运动的变化[2]。这些变化难以被肉眼察觉,而通过视频放大算法可以将之可视化并从中提取相关生理信息,因此,基于视频法的非接触式脉搏波检测算法的核心工作就是从含有人体皮肤表面组织(面部、腕部等)的视频中提取出脉搏波。
文献[3]最早提出了通过普通摄像头拍摄人脸视频来检测脉搏波的方法,该方法对一段10 s左右含有人脸信息的视频进行检测。首先对每帧视频进行人脸检测选出含有人脸信息的区域作为感兴趣区域(region of interest, ROI);然后计算ROI内部的像素平均值,得到RGB彩色空间下的3个颜色通道;再利用独立成分分析(independent component analysis,ICA)算法将3个颜色通道作为3个独立的源信号,并选择其中的G通道作为待处理信号;最后通过时域分析和功率谱估计得到脉搏波和心率值。但是在后来的研究中发现该方法具有一定的缺陷,血容量脉冲(blood volume pulse,BVP)信号不一定是ICA分量的第1个基向量,有时候是其他的基向量[4]。
文献[5]提出了基于欧拉视角的视频放大(Eulerian video magnification,EVM)算法,该算法能够将人类肉眼不可见的微小变化可视化,为非接触式脉搏波提取的研究提供了新的思路。文献[6]将EVM算法应用于非接触式脉搏波检测算法中,提出了对由血液传播引起的面部微弱明暗变化进行颜色放大,并从中提取出脉搏波、心率等生理信息;该方法通过心电图仪进行验证,具有较高的准确性,但需要在受测者极度配合的情况下才能准确地测量心率。文献[7]将EVM应用于人脸视频上,对人体面部血液明暗变化进行颜色放大估算心率值;但是该方法在非合作情况下准确性较低。文献[8]使用特征点跟踪和旋转校正等方法降低人脸运动产生的运动干扰,在非合作情况下具有一定优势;但该方法使用理想带通滤波做时域处理,所提取的脉搏波易损失局部细节。文献[9]将EVM方法与ICA方法进行对比,验证了EVM方法比ICA方法具有更好的检测精度。文献[10]将EVM算法应用于腕部桡动脉脉搏波的提取检测中,对腕部桡动脉微小搏动变化进行运动放大,从而得到脉搏波信息;该方法相比于面部颜色放大,具有更多的脉搏博动信息,桡动脉脉搏波保留了更丰富的局部细节[11];但该方法对环境中存在的运动干扰十分敏感,需要受测者十分配合,且成功率较低。
针对以上问题,本文在欧拉视角框架下,利用视频序列的亮度变化与位置变化的对应关系,建立基于亮度变化的尺动脉跳动的描述,通过对变化的亮度信号进行提取与处理,实现对桡动脉脉搏波的检测。
1 本文算法
本文提出了一种基于运动放大的脉搏波提取方法,通过对腕部桡动脉进行视频运动放大提取脉搏波;然后对ROI进行最优化处理,选取信噪比(signal to noise ratio,SNR)最高的区域作为待处理源信号;最后选取ROI中3个子区域作为观测信号,使用盲源分离算法提取脉搏波,进一步降低运动干扰。
1.1 视频运动放大
桡动脉搏动信号十分微弱,人类的肉眼无法直接观察这一现象[11],直接使用计算机或者普通摄像头设备也难以直接获取视频中的脉搏信息。为了精准地获取视频中的桡动脉信号,首先,对腕部的桡动脉区域进行视频放大,这里使用EVM算法对含有桡动脉的视频从空间和时间2个角度进行处理,结合桡动脉的搏动特征来提取脉搏波。
本文算法流程如下:首先,在空间域上,利用多尺度的拉普拉斯金字塔将视频帧序列分解为不同空间频率的子带;然后,使用无限脉冲响应(infinite impulse response,IIR)滤波器做时域滤波,对视频序列使用傅里叶变换算法做时域变换,使用IIR滤波器使得视频信号保持在一定范围的带通内,用于后续的最优ROI区域选取。
(1) 空间滤波。图像处理中的金字塔分解处理是一种多尺度、多分辨率的方法,拉普拉斯金字塔的作用是将图像在不同的空间频带上,针对不同的特征与信息进行处理[12]。拉普拉斯金字塔是基于高斯金字塔基础上进行运算的,因此首先对原图像进行高斯金字塔分解。以视频帧F0作为高斯图像金字塔第0层,对图像进行高斯滤波和隔行隔列的降采样,得到高斯金字塔的第1层金字塔F1;再对第1层执行高斯滤波和降采样,得到第2层F2。重复以上过程,得到F1、F2……FN构成高斯图像金字塔,N为所求解的最大金字塔层次。Fl的表达式为:
(1)
(2)
至此,高斯金字塔构建过程完成。
(3)
由此,L1、L2、L3……LN构成了拉普拉斯金字塔。金字塔每层图像分别表示不同尺度下的频率空间带。通过将不同层次的灰度层拉开,有助于显现微弱的细节变化。
(2) 时域滤波。IIR滤波器在其截止频率附近的某一频率范围内,存在一个信号衰减程度逐渐增加的过程,即常见的滤波器滚降现象,该特性更符合人体桡动脉的频域特性。因此,使用IIR滤波器对拉普拉斯金字塔图像分解后的图像序列进行时域滤波,通过设置IIR滤波器的上下带通,获取脉搏波所在频率范围内的桡动脉搏动信号。
(3) 视频重构。对时域滤波后的信号进行放大,将R通道的幅值保持不变,G通道和B通道分别放大100倍,即对其通道内的每个像素点值乘以100。每帧放大之后都扩展到原始视频帧大小,并与原始视频帧图像相加,得到放大后的视频帧,使运动信号的变化情况能被肉眼观察到。腕部动脉视频放大前、后效果如图1所示。
图1 腕部动脉视频放大前、后效果对比
1.2 最优ROI选取
视频运动放大之后,对视频帧进行分块,将640×480的视频帧分成40×40的小窗口,该窗口大小能够保证完整覆盖桡动脉搏动区域,视频将被分为192个窗口。计算每个窗口在时域上的SNR,然后求出的最大信噪比作为最优ROI。因为桡动脉的搏动信息比环境噪声具有更强烈的运动信号,含有桡动脉的区域具有更高的SNR,因此选出最高SNR的区域必定含有桡动脉的搏动信号。执行步骤如下所述。
(1) 沿着图像的x轴与y轴方向,从左到右、从上到下,以40为步长进行分块,共计192个分块。分块在时间维度上保持不变,令Fmn(s,k,t)为分块像素值的函数,其中,m、n为分块的位置坐标,s、k、t分别为分块内部像素的位置以及时间序列。
(2) 求第(m,n)个ROI子区域的像素平均值,计算公式如下:
(4)
其中,ROImn(t)为第(m,n)个ROI子区域的第t帧像素平均值,显然ROImn表示第(m,n)个ROI子区域块在时间序列上的信号值,是一个1×300的一维信号。
(3) 求每个子ROI的SNR,并求得最大SNR的子区域,计算公式如下:
SNRmax(u,v)=max{SNR(ROImn)}
(5)
其中,SNG()为求信噪比的函数;max为求最大值的函数。
ROI的SNR分布如图2a所示,通过对视频求出的最佳ROI子区域如图2b所示,对照视频帧选出桡动脉区域。最优ROI的选取能够从一定程度上降低环境噪声的干扰,提高脉搏波的提取精度,所求的ROI区域可以作为下一步ICA的源信号。
图2 ROI的SNR分布
1.3 脉搏波提取
选出最优ROI之后,采用ICA算法[13]对ROI区域进行信号分离,进一步分离噪声混叠信号。手臂皮肤表面存在多个运动源信号,其中一部分是桡动脉的搏动信号,另一部分是环境中存在的噪声干扰信号。这些噪声可以分别视为一种源信号。使用ICA算法能够将这些信号进一步地分开,从混合信号中分离出脉搏波信号,进一步降低其他运动信号对脉搏波的干扰。
假设x(t)=[x1(t)x2(t) …xm(t)]T为ROI区域内m个时间长度为n的运动信号,其中t=1,2,…,n;设s(t)=[s1(t)s2(t) …sm(t)]T为m个未知的相互独立的源信号,其中t=1,2,…,n。则观测信号与源信号存在如下关系:
x=As
(6)
其中,A为未知时不变的n×m混叠矩阵。使用ICA算法从观测信号矢量中通过矩阵运算得到相互独立的源信号矢量。当m=n时,可以构造混合矩阵A的逆矩阵A-1求解源信号,则有:
y=Wx
(7)
其中:y为系统分离的信号矢量,也是源信号s(t)的近似值;W为解混矩阵,即W=A-1。
基于概率论和统计学原理,如果源信号大多数服从高斯分布,那么经过线性混叠后的信号依然服从高斯分布。本文取观测信号与源信号的个数为3,即m=n=3,根据概率学理论可得解混矩阵W,从而求得源信号的近似值s(t)。
基于以上分析,从ROI区域中选取3个区域作为观测信号,对每个区域做像素平均得到平均值,该平均值作为该区域在某一时间点上的观测值。对所有视频帧序列上的该区域做像素平均,得到该区域在时间序列上的一维观测信号,该观测信号是桡动脉信号与噪声的混合。通过ICA可以从观测信号中分离出桡动脉运动信号和噪声,得到较为纯净的桡动脉运动信号。脉搏波信号提取结果如图3所示。
图3 脉搏波信号
在提取脉搏波之后,通过快速傅里叶变换(fast Fourier transform,FFT)分析脉搏波的功率谱,然后从功率谱中估算心率值,功率谱中的最大值对应的频率即心率值,心率可以作为评价脉搏波提取质量的定量指标。FFT在小样本数目的前提下具有较低的精度,因此本文采用一种傅里叶系数迭代插值法对输入的脉搏波信号进行增量差值,在保证不改变数据内容的情况下提高FFT运算精度,实现算法精度与复杂度的平衡[14]。
从脉搏波信号估算心率的3个步骤如下所述。
(1) 计算样本数N=300的脉搏波信号y的功率谱P(t)和功率谱最大值位置对应的频率fmax,即
P(t)=|FFT(y)|2,t=0,1,…,N-1;
fmax=max{P(t)}
(8)
(2) 对功率谱P(t)进行傅里叶系数迭代插值。首先初始化参数,令迭代方程中的傅里叶系数起始偏差e0=0和迭代次数Q=50;然后进行1≤k≤Q的for循环迭代。实验验证可得,迭代次数为50时,傅里叶系数偏差基本保持收敛[14]。循环部分的公式如下:
ek=ek-1+r(ek-1)
(9)
其中:d=±0.5;r(ek-1)=0.5(|S+0.5|-|S-0.5|)/(|S+0.5|+|S-0.5|)。
(3) 估算心率。将(8)式求得的最大值对应频率和(9)式求得的迭代法偏差值代入下式,得到估算的心率值,即
(10)
其中:HRy为脉搏波信号y的心率值;eQ为迭代了Q次之后的傅里叶系数偏差;fs为视频采样率;N为样本数。所求心率作为脉搏波信号定量分析的参考指标。
2 实验结果与分析
本文设计了2组实验,验证本文方法的有效性和可行性。首先,使用传统硬件脉搏波检测设备作为实验真值,检测本文算法的准确性;然后,与文献[8]和文献[10]提出的非接触式的脉搏波检测方法对比,以心率作为定量分析指标,在不同的光照条件下验证本文方法具有的优势。
2.1 实验设计
实验装置设计如图4所示。使用一个普通网络摄像头连接笔记本电脑,摄像头对准手腕桡动脉位置,置于手腕上方0.5 m左右距离,同时,受测者需要主动配合,将手腕平放在桌面上,避免较大幅度的手臂运动。
图4 实验装置示意图
电脑通过MatLab控制摄像头录制视频。设置摄像设备采集图像为RGB彩色空间,帧率为30帧/s,视频分辨率为640×480,拍摄时长为10 s,总计300帧图像。10名成年人参加了本次准确性测试,包括8名男性和2名女性,在每次测试时,采集受测者的手腕视频信息,同时使受测者佩戴基于指尖的PWS-20D脉搏波检测设备。该设备采用光学体积描记术原理,基于指尖进行脉搏波的采集,可以精确地采集受测者的脉搏波信息,在拍摄视频时,使用该设备测量脉搏波作为参考值。同时,从定量分析的角度来评价算法的有效性,采用平均误差ME、标准差S、均方误差RMSE、准确率平均值HRac和皮尔森相关系数r作为评价指标。
2.2 实验结果分析
为了验证本文方法的有效性和准确性,按照本节所述方法,对实验的10名志愿者进行非接触式手腕脉搏波提取,同时使用PWS-20S脉搏波检测仪同步测量分析。10名受测者每人分别做3组测试,每组测试包括非接触式和同步接触式脉搏波采集各1次,共30对数据。
采用Bland-Altman法进行一致性评估,分析结果如图5所示。
图5 Bland-Altman法估算2种测量方法的一致性
图5中散点K的计算方法如下:
K(x,y)=((HRr+HRv)/2,HRr-HRv)
(11)
其中:HRr为PWS-20D脉搏波采集仪的测量心率;HRv为本文方法的估算心率;x坐标(横坐标)为一次实验中2种方法测量值的平均值;y坐标(纵坐标)为同一次实验中2种方法测量值的差值。置信率取95%(S=1.96)。通过Bland-Altman方法对实验数据进行一致性估计,误差均值为0.160 0,标准方差为2.451 2,95%的置信区间为[-4.507 2, 4.624 1],说明本文方法与接触式脉搏波测量设备具有很好的一致性。
为了充分验证本文方法对光照影响的抗干扰能力,实验将在自然光、日光灯与弱光3种不同的光照强度场景下分别与文献[8]、文献[10]方法进行对比。其中,文献[8]采用了欧拉颜色放大方法,基于面部色度信息提取脉搏波;文献[10]采用了欧拉运动放大方法,基于桡动脉提取脉搏波。本次实验的视频时长为10 s,帧率为30帧/s。
不同光照场景下心率检测结果见表1所列。实验结果表明,在不同光照场景下,本文方法均具有较好的性能,且在室内弱光场景下,本文方法准确率仍能达到90.69%,平均误差只有2.054 5,具有明显优势。
实验结果的对比如图6所示。由图6可知,本文方法在各方面指标均优于文献[8]和文献[10]的方法。其主要原因如下:
(1) 本文方法在ROI的选取上进行了精确划分,排除了环境噪声的干扰。通过计算每个子ROI区域的SNR,选出含有桡动脉运动信息量最高的ROI区域作为源信号;再通过ICA算法将选出的ROI区域中含有的混叠局部运动噪声进一步分离,使提取的脉搏波受环境噪声的干燥较小。
(2) 文献[8]方法对面部颜色明暗变化进行放大以提取脉搏波,颜色变化对光照变化比较敏感,因此该方法随着光照条件的下降检测精度也随之降低。
(3) 文献[10]方法同样采用了基于桡动脉运动放大的方法,但采用了Lab颜色空间作为皮肤分割和ROI选取的依据,Lab空间的L通道受光强影响较大,环境光照对放大效果有较大的影响。
表1 不同光照场景下心率检测结果
图6 实验结果的对比
3 结 论
本文提出了一种非接触式脉搏波的提取方法。该方法基于欧拉运动放大原理,首先对腕部桡动脉的搏动进行视频放大;再对放大后的视频进行ROI区域划分,对每个子区域求解SNR,选取桡动脉运动信号占比最高的区域作为最优ROI;然后使用ICA算法对ROI内的脉搏波信号进一步做信号分离,分离出脉搏波运动信号和环境噪声,使脉搏波信号更加纯净,处理后的脉搏波信号具有更好的局部细节信息。分别在自然光、日光灯、室内弱光场景下,在多组实验数据集上进行了对比实验,实验结果验证了本文方法的有效性和稳定性,与基于色度信息分析的脉搏波提取方法、基于人脸视频的脉搏波提取方法相比,本文方法更具有优势。