李 彬, 謝 翟, 段渭軍, 楊 榮
(1.西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710072;2.西北工業(yè)大學(xué) 物聯(lián)網(wǎng)技術(shù)及應(yīng)用國(guó)家地方聯(lián)合工程實(shí)驗(yàn)室,陜西 西安 710072;3.西安交通大學(xué) 工程坊,陜西 西安 710049)
基于Kinect的非接觸式呼吸檢測(cè)系統(tǒng)*
李 彬1,2, 謝 翟1,2, 段渭軍1,2, 楊 榮3
(1.西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710072;2.西北工業(yè)大學(xué) 物聯(lián)網(wǎng)技術(shù)及應(yīng)用國(guó)家地方聯(lián)合工程實(shí)驗(yàn)室,陜西 西安 710072;3.西安交通大學(xué) 工程坊,陜西 西安 710049)
利用Kinect的深度傳感器功能,獲取景深圖像,并對(duì)圖像進(jìn)行信號(hào)處理和分析,檢測(cè)人體的呼吸率和呼吸狀態(tài),從而實(shí)現(xiàn)非接觸式呼吸檢測(cè)。該系統(tǒng)免除了傳統(tǒng)接觸式呼吸檢測(cè)儀安裝和測(cè)試帶來(lái)的不便,實(shí)現(xiàn)高效準(zhǔn)確的實(shí)時(shí)呼吸監(jiān)測(cè)。
Kinect傳感器; 景深圖像; 呼吸檢測(cè); 非接觸式
呼吸是人體一項(xiàng)重要的生命征象,通過(guò)對(duì)人體呼吸狀態(tài)的檢測(cè),有助于了解人體健康狀況和睡眠品質(zhì)。而在醫(yī)學(xué)方面,通過(guò)對(duì)呼吸信號(hào)變化的檢測(cè),可以獲取人體健康狀態(tài)或者心理狀態(tài)的變化情況。在老人監(jiān)護(hù)中,通過(guò)對(duì)老人睡眠呼吸狀態(tài)的實(shí)時(shí)監(jiān)測(cè),獲取被監(jiān)護(hù)人身體狀態(tài),并對(duì)意外情況(呼吸驟停)作出及時(shí)報(bào)警。因此,呼吸檢測(cè)在醫(yī)學(xué)和老人看護(hù)等領(lǐng)域發(fā)揮著重要的作用。目前呼吸信號(hào)檢測(cè)多采用接觸式(或入侵式)的檢測(cè)方法:即將傳感器和人體相連接進(jìn)行呼吸信號(hào)的采集[1]。但利用該類設(shè)備進(jìn)行檢測(cè)過(guò)程繁瑣,同時(shí)會(huì)給被檢測(cè)人員帶來(lái)不便。而對(duì)于長(zhǎng)時(shí)間呼吸跟蹤監(jiān)測(cè),例如睡眠過(guò)程中的呼吸監(jiān)測(cè),若采用接觸式檢測(cè)設(shè)備則會(huì)影響到人員睡眠,而各種連線也會(huì)帶來(lái)睡眠不適。
本文采用基于Kinect[2,3]的非接觸式呼吸檢測(cè)系統(tǒng)對(duì)呼吸頻率和狀態(tài)進(jìn)行檢測(cè)。該系統(tǒng)利用Kinect深度傳感器
獲取被檢測(cè)人員的深度圖像幀,并對(duì)該深度圖像幀進(jìn)行預(yù)均衡,去除圖像幀的噪點(diǎn),并在此基礎(chǔ)上進(jìn)行相應(yīng)的數(shù)字信號(hào)處理,挖掘深度圖像幀的變化規(guī)律,從而獲取人體的呼吸率和呼吸狀態(tài),實(shí)現(xiàn)快捷方便的非接觸式實(shí)時(shí)呼吸檢測(cè)。
系統(tǒng)組成如圖1所示。
圖1 基于Kinect的呼吸檢測(cè)系統(tǒng)組成圖
該系統(tǒng)由一臺(tái)服務(wù)器和一臺(tái)Kinect組成。Kinect利用其配備的深度傳感器對(duì)被測(cè)人員身體狀態(tài)進(jìn)行采集,進(jìn)而利用呼吸檢測(cè)算法進(jìn)行呼吸狀態(tài)和呼吸率的提取,并將檢測(cè)后的結(jié)果存入服務(wù)器搭載的SQL數(shù)據(jù)庫(kù)[4],形成身體狀態(tài)數(shù)據(jù)庫(kù),便于后續(xù)分析。此外,應(yīng)用軟件主體選擇編寫,同時(shí)利用微軟官方驅(qū)動(dòng)操作Kinect,并對(duì)SQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)調(diào)用讀取,從而對(duì)呼吸狀OpenCV[5]加WPF[6]態(tài)進(jìn)行統(tǒng)計(jì)分析,獲取的結(jié)果可對(duì)身體狀況評(píng)估進(jìn)行參考。
Kinect 2.0配備紅外發(fā)射器,主動(dòng)投射近紅外光譜,照射到粗糙物體、或是穿透毛玻璃后,光譜發(fā)生扭曲,會(huì)形成隨機(jī)的反射斑點(diǎn)(稱為散斑),進(jìn)而能被紅外攝像頭讀取版采用。同時(shí),深度(紅外)攝像頭配合紅外發(fā)射器使用,對(duì)發(fā)射回傳感器的紅外光譜利用飛行時(shí)間(time of flight,ToF)[7]獲取紅外脈沖由被測(cè)物體反射到接收器所用的時(shí)間。然后Kinect根據(jù)光速和時(shí)間來(lái)計(jì)算深度信息,從而創(chuàng)建可視范圍內(nèi)的人體、物體的深度圖。為了更直觀地將深度圖像與深度距離結(jié)合起來(lái),圖2通過(guò)染色的方法將深度距離在深度圖像上進(jìn)行了標(biāo)示。左圖中紅色區(qū)域代表無(wú)效的深度區(qū)域,藍(lán)色代表距離大于4.5 m的深度區(qū)域,上述兩個(gè)區(qū)域的深度數(shù)值均存在較大誤差。其余的灰度區(qū)域(0.5~4.5 m)包含較為精確的深度數(shù)據(jù),可供我們做進(jìn)一步的理論研究。
圖2 深度圖像幀與相應(yīng)的彩色圖像幀
人體在呼吸過(guò)程中胸腔和腹腔會(huì)產(chǎn)生輕微的起伏變化,這些變化會(huì)引起深度值的改變(深度圖像像素點(diǎn)灰度值的改變)。然而由于該變化過(guò)于細(xì)微,在單一的深度值點(diǎn)上無(wú)法準(zhǔn)確體現(xiàn),但是通過(guò)整個(gè)深度圖像的變化規(guī)律,利用多組像素點(diǎn)值進(jìn)行模式匹配,將人體細(xì)微的形體變化進(jìn)行放大,從而描繪出人體的呼吸規(guī)律曲線。
3.1 深度數(shù)據(jù)的提取
本系統(tǒng)通過(guò)Kinect提供的接口函數(shù)可以獲得深度圖像,為了便于后期圖像處理,本文利用OpenCV庫(kù)對(duì)原始深度圖像進(jìn)行提取和處理,具體流程圖如圖3(a)所示。
注意:在該流程中,深度數(shù)據(jù)的回收和釋放尤其重要,否則在讀取過(guò)程中會(huì)發(fā)生讀取的總是同一幀深度圖像的現(xiàn)象。若遇到讀取不到數(shù)據(jù)幀的情況,可以嘗試釋放p_MultiSource_Frame 和 p_MultiSource_FrameReader兩個(gè)資源,隨后重新打開(kāi)深度傳感器進(jìn)行獲取。或者,在讀取深度圖像幀之前先對(duì)程序做休眠處理,避免因?yàn)橛布c軟件的反應(yīng)時(shí)間不匹配導(dǎo)致無(wú)法獲取深度幀的情況。
3.2 深度數(shù)據(jù)的處理與呼吸規(guī)律的檢測(cè)
利用上述方法取得的深度圖像數(shù)據(jù)可存儲(chǔ)為灰度值矩陣,本系統(tǒng)算法可對(duì)矩陣做進(jìn)一步處理。
通過(guò)OpenCV獲取的深度信息可形成424×512個(gè)點(diǎn)的灰度值矩陣,用來(lái)代表該幀的深度信息,其中矩陣每個(gè)元素為介于0~255的灰度值。通常,對(duì)一個(gè)呼吸動(dòng)作進(jìn)行判決時(shí)多借助某些關(guān)鍵點(diǎn)的前后變化規(guī)律,即各點(diǎn)數(shù)據(jù)變化與閾值數(shù)據(jù)進(jìn)行比對(duì),從而推斷出該動(dòng)作所處的狀態(tài)。但是,若單純對(duì)某個(gè)點(diǎn)利用閾值比較的方法來(lái)判斷動(dòng)作行為會(huì)產(chǎn)生較大誤差,使得有用信息很容易淹沒(méi)在無(wú)用的噪聲中。因此,利用弱信號(hào)提取的辦法,將灰度矩陣的所有元素相加形成呼吸強(qiáng)度值,通過(guò)對(duì)該呼吸強(qiáng)度值的比較來(lái)提取有用的呼吸信息。具體地,因?yàn)槿梭w呼吸時(shí)在呼或者吸的極限時(shí),取得的呼吸強(qiáng)度值呈現(xiàn)出極大或者極小的特性,該值所對(duì)應(yīng)的深度圖像幀稱之為標(biāo)準(zhǔn)幀。將其他深度圖像幀的像素值與該值做差時(shí)能明顯地體現(xiàn)呼吸的起伏變換特性,更有利于做呼吸規(guī)律的統(tǒng)計(jì)。其中,標(biāo)準(zhǔn)幀IM的選取如下
(1)
式中 Iik為第i個(gè)深度幀中第k個(gè)像素點(diǎn)的灰度值。通過(guò)對(duì)多個(gè)深度圖像幀的遍歷,獲取最大值所對(duì)應(yīng)的幀為標(biāo)準(zhǔn)幀。選取出標(biāo)準(zhǔn)幀之后,本文用該幀的灰度值矩陣減去該標(biāo)準(zhǔn)幀的灰度值矩陣,再將所得矩陣求和,作為后續(xù)幀的呼吸強(qiáng)度值ΔIi,如式(2)所示
(2)
式中 N為圖像幀數(shù),IMk為標(biāo)準(zhǔn)幀第k個(gè)像素點(diǎn)值。
在具體呼吸檢測(cè)過(guò)程中,深度數(shù)據(jù)由于受到人體輕微晃動(dòng)和器件本身影響,受干擾波動(dòng)較大,不利于找出呼吸的規(guī)律,因此,本文利用階數(shù)為11的LR濾波器對(duì)波形進(jìn)行濾波,如下式所示
(3)
綜上,算法實(shí)現(xiàn)流程圖如圖3所示。
圖3 算法流程圖
在實(shí)驗(yàn)過(guò)程中,被測(cè)試人員站立于Kinect傳感器之前1.5 m,并以正常速率呼吸18 s。圖4記錄了經(jīng)過(guò)Kinect攝像頭記錄后獲取的濾波前呼吸曲線和濾波后的呼吸曲線??梢钥闯?,未濾波前的數(shù)據(jù)由于受到人體輕微晃動(dòng)和器件本身影響,具有噪聲干擾(圖4(a)所示),而經(jīng)過(guò)濾波后可去掉圖像的毛刺,呈現(xiàn)出非常明顯的呼吸變化規(guī)律,如圖4(b)所示。
圖4 濾波前與濾波后的曲線圖
表1給出了不同被測(cè)人員呼吸的識(shí)別情況,并與接觸式生理測(cè)試儀 BioPacMP150進(jìn)行對(duì)比,可以看出,與Kinect獲取的呼吸數(shù)據(jù)具有很好的吻合度。
由表2可以看出:在0.5~3.5 m的距離范圍內(nèi),Kinect對(duì)呼吸檢測(cè)具有良好的效果,超過(guò)4.5 m后,呼吸檢測(cè)的精度大為降低。這也是與Kinect傳感器本身的特性是吻合的。根據(jù)文獻(xiàn)[8], Kinect可以較準(zhǔn)確地返回它前方0.5~4.5 m這段距離的深度值信息,但隨著距離增加,測(cè)量精度不斷降低。
表1 被測(cè)人員呼吸檢測(cè)結(jié)果
圖5給出了被測(cè)人員在不同呼吸頻率和深度下,檢測(cè)到的呼吸變化率,可以非常清楚地看到,當(dāng)人體呼吸急促時(shí),波形頻率增大;而當(dāng)人體進(jìn)行深度呼吸時(shí),其波形的幅值具有較大的變化;當(dāng)呼吸舒緩的時(shí)候,波形和幅值都趨于平緩。因此,該檢測(cè)算法可以準(zhǔn)確地記錄人體呼吸變化狀態(tài),為長(zhǎng)時(shí)間持續(xù)檢測(cè)人體生理情況提供了有力手段。
表2 不同測(cè)試距離下呼吸率誤差結(jié)果
圖5 呼吸狀態(tài)變化波形
利用Kinect深度傳感器對(duì)人體的呼吸狀態(tài)進(jìn)行采集,并獲得人體呼吸過(guò)程中的深度信息,通過(guò)對(duì)一定時(shí)間內(nèi)的深度圖像幀進(jìn)行處理,可以檢測(cè)到被測(cè)人員的呼吸狀態(tài),從而獲得呼吸率以及呼吸狀態(tài)等參數(shù),從而在保證檢測(cè)精度的情況下避免了采用接觸式呼吸檢測(cè)裝置所帶來(lái)的不便。同時(shí),由于本系統(tǒng)采用非接觸式方法進(jìn)行呼吸狀態(tài)的檢測(cè),因此可以很好地應(yīng)用到老人或病人的睡眠檢測(cè),實(shí)時(shí)把握被測(cè)人員的呼吸狀態(tài),為老人和病人的看護(hù)提供了一種全新方式。
[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] 戰(zhàn)蔭偉,張 昊.基于Kinect傳感器的人體行為分析算法[J].傳感器與微系統(tǒng),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] 梁永恩,萬(wàn)世明,翟敏換,等.SQLite數(shù)據(jù)庫(kù)在嵌入式系統(tǒng)中的應(yīng)用研究[J].現(xiàn)代計(jì)算機(jī),2015(7):60-62.
[5] 馬歇爾.Visual C# 2005技術(shù)內(nèi)幕[M].北京:清華大學(xué)出版社,2007.
[6] 李默涵.基于NET框架、WPF技術(shù)隨機(jī)選房系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),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人體運(yùn)動(dòng)捕捉誤差及其空間分布[J].北京生物醫(yī)學(xué)工程,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
國(guó)家自然科學(xué)基金資助項(xiàng)目(61203233, 61601365);陜西省自然科學(xué)基金資助項(xiàng)目(2016JQ6017);中央高?;A(chǔ)科研基金資助項(xiàng)目(3102015ZY093)
TP 391
A
1000—9787(2017)03—0107—03
李 彬(1983-),男,博士,講師,主要從事人體目標(biāo)識(shí)別、物聯(lián)網(wǎng)方面的研究工作。