李 彬, 謝 翟, 段渭軍, 楊 榮
(1.西北工業大學 電子信息學院,陜西 西安 710072;2.西北工業大學 物聯網技術及應用國家地方聯合工程實驗室,陜西 西安 710072;3.西安交通大學 工程坊,陜西 西安 710049)
基于Kinect的非接觸式呼吸檢測系統*
李 彬1,2, 謝 翟1,2, 段渭軍1,2, 楊 榮3
(1.西北工業大學 電子信息學院,陜西 西安 710072;2.西北工業大學 物聯網技術及應用國家地方聯合工程實驗室,陜西 西安 710072;3.西安交通大學 工程坊,陜西 西安 710049)
利用Kinect的深度傳感器功能,獲取景深圖像,并對圖像進行信號處理和分析,檢測人體的呼吸率和呼吸狀態,從而實現非接觸式呼吸檢測。該系統免除了傳統接觸式呼吸檢測儀安裝和測試帶來的不便,實現高效準確的實時呼吸監測。
Kinect傳感器; 景深圖像; 呼吸檢測; 非接觸式
呼吸是人體一項重要的生命征象,通過對人體呼吸狀態的檢測,有助于了解人體健康狀況和睡眠品質。而在醫學方面,通過對呼吸信號變化的檢測,可以獲取人體健康狀態或者心理狀態的變化情況。在老人監護中,通過對老人睡眠呼吸狀態的實時監測,獲取被監護人身體狀態,并對意外情況(呼吸驟停)作出及時報警。因此,呼吸檢測在醫學和老人看護等領域發揮著重要的作用。目前呼吸信號檢測多采用接觸式(或入侵式)的檢測方法:即將傳感器和人體相連接進行呼吸信號的采集[1]。但利用該類設備進行檢測過程繁瑣,同時會給被檢測人員帶來不便。而對于長時間呼吸跟蹤監測,例如睡眠過程中的呼吸監測,若采用接觸式檢測設備則會影響到人員睡眠,而各種連線也會帶來睡眠不適。
本文采用基于Kinect[2,3]的非接觸式呼吸檢測系統對呼吸頻率和狀態進行檢測。該系統利用Kinect深度傳感器
獲取被檢測人員的深度圖像幀,并對該深度圖像幀進行預均衡,去除圖像幀的噪點,并在此基礎上進行相應的數字信號處理,挖掘深度圖像幀的變化規律,從而獲取人體的呼吸率和呼吸狀態,實現快捷方便的非接觸式實時呼吸檢測。
系統組成如圖1所示。

圖1 基于Kinect的呼吸檢測系統組成圖
該系統由一臺服務器和一臺Kinect組成。Kinect利用其配備的深度傳感器對被測人員身體狀態進行采集,進而利用呼吸檢測算法進行呼吸狀態和呼吸率的提取,并將檢測后的結果存入服務器搭載的SQL數據庫[4],形成身體狀態數據庫,便于后續分析。此外,應用軟件主體選擇編寫,同時利用微軟官方驅動操作Kinect,并對SQL數據庫進行數據調用讀取,從而對呼吸狀OpenCV[5]加WPF[6]態進行統計分析,獲取的結果可對身體狀況評估進行參考。
Kinect 2.0配備紅外發射器,主動投射近紅外光譜,照射到粗糙物體、或是穿透毛玻璃后,光譜發生扭曲,會形成隨機的反射斑點(稱為散斑),進而能被紅外攝像頭讀取版采用。同時,深度(紅外)攝像頭配合紅外發射器使用,對發射回傳感器的紅外光譜利用飛行時間(time of flight,ToF)[7]獲取紅外脈沖由被測物體反射到接收器所用的時間。然后Kinect根據光速和時間來計算深度信息,從而創建可視范圍內的人體、物體的深度圖。為了更直觀地將深度圖像與深度距離結合起來,圖2通過染色的方法將深度距離在深度圖像上進行了標示。左圖中紅色區域代表無效的深度區域,藍色代表距離大于4.5 m的深度區域,上述兩個區域的深度數值均存在較大誤差。其余的灰度區域(0.5~4.5 m)包含較為精確的深度數據,可供我們做進一步的理論研究。

圖2 深度圖像幀與相應的彩色圖像幀
人體在呼吸過程中胸腔和腹腔會產生輕微的起伏變化,這些變化會引起深度值的改變(深度圖像像素點灰度值的改變)。然而由于該變化過于細微,在單一的深度值點上無法準確體現,但是通過整個深度圖像的變化規律,利用多組像素點值進行模式匹配,將人體細微的形體變化進行放大,從而描繪出人體的呼吸規律曲線。
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 算法流程圖
在實驗過程中,被測試人員站立于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 呼吸狀態變化波形
利用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-),男,博士,講師,主要從事人體目標識別、物聯網方面的研究工作。