李沛峰,馮飛龍,黃淑芬,林家豪
(廣東工業大學華立學院,廣東廣州 510000)
隨著我國人口老齡化進程的加速,養老問題成為了避不開的社會問題。據統計,2010 年我國60 歲以上老齡人口約有1.78 億,總人口占比為13.26%;到了2020 年,60 歲以上老齡人口達到2.34 億,總人口占比約16%;預計到本世紀中葉,我國60 歲以上人口將高達4.7 億,總人口占比高達30%。在對老年人的健康問題分析中發現,跌倒是老年人中最常見的問題,致傷和致死率都極高,是影響健康的重要因素之一。老年人由于生理因素、疾病因素、環境因素等,容易導致跌倒事件的發生。特別是隨著年齡的增長,由于視力下降、肌肉萎縮、骨骼老化等生理因素,跌倒發生的概率會更高。而老年人跌倒之后如果處理不及時,容易留下傷殘,甚至會危及生命,也會給家庭和社會帶來沉重的醫療負擔[1-4]。
利用現代化技術,快速檢測老人跌倒并且在摔倒后提供快速、有效的救援措施,能降低老年人死亡的風險。目前,主流的現代化老人跌倒檢測技術有:1)利用智能穿戴設備實時監測老人狀態[5];2)基于環境分布式的跌撞檢測系統;3)基于Android 平臺的軟件檢測方法[6];4)利用RGB 計算機視覺圖像分析技術[7]。穿戴式跌倒檢測和基于Android 平臺的跌倒檢測方法利用加速度傳感器、陀螺儀等監測老人的運動狀態,在一定程度上能準確地檢測跌倒狀態,但是由于穿戴時會給使用者帶來不適,在老年人群體的使用率并不高。由于人體動作的復雜性,基于環境分布式的檢測系統和傳統的計算機圖像處理技術容易產生誤判、漏判等問題,在精確度、安全性、隱私保護等方面存在明顯的缺陷。文中提出的基于Kinect V2的跌倒檢測系統是基于Kinect V2 機器視覺傳感器的人體骨骼點識別和動作的撲獲、動作行為追蹤技術,通過動作特征點閾值計算,能有效解決以上問題。
Kinect V2 是微軟公司2013 年發布的第二代運動追蹤體感設備,Kinect V2 擁有3 個傳感攝像頭,如圖1 所示,從左到右分別為彩色相機(RGB 相機)、紅外相機(深度相機)和紅外發射器,底部為麥克風陣列。Kinect V2 支持Kinect for Window 提供的6 種基本數據源,分別為1 920×1 080分辨率,30 fps或15 fps幀率的RGB 圖像;幀率為30 fps,分辨率為512×424的紅外圖像;幀率為30 fps,分辨率為512×424,支持0.5~4.5 m 范圍的深度圖像;人體骨骼圖像;人物索引二值圖以及可用于語音識別和方向判斷的聲音源。Kinect V2 提供了30 fps 人體骨架的25 個關節點的骨骼圖像,最多可以支持0.5~4.5 m 范圍內的6 個人體同時檢測和最高同時2 個人的骨骼追蹤。得益于其強大的骨骼追蹤性能,Kinect V2 被廣泛應用于體感游戲、手勢識別、醫療服務等領域[8]。

圖1 Kinect V2傳感器相機
文中利用Kinect V2 追蹤骨骼的運動狀態來檢測跌倒信息,首先利用Kinect V2 獲取深度圖像。Kinect V2 利用TOF 成像技術原理獲得深度圖像,即使用Kinect 自帶的紅外發射器發射經過調制的近紅外光線,紅外光線照到目標物體后會形成反射,紅外相機接收反射回來的紅外光線后,使用深度測量技術計算出目標物體的深度,把反射光的時間差轉換成深度信息。相比上一代Kinect V1 使用的Light Coding 技術,Kinect V2 使用紅外光線技術,在獲得的3D 深度圖像上具有成像速度更快,辨識度更高,不受周圍光照影響等優點。Kinect V2 在獲得3D 深度圖像后,通過邊緣檢測、噪聲閾值處理等技術把可能是人體的圖像從復雜的環境中分離出來,得到一個人體景深圖像。Kinect 通過機器學習、決策森林等方式,在景深圖像區分出頭部、手部、腳部等人體的各個部位,并把Kinect for Window 提供的25 個骨骼點數據源追蹤到每一個部位上,提取出系統所需的骨骼圖像[9]。在SDK 中剔除背景后的人體深度圖像以及獲取的骨骼圖像如圖2 所示。

圖2 人體深度圖像及獲取的骨骼圖像
人在正常的生理活動中需要各項復雜的生理結構同時協調工作來完成一個簡單的行為動作。而老年人由于生理結構的機能老化,在遇到容易誘發跌倒的條件,如地面光滑、地面凹凸不平、有障礙物等不利因素時,由于身體機能無法及時完成快速的反應,便容易誘發跌倒。跌倒時,骨骼關節點的位置會隨著身體快速變化。文中提出的檢測系統利用Kinect for Window的實時檢測技術,在Kinect V2 識別的圖3 所示的25 個人體骨骼中,提取肩部中心和兩髖中心點兩個骨骼點作為跌倒檢測追蹤的關節點。

圖3 人體25個骨骼圖像
以兩肩中心的下落高度差H、加速度A以及髖部中心的空間位置D為跌倒檢測的特征條件,將骨骼實時高度差D、加速度A和空間位置D與相應閾值HL、AL和DL對比,當3 個實時骨骼數據都超出閾值時,把跌倒和其他正常行為區分出來,此時系統發出語音詢問,當整個系統符合跌倒條件時,系統判定為跌倒事件。系統運行流程如圖4 所示。

圖4 跌倒檢測系統工作流程圖
人體動作和相應的骨骼關節點會發生相應的空間位置變化,而肩部中心點骨骼位于頸部以下的位置,能準確地反映出人體實時狀態,當人體發生跌倒事件時,肩部中心骨骼往往會伴隨很大的高度差和速度變化。發生跌倒時,人體從站立到跌倒是一個非常短暫的過程,所以在實驗中,Kinect 采集以每10幀之間的骨骼數據,按照Kinect V2的30 fps 捕獲速率,也就是0.33 s時間內骨骼點在空間坐標上的變化。假設在以Kinect 為原點的空間坐標系(X0,Y0,Z0)中,Fq幀時Kinect 采集到目標肩部中心點的空間坐標為(Xi,Yi,Zi),時間記為T1。Fq+n幀時,Kinect采集的目標肩部中心點的空間坐標為(Xj,Yj,Zj),時間記為T2。肩部中心點空間坐標下降高度差為:

其中,H為Kinect 采集的肩部中心點在人體發生跌倒事件時,站立到跌倒的下降高度差。老年人由于骨質疏松、肌肉萎縮等,加上部分老人出現駝背現象,老年人的身高都普遍偏矮,為了降低系統的誤差,文中采用0.7 m的高度閾值作為跌倒判斷的準入條件。當肩部中心骨骼高度差H≥0.7 m 時,系統認為可能發生跌倒事件。利用式(1)中的下降高度差和兩幀之間的時間獲得肩部中心下降的加速度A:

加速度可以反映出人體活動的激烈程度,當人體狀態發生劇烈變化時,加速度會瞬間變大并在短時間內達到一個峰值。在研究人體不同的動作與加速度的峰值關系時發現,跌倒時,加速度峰值最大[10-11]。具體關系如圖5 所示。

圖5 常見人體動作加速度柱形圖
圖5 中從左到右分別為正常行走1、彎腰2、蹲下3、向左跌倒4、向右跌倒5、向前跌倒6、向后跌倒7時的肩部中心下降加速度的峰值。正常行走和彎腰時,動作幅度并不大,因此加速度峰值并不大。蹲下動作幅度雖然也很大,但是過程緩慢,并沒有很大的加速度值,后面的4個跌倒動作發生時,加速度的峰值都超過了2.2 m/s2。經過多次實驗,跌倒時峰值都大于2.2 m/s2,因此A≥2.2 m/s2可以作為跌倒的檢測條件。
為了提高系統跌倒檢測的精確度,在系統檢測人體中心點下降速度的同時,需要獲取髖部中心到地面的高度。人在跌倒時重心高度相對地面較低,而髖部中心骨骼在跌倒時也基本上會貼近地面,因此采用髖部中心點位置信息用于判斷是否發生跌倒。利用計算機視覺找出地面十分復雜,但Kinect SDK 提供了一個vector4*floorClipPlane 函數,可以精確計算深度圖像中任何點到地面的高度,vector4*floorClipPlane 函數提供的4 個雙精度類型的數據成員分別為X、Y、Z、W,將參數分別賦值給A、B、C、D可以得到地面方程,為:

其中,A、B、C、D為地面參數。
由式(3)的地面方程可以計算髖部中心到地面的高度D。

(Xc,Yc,Zc)為髖部中心骨骼的空間坐標位置。
式(4)可以精確地計算出髖部中心到地面的高度,但是如果Kinect 傳感器離地太高或者仰角太高而無法檢測地面時,X、Y、Z、W的值默認為零,無法確定高度值。所以當無法檢測地面時,可以用髖部中心骨骼點到右腳掌之間的垂直高度作為髖部中心地面高度。當Kinect 無法檢測地面時,髖部中心地面高度公式為:

(Xb,Yb,Zb)為右腳腳掌的空間位置。
為了研究跌倒時的地面高度閾值,對日常生活行為中髖部中心骨骼的地面高度進行了大量的實驗,結果如圖6 所示,其中系列1、系列2、系列3 分別為正常行走、跌倒、蹲下的地面高度值。

圖6 人體行為髖部中心高度變化折線圖
由圖6折線圖發現,人體在正常站立行走時,地面高度基本上是一條穩定的直線。蹲下時,雖然地面高度會發生變化,但高度基本上都穩定在0.4 m左右。跌倒事件發生時,髖部中心地面高度在0.3 m 以下。因此,0.3 m 可以作為高度檢測的閾值檢測條件[12-13]。
文中提出的基于Kinect V2的跌倒檢測系統基于下降高度閾值、高度速度閾值和地面高度閾值,當同時滿足3 個條件時,便判斷為跌倒事件,結合語音系統,可以極大地減少系統的誤判。經過實驗發現,該文使用的檢測算法在系統穩定程度和精確度上優于基于高度和基于速度的檢測方法。基于高度的檢測方法[14]容易對Kinect 視野范圍內的跌落物體產生誤判。基于速度檢測的方法[15]的跌倒檢測準確度比基于高度檢測高,但是也容易受到外界干擾物的影響。文中分別就基于高度的算法、基于速度的算法和該文使用的算法,對日常中常見的跌倒動作分別做了30次實驗,3種算法的實驗結果如表1所示。

表1 識別率比較
由表1的實驗數據證明,文中所采取的閾值和算法完全滿足跌倒檢測系統的要求,并且在跌倒實驗中,模擬了各式各樣的跌倒動作和跌倒后的狀態,包括跌倒后趴著、躺著、坐著、卷縮等,系統都可以準確地識別跌倒動作的發生[16]。
針對現有的老人跌倒檢測設備,如穿戴式檢測設備,是基于Android 端的軟件檢測和傳統的RGB 機器視覺檢測方法,存在實時性不好、容易忘記攜帶、便攜性不高等問題,故提出了基于Kinect V2 傳感器的檢測方法,利用骨骼追蹤技術和跌倒閾值的算法,能夠快速、精準地檢測出跌倒事件的發生。實驗結果證明,文中的方法穩定性和精確度更好。在今后的工作中,會將Kinect 跌倒檢測結合物聯網的設備,在跌倒檢測后利用物聯網技術引領老人跌倒后自救和向周圍及家人發出求救,使得老人跌倒后能得到有效的救助,提高跌倒后的救治率。