基于Kinect的非接触式呼吸检测系统*

2017-03-02 07:03段渭军
传感器与微系统 2017年3期
关键词:灰度滤波人体

李 彬, 谢 翟, 段渭军, 杨 荣

(1.西北工业大学 电子信息学院,陕西 西安 710072;2.西北工业大学 物联网技术及应用国家地方联合工程实验室,陕西 西安 710072;3.西安交通大学 工程坊,陕西 西安 710049)

基于Kinect的非接触式呼吸检测系统*

李 彬1,2, 谢 翟1,2, 段渭军1,2, 杨 荣3

(1.西北工业大学 电子信息学院,陕西 西安 710072;2.西北工业大学 物联网技术及应用国家地方联合工程实验室,陕西 西安 710072;3.西安交通大学 工程坊,陕西 西安 710049)

利用Kinect的深度传感器功能,获取景深图像,并对图像进行信号处理和分析,检测人体的呼吸率和呼吸状态,从而实现非接触式呼吸检测。该系统免除了传统接触式呼吸检测仪安装和测试带来的不便,实现高效准确的实时呼吸监测。

Kinect传感器; 景深图像; 呼吸检测; 非接触式

0 引 言

呼吸是人体一项重要的生命征象,通过对人体呼吸状态的检测,有助于了解人体健康状况和睡眠品质。而在医学方面,通过对呼吸信号变化的检测,可以获取人体健康状态或者心理状态的变化情况。在老人监护中,通过对老人睡眠呼吸状态的实时监测,获取被监护人身体状态,并对意外情况(呼吸骤停)作出及时报警。因此,呼吸检测在医学和老人看护等领域发挥着重要的作用。目前呼吸信号检测多采用接触式(或入侵式)的检测方法:即将传感器和人体相连接进行呼吸信号的采集[1]。但利用该类设备进行检测过程繁琐,同时会给被检测人员带来不便。而对于长时间呼吸跟踪监测,例如睡眠过程中的呼吸监测,若采用接触式检测设备则会影响到人员睡眠,而各种连线也会带来睡眠不适。

本文采用基于Kinect[2,3]的非接触式呼吸检测系统对呼吸频率和状态进行检测。该系统利用Kinect深度传感器

获取被检测人员的深度图像帧,并对该深度图像帧进行预均衡,去除图像帧的噪点,并在此基础上进行相应的数字信号处理,挖掘深度图像帧的变化规律,从而获取人体的呼吸率和呼吸状态,实现快捷方便的非接触式实时呼吸检测。

1 系统总体设计

系统组成如图1所示。

图1 基于Kinect的呼吸检测系统组成图

该系统由一台服务器和一台Kinect组成。Kinect利用其配备的深度传感器对被测人员身体状态进行采集,进而利用呼吸检测算法进行呼吸状态和呼吸率的提取,并将检测后的结果存入服务器搭载的SQL数据库[4],形成身体状态数据库,便于后续分析。此外,应用软件主体选择编写,同时利用微软官方驱动操作Kinect,并对SQL数据库进行数据调用读取,从而对呼吸状OpenCV[5]加WPF[6]态进行统计分析,获取的结果可对身体状况评估进行参考。

2 Kinect深度图像获取原理

Kinect 2.0配备红外发射器,主动投射近红外光谱,照射到粗糙物体、或是穿透毛玻璃后,光谱发生扭曲,会形成随机的反射斑点(称为散斑),进而能被红外摄像头读取版采用。同时,深度(红外)摄像头配合红外发射器使用,对发射回传感器的红外光谱利用飞行时间(time of flight,ToF)[7]获取红外脉冲由被测物体反射到接收器所用的时间。然后Kinect根据光速和时间来计算深度信息,从而创建可视范围内的人体、物体的深度图。为了更直观地将深度图像与深度距离结合起来,图2通过染色的方法将深度距离在深度图像上进行了标示。左图中红色区域代表无效的深度区域,蓝色代表距离大于4.5 m的深度区域,上述两个区域的深度数值均存在较大误差。其余的灰度区域(0.5~4.5 m)包含较为精确的深度数据,可供我们做进一步的理论研究。

图2 深度图像帧与相应的彩色图像帧

3 基于Kinect的呼吸检测算法设计

人体在呼吸过程中胸腔和腹腔会产生轻微的起伏变化,这些变化会引起深度值的改变(深度图像像素点灰度值的改变)。然而由于该变化过于细微,在单一的深度值点上无法准确体现,但是通过整个深度图像的变化规律,利用多组像素点值进行模式匹配,将人体细微的形体变化进行放大,从而描绘出人体的呼吸规律曲线。

3.1 深度数据的提取

本系统通过Kinect提供的接口函数可以获得深度图像,为了便于后期图像处理,本文利用OpenCV库对原始深度图像进行提取和处理,具体流程图如图3(a)所示。

注意:在该流程中,深度数据的回收和释放尤其重要,否则在读取过程中会发生读取的总是同一帧深度图像的现象。若遇到读取不到数据帧的情况,可以尝试释放p_MultiSource_Frame 和 p_MultiSource_FrameReader两个资源,随后重新打开深度传感器进行获取。或者,在读取深度图像帧之前先对程序做休眠处理,避免因为硬件与软件的反应时间不匹配导致无法获取深度帧的情况。

3.2 深度数据的处理与呼吸规律的检测

利用上述方法取得的深度图像数据可存储为灰度值矩阵,本系统算法可对矩阵做进一步处理。

通过OpenCV获取的深度信息可形成424×512个点的灰度值矩阵,用来代表该帧的深度信息,其中矩阵每个元素为介于0~255的灰度值。通常,对一个呼吸动作进行判决时多借助某些关键点的前后变化规律,即各点数据变化与阈值数据进行比对,从而推断出该动作所处的状态。但是,若单纯对某个点利用阈值比较的方法来判断动作行为会产生较大误差,使得有用信息很容易淹没在无用的噪声中。因此,利用弱信号提取的办法,将灰度矩阵的所有元素相加形成呼吸强度值,通过对该呼吸强度值的比较来提取有用的呼吸信息。具体地,因为人体呼吸时在呼或者吸的极限时,取得的呼吸强度值呈现出极大或者极小的特性,该值所对应的深度图像帧称之为标准帧。将其他深度图像帧的像素值与该值做差时能明显地体现呼吸的起伏变换特性,更有利于做呼吸规律的统计。其中,标准帧IM的选取如下

(1)

式中 Iik为第i个深度帧中第k个像素点的灰度值。通过对多个深度图像帧的遍历,获取最大值所对应的帧为标准帧。选取出标准帧之后,本文用该帧的灰度值矩阵减去该标准帧的灰度值矩阵,再将所得矩阵求和,作为后续帧的呼吸强度值ΔIi,如式(2)所示

(2)

式中 N为图像帧数,IMk为标准帧第k个像素点值。

在具体呼吸检测过程中,深度数据由于受到人体轻微晃动和器件本身影响,受干扰波动较大,不利于找出呼吸的规律,因此,本文利用阶数为11的LR滤波器对波形进行滤波,如下式所示

(3)

综上,算法实现流程图如图3所示。

图3 算法流程图

4 实验结果和分析

在实验过程中,被测试人员站立于Kinect传感器之前1.5 m,并以正常速率呼吸18 s。图4记录了经过Kinect摄像头记录后获取的滤波前呼吸曲线和滤波后的呼吸曲线。可以看出,未滤波前的数据由于受到人体轻微晃动和器件本身影响,具有噪声干扰(图4(a)所示),而经过滤波后可去掉图像的毛刺,呈现出非常明显的呼吸变化规律,如图4(b)所示。

图4 滤波前与滤波后的曲线图

表1给出了不同被测人员呼吸的识别情况,并与接触式生理测试仪 BioPacMP150进行对比,可以看出,与Kinect获取的呼吸数据具有很好的吻合度。

由表2可以看出:在0.5~3.5 m的距离范围内,Kinect对呼吸检测具有良好的效果,超过4.5 m后,呼吸检测的精度大为降低。这也是与Kinect传感器本身的特性是吻合的。根据文献[8], Kinect可以较准确地返回它前方0.5~4.5 m这段距离的深度值信息,但随着距离增加,测量精度不断降低。

表1 被测人员呼吸检测结果

图5给出了被测人员在不同呼吸频率和深度下,检测到的呼吸变化率,可以非常清楚地看到,当人体呼吸急促时,波形频率增大;而当人体进行深度呼吸时,其波形的幅值具有较大的变化;当呼吸舒缓的时候,波形和幅值都趋于平缓。因此,该检测算法可以准确地记录人体呼吸变化状态,为长时间持续检测人体生理情况提供了有力手段。

表2 不同测试距离下呼吸率误差结果

图5 呼吸状态变化波形

5 结束语

利用Kinect深度传感器对人体的呼吸状态进行采集,并获得人体呼吸过程中的深度信息,通过对一定时间内的深度图像帧进行处理,可以检测到被测人员的呼吸状态,从而获得呼吸率以及呼吸状态等参数,从而在保证检测精度的情况下避免了采用接触式呼吸检测装置所带来的不便。同时,由于本系统采用非接触式方法进行呼吸状态的检测,因此可以很好地应用到老人或病人的睡眠检测,实时把握被测人员的呼吸状态,为老人和病人的看护提供了一种全新方式。

[1] Heitman S J,Atkar R S,Hajduk E A,et al.Validation of nasal pressure for the identification of apneas/hypopneas during sleep[J].American Journal of Respiratory & Critical Care Medicine,2002,166(3):386-391.

[2] 战荫伟,张 昊.基于Kinect传感器的人体行为分析算法[J].传感器与微系统,2015,34(1):142-144.

[3] Sinthanayothin C,Wongwaen N,Bholsithi W.Skeleton tracking using kinect sensor & displaying in 3D virtual scene[J].International Journal of Advancements in Computing Technology,2012,4(11):213-223.

[4] 梁永恩,万世明,翟敏换,等.SQLite数据库在嵌入式系统中的应用研究[J].现代计算机,2015(7):60-62.

[5] 马歇尔.Visual C# 2005技术内幕[M].北京:清华大学出版社,2007.

[6] 李默涵.基于NET框架、WPF技术随机选房系统设计与实现[D].长春:吉林大学,2014.

[7] Lanzisera S,Zats D,Pister K S J.Radio frequency time-of-flight distance measurement for low-cost wireless sensor localiza-tion[J].IEEE Sensors Journal,2011,11(3):837-845.

[8] 吴玮莹,王 豫,李 秦,等.Kinect人体运动捕捉误差及其空间分布[J].北京生物医学工程,2014,33(4):344-348.

Kinect-based non-contract type breathing detecting system*

LI Bin1,2, XIE Di1,2, DUAN Wei-jun1,2, YANG Rong3

(1.School of Electronics and Information,Northwest Polytechnical University,Xi’an 710072,China;2.State and Local Joint Engineering Laboratory of IoT Technology and Application,Northwest Polytechnical University,Xi’an 710072,China; 3.Engineering Workshop,Xi’an Jiaotong University,Xi’an 710049,China)

To achieve non-contact breath monitoring,the system uses depth sensor function of Kinect to get depth image,and corresponding signal processing and image analysis are carried out,so as to detect breath rate and breath state.The system avoids the inconvenience caused by the installation and testing of the traditional contact type breath monitor,and realizes the effective and accurate real-time respiratory monitoring.

Kinect sensor; depth image; breath detection;non-contact type

10.13873/J.1000—9787(2017)03—0107—03

2016—12—21

国家自然科学基金资助项目(61203233, 61601365);陕西省自然科学基金资助项目(2016JQ6017);中央高校基础科研基金资助项目(3102015ZY093)

TP 391

A

1000—9787(2017)03—0107—03

李 彬(1983-),男,博士,讲师,主要从事人体目标识别、物联网方面的研究工作。

猜你喜欢
灰度滤波人体
采用改进导重法的拓扑结构灰度单元过滤技术
人体“修补匠”
人体冷知识(一)
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
人体可笑堂
奇妙的人体止咳点
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算
基于自适应Kalman滤波的改进PSO算法
RTS平滑滤波在事后姿态确定中的应用