基于面部图像的非接触式婴儿心率监测

2019-12-04 01:47许桢杰高国琴方志明
软件导刊 2019年10期

许桢杰 高国琴 方志明

摘要:为实现便捷、可靠的日常婴儿心率实时监测,提出一种基于面部图像的非接触式婴儿心率实时监测方法。首先引入欧拉视频放大技术,对一定时间间隔內视频的每一帧图像进行颜色增强处理,从而改善婴儿面部颜色变化微弱、所含心率信息不明显的问题;然后,通过Adaboost算法从每一视频帧中识别出婴儿面部,并从婴儿面部选取脸颊区域作为敏感区域以提取脉搏波信号,以此为基础提出一种改进的反射光强模型,抑制日间因环境光变化引起的干扰以及运动噪声干扰,提高脉搏波信号信噪比;此外采用摄像头的红外自主光源,通过一种基于相空间重构的单通道独立成分分析法分离夜间脉搏波信号的运动噪声,解决因夜间光照条件差引起的婴儿心率监测困难的问题;最后开发整个系统上位机应用程序,并通过实验验证该方法正确性和有效性.

关键词:面部识别;心率监测;光电容积描记;反射光强模型;运动噪声;光照变化干扰

DOI:10.11907/rjdk.191097开放科学(资源服务)标识码(OSID):

中图分类号:TP301文献标识码:A 文章编号:1672-7800(2019)010-0012-07

0引言

人体心率(HR)是许多心血管疾病临床诊断的重要指标之一。近年来,社会各界对婴幼儿心血管健康愈发重视,婴儿心率监测是婴儿监护重要项目之一,婴儿心率变化与婴儿健康程度、供氧状况、活力状况密切相关。通过婴儿心率实时监测可及时发现婴儿心率不齐、心率变异等症状,以便及时采取相应对策。因此有必要研究一种便捷、舒适、可靠的日常家用婴儿心率实时监测方法。

目前,婴儿心率监测主要采用接触式测量方法,要求被测者与设备进行特定的物理接触,但婴幼儿皮肤脆弱、易损,长时间监测会造成一定的皮肤损伤,引起一定程度的身体不适,同婴儿皮肤接触的器件易滋生细菌,接触部位有伤口时甚至会造成细菌感染。而非接触式心率监测不需要各类传感器及连接线与身体接触,具有无创、便捷、舒适等监测优点。

现有非接触式心率监测方法中,激光多普勒测量以及基于微波或毫米波的多普勒测量存在较大辐射,长时间使用会对婴儿造成一定生理负担,无法实现日常婴儿心率监测;红外热成像测量对红外热成像装置要求较高,价格昂贵,亦不适用于日常家用婴儿心率监测;成像式光电容积脉搏波(Imaging Photo Plethysmo Graphy,IPPG)测量法具有测量安全、实现简单、成本低廉的优点,但现有成像式光电容积脉搏波测量法易受环境光变化及运动噪声干扰,测得的心率值精确度不高,且现有方法仅基于日间光照条件较好的情况,暂时无法实现夜间非接触式心率监测。为实现日间与夜间不同场景下的高精确度婴儿心率监测,有必要对成像式光电容积脉搏波测量法作进一步研究。

成像式光电容积脉搏波测量法的难点在于如何准确且快速地提取高信噪比的脉搏波信号。目前常规脉搏波信号提取方法有:色度模型算法、RGB通道差值算法、运动放大算法、盲源分离算法等。由于未考虑环境光变化引起的干扰,上述方法提取的脉搏波信号信噪比较低,难以保证其心率监测精确性。Poh等和Pursche等采用独立成分分析(Independent Component Analysis,ICA)算法进行盲源分离去噪,被测对象为面部非皮肤区域,其中眼睛眨动对脉搏波信号造成的干扰较大,且干扰频率和心率相接近,不易滤除。另外,盲源分离并没有提供一个判断方法区分分离后哪一组独立信号相对于实际心率信号最具真实性,从而影响心率计算精度;Xu等针对盲源分离缺点,受光学血氧仪启发,提出针对人体皮肤基于脉搏变化交流信号成分分析的简单数学模型心率计算方法,该方法在测量过程中需持续45-90秒,而且整个过程要求被测对象保持不动;刘祎等基于独立成分分析(ICA)和完全总体经验模态分解(CEEMD)方法,从面部视频中提取脉搏波进行心率测量,但未考虑环境光变化带来的影响,对光照变化不具鲁棒性;吕扬、刘杰等通过建立一个非彩色模型对原始图像进行颜色校正,去除光线干扰,但该模型无法精确描述反射光的各分量,颜色校准误差较大,未能较好地抑制环境光变化引起的干扰,且未考虑运动噪声干扰,抗面部晃动干扰效果较差。

为解决上述问题,本文引入一种改进的反射光强模型,以抑制日间环境光变化引起的干扰及运动噪声干扰。该算法模型将反射光分解为静态成分、脉搏波引起的动态成分及镜面反射成分,结合背景区域颜色通道信号,将其与前景敏感区域颜色通道信号作为比值,消除随时间变化的光照强度项,抑制环境光变化引起的噪声干扰,并结合独立成分分析,将上述消除光照强度项后的颜色通道信号进行盲源分离,以降低运动噪声干扰;其次,通过摄像头上方增设红外自主光源解决夜间光照条件差、婴儿心率难以监测的问题。由于红外监控摄像头在红外灯开启时,存在大量红外光,此时无法使用红外滤镜过滤掉红外光,只能使用全透滤镜并切换成黑白图像,因此通过红外自主光源补光获得的视频为单通道灰度视频。对于单通道灰度图无法使用上述方法进行运动噪声分离,本文通过一种基于相空间重构的单通道独立成分分析法分离夜间脉搏波信号的运动噪声,实现夜间非接触式婴儿心率监测。

本文通过一个普通的网络监控摄像头采集图像,并传至PC端上位机,由上位机进行相关计算处理,上位机实时显示婴儿画面、心率波形、心率值,可设定正常的心率范围,当监测到婴儿心率超出该范围可及时报警,该系统具有较好的实时性和较高的监测精度。本文还提出一种结合独立成分分析的改进式反射光强模型,通过引入背景區域反射光强模型,将前景与背景区域信号作比值处理,消除随时间变化的光照强度项,以抑制环境光变化引起的干扰,并结合独立成分分析,降低运动噪声干扰,从而提高脉搏波信号信噪比与婴儿心率监测精度;同时通过摄像头上方增设的红外自主光源并结合一种基于相空间重构的单通道独立成分分析法,实现夜间婴儿心率监测。

1主要原理

本文主要基于成像式光电容积描记法(IPPG)对婴儿心率进行监测。人体心脏周期性跳动引起血液中含氧血红蛋白含量周期性变化,使血液吸收反射光线强度发生周期性改变。当外界光照射到人体皮肤表面时,皮肤内的血液对光的吸收随其容积变化呈现与心跳一致的脉动性变化,同时造成皮肤表面反射光强度发生相应周期性变化,从而表现为皮肤颜色的变化。

近年来研究发现,在自然光条件下,由于受到生理条件的限制,人眼无法观察到微小的颜色变化,但是通过普通消费级的RGB摄像头可以将其捕捉到。人体皮肤表层下含有丰富的血管分布,其反射光强度周期性变化形成了皮肤颜色周期性变化,提取肤色变化信息即可获得周期性脉搏波信号。相较于其它部位,婴儿面部区域毛细血管数量较多,对光线吸收程度相对较大,因此选取面部相关区域提取婴儿心率信号。

2主要方法

2.1方法架构

本文方法由4个关键步骤构成。首先引入欧拉视频放大技术,对一定时间间隔内视频中的每一帧图像进行颜色增强处理,从而改善婴儿面部颜色变化微弱、所含心率信息不明显的问题;然后,通过Adaboost算法从每一视频帧中识别出婴儿面部,并从婴儿面部选取脸颊区域作为敏感区域以提取脉搏波信号;其次,通过一种结合独立成分分析的改进式反射光强模型,将前景与背景区域信号作比值处理,消除随时间变化的光照强度项,以抑制环境光变化引起的干扰,并结合独立成分分析,降低运动噪声干扰,从而提高脉搏波信号信噪比;最后,针对红外自主光源得到的单通道灰度视频,通过一种基于相空间重构的单通道独立成分分析法,分离夜间脉搏波信号的运动噪声,以实现夜间非接触式婴儿心率监测。整体流程如图2所示。

2.2颜色增强处理

该环节引入欧拉视频放大技术,以增强视频图像的颜色变化信息,使婴儿面部微弱颜色变化成为较明显的人眼可分辨的信息,从而改善婴儿面部颜色变化微弱、所含心率信息不明显的问题。

将输入的视频图像分解到不同尺度空间中,并采用数字带通滤波器对每个尺度空间进行时域滤波处理,再乘以相应的放大因子,将得到的不同尺度空间图像同原始图像进行金字塔重构,即可得到放大后的连续图像。

2.3婴儿面部识别

本文婴儿面部特征由Harr-like特征提取,特征值通过积分图法计算得到,分类器采用Adaboost算法训练获得。每一个Harr-like特征训练后可得到相应的弱分类器,且同一弱分类器使用同一个训练集训练得到,将不同训练集训练得到的弱分类器级联形成强分类器。Cascade级联将强分类器级联,可快速识别婴儿面部。

AdaBoost面部检测算法基于积分图、级联分类器和AdaBoost算法,其主要框架分为:①通过Harr-like特征表示婴儿面部特征提取完成,并采用积分图法实现婴儿面部特征数值快速计算;②由AdaBoost算法选取若干最能代表婴儿面部的矩形特征(弱分类器),按加权投票的方式将弱分类器构造为强分类器,如图4所示;③将训练获得的强分类器串联形成一个级联结构的强分类器,级联结构可有效提高分类器面部检测速度,如图5所示。

AdaBoost面部检测算法识别准确率高、识别速度快,能够较好地满足系统实时性要求。

2.4反射光强模型改进

反射光强模型由Haan提出,该模型利用不同颜色通道信息差值和比例变换,消除静态成分和镜面反射干扰。

2.5夜间脉搏波信号运动噪声分离

夜间场景下,通过监控摄像头上方增设的红外自主光源,解决夜间光照条件恶劣的问题。由于红外监控摄像头在红外灯开启时,存在大量红外光,此时无法使用红外滤镜过滤红外光,只能使用全透滤镜并切换成黑白图像,因此通过红外自主光源补光获得的视频为单通道灰度视频。

对于单通道灰度图无法使用上述方法进行运动噪声分离,本文通过一种基于相空间重构的单通道独立成分分析法,分离夜间脉搏波信号的运动噪声,实现夜间非接触式婴儿心率监测。

对于仅有单通道的IPPG信号(单个观察通道),不能直接通过传统独立分量分析进行脉搏波信号分离,本文使用一种基于相空间重构的单通道独立成分分析法,通过对夜间所得单通道灰度信号进行坐标延迟,构成一个与未知空间系统在拓扑意义下等价的已知相空间,进而分析得到的未知系统相关信息,从而分离夜间脉搏波信号的运动噪声,实现夜间非接触式心率监测。

通过时间延迟构建多通道观察信号。

对于夜间场景下的婴儿心率监测,由于使用红外自主光源补光,其光照强度不变,因此认为使用红外自主光源时无光照变化干扰。该红外自主光源在外界光线较弱时自动开启,摄像头自动检测外界光线强弱判断红外光是否需要开启。该红外自主光源也可在无需心率监测时手动关闭。

2.6心率计算

为滤除由摄像头等硬件引起的固有噪声,基于Matlab对上述所得脉搏波信号进行数字带通滤波处理,选取通频带为[0.7,5]hz(对应婴儿心率42-300bpm)。本系统以时间窗口的形式处理视频心率信息,以实现婴儿心率实时监测。为计算婴儿心率,需确定时间窗口内脉搏波信号的平均频率。

心率计算主要分为时域计算和频域计算两种方法,其各自特点如下:

(1)时域计算。根据得到的脉搏波信号,计算单位时间内波峰数。例如在时间t内,若波峰数为n,则该时间段内的平均心率为60×(n-1)/t。该方法计算方式简单、灵活,但对于脉搏波信号中有较多噪声干扰时,其信号峰值显示不明显,易出现较大误差,降低婴儿心率监测精度。

(2)頻域计算。根据提取的脉搏波信号,分析其功率谱,寻找功率峰值对应的频率,将该频率作为此段时间内平均心率频率值.f,其平均心率即为./×60。该方法通过直接寻找功率谱峰值即可确定心率频率,且计算方便。

分析上述心率计算方法可知,时域计算法在脉搏波中掺杂有噪声时,会使时域信号产生伪峰值,影响系统监测精度。频域计算法可克服时域计算法的不足,将脉搏波信号以功率谱方式呈现更为直观。因此,本文采用频域提取方法计算最终的婴儿心率值。

3系统实现

3.1系统硬件实现

本文硬件组成主要为一个网络监控摄像头,出于经济性和功能性两方面考虑,选择萤石C6T智能云台网络摄像头,如图6所示。

该摄像头最高分辨率为1920×1080,帧率为30帧/秒,可通过有线和无线两种方式联网,云台旋转范围为:水平340°,垂直10°-80°,可基本实现无死角监控,另带有红外自主补光光源,摄像头可自动检测外界环境光的光照强度。当外界光较弱、无法满足监控要求时,摄像头自动打开红外自主光源。该摄像头性能完全可满足婴儿心率监测要求,其售价在500元人民币左右。

3.2系统软件实现

本文选择基于VC++、OpenCV和Matlab的混合编程进行系统软件开发。VC++功能强大,可以充分利用Micro-soft提供的API接口,基于微软基本类库(Microsoft Founda-tion Class,MFC)进行上位机开发。OpenCV在图像处理方面功能强大,因此本文基于VC++调用OpenCV库实现图像采集、婴儿面部识别以及敏感区域定位。Matlab在信号处理及后续算法实现中优势尤其明显。综上所述,本文基于VC++调用Matlab实现欧拉视频放大算法,改进反射光强模型算法,完成IPPG信号处理、单通道独立成分分析、数字带通滤波处理与心率计算。上位机界面如图7所示。

本文使用的摄像头可自动追踪运动的目标对象,也可手动调节云台使婴儿面部在摄像头可捕捉范围之内,红外补光光源可手动打开或关闭,上位机通过调用摄像头的官方API实现云台控制及红外补光光源打开与关闭。上位机实时显示监控画面、婴儿心率波形、婴儿心率值,当监测到婴儿心率超出设定的安全范围时,上位机报警功能被激活,提醒监护人婴儿心率处于异常状态。

考虑到本文算法的复杂性,且在VC++调用Matlab处理时需一定的时间消耗,为满足系统实时性,每隔5s监测一次婴儿心率,即每一次心率监测为采用由该时刻前30s视频记录下的脉搏波计算得到的心率值,可满足系统实时性要求。

4实验结果及分析

为选取最佳敏感区域(ROI),将婴儿面部分为4个区域进行实验:脸颊区域(Ⅰ)、眼部区域(Ⅱ)、额头区域(Ⅲ)、整个面部(Ⅳ),如图8所示。使用本文方法分别提取4个区域的IPPG信号并计算其功率谱曲线。

图9为各区域提取的IPPG信号曲线,图10为对应的功率谱图。实验结果表明:通过脸颊区域(I)提取的IPPG信号噪声较少,信号较为干净,心率信息较为明显,因此选取婴儿脸颊区域作为敏感区域。

图11为婴儿脸颊区域内提取的原始RGB三通道IP-PG信号,由图可见该信号未经任何处理,含有较多噪声,所含心率信息不明显。

本文通过颜色增强处理,对一定时间间隔内视频中每一帧图像进行颜色增强处理,以改善婴儿面部颜色变化微弱、所含心率信息不明显的问题。图12为颜色增强处理前使用本文方法提取的脸颊区域IPPG信号,图13为颜色增强处理后使用本文方法提取的同一区域IPPG信号。由图12和图13可见,未经颜色增强处理直接提取的IPPG信号含有较多噪声干扰,且周期性较差;经颜色增强处理后,IPPG信号较为纯净,且有较为明显的周期性。因此,通过欧拉视频增强处理后,搏波信号微弱、所含心率信息不明显的问题得到明显改善。

本文提出一种改进反射光强模型,以消除光照变化的影响,并降低运动噪声带来的干扰,能够有效提高脉搏波信号信噪比。图14为经过改进反射光强模型计算、并经带通滤波处理后得到的脉搏波信号,可见其具有显著的周期性,所含心率信息较为明显。因此,本文提出的改进反射光强模型较好地消除了环境光变化引起的干扰及运动噪声干扰。

图15为夜间场景下通过基于相空间重构的单通道独立成分分析法提取的脉搏波信号,由图可知该方法较好地抑制了夜间场景下运动噪声干扰,得到了较纯净的脉搏波信号。

选取1名一周岁左右的健康男婴进行心率监测实验。采用本文方法进行日间和夜间两组实验。

(1)日间实验。将婴儿置于灯光光照强度可调的环境下,且确保婴儿在摄像头可检测到其面部范围内。使用本文方法对婴儿心率进行监测(摄像头红外自主光源关闭),同时让婴儿佩戴腕戴式脉搏血氧仪,以该血氧仪监测结果为标准心率值。實验时不断调节灯光光照强度,并适时地诱使婴儿产生头部动作及面部表情变化。连续监测1小时,每隔5s记录血氧仪、上位机结果(上位机结果自动记录),得到如图16所示的婴儿心率监测曲线。

图16为存在环境光变化与运动噪声时的婴儿心率监测曲线,其平均绝对误差为4.37,可满足日常婴儿心率监测精度要求。

(2)夜间实验。在夜间场景下,关闭所有灯光,打开摄像头自带的红外自主光源,此时认为光照强度一定,忽略光照变化干扰。将婴儿置于摄像头可检测到的范围内,使用本文方法对婴儿心率进行监测,同时让婴儿佩戴腕戴式脉搏血氧仪,以该血氧仪监测结果为标准心率值,并适时地诱使婴儿产生头部动作及面部表情变化。连续监测1小时,每隔5秒记录血氧仪及上位机结果(上位机结果自动记录),得到图17所示的婴儿心率监测曲线。

图17为夜间场景下存在少量运动噪声的婴儿心率监测曲线,其平均绝对误差为4.13,亦满足日常婴儿心率监测精确度要求。

5结语

本文研究了一种基于面部图像的非接触式婴儿心率实时监测方法,可较好解决婴儿面部颜色变化微弱、环境光变化干扰、运动噪声干扰引起的婴儿脉搏波信号信噪比低、心率精度差的问题,同时解决夜间光照条件恶劣时心率监测困难的问题,实现了日间和夜间两种场景下非接触式婴儿心率监测,具有较好的实时性和较高的监测精度。

本文研究内容为家庭婴儿监护及医疗病患监护提供了切实可行的新思路,具有较高的学术价值与实际应用价值。未来还可继续深入研究基于面部图像的呼吸率、血氧饱和度、心率变异性等其它重要生命体征参数的监测,该类研究具有广阔的应用前景。