王宾如
(天津理工大学电气电子工程学院,天津300384)
成像式光电容积扫描技术(remote Photoplethysmog⁃raphy,rPPG)使得人们可以利用普通摄像机检测心率、心率变异性、呼吸率、血压、血氧饱和度等生理参数[1-6],实现了一个舒适且低成本的生理信号监测方式。目前最为精准的心率检测方法是心电图(Electrocardiogram,EEG)和脉搏波容积图(Photoplethysmography,PPG),但这两种方法在使用过程中需要复杂的电极连接,造成检测者的不适。相对于接触式的心率检测方法,非接触心率估计不需要与被检测者发生接触,其主要原理是在心脏收缩与舒张的过程中,面部血管的血容量会随着心脏跳动而产生周期性变化,而血容量的周期性变化会引起皮肤颜色的周期性变化,通过摄像机捕捉并结合信号处理方法提取这一由心脏跳动引起的微小颜色变化,可实现非接触式的心率检测[7-9]。非接触心率估计无需受试者佩戴传感器,采用普通摄像头即可实现,成本低且使用方便。图1显示了心率测量的发展历程,从图1中可以看出心率检测方式由最初的侵入式发展到现在的非接触式。
图1 心率测量方式的发展
近几年来,基于人脸视频的非接触式心率估计在生物医学领域和计算机视觉领域引起了很多关注,出现了许多行之有效的方法,主要可以分为两类:第一类是基于光学模型和信号处理的方法如Verkruysse(G,2008)[10]、Poh(ICA,2010)[11]、DeHaan(CHROM,2013)[12]、Balakrishnan(BCG,2013)[13]、Tulyakov(SAMC,2016)[14]等,这一类方法的心率估计范式可归纳为:(1)面部关键点检测和跟踪、(2)感兴趣区域提取、(3)RGB信号提取、(4)滤波和颜色空间转换、(5)后处理、(6)提取血容量脉冲信号、(7)心率估计。此类方法在实验室场景中取得了较好的效果,但仍然有两个明显的缺点:①自定义的信号处理方法不能准确提取有效特征;②涉及许多手工特征提取和过滤,导致该方法不能很好的泛化,且手工提取特征的过程中可能导致丢失与心跳相关的重要信息。第二类是基于数据驱动的方法如Hsu(VGGmodel,2017)[15]、Chen(DeepPhys,2018)[16]、Spetlík(HR-CNN,2018)[17]、Niu(RhythmNet,,2019)[18]、Yu(PhysNet,2019)[19]、Yu(AutoHR,2020)[20]等。这些方法利用深度学习来回归心率,其输入为视频帧,输出为脉搏波或心率值,通过损失函数将误差优化到可接受范围,基于数据驱动的方法将有望应对复杂的真实测量场景中环境光及运动等干扰因素的影响。因此本文也针对基于数据驱动的方法开展研究,实现对人脸视频的时空建模。具体地,为准确定位心跳峰值频率,首先通过残差结构保存中间层特征信息,并利用三维卷积提取脉搏波中的时空特性,最后使用联合损失函数消除运动伪差。
本文主要贡献如下:①改进面部关键点检测与跟踪算法,提取出了更为可靠的感兴趣区域;②对多种常用的三维卷积网络进行对比,实验得出更适用于面部视频心率估计的三维卷积网络架构;③与目前最先进的方法相比,在公开数据集评测中,本文提出的三维卷积方法在测量平均心率不仅表现出了优异的性能,而且在两个数据集上均表现稳定;④与仅能输出平均心率值的方法相比,本文方法可以输出估计得到的脉搏波曲线,可用于进一步的心率变异性分析。
本文的研究方法架构如图2所示,主要步骤可以分为三个阶段。(1)数据预处理:提取面部感兴趣区域。因头发、眼部等区域并不包括心率信息且可能引入干扰,本文采用眼部以下、唇部以下的脸颊区域作为感兴趣区域,并将感兴趣区域调整到模型所需的输入尺寸;(2)三维卷积网络设计:通过对主流的三维卷积结构如C3D[21]、P3D[22]进行对比(C3D首次使用具有时空特征的三维卷积,构造对称的3×3×3卷积核。P3D在C3D的基础上利用2D Conv来替代三维卷积,通过对卷积因子分解,将3×3×3的卷积核拆分成1×3×3的空间卷积和3×1×1的时间卷积,增强网络的多样性),根据实验结果加以改进,形成了带有残差网络的新三维卷积模型。(3)信号后处理:基于滤波器对模型中提取出来的脉搏波信号进行后处理,得到最终的心率信号可用于计算心率和心率变异性。
图2 基于三维卷积网络的非接触心率估计主体框架
本文所用到的实验数据为PURE-HR数据集[23]和COHFACE-HR数据集[24],数据集样本示例如图3所示,其中PURE-HR数据集共包含10位受试者的60个视频样本,每段视频时长60秒左右,帧率为30Hz。
图3 数据集样本
在进行非接触心率检测算法训练前,首先需将视频帧与真实心率脉搏波信号(PPG)对齐(PURE-HR和COHFACE-HR数据集中存在着真实的脉搏波心率信号作为真值进行训练和验证),以PURE-HR数据集为例,因视频帧率为30Hz,而PPG信号的采样率为256Hz,需在不损失心跳峰值的情况下将其下采样到30Hz,如图4所示,这样使视频中每一帧与真实心电信号中的每一个数据点幅值一一对应。
图4 视频帧与真实心率对齐
预处理还包括感兴趣区域提取,本文采用Open⁃Face[25]预训练模型进行人脸检测,在人脸检测的基础上进行关键点检测,如图5所示,OpenFace可输出68个面部关键点(黄色数字序号标出),依据面部结构,依次连接特征点2、3、4、5、52、13、14、15、16、29。如图6所示,去除诸如背景、头发、眼睛之类与心率信号检测无关区域,并将提取出来的感兴趣区域重新调整大小为64×64。如图7,取连续的128帧作为一个输入样本,并采用跨八帧重叠采样的方法来扩充样本数量(既第1到第128帧为一个样本,第9到第136帧为另一个样本)。
图5 人脸关键点检测
图6 感兴趣区域提取
图7 预处理得到训练样本
考虑到某一帧人脸检测失败时,我们使用上一帧检测出的关键点作为该帧的检测结果,防止算法出现较大偏差。
已有的研究表明[26],三维卷积是一种可在视频中捕获空间和时域特征的方法,连续帧间的时域变化特性,通过三维卷积和三维池化后能够更好地建立时序信息,在保留时序信息的同时学习时空特性。在非接触心率估计中,由于皮肤颜色变化极为细微,肉眼无法观测到此信息,而脉搏的波动与时序又有很强的相关性,如使用二维卷积来处理,将不能很好的考虑连续帧间的时空信息,进而影响所测结果的准确性。
本文经过多次模型迁移、参数调整、交叉验证后,实验得到适用于非接触心率估计的模型,其结构如图8所示,模型的输入维度为(batch_size,3,128,64,64),即连续的128帧感兴趣区域。模型由2D Conv卷积层、Spatio-pool空间池化层、ST_Block时空卷积块、Adap⁃tiveAvg Pool3d自适应空间池化层和fully connected全连接层等组成。
图8 带有残差结构的三维卷积网络
为学习一组将原始皮肤图像映射到脉搏波特征空间的空间过滤器,在第一层中2D Conv卷积层中使用1×5×5的空间卷积核替代5×5×5的三维卷积核,可等价于学习三个颜色通道的颜色空间变换组合,以获得更多的脉搏波信号表示。为避免丢失有效的脉搏波信号,在2D Conv卷积层后立即加上一个残差映射,残差映射的主要目的是为了让有效的脉搏波特征不需要再去经过后续的冗余层,跨过多个冗余层后直接完成恒等映射或比例映射,将映射输出与经过2D Conv层的信号输出进行合并。而经过2D Conv层的信号,使用Spatiopool空间池化层来减少脉搏波特征空间的大小,再使用ST_Block时空卷积进行滤波,ST_Block时空卷积结构如图9所示,该卷积块是二维空间卷积和一维时间卷积的组合,在过滤非脉搏波信号的同时增加了脉搏波信号的非线性特征。
图9 ST_Block时空卷积块结构
随后的Spatiopool空间池化层与ST_Block时空卷积块都是在三维空间上执行,以期可保留帧间全部的脉搏波信息。AdaptiveAvgPool3d自适应空间池化层将特征信号压缩至1个维度,由于非接触心率估计是一个基于时间颜色变化的回归问题,所以池化层都采用平均池化。
在非接触心率估计任务中,关注的是脉搏波的周期变化信息而不是其幅值大小,因此常用的均方误差损失函数和交叉熵损失函数并不适用于此任务,为了恢复出与真实心电信号趋势相同的信号,采用负皮尔逊相关系数作为损失函数,其表达式如下:
其中,N代表帧数,y pre表示预测的脉搏波信号,y gt表示真实的心率信号,为了保证模型更好的集中于时间上的特性,我们还设置了一个中间约束,既从第四个ST_Block的输出进行引导,压缩、聚合、平均池化至一维,同样使用负皮尔逊相关系数作为损失函数,此时网络最终的损失函数为:
其中L P为最终输出的损失,L mid为中间层输出的损失,权重α是用来调节约束程度(设置为0.5)。
不同于那些依赖于高层特征的视频分析任务,如动作识别、字幕生成等,非接触心率估计任务可以通过较浅的网络和较少的过滤器来学习,因为皮肤表面的颜色变化实际上是一个相对于低层的特征,简洁的网络结构可防止过拟合。本文代码公开于网址1,希望与其他学者交流并改进。
从三维卷积网络中恢复出的脉搏波信号估计已经接近于真实的心率信号,但进一步滤波,有助于得到更高质量的心率信号,其步骤如图10所示。设计一个符合本系统的理想带通滤波器(三阶巴特沃斯带通滤波器),然后使用傅里叶变换将周期性脉搏波信号转换到频域(快速傅里叶变换),对频域信号再进行带通滤波和傅里叶逆变换,得到最终的心率信号。
图10 后处理提取心率信号
在PURE-HR和COHFACE-HR数据集上进行实验,以60%作为训练集,40%作为测试集(PURE-HR:36/24,COHFACE-HR:96/64),实验得出epoch设置为30最佳,表1、表2分别总结了其他论文和本文在PURE-HR、COHFACE-HR数据集上的实验结果。从表1可见,在PURE-HR数据集中使用三维卷积得到的结果为RMSE:0.64bpm,MAE:0.65 bpm,R:0.99 bpm,接近于之前最好的结果(DeeprPPG:RMSE:0.43 bpm,MAE:0.28 bpm,R:0.99 bpm)。但由于PURE数据集中受试者的动作及环境光均相对稳定,故数据集难度较低,效果趋近于饱和。因此采用COHFACEHR进行测试,COHFACE是一个高度压缩的数据集,视频压缩会破坏皮肤颜色的细微变化,故其心率估计难度要大于PURE-HR,表2显示,在COHFACE-HR数据集中之前最好的结果(DeeprPPG:RMSE:3.07 bpm,MAE:7.06 bpm,R:0.86 bpm)误差比PURE-HR要大的多,这同样也说明视频经过高度压缩后图像已经失真,已经不再适用于检测皮肤微小颜色变化的任务,我们仍然在COHFACE-HR数据集上验证了我们的方法,RMSE:5.57 bpm,MAE:5.46 bpm,R:0.78 bpm接近于之前最好的效果。证明了本文方法的可靠性。我们相信在配合后处理之后,其准确率会超越当前最好的结果。图11展示了三维卷积后预测的脉搏波信号波形和真波形的比较,其中黄色波形为模型恢复出的脉搏波信号,蓝色波形为真实心电信号,可以看出本文方法估计出的脉搏波形与实际心电信号有很强线性相关性。
表1 PURE数据集平均心率测量结果
表2 COHFACE-HR数据集平均心率测量结果
图11 三维卷积心率估计可视化
本文提出了一种基于三维卷积网络的心率估计模型,该模型能够准确有效的恢复面部视频图像中含有的脉搏波信号成分。在PURE-HR数据集和COH⁃FACE-HR数据集上进行训练和验证的实验结果表明,该模型在准确率上接近当前最好的效果,相比于只能恢复心率值的方法,该模型恢复的脉搏波信号还可以分析心率变异性。心率变异性能在更精细的尺度上描述心脏活动,其最常见的特征包括低频(LF,Low Fre⁃quency)、高频(HF,High Frequency)以及低频与高频的比值,这些特征在许多医疗应用中得到了广泛的应用。非接触心率估计在目前仍然存在一些问题,在未来可以在以下研究方向做进一步改进:①在具有光线变化、头部运动的现实场景中,如何在这些“噪声”同时存在(或部分存在)的情况下从人脸视频中恢复出心率。②使用红外相机在光线较弱的场景中恢复心率。③除心率外其他生理信号如呼吸率、血氧浓度、血压等也可以从面部视频中获取。