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

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

圖2 人體深度圖像及獲取的骨骼圖像
人在正常的生理活動(dòng)中需要各項(xiàng)復(fù)雜的生理結(jié)構(gòu)同時(shí)協(xié)調(diào)工作來(lái)完成一個(gè)簡(jiǎn)單的行為動(dòng)作。而老年人由于生理結(jié)構(gòu)的機(jī)能老化,在遇到容易誘發(fā)跌倒的條件,如地面光滑、地面凹凸不平、有障礙物等不利因素時(shí),由于身體機(jī)能無(wú)法及時(shí)完成快速的反應(yīng),便容易誘發(fā)跌倒。跌倒時(shí),骨骼關(guān)節(jié)點(diǎn)的位置會(huì)隨著身體快速變化。文中提出的檢測(cè)系統(tǒng)利用Kinect for Window的實(shí)時(shí)檢測(cè)技術(shù),在Kinect V2 識(shí)別的圖3 所示的25 個(gè)人體骨骼中,提取肩部中心和兩髖中心點(diǎn)兩個(gè)骨骼點(diǎn)作為跌倒檢測(cè)追蹤的關(guān)節(jié)點(diǎn)。

圖3 人體25個(gè)骨骼圖像
以兩肩中心的下落高度差H、加速度A以及髖部中心的空間位置D為跌倒檢測(cè)的特征條件,將骨骼實(shí)時(shí)高度差D、加速度A和空間位置D與相應(yīng)閾值HL、AL和DL對(duì)比,當(dāng)3 個(gè)實(shí)時(shí)骨骼數(shù)據(jù)都超出閾值時(shí),把跌倒和其他正常行為區(qū)分出來(lái),此時(shí)系統(tǒng)發(fā)出語(yǔ)音詢問(wèn),當(dāng)整個(gè)系統(tǒng)符合跌倒條件時(shí),系統(tǒng)判定為跌倒事件。系統(tǒng)運(yùn)行流程如圖4 所示。

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

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

加速度可以反映出人體活動(dòng)的激烈程度,當(dāng)人體狀態(tài)發(fā)生劇烈變化時(shí),加速度會(huì)瞬間變大并在短時(shí)間內(nèi)達(dá)到一個(gè)峰值。在研究人體不同的動(dòng)作與加速度的峰值關(guān)系時(shí)發(fā)現(xiàn),跌倒時(shí),加速度峰值最大[10-11]。具體關(guān)系如圖5 所示。

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

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

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

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

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

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