李旋旋+張仁杰
摘 要:為了實(shí)時(shí)監(jiān)測老人的跌倒信息,提出一種基于Kinect體感傳感器的自動(dòng)檢測摔倒方法。人在摔倒時(shí),身體重心、速度會(huì)快速改變,身體的中心點(diǎn)會(huì)從比較高的位置下降到地面?;诖?,通過對人體頭部、腰部、膝蓋等幾個(gè)關(guān)鍵的骨骼點(diǎn)進(jìn)行高度和速度的監(jiān)測,兩者結(jié)合判斷,如果超出所設(shè)定的閾值,則判定為跌倒事件發(fā)生。
關(guān)鍵詞:Kinect;自動(dòng)檢測;跌倒事件
DOIDOI:10.11907/rjdk.171257
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2017)007-0125-03
0 引言
隨著經(jīng)濟(jì)和社會(huì)的快速發(fā)展,中國已開始進(jìn)入老齡化社會(huì),每年都有大量老人因?yàn)闆]有得到及時(shí)救助而錯(cuò)過了最佳求救時(shí)間,從而導(dǎo)致生命安全事故頻發(fā)。當(dāng)他們獨(dú)自外出或者待在家里時(shí),一些意外事件經(jīng)常發(fā)生。為了讓他們的生命安全得到保障,通過人機(jī)交互的方式實(shí)時(shí)監(jiān)測人體活動(dòng)信息。通過這種方式,可以在老人或者孩子發(fā)生跌倒意外時(shí)通過報(bào)警求助信息及時(shí)加以求助。本文采用Kinect體感傳感器設(shè)備,提取人體骨骼信息,然后對身體的中心點(diǎn)在摔倒時(shí)下降的高度和速度進(jìn)行判斷,兩者綜合比較判斷人體是否真的跌倒。Kinect提供了豐富的能夠識別人體特征的信息源,通過這些信息源對提取到的人體圖像進(jìn)行處理和骨骼追蹤變得十分方便。此外,Kinect還具有語音識別功能,不受環(huán)境光線的干擾,即使在全黑暗的環(huán)境中也可以正常使用。
1 跌倒檢測分析與設(shè)計(jì)方法
1.1 人體特征提取及動(dòng)作識別
Kinect在使用時(shí),得到的原始深度圖有噪聲和一些毛刺,這些噪聲有很大的不穩(wěn)定性,從而導(dǎo)致提取出來的人體圖像不正確,也不具備穩(wěn)定性。因此,在提取人體姿勢信息之前,需要對原始深度圖進(jìn)行預(yù)處理,用算法消除圖像的噪聲。
采用Kinect得到的原始圖像的分辨率并不是很高,這也是一大不足。本文通過使用泊松方程及一系列算法使得原始深度圖的圖片質(zhì)量得以提高。泊松算法可判斷人體表面的特征點(diǎn)是否為噪聲。其具體原理為:首先,提取物體表面特征點(diǎn)的朝向及角度,并判斷該點(diǎn)存在于空間的可能位置,同時(shí),根據(jù)朝向的判斷,借助泊松方程在特征點(diǎn)周圍形成一個(gè)虛擬的距離場,然后,根據(jù)判斷出的采樣特征點(diǎn)的位置平均估計(jì)出它對周圍的影響及周圍表面距離場的具體情況[1]。每個(gè)特征點(diǎn)都是由周圍很多點(diǎn)共同決定的最終狀態(tài)。因此,如果圖像的觀察點(diǎn)位置有凸起的特征,而且周圍的點(diǎn)沒有表現(xiàn)出此類特征,則該點(diǎn)就是噪聲并消除。Kinect自帶的采樣精度低的缺陷導(dǎo)致很多小的特征點(diǎn)被誤判為噪聲。
中值濾波是常用的噪聲去除方法,它是一種基于排序統(tǒng)計(jì)理論的非線性信號處理技術(shù),其依據(jù)的原理是在數(shù)字圖像或數(shù)字序列中,設(shè)定一個(gè)尺寸模板,在目標(biāo)點(diǎn)附近取該尺寸模板能覆蓋到的值,再對這些值進(jìn)行排序,并選取最中間的值作為該點(diǎn)濾波后的值,同時(shí)讓目標(biāo)點(diǎn)附近像素點(diǎn)的像素值趨近真實(shí)值,從而使噪聲點(diǎn)孤立并濾除[2]。具體方法為利用特定結(jié)構(gòu)的二維滑動(dòng)模板,按像素值的大小對模板內(nèi)的像素進(jìn)行排序,進(jìn)而生成了單調(diào)的二維數(shù)據(jù)序列。二維中值濾波的輸出公式為:
式(1)中g(shù)(x,y)為濾波后圖像,f(x,y)為原始圖像,一般為3×3或5×5的區(qū)域。
濾波會(huì)對圖像的清晰度造成下降,且本文中Kinect傳感器的分辨率較低,為了獲取清晰的濾波圖像,需謹(jǐn)慎地選擇濾波的模板。由于Kinect的深度圖像的噪聲點(diǎn)是沒有值的,因而選用濾波模板為5像素大小。圖像濾波前后對比如圖1所示,本算法明顯消除了噪聲點(diǎn)。
人與背景的分割原理,是指對當(dāng)前的視頻幀圖像與背景圖像做減法,去除當(dāng)前圖像中的復(fù)雜背景,從而提取出人體目標(biāo)。對于深度圖像,能有效去除背景,即可準(zhǔn)確保留所需的人體信息[3]。本文將采用背景差分法進(jìn)行深度圖像中人與背景的分割。
使用背景差分法分離出前景目標(biāo)后,需對圖像進(jìn)行二值化處理,以便去除噪聲。圖3(a)為復(fù)雜背景中的深度圖,(b)為背景差分法提取出人體區(qū)域并經(jīng)二值化處理之后的效果。
在所有的預(yù)處理步驟完成后,對人體進(jìn)行特征分析。為了確定是否有跌倒事件發(fā)生,對人的中心點(diǎn)進(jìn)行分析,從速度和高度這兩個(gè)特征著手,程序流程如圖4所示。
人在正常的直立狀態(tài)下,身體的頭部、腰部及兩髖等中心點(diǎn)的連接線與地面呈現(xiàn)垂直關(guān)系,當(dāng)有摔倒情況出現(xiàn)時(shí),身體的質(zhì)心在高度和速度等方面會(huì)突然發(fā)生變化,本文主要以這兩個(gè)為主要研究點(diǎn)。相對于其它研究方法,這種方式更為簡潔、準(zhǔn)確。對中心點(diǎn),如腰部設(shè)定一個(gè)閾值,此閾值是經(jīng)過大量的實(shí)驗(yàn)選取的最佳判斷點(diǎn),如果中心點(diǎn)高度在一定的時(shí)間范圍內(nèi)小于所設(shè)置的值,表明有跌倒事件發(fā)生,此外再檢測速度,綜合得出跌倒時(shí)間的判定。
1.2 系統(tǒng)方案選擇
Kinect體感器具有實(shí)時(shí)跟蹤骨骼的技術(shù),如圖5所示,選取頭部、腰髖部、膝蓋等部位,實(shí)時(shí)計(jì)算人體中心點(diǎn)的空間位置、運(yùn)動(dòng)速度,以及兩髖中心點(diǎn)的空間位置、離地面的高度以及在較低高度下停留的時(shí)間等參數(shù)。通過連續(xù)的視頻幀,來計(jì)算身體質(zhì)心或者骨骼點(diǎn)的速度,如果該速度超過給定閾值V,同時(shí)兩髖中心點(diǎn)離地面高度低于H且停留時(shí)間大于T,則判定跌倒事件發(fā)生,系統(tǒng)會(huì)自動(dòng)發(fā)出警報(bào)并切換到RGB畫面,以及自動(dòng)保存當(dāng)前時(shí)刻的具體時(shí)間、深度圖、骨骼圖和所有骨骼坐標(biāo),并自動(dòng)將現(xiàn)場重要信息通過郵件通知到監(jiān)護(hù)人。
2 實(shí)驗(yàn)結(jié)果及分析
Kinect骨骼跟蹤不受周圍光照的影響,主要是因?yàn)榧t外信息,產(chǎn)生3D深度圖像,所以本系統(tǒng)優(yōu)先選用Kinect獲取人體特征信息[4]。如圖6所示,通過Kinect獲取的數(shù)據(jù)分析和判斷目標(biāo)人體的運(yùn)動(dòng)狀態(tài),主要檢測特征是目標(biāo)人體的中心點(diǎn)的下降速度和腰部中心點(diǎn)離地面的高度。
2.1 中心點(diǎn)速度檢測
通過對目標(biāo)人體進(jìn)行監(jiān)測,對返回的骨骼數(shù)據(jù)加以實(shí)時(shí)處理,每相鄰10幀求一次人體中心點(diǎn)的下降速度V。當(dāng)V>VT(臨界值),則認(rèn)為檢測到了跌倒特征。根據(jù)實(shí)驗(yàn)結(jié)果,VT一般在1.21m/s~2.05m/s,結(jié)合實(shí)驗(yàn)測試結(jié)果,本文選取1.46m/s作為人體中心點(diǎn)下降速度的閾值。一旦超過該閾值,則預(yù)估為檢測到跌倒,因?yàn)橛锌赡苤皇侨梭w做出健身、下蹲姿勢,要進(jìn)一步確定是否真的跌倒,則需要根據(jù)腰部離地面的高度來判斷,如果腰部的高度檢測出小于設(shè)定的閾值,綜合判斷,才使得結(jié)果更準(zhǔn)確。endprint
2.2 高度檢測
檢測目標(biāo)人體中心點(diǎn)的下降速度是其中一個(gè)檢測特征,如果檢測到了速度特征在跌倒范圍內(nèi),將進(jìn)一步檢測腰部離地面的高度。地面檢測的難度比較大,在Kinect中,每個(gè)類型的數(shù)據(jù)都有3個(gè)類與之對應(yīng):Source、Reader和Frame。如果要讀取骨架,就有IBodyFrameSource、IBodyFrameReader、IBodyFrame這3個(gè)類[5],而要讀取深度數(shù)據(jù),就有IDepthFrameSource、IDepthFrameReader、IDepthFrame這3個(gè)類??梢园l(fā)現(xiàn),在IBodyFrame類中有g(shù)et_FloorClipPlane方法,函數(shù)的參數(shù)是vector4*floorClipPlane,返回值是HRESULT類型vector4結(jié)構(gòu)體中有4個(gè)float類型的數(shù)據(jù)成員,是地面方程的參數(shù),但實(shí)際試驗(yàn)中得知這幾個(gè)參數(shù)并不能準(zhǔn)確獲得,極大影響了實(shí)驗(yàn)結(jié)果。因此,最終選擇計(jì)算腰部到腳掌的高度差來判斷是否摔倒。把雙腳作為相對于地面的基線,由于地面方程不易檢測,將此方案轉(zhuǎn)變,把腳部看作地面,如果腰部中心點(diǎn)到腳部的高度小于設(shè)定的固定值,則檢測到有摔倒的特征[6]。
在摔倒時(shí),姿勢大多都是俯臥式,這時(shí)人體離地面的距離會(huì)很小,包括頭部、腰部、臀部及膝蓋等部位。經(jīng)查閱資料發(fā)現(xiàn),男性和女性的腰部厚度和臀部的寬度最終能得到理想的閾值??紤]到老年人穿衣服的厚度或身體接觸地面不完全等多種情況,結(jié)合實(shí)驗(yàn)測試結(jié)果,該高度閾值需要設(shè)置更大一點(diǎn)才能準(zhǔn)確檢測到跌倒事件,本文選取0.32m作為檢測特征的閾值[7]。當(dāng)High<0.32m,則判定檢測到摔倒特征,如圖7所示。
3 語音確認(rèn)與報(bào)警
為了使跌倒信息及時(shí)傳遞給相關(guān)人員,結(jié)合AT89C52單片機(jī)的主控制模塊和語音識別模塊對Kinect進(jìn)行控制[8]。如果檢測到有人摔倒并持續(xù)5s則認(rèn)定跌倒事件發(fā)生,系統(tǒng)發(fā)出警報(bào)聲并自動(dòng)顯示“Target Fall”,如果此時(shí)視頻幀中出現(xiàn)高度大于1m的人體,則警報(bào)解除。
4 實(shí)驗(yàn)總結(jié)
實(shí)驗(yàn)表明,該檢測系統(tǒng)的檢測準(zhǔn)確率高,算法簡單易于實(shí)現(xiàn),解決了老人發(fā)生意外得不到及時(shí)救助的問題。此系統(tǒng)可以很好地保護(hù)隱私,只是顯示深度圖像和骨骼圖。另外,Kinect不受光照影響,系統(tǒng)在晚上也可以實(shí)時(shí)檢測,無需穿戴,實(shí)用性和舒適性較好,不會(huì)影響老年人的日常活動(dòng),Kinect價(jià)格不高,具有推廣及應(yīng)用前景。
參考文獻(xiàn):
[1]金煒,潘英俊,魏彪.基于改進(jìn)遺傳算法的圖象閾值去噪研究[J].計(jì)算機(jī)工程與應(yīng)用,2005(22):66-69.
[2]岡薩雷斯.數(shù)字圖像處理[M].北京:電子工業(yè)出版社,2003.
[3]李旭超,朱善安.基于小波模極大值和Neyman Pearson準(zhǔn)則閾值的圖像去噪[J].中國圖象圖形學(xué)報(bào),2005,10(8):964-969.
[4]孔令富,李海濤.Y 基于位置和運(yùn)動(dòng)軌跡的老年人異常行為檢測[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(2):735-739.
[5]PRATT W K.Digital image processing:3rd edition[M].New York:Wiley Inter-science,1991.
[6]PALSK, KING R A.Image enhancement using smoothing with fuzzy sets[J].IEEE Trans, Syst,Man,Cybern,1981,11(7):494-501.
[7]TAI-CHIU HSUNG,DANIEL PAK-KONG LUN,WAN-CHI SIU.Denoising by singularity detection[J].IEEE Transactions on Signal Processing,1999,47(11):185-186.
[8]陳雪鋒.基于人體姿態(tài)識別的機(jī)器人控制技術(shù)研究[D].武漢:武漢科技大學(xué),2014.endprint