基于视频的人体心率检测算法研究*

2023-12-09 08:50杨梦瑶胡丹峰王加俊
计算机与数字工程 2023年9期
关键词:点数感兴趣均值

肖 汉 杨梦瑶 徐 杰 胡丹峰 王加俊

(苏州大学电子信息学院 苏州 215006)

1 引言

心率反映一个人心脏的活动能力,是衡量心血管系统的健康状态的重要参数[1],同时心率携带着许多重要生理信息,通过对心率的监测可以为睡眠呼吸暂停等疾病的诊断提供重要参考[2]。

PPG(光电容积脉搏波描记法,Photo plethysmography)是一种常用的非侵入性技术,其大部分应用都集中在心血管系统方面,在PPG信号的功率谱中包含有明显的与心率相关的峰值[3]。基于PPG 的心率检测系统虽以其低成本、操作便利等优点已在临床及日常检测方面得到广泛的推广和应用,但其主要采用接触人体的传感器来获取信息,采集时需要被测部位与检测设备紧密贴合,具有较大的局限性,并且抗运动干扰能力差,检测结果会随着受试者的移动而发生变化[4]。针对这些缺点,多位学者提出了基于视频的心率检测方法,可以通过自然光源,提取以视频图像为信息载体的心率信息[5]。

2 图像人体心率检测原理

IPPG(图像光电容积脉搏波描记法,Image photoplethysmography)技术的光学理论基础为光散射理论和朗伯-比尔定律(Lamber-Beer)[6]。当波长为λ的单色光照射在某物质的溶液上时,透射光强I与发射光强I0之间的关系为

ε(λ)为吸光系数,C为介质的浓度,L为光在物质中的行进距离。当介质为多种物质组成时,只要各种物质间不存在着相互作用,朗伯比尔定律依然适用,这时在某一波长下介质的总吸光度是各物质在该波长下吸光度的叠加[7]。

根据皮肤反射模型,研究者发现光照射在皮肤表面上产生镜面反射,在皮肤组织间产生漫反射。其中镜面反射光线未渗透进皮肤组织,不携带任何生理信息,通常表现为直流及低频信号,反映了皮肤表面的肤色、形状等特性;而漫反射是入射光在人体组织间经过部分吸收后的散射光,反映了光线在皮肤组织及皮下血管的吸收情况,是一种近似周期性的脉冲信号[8]。

容积脉搏血流是指存在于外周血管中的微动脉、毛细血管和微静脉内流过的血液,该部分微血管的血液在心脏搏动下呈脉动性变化[9]。当透光区域血管的容积变化时,血液对光的吸收量将随之变化,而其他皮肤、肌肉、骨骼等部分对光的吸收是恒定不变的,所以反射光的强度主要由血液对光的吸收能力决定[10]。

脉搏波是以心脏搏动为动力源,通过血管系的传导而产生的容积变化和振动现象。当心脏收缩时,有相当数量的血液进入原已充满血液的主动脉内,使得该处的弹性管壁被撑开,此时心脏推动血液所作的功转化为血管的弹性势能;心脏停止收缩时,扩张了的那部分血管也跟着收缩,驱使血液向前流动,结果又使前面血管的管壁跟着扩张,如此类推[11]。

血管中血容量变大,光吸收量变大,检测到的光强变小;血管中血容量变小,光吸收量变小,检测到的光强则变大。由于血容积随着心脏搏动而同步波动,使得皮肤反射出的光强度与血容积变化相对应,因此光照强度变化一定程度上可反映心脏跳动规律[12]。利用摄像头采集蕴含变化的信号的图像并进行信号提取,这样提取到的血液体积变化波形称作血液容积脉搏波(Blood Volume Pulse,BVP)。对BVP进行相应的信号处理便可以得到受试者心率的准确值。

3 本文检测方法

3.1 方法概述

本文方法的整体流程如图1所示。

图1 心率检测流程图

如图1 所示,我们读取摄像头的视频流数据,将其分解成帧图像,将图像进行灰度化和直方图均衡化操作,利用opencv的haar训练器进行人脸检测和眼睛检测,得到感兴趣区域坐标;之后提取感兴趣区域的灰度均值,对灰度均值数组进行一维离散小波变换去除噪声,再进行快速傅里叶变换,将信号变换至频域,选取人的心跳对应的频率范围(0.9Hz~1.8Hz)并查找幅度最大值,最大值对应的频率即为心率。

3.2 信号处理

人脸感兴趣区域的灰度均值的变化信号携带有人体心率的信息,但是信号中也有许多噪声,比如拍摄时由于人体的晃动,环境光线的变换,人脸的抖动等带来的外部噪声。对于多数信号来说,低频成分蕴含着信号的特征,噪声往往位于高频部分。本文研究的脉搏波信号的频率范围为0.9Hz~1.8Hz,对应正常人体心率的范围。

对灰度均值数组进行一维的离散小波分解,得到各个频段的分量,滤去心率范围之外的分量,然后将信号重构,既很大程度上保留了脉搏波信号的特征,又滤去了心率频率范围之外的噪声。

根据Mallat 算法,任何函数f(x)可以分解为多尺度的低频和高频部分:

其中A代表信号的高频近似部分,D代表信号的低频近似部分,n为分解层数,对于长度为N的信号,最多可分解为log2N层。

小波基是用来对信号进行小波分解的分量的集合,选择不同类型的小波基函数会产生不同的效果,而“db5”小波基与脉搏波的信号特征最为接近,且低频部分系数较大,有利于处理低频分量[13],所以选择“db5”小波基进行小波变换。

摄像头帧率为30Hz,选取0~15Hz 为频带范围进行小波分解向下采样滤波。4 层分解后,结构如图2 所示,发现cD4 分量(0.9375Hz~1.875Hz)覆盖了心率的范围。将除了cD4 分量的其余分量全部清零,之后进行信号重构,重构之后信号的噪声被很好地抑制。

图2 小波分解示意图

图3 快速傅里叶变换结果

在心率的频域算法中关键是要准确捕捉到心率的频谱,所以需要对小波变换后的信号进行快速傅里叶变换(FFT)。变换后每个点对应一个频率点,该点的模值就是该频率下的幅度特性[14]。离散傅里叶变换(DFT)公式如下:

在FFT 变换的结果中对0.9Hz~1.8Hz频率范围进行筛选,其中最大幅值对应的频率即为心跳的频率,乘以60后得到心率值。

4 实验和测量

本文对心率检测系统的感兴趣区域、采样点数和图像颜色格式这三个参数进行了对比实验,根据实验数据确定了最优测量方案。在确定所有参数后,使用本系统进行了实际测量,记录数据,计算误差,分析数据。

4.1 实验条件

如图4 所示,视频采集设备使用罗技C930C 摄像头,通过USB 连接笔记本电脑,帧率为30 帧,分辨率为1080P,使用指夹式血氧仪测量实际的心率,与系统测量数据进行比对。

图4 成像设备和指夹式血氧仪

在明亮的实验室中进行实验,光照情况良好,使摄像头拍摄的图像上人脸足够清晰。

选取三个心率范围不同的被测者,每个被测者都测试三组数据,拍摄过程中,摄像头距离被测者面部大约0.6m,以合适的角度对准人脸,使得人脸检测稳定和连续,拍摄时长大约为15s~30s,取决于采样点数和人脸检测是否顺利。被测者在拍摄过程中不能有太大幅度的移动或者面部动作,同时佩戴指夹式血氧仪,记录实际心率。

下述所有实验中的心率的单位统一为次/min。

4.2 实验过程

4.2.1 感兴趣区域

选取人脸上不同的区域进行脉搏波信号的提取,实验心率检测的精确度和稳定性。三个待选方案如下。

方案一:面部的中央区域,上下范围是从眉毛上方到嘴唇上方,左右边界为两侧的脸颊。

方案二:额头。

方案三:面部的下半部分。上下范围是从眼睛下方到嘴唇下方,左右边界为两侧的脸颊。

表1 实验结果

平均绝对误差(MAE)和方均根误差(RMSE)计算公式如下:

其中,m为测量次数,y为真实值,h(x)为测量值。

分析数据,发现方案一的精确度最高,且测量的稳定性也较好,所以选择方案一作为感兴趣区域,大致范围是从眉毛上方到嘴唇上方,左右边界为两侧的脸颊。

4.2.2 采样点数

Δf为频率分辨率,N为采样点数,Fs为采样率,即摄像头帧率30Hz。

采样点数对检测结果有较大影响,如果选用的点数较少,会使得分辨率较低,精确度较差;如果选用的点数较多,则拍摄时间会变长,被测量者的心率波动范围会变大,出现噪声的几率更大。

在测量的过程中,被测量者本身的心率也不是一成不变的,比较稳定的时候也会出现2~6 次/min左右的波动,所以在选取点数的时候,心率的分辨率在3~6 次/min 之间都可以接受。采样频率为30Hz,选取的采样点数可以考虑在300~1000(采样时间约为10s~33s)范围内。

分别选取450、600、800、1000 作为采样点数,对比测量效果见表2。

表2 实验结果

表3 实验结果

分析数据,发现采样点数增多,心率检测的精确度提高,在点数达到1000 时,心率检测的精确度较好,误差缩小至一个可以接受的范围,且检测的稳定性也较好,考虑到继续增加点数,拍摄的时间会过长,对被测者来说不方便,且产生噪声的概率会变大,所以选取采样点数为1000。

4.2.3 彩色图像与灰度图像对比

通过彩色图像的三通道提取像素均值,研究者提出绿色通道对脉搏波信号的提取效果最好[15],所以分离彩色图像的红绿蓝三通道后,将绿色分量的均值存入数组,检测心率,并与使用灰度图像均值的方法作比较。

分析数据,发现提取彩色图像绿色通道与提取灰度图像相比,精确度和稳定性都有略微提升,所以系统选择采用彩色图像的绿色通道进行信号提取。

4.3 成型心率测量系统

系统1:感兴趣区域为额头,采样点数450,使用灰度图像提取均值。

系统2:感兴趣区域优化为面部中央,采样点数450,使用灰度图像提取均值。

系统3:感兴趣区域优化为面部中央,采样点数1000,采用灰度图像提取均值。

系统4:感兴趣区域优化为面部中央,采样点数1000,采用彩色图像的绿色通道提取均值。

系统4 即为最终成型的心率检测系统,使用该系统测量数据,和改进之前的系统1、2、3 进行对比,测试后得到表4数据。

表4 系统测量结果

分析数据,发现通过调整三个参数,系统检测的精确度和稳定性得到了一定的提升。

另外,发现测量结果中有个别数据与实际心率偏差较大,这是由于在0.9375Hz~1.875Hz频段范围内的噪声无法被小波变换过滤,当噪声的幅度大于有效信号时,检测的结果则会出现很大偏差。产生这些噪声的因素有很多,比如摄像头拍摄时的各种抖动、光线变化、被测者面部的动作等。为了减少这种检测偏离的情况,在实验时可以选取合适的拍摄角度和光线环境,并且保证被测者面部没有遮挡和干扰,这样可以使感兴趣区域的信号被稳定和准确地提取。

5 结语

本文针对传统的侵入式和非侵入接触式心率检测方法的不足,提出了一种基于视频的非接触式人体心率检测方法,并对测量系统中的三个参数:感兴趣区域、采样点数和图像颜色格式,进行了对比实验,选取最优测量方案。实验数据表明,本文提出的非接触式方法可以精确并稳定地测量人体的心率数值,在医疗临床检测中有较好的应用前景。

猜你喜欢
点数感兴趣均值
更 正
看不到的总点数
画点数
均值不等式失效时的解决方法
破解“心灵感应”
这样的智能厨房台面,你会感兴趣吗?
均值与方差在生活中的应用
多核并行的大点数FFT、IFFT设计
关于均值有界变差函数的重要不等式
对偶均值积分的Marcus-Lopes不等式