陈泽辉,熊继平,李金红,陈经纬,程汉权
(1.浙江师范大学 物理与电子信息工程学院,浙江 金华 321004;2.浙江师范大学 数学与计算机科学学院,浙江 金华 321004)
根据《中国心血管健康与疾病报告》可知:近年来,心血管疾病已经成为我国致死数最多的疾病,高于癌症、消化系统疾病等其他疾病[1]。预防和诊断心血管疾病的指标主要包括心率、血氧饱和度和血压等与心血管疾病密切相关的医疗体征[2]。目前主流市场存在一些家庭式生理监测设备,包括指夹式脉搏血氧仪、智能手环[3]、袖带式血压仪等[4]。但是以上设备仍然存在着许多不足,同时在使用时存在一定的局限性,不能满足所有情形下的使用要求。
成像式光电容积描记技术(iPPG)在近年来快速发展,该技术在平台上可以比较轻松地实现,只需要一个摄像头便可以远程非接触式对生理信号进行测量。这种测量方法尤其适用于一般的家庭中进行快速便捷的健康检查,目前该技术吸引了大量生物医学工程领域的人员目光,成为该领域的新兴研究方向之一[5]。
目前国内外对非接触式测量的研究仍处于起步阶段,主要的研究是测量心率、血压和血氧饱和度等。2007年,日本的Takano等基于iPPG技术使用相机采集的人体皮肤视频研究出了一种心率与呼吸频率采集装置[6];2017年,马良提出一种基于双波长法,远程测量血氧饱和度的方法[5];也有研究利用贝叶斯光谱估计法,通过视频测量得到脉搏等[7]。Chwyl等以贝叶斯估计为基础,提出了一种非接触式心率检测方法[8]。
然而,上述文献中对于有效iPPG信号的选取主要还是依靠传统的算法以及后期人工识别,这些方法费时费力,且准确率不高,难以应用于实际的复杂场景中,因此,本研究设计了基于深度学习的iPPG有效信号识别方法。通过高分辨率相机在稳定光源下对人脸视频进行采集,然后通过设计人脸识别算法进行定位,从选取的感兴趣区域(Region Of Interest,ROI)提取脉搏波信号并进行去噪处理,然后用训练好的深度学习模型对信号进行有效性识别,并将最后识别得到的iPPG信号与标准的PPG信号进行了对照。下面就对本文所设计的采集系统、人脸定位算法以及深度学习模型进行完整的介绍。
随着心脏的跳动,动脉血管会产生周期性的扩张与收缩,从而产生了一种周期性的搏动,这种搏动就被称为脉搏[9]。
脉搏能够反映大量的心血管信息,包括心率、血压和血氧饱和度等,因此,研究人员可以通过处理脉搏波从而测量得到包含心率、血压、血氧等人体医疗体征[10]。
iPPG技术是从郎伯-比尔(Lamber-Beer)定律和光散射理论发展而来的[11]。郎伯-比尔定律的描述为:在某物质的溶液上,照射波长为λ的单色光时,透射光强和反射光强的关系如下所示:
其中,C为介质系数,当光少照射在物体中时,行进的距离为L。当光照射到皮肤组织后,一部分光被皮肤组织吸收,而其余的光则会被反射回来,当血液容积发生变化时,反射回的光强也会随之改变,同时这些反射光包含了人体心血管的许多医疗体征信息。
针对有效信号的识别,本文所提出的研究方法包括人脸视频采集、iPPG信号处理和有效信号识别3个主要部分。系统的整体流程如图1所示。
图1 有效信号识别流程图
信号有效性识别的主要流程为:
(1)使用高清摄像头录制人脸视频,并将录制的视频的每一帧以图片的形式保存。对帧图片进行人脸识别和定位,通过实验分析找出效果最好的感兴趣区域,用来后续提取iPPG信号。
(2)对连续序列的帧图片的RGB三通道进行分离,得到三通道iPPG信号。
(3)对信号使用小波变换和带通滤波进行去噪处理,选取最符合标准iPPG信号波形的作为后续实验使用的波形。
(4)对iPPG信号采用滑窗法分段输入到训练好的深度学习模型中,判断每一段输入的iPPG信号是否为有效波形,保留有效波形为之后的扩展应用做铺垫。
为更好地采集视频和进行iPPG信号有效性识别,本研究开发了基于Python的有效iPPG信号识别软件,该软件可以实时捕捉摄像头拍摄到的画面并显示在界面上,同时设计了定时功能,可以自由设置每次录制视频的时长,在视频录制结束后,软件会先对视频中的人脸进行识别,若人脸识别失败,则要求参与者重新进行录制;若人脸正确识别,则会将视频的每一帧图片保存,并在定位后的人脸上选取感兴趣区域得到iPPG信号用于后续处理。图2为自主设计的有效iPPG信号识别软件。
图2 视频采集软件
本系统采用的是Dlib人脸识别算法。Dlib是一款基于C++开发的,同时也可应用于Python语言的深度学习工具。Dlib用于人脸定位有着较高的准确性,且方便后续的扩展操作。因此在使用软件时首先通过加载人脸识别模型来对保存帧图像实现人脸关键特征点的定位,本实验使用的模型定位的特征点共有68个,主要包括嘴巴、鼻子、眼睛和眉毛等器官。通过获取的关键特征点可以确定人脸大小,并实现ROI区域的定位[12]。
为保证实验的准确性,实验共招募了115名年龄在18~40岁的志愿者(包括74名男性和41名女性)参与本研究。所有参与研究的人员均提前获得了知情同意,他们都没有服用药物,也没有任何已知的心血管疾病。为确保实验的可靠性,选择在上午和下午两个不同的时间段进行实验。在录制视频之前,参与者先休息五分钟,确保生理状态稳定,之后在稳定光的照射下,参与者被要求坐在摄像机前约0.5 m的椅子上,录制多组视频,每组视频时长为30 s。录制时,志愿者被告知尽量保持头部静止,且不佩戴会遮挡面部的物体,以减少干扰。实验使用的摄像头为阿斯盾AW651高清摄像头,在1 080P分辨率下,帧率可达60帧/s,在2K分辨率下,帧率可达30帧/s。在本研究中,录制的视频帧率为60帧,分辨率为1 920×1 080。
有效iPPG信号识别系统的图像处理算法主要分为两部分:(1)选取合适的获取iPPG信号的区域,即ROI区域;(2)通过对信号的RGB通道进行分类,提取得到所需要的iPPG信号。图3为分别从不同区域提取得到的iPPG信号。
图3 不同ROI区域的信号曲线
大量研究表明,只有部分面部区域富含丰富的血管信息,因此需要选取不同的部位分别提取iPPG信号并进行对比。图3是分别从额头、下巴、脸颊与鼻子三个区域提取对应的iPPG信号,进行预处理得到的时序信号。
从图3中可以看出,相对于其他区域,脸颊及鼻子区域得到的信号更接近于有效PPG波形,造成这个现象的原因:一是鼻子和脸颊区域毛细血管分布更多,因此从中提取得到三通道信号可以反映出更多的生理信息;二是该区域不会因为人的呼吸而产生较大偏移,不会产生较大的干扰。因此本研究选取脸颊及鼻子区域作为提取iPPG信号的ROI区域。
选择合适的ROI区域后,iPPG信号通过式(2)平均每一帧的ROI区域的像素值来获得:
其中t为帧的序列数,W和H为感兴趣区域的宽度和高度。从ROI区域可以提取得到红、绿、蓝三个通道的信号,由于血红蛋白的光学吸收特性在500 nm~600 nm处达到峰值,对应绿色通道信号[13-14]。此外,在收缩期和舒张期之间,绿色通道信号变化最明显,因此本方法选择提取绿色通道信号作为iPPG信号。
由于iPPG信号中存在多种类型的噪声,如轻微摇头引起的噪声、荧光灯产生的工频噪声和基线漂移,因此需要对iPPG信号进行滤波[15]。本文采用小波变换和带通滤波对信号进行滤波。小波变换的方法在消除噪声的同时不会破坏所需要的信号。一维信号的离散小波变换如式(3)所示:
其中,x是比例因子,y是平移因子,j和k分别是离散x和y的参数,且j,k∈Z。
一般来说,基线漂移现象发生在低频区[16]。此外,视频捕获的帧速率为60帧/s,典型的呼吸频率在0.14和0.75 Hz之间,对应于第六层小波分解。基于以上分析,选择Sym6母小波对iPPG信号进行六层分解,并以第五层作为基线漂移信号,从原始iPPG信号中减去小波信号的第六层低频分量,从而达到消除基线漂移现象的目的。经验证,脉搏波的频率范围为0.7 Hz~6 Hz[17]。 采用巴特沃斯(Butterworth)带通滤波器(0.7 Hz~6 Hz)消除非自愿抖动和荧光灯电源频率引起的噪声,该方法可以使整个波形更加平滑。此外,巴特沃斯滤波器在通带内的频率响应曲线平坦,没有波动。iPPG信号中的有用信息可以被最大程度地保留。通过以上预处理过程得到干净的iPPG信号。图4为原始iPPG信号处理的过程。其中图(a)为原始信号,图(b)为小波变换后的信号,图(c)为带通滤波后的信号。
图4 iPPG信号处理过程
目前对于iPPG信号识别的研究大多基于传统的提取峰值点的方法[18]。获取峰值点的步骤如下:首先,对iPPG信号进行归一化,然后在信号中线附件设置阈值τ,大于τ的值设为1,小于τ的值设为0,这样便得到了一个新信号。对信号执行驻点差分法,从下一个点减去上一个点,然后形成一个新的由1和-1组成的散射信号,通过将与原信号进行对应便可以判断信号的有效性,但是此方法对信号的质量要求高,在实际情况下提取获得的iPPG信号关键特征偏移验证,因此很难做出正确的识别。本研究提出了先用卷积神经网络提取信号特征,再输入GRU网络进行判别的方法。此方法与传统方法相比大大减少了对因实际场景下外界因素对信号的干扰,提取了信号识别的准确性。
模型示意框图如图5所示。在第一阶段中,上支与收缩期估计相关,下支与舒张期估计有关。每条分支由两个独立的神经网络组成。通过分配两条分支,该体系结构可以提取特征并独立对信号进行有效性识别。
图5 网络模型框图
由于iPPG信号在舒张期和收缩期有着不同的波形规律,为了提高所提出模型的性能,将分别提取舒张期和收缩期的特征向量,并输入到第二阶段的模型中。第一阶段的两个神经网络是深度卷积神经网络(CNN)。CNN的灵感来自视觉皮层神经元之间的连接模式,它们使用卷积运算而不是一般的矩阵乘法[19]。因此,与具有相同层数的标准全连接神经网络相比,CNN的连接和参数要少得多,便于训练。在本研究中,CNN网络都由四个隐藏的卷积层组成。最后一个卷积层的输出作为提取的特征向量,神经网络输出作为第一阶的有效信号识别。每个CNN有四个隐藏的卷积层,如图6所示。
图6 卷积神经网络结构示意图
第二阶段的GRU网络架构由图7所示,第一层GRU包含了32个单元,而第二层则包含了16个单元。
图7 GRU网络架构
由研究可知,iPPG信号是明显的周期性时序信号,因此在研究时需要考虑特性。LSTM网络及GRU网络能对相关时序信息进行记忆与删除,实现动态地学习信号的变化[20]。GRU网络由LSTM网络改进而来,在分析时间序列数据中被大量地应用。GRU网络减少与合并门结构单元,实现了LSTM复杂内部结构的优化,在实现更快的网络训练速度下,还保证了网络的精度[21]。不同于LSTM网络的三个门,GRU只包含更新门和重置门,从而减少了需要训练的参数。更新门决定保留前一时刻状态信息保留到当前状态中的程度,值越大表示前一时刻的状态信息保留越多。重置门控制当前信息与先前信息结合的程度,值越小说明忽略的信息越多。
通过对115名志愿者采集得到的共1 656条信息进行了有效性分别,最终得到有效iPPG信号820条,无效iPPG信号530条。分别随机选取每一类70%的数据作为训练集,剩余的30%作为测试集。该数据集已经开源。然后用构建好的一阶CNN网络训练数据集,当一阶CNN网络训练完成时,将CNN网络的输出结果和第四层卷积层的输出作为特征向量制作成新的训练数据集,再将新训练数据集输入到二阶GRU网络中进行训练,模型训练完成后,使用之前的测试数据集测试训练效果。同时也使用传统峰值法和只使用CNN网络的方法对iPPG信号有效性识别进行了测量,测试结果如表1所示。二阶GRU网络训练的损失函数loss曲线如图8所示,其中横坐标和纵坐标分别表示的是训练时的轮数和对应的loss值,由图8可以看出最终的loss值趋于0.05。
表1 信号有效性识别测试结果(%)
图8 损失函数loss曲线
本文首次提出了基于深度学习的有效iPPG信号的识别方法。针对实际应用场景下iPPG信号有效性判别困难的问题,自主开发了通过高速摄像头录制并保存人脸帧图片的软件。通过多次实验确定了ROI区域的选取,选取绿色通道用于提取iPPG信号。针对信号的基线漂移现象,设计对应的小波变换算法进行去除;设计带通滤波器以最大程度减少噪声对信号的干扰。最后构建基于CNN和GRU网络的多阶段模型来实现iPPG信号的有效性测量。同时制作并开源了首个iPPG信号有效性识别的数据集,在测试实验中,提出的模型具有良好的准确性与鲁棒性。相较于传统的识别方法,具有操作便捷、准确率高、普适性强等优点。在后续的iPPG信号应用领域中,具有非常广阔的应用前景。
目前本研究所做实验因客观因素的限制,数据集包含的范围较小,选取的志愿者的人种、肤色等比较单一。在未来的实验中,会扩大实验对象的范围,从而更进一步验证本文实验的有效性与普适性。