一种基于视觉计算的非接触式呼吸监测方法与流程

文档序号:23224988发布日期:2020-12-08 15:09阅读:141来源:国知局
一种基于视觉计算的非接触式呼吸监测方法与流程

本发明涉及医疗呼吸监测技术领域,具体涉及一种基于视觉计算的非接触式呼吸监测方法。



背景技术:

呼吸是人体非常重要的一项生理活动,人体的频率、强度、节奏等睡眠呼吸信号可以在很大程度上反应身体健康状况,揭示疾病的出现,因此,对人体睡眠呼吸监测具有非常重要的医学意义。

呼吸频率的检测方式主要有接触式和非接触式两大类,目前,医用的呼吸监测主要以接触式监测方式为主,医学上对于实验讲求“双盲”,也就是受试者在没有心理干预的条件下完成实验,不要因为心理上的好恶和刺激而产生结果,如果用穿戴或接触式就有可能对实验数据产生影响,而接触式的检测不但会给病人带来不适感与束缚感,影响检测效果,而且对于特殊病人(婴儿、老人)很不方便,对此,非接触式的呼吸监测方法展现出了比较大的优势。非接触式的呼吸监测方法大都采用摄像头对呼吸信号进行视频图像采集,采用一系列的算法对采集的图像进行处理,但当呼吸信号微弱或者呼吸幅度较小时,得不到较好的呼吸信号,最终会导致呼吸监测结果不准确甚至失败的问题。



技术实现要素:

本发明的目的在于:针对以上现有技术中接触式检测方法存在的问题以及非接触式监测方法中当呼吸微弱或幅度较小时难以准确的监测呼吸信号的技术问题,本发明提供了一种基于视觉计算的非接触式呼吸监测方法,本发明提供的技术方案不仅解决了接触式检测方法存在的问题,针对现有技术中非接触式呼吸监测方法存在的由于呼吸信号微弱或幅度较小而导致对呼吸信号的监测结果不准确的问题,提供了创新性的方案,对现有技术中相位运动放大方法进行创新性改进,并将该方法首次运用到非接触式呼吸监测过程中,对呼吸运动进行相位运动放大处理,实现了非接触式呼吸监测方法的实时监测,克服了现有技术中非接触式监测方法由于呼吸微弱或幅度较小而导致呼吸监测结果不准确的问题。

本发明为了实现上述目的具体采用以下技术方案:

一种基于视觉计算的非接触式呼吸监测方法,包括:第一步,利用网络摄像头采集视频图像;第二步,对采集到的视频图像进行感兴趣区域(roi)定位;第三步,将定位到的感兴趣区域进行灰度化处理;第四步,利用改进的相位运动放大算法对呼吸运动进行相位运动放大处理计算;第五步,提取相位运动放大后的呼吸信号,对提取的呼吸信号进行卡尔曼滤波处理;第六步,通过卡尔曼滤波后,使用svm分类器对波形进行分类;第七步,根据波形的分类判断是否低通气,如果分类的结果判断为低通气,则提示警告;第八步,波形被判定为非低通气时,使用带通滤器和快速傅利叶变换计算呼吸率。图1为本发明的对呼吸监测过程的方法流程图,所述呼吸监测方法对每一帧图像的计算时间小于33ms,所述呼吸监测方法可计算的呼吸信号的呼吸速率范围为5hz~90hz/分钟。

进一步地,所述利用网络摄像头采集视频图像的步骤包括,将网络摄像头安装于床的正上方,使其能够全面观测到床的全部,在该步骤中,所述采集视频图像的尺寸最小为:360*240像素,采集速率为每秒25~30帧。

具体地,所述对采集到的视频图像进行感兴趣区域(roi)定位,由于传统的检测并没有指出人的胸口的具体位置,而且胸部也没有明显的识别特征,该步骤在对感兴趣区域进行定位的过程中,采用根据人脸的位置来定位胸部的位置的方法,根据经验统计量定位人体的胸口,因为该步骤中对感兴趣区域的定位只是为了缩小摄像机的监测范围,突出该区域的信号,因此并不需要特别高的定位精度,所以采用根据人脸的位置定位胸口位置的这种方法。

进一步地,所述感兴趣区域(roi)定位的方法包括,使用人脸监测算法,得到人脸框的位置,定义人脸的左上角的位置为(x1,y1),人脸框的高度为h,人脸框的宽度为w,然后根据经验统计量计算呼吸所需身体区域的长度为1.5*h,宽度为2*w,得到身体框区域,也就是该步骤定位的感兴趣区域。

具体地,所述的对感兴趣区域进行灰度化处理,为了减小计算时间复杂度,将感兴趣区域进行灰度化处理。

进一步地,所述利用改进的相位运动放大算法对呼吸运动进行相位运动放大的方法具体为:在原始算法中,在对视频进行空域分解时,是对不同尺度和不同方向都进行空域分解,最终得到不同尺度和不同方向的复数图像,为了算法的完备性,对图像还分了不同方向的不同频率进行滤波,在该发明的技术方案中,只做了一个尺度的一个方向的空域分解,对于视频图像中的其余噪声运动没有必要进行放大,所以该方法没有对视频图像中的其余噪声运动进行放大处理,只对呼吸运动进行了放大,且人在呼吸的时候,纵向的呼吸幅度最大,为了减小计算时间复杂度,能够满足实时计算的需求,该技术方案提供的相位运动方法算法只对纵向的低频进行放大,根据二维傅利叶变换的特性,频域图的亮度方向与原图的灰度变换方向有垂直关系,构建了一个低频的滤波器对图像的频域进行滤波,过程如图4展示的那样。改进的相位运动放大算法不但克服了现有的相位运动放大方法由于相位运动放大导致计算负荷增大,软件的鲁棒性降低而没办法将该技术充分运用到实际应用中的问题,该发明技术方案还将改进的相位运动放大算法运用到非接触式的呼吸监测过程中,让非接触式呼吸监测方法的实时监测成为可能。

进一步地,所述对相位运动放大后的呼吸信号进行卡尔曼滤波处理,卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法,为能够实时去除信号中的高频信号,对相位运动放大后的呼吸信号进行滤波处理。

进一步地,所述使用svm分类器对卡尔曼滤波后的波形进行分类,为了能够快速而且精确的判断是否低通气,该步骤使用机器学习中svm分类器对呼吸的波形进行分类,对于核函数,分别尝试了线性核函数,多项式核函数,径向机核函数及sigmoid核函数,最终发现,使用径向机核函数的精确度较高,收敛速度较快。

进一步地,所述根据波形的分类判断是否低通气,根据波形分类后的结果,呼吸时(图5),呼吸信号起浮比较明显,当低通所呼吸时(图6),呼吸信号几乎是一条直线。

进一步地,所述使用带通滤器和快速傅利叶变换计算呼吸率,对经过卡尔曼滤波后的呼吸信号进行傅利叶变换,求取频谱中幅值最大的位置就是计算的呼吸频率。

与现有技术相比,本发明具有以下创新性操作及有益效果:

首先,针对现有技术中接触式呼吸监测方法存在的问题,本发明公开了一种基于视觉计算的非接触式呼吸监测方法,该方法以网络摄像头的方式实时采集视频用于检测呼吸率与呼吸暂停,克服了接触式检测方法中存在的给病人带来不适感与束缚感,影响检测效果,且对于特殊病人(婴儿、老人)不方便的问题,能够及时的给出呼吸暂停的警告,减少危险的发生。

针对现有技术中非接触式呼吸监测方法存在的由于胸腹部呼吸信号微弱或幅度较小会导致呼吸监测信号不准确的问题,提供了创新性的方案,对现有技术中相位运动放大方法进行创新性改进。在现有技术公开的线性欧拉运动方法是找到每一帧图像的边界,将每一帧的边界乘以一个放大系数,此方法随着放大系数的增加,噪音也会随之增加,噪音的增加会对结果产生影响,而另外一种基于图像相位的运动放大方法,相比于线性欧拉运动放大方法,支持更大的放大系数,更大的放大系数也不会增加视频图像的噪音,但是该相位运动放大方法将视频中各个方向的运动都进行了放大,虽然比欧拉运动放大的效果好,但计算速度比线性欧拉运动放大方法的计算速度要慢很多,就算是将该方法直接运用到非接触式呼吸监测方法过程中,由于计算负荷很大,很难达到想要的效果,没办法实现监测过程的实时监测。本发明的技术方案将现有的相位运动放大方法进行了创新性改进,并将其巧妙的运用到了非接触式呼吸监测的过程中,不但解决了现有技术中由于相位运动放大导致计算负荷增大,软件的鲁棒性(计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,即为该软件的鲁棒性)降低并没办法将该技术充分运用到实际应用中的问题,本发明还将该经创新性改进的相位运动放大方法巧妙的运用到了非接触式呼吸监测的过程中,实现了非接触呼吸监测过程的实时监测,解决了现有技术中存在的非接触式呼吸监测当呼吸信号呼吸微弱或幅度较小而导致呼吸监测结果及呼吸率计算不准确的问题,该方法还可以实时计算呼吸率,并且可以在鲁棒较强的状态下监测整个呼吸过程。

本发明提供了一种超低功耗、基于视觉计算的非接触式监测方法,颠覆了现有技术中常规的相位运动放大方法,提高了非接触式呼吸监测结果及呼吸率计算的准确性,该方法可操作性及实用性很强。

附图说明

图1为本发明一种基于视觉计算的非接触式呼吸监测方法的方法流程图;

图2为本发明一种基于视觉计算的非接触式呼吸监测方法中网络摄像头放置以及被监测者被监测呼吸示意图;

图3为本发明一种基于视觉计算的非接触式呼吸监测方法中感兴趣区域(roi)定位计算示意图,图3(a)为人脸框区域示意图,图3(b)为身体框区域示意图;

图4为本发明一种基于视觉计算的非接触式呼吸监测方法中相位运动放大算法示意图,图4(a)为方向滤波器,图4(b)为图3经过傅利叶变换的频谱图,图4(c)为图像的频谱与空间滤波对应位置相乘的结果;

图5为本发明一种基于视觉计算的非接触式呼吸监测方法的判断是否低通气呼吸时正常呼吸的波形图;

图6为本发明一种基于视觉计算的非接触式呼吸监测方法的判断是否低通气呼吸时呼吸暂停的波形图;

图中标记:h-人脸框的高度,w-人脸框的宽度,1.5*h-身体区域的长度,2*w-身体区域的宽度,⊙-对应位置的元素相乘。

具体实施方式

为了使发明的目的、技术方案及优点更加清楚明白,以下结合说明书附图及具体实施例对本发明进行进一步详细说明,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一种基于视觉计算的非接触式呼吸监测方法,具体实施过程如下:

步骤1:将一台普通的网络摄像头(具有rgb或红外监测的摄像头)置于婴儿床的正上方,使摄像头能够全面观测到床的全部,如图2所示,在该步骤对视频图像采集的过程中,后续对呼吸信号的计算均是根据该步骤采集的原始视频数据raw进行计算,采集视频图像的尺寸最小为:360*240像素,采集速率为每秒25~30帧。

步骤2:对通过步骤1采集到的视频图像,进行感兴趣区域(roi)定位,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,由于传统的检测并没有指出人的胸口的具体位置,而且胸部也没有明显的识别特征,该步骤在对感兴趣区域进行定位的过程中,采用根据人脸的位置来定位胸部的位置的方法,根据经验统计量定位人体的胸口,因为该步骤中对感兴趣区域的定位只是为了缩小摄像机的监测范围,突出该区域的信号,因此并不需要特别高的定位精度,所以采用根据人脸的位置定位胸口位置的这种方法,首先使用人脸检测算法,得到人脸框的位置,定义人脸的左上角的位置为(x1,y1),人脸框的高度为h,人脸框的宽度为w,得到人脸框区域,如图3(a)所示(白色框),根据经验统计量,计算呼吸所需身体区域的长度为1.5*h,宽度为2*w,得到身体框,如图3(b)所示(黑色框),最终定位到图3(b)所示的黑色身体框为roi区域。

步骤3:为了减小计算时间复杂度,将步骤2定位得到的黑色身体框区域的图像进行灰度化处理。

步骤4:利用创新改进的相位运动放大算法对呼吸运动进行相位运动放大,该相位运动放大算法具体步骤如下:

第一步:对图像进行二维傅利叶变换

公式中m,n分别是图像的行数与列数,f(x,y)是图像的像素值,f(u,v)是傅利叶变换后的值。

第二步:对于视频序列,在t时刻像素可以由以下公式(2)给出

以上公式(2)中,x代表图像中像素的位置,δ(t)代表经过t时刻后x点的位移,公式(2)表示x点的像素经过时间t后,到了x+δ(t)的位置。因此运动放大的目的是为了使x位置的像素值经过了时间t后,可以到的位置是x+(1+α)δ(t),其中α代表放大因子。经运动放大后,公式(2)可改写为公式(3)。

公式(3)也可变形如下公式(4)所示:

公式(4)中αδ(t)是放大的部分。在公式(4)中,可以看到在视频序列中运动放大的部分只有αδ(t)。

第三步:计算δ(t),在原始算法中,在对视频进行空域分解时,是对不同尺度和不同方向都进行空域分解,最终得到不同尺度和不同方向的复数图像,为了算法的完备性,对图像还分了不同方向的不同频率进行滤波,在该发明的技术方案中,只做了一个尺度的一个方向的空域分解,对于视频图像中的其余噪声运动没有必要进行放大,所以该方法没有对视频图像中的其余噪声运动进行放大处理,只对呼吸运动进行了放大,且人在呼吸的时候,纵向的呼吸幅度最大,为了减小计算时间复杂度,能够满足实时计算的需求,该技术方案提供的相位运动方法算法只对纵向的低频进行放大,根据二维傅利叶变换的特性,频域图的亮度方向与原图的灰度变换方向有垂直关系,构建了一个低频的滤波器对图像的频域进行滤波,过程如图4展示的那样。在图4中,⊙代表对应位置的元素相乘,(a)是方向滤波器,(b)是图1经过傅利叶变换的频谱图,(c)是图像的频谱与空间滤波对应位置相乘的结果。为方便解释,将图4(c)中非黑色区域定义为区域a,图4(c)中,区域a被认为是呼吸幅度最大的频谱,再求取每一帧的相位变化(即公式(4)中的使用时域滤波使每一帧图像的变化变得连续,时域滤波如公式(5)所示:

上公式(5)中δ(t)是时域滤波后的结果。

第四步:对δ(t)进行放大求得呼吸信号x(t)。

x(t)=αδ(t)(6)

步骤5:提取相位运动放大后的呼吸信号,对提取的呼吸信号进行卡尔曼滤波处理。对步骤4公式(6)中,α是放大因子,公式(6)中的变量x(t)即是呼吸信号,为能够实时去除信号中的高频信号,采用卡尔曼滤对x(t)进行滤波,如公式(7)所示:

kf(t)=kalman(x(t))(7)

以上公式(7)中,kalman(·)是卡尔曼滤波操作,kf(t)是x(t)经过卡尔曼滤波后的结果。

步骤6:通过卡尔曼滤波后,使用svm分类器对波形进行分类,判断是否低通气:根据公式(7)中所求的kf(t),呼吸时(图5),呼吸信号起浮比较明显,当低通所呼吸时(图6),呼吸信号几乎是一条直线。我们可以将判断呼吸是否暂停的问题归为机器学习中分类的问题,有呼吸可以给予标签1,低通气可以给予标签0。为了能够快速而且精确的判断是否低通气,该方法使用机器学习中svm分类器对呼吸的波形进行分类,对于核函数,该方法分别尝试了线性核函数,多项式核函数,径向机核函数及sigmoid核函数,最终发现,使用径向机核函数的精确度较高,收敛速度较快。

在该方法进行反复试验的过程中,使用1000个呼吸正常(非暂停呼吸)的波形,1000个低通气的波形进行训练,迭代次数设置为max_iter=105,结果的精确度ε=10-6。使用800个呼吸正常(非暂停呼吸)的波形,800个低通气的波形进行4折交叉验证测试,测试的精确度约为99.9%,预测速度不到1ms。

步骤7:通过步骤5的卡尔曼滤波后,使用svm分类器对波形进行分类,如果分类的结果判断为低通气,则被归为低通气,若判断为非低通气,则被归为非低通气,非低通气时,使用带通滤器和快速傅利叶变换计算呼吸率,计算呼吸率的方式如下:对公式(7)中kf(t)是x(t)经过卡尔曼滤波后的结果。进行傅利叶变换,求取频谱中幅值最大的位置就是计算的呼吸频率如公式(8)所示。

fftx=fft(kf)

maxfreq=argmax(|fftx|)(8)

br=60*maxfreq

公式(8)中fft(·)表示傅利叶变换,|·|表示求幅值,argmax表示求最大值,br是我们所求的呼吸率。

以上所述,仅为本发明优选的实施方式,于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1