祝衍軍 李建新 劉 捷
(東莞職業(yè)技術(shù)學(xué)院,廣東 東莞 523000)
我國老年化程度持續(xù)加深,獨(dú)居老年人和空巢老年人在不斷增加,第七次全國人口普查數(shù)據(jù)顯示我國60 歲及以上人口比重已經(jīng)達(dá)到了18.7%,其中65 歲及以上人口比重達(dá)到13.50%。由于老年人身體機(jī)能差、平衡能力不強(qiáng)和應(yīng)變能力弱,摔倒后容易引起嚴(yán)重的后果,如果不能及時(shí)得到醫(yī)護(hù)人員救治,極有可能因?yàn)殄e(cuò)過了最佳搶救時(shí)間而危及生命。為了減輕老人因跌倒而產(chǎn)生的傷害,跌倒檢系統(tǒng)也日漸完善,但目前市場上的大部分跌倒檢測系統(tǒng)都需要配套其對應(yīng)的終端設(shè)備,存在應(yīng)用場景有限和使用不靈活性等問題。因此本文根據(jù)跌倒行為特征,基于深度學(xué)習(xí)算法工具設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)可以在Android 手機(jī)上運(yùn)行的實(shí)時(shí)性較好和檢測精度較高的異常跌倒算法。
跌倒是一個(gè)瞬間動(dòng)作,人體的動(dòng)作、高度和速度等都會(huì)隨著跌倒發(fā)生快速的改變,在跌倒過程中,一般都是從站著到坐到地上或者躺倒到地上,人體的中心點(diǎn)快速的從較高位置下降到地面或者接近地面的高度。文獻(xiàn)[1]從頭部、身體質(zhì)心、小腿中心三個(gè)位置相對位置的變化與特征向量與水平地面的夾角來檢測跌倒行為,文獻(xiàn)[2]根據(jù)多幀的左右耳、左右目、左右足首等部位相對位置的加權(quán)平均變化來判斷跌倒行為,大部分跌倒檢測算法沒有充分考慮跌倒的時(shí)空特征,要么只提取跌倒視頻的時(shí)間特征,要么只提取跌倒視頻的空間特征,本文充分考慮跌倒的時(shí)空特性,從跌倒的連續(xù)視頻幀選取人體中心點(diǎn)下降的速度、人體外接矩形寬高比和人體縱向中心線與地面的傾斜角作為跌倒特征。
本文通過Openpose 人體姿態(tài)識別獲取人體關(guān)節(jié)點(diǎn)數(shù)據(jù),根據(jù)OpenPose 提供的關(guān)節(jié)點(diǎn)數(shù)據(jù)來計(jì)算人體中心點(diǎn)下降的速度、人體縱向中心線與地面形成的傾斜角和人體外接矩形寬高比。OpenPose[3]人體姿態(tài)識別項(xiàng)目是美國卡耐基梅隆大學(xué)(CMU)基于卷積神經(jīng)網(wǎng)絡(luò)和監(jiān)督學(xué)習(xí)并以caffe 為框架開發(fā)的開源庫,可以實(shí)現(xiàn)人體動(dòng)作、面部表情、手指運(yùn)動(dòng)等姿態(tài)估計(jì)。OpenPose 獲取到的人體關(guān)節(jié)圖總共包括18 個(gè)關(guān)節(jié)點(diǎn):0:鼻子(Nose),1:脖子(Neck),2:右肩(RShoulder),3:右肘(RElbow),4:右腕(RWrist),5:左肩(LShoulder),6:左肘(LElbow),7:左腕(LWrist),8:右髖(RHip),9:右膝(RKnee),10:右踝(RAnkle),11:左髖(LHip),12:左膝(LKnee),13:左踝(LAnkle),14:右眼(REye),15:左眼LEye,16:右耳(REar),17:左耳(LEar),具體如圖1 所示。
圖1 OpenPose 獲取的人體關(guān)節(jié)點(diǎn)數(shù)據(jù)示意圖
本文以左右髖的中間點(diǎn)作為人體中心點(diǎn),每隔一段時(shí)間獲取一次左髖(8)和左髖(11)的位置,計(jì)算這段時(shí)間內(nèi)人體中心點(diǎn)縱坐標(biāo)值的變化速率做為人體中心點(diǎn)下降速度。設(shè)t1 時(shí)刻的人體中心點(diǎn)的縱坐標(biāo)值為yt1,則,其中yt1,8和yt1,11分別為t1 時(shí)刻OpenPose 獲取的人體左髖(8)和右髖(11)的縱坐標(biāo)值,設(shè)t2 時(shí)刻的人體中心點(diǎn)的縱坐標(biāo)值為yt2,則,其中yt2,8和yt2,11分別為t2 時(shí)刻OpenPose 獲取的人體左髖(8)和右髖(11)的縱坐標(biāo)值,人體中心點(diǎn)下降速度v 則為:
在跌倒時(shí)人體外接矩形寬高比變化最為明顯,當(dāng)人直立活動(dòng)時(shí),人體高度會(huì)大于寬度,當(dāng)發(fā)生跌倒時(shí)人體高度將會(huì)快速下降,寬度會(huì)快速增大。本文高度取頭部4 個(gè)關(guān)節(jié)點(diǎn)(右眼-14,左眼-15,右耳-16,左耳-17)縱坐標(biāo)加權(quán)平均與腳部2 個(gè)關(guān)節(jié)點(diǎn)(右踝-10,左踝-13)縱坐標(biāo)加權(quán)平均的差值,寬度取左腕(4)和右腕(7)橫坐標(biāo)的差值,t1 時(shí)刻具體寬度W、高度H 和寬高比R的計(jì)算公式為:
人體縱向中心線與地面形成的傾斜角通過求取頭部關(guān)節(jié)點(diǎn)和一條小腿中部位置之間連線的反正切值獲得,本文以O(shè)penPose 獲取的人體鼻子(0)作為頭部關(guān)節(jié)點(diǎn),小腿中間位置則取右膝(9)和右踝(10)兩個(gè)關(guān)節(jié)點(diǎn)的平均值,則t1 時(shí)刻的小腿中間位置中的值分別為,則t1 時(shí)刻人體縱向中心線與地面形成的傾斜角為:
目前大部分跌倒檢測算法沒有充分考慮跌倒的時(shí)空特征,要么只提取跌倒視頻的時(shí)間特征,要么只提取跌倒視頻的空間特征,本文將時(shí)間特征相關(guān)的人體中心點(diǎn)下降速度、人體外接矩形寬高比和空間特征相關(guān)的人體縱向中心線與地面傾斜角作為跌倒特征,首先通過獲取到的每幀圖片計(jì)算一次人體中心點(diǎn)下降的速度和人體外接矩形寬高比,如果每秒鐘人體中心點(diǎn)下降速度大于1.4m/s,則進(jìn)一步判斷近3 秒內(nèi)人體外接矩形寬高比持續(xù)增大,且最近一幀的人體外接矩形寬高比大于2,然后再通過計(jì)算最近一幀的人體縱向中心線與地面形成的傾斜角是否小于45°來判斷其是否跌倒;如果人體已經(jīng)處于跌倒?fàn)顟B(tài),則不能先通過與時(shí)間特性相關(guān)的人體中心點(diǎn)下降速度、人體外接矩形寬高比來繼續(xù)判斷,只能通過計(jì)算與空間特征相關(guān)的人體縱向中心線與地面傾斜角作為持續(xù)跌倒的判定條件,具體的跌倒判定算法流程圖如圖2 所示。如果人體在10 秒內(nèi)一直處于持續(xù)跌倒?fàn)顟B(tài)(不能自行爬起來),則系統(tǒng)需要采取進(jìn)一步預(yù)警措施,如報(bào)警或者通知其家人等。
圖2 跌倒判定算法流程圖
本文將實(shí)現(xiàn)跌倒判定算法的APP 部署到華為Mate20 手機(jī)進(jìn)行驗(yàn)證和測試,使用手機(jī)的后置攝像頭對站在距離手機(jī)位置1-2 米的位置進(jìn)行測試,針對日常非跌倒行為的走路、躺下、蹲下、坐下、跳躍和跌倒行為的橫向摔倒、側(cè)向摔倒、向后摔倒、向前摔倒進(jìn)行測試共9 種動(dòng)作行為進(jìn)行測試,每種動(dòng)作行為測試5 次,具體測試數(shù)據(jù)如表1 所示。
表1 跌倒判定算法驗(yàn)證實(shí)驗(yàn)結(jié)果
從測試實(shí)驗(yàn)結(jié)果可以看出,算法對走路、蹲下、坐下、跳躍、橫向摔倒、向后摔倒、向前摔倒這7 種動(dòng)作行為具有較好的檢測效果,檢測準(zhǔn)確度達(dá)到了100%,但對躺下、側(cè)向摔倒這2 種動(dòng)作行為的檢測效果較差,需要進(jìn)一步提取更多的特征對其進(jìn)行判定。
本文根據(jù)常見的應(yīng)用場景將整個(gè)系統(tǒng)架構(gòu)分為老年客戶端APP、家屬客戶端APP、數(shù)據(jù)存儲(chǔ)和后臺(tái)管理服務(wù)器、第三方即時(shí)通訊服務(wù)器四部分,具體如圖3 所示。老年客戶端APP 根據(jù)設(shè)計(jì)的異常跌倒檢測算法監(jiān)控老年人狀態(tài),如果老人10 秒內(nèi)一直處于持續(xù)跌倒?fàn)顟B(tài),則系統(tǒng)自動(dòng)促發(fā)報(bào)警機(jī)制,將老人跌倒地址、短視頻等信息發(fā)送給家屬客戶端APP;家屬客戶端APP功能主要分為家屬管理和跌倒確認(rèn)及報(bào)警等功能,家屬管理可以動(dòng)態(tài)的增刪家庭成員,設(shè)置其是否可以接收到跌倒信息,跌倒確認(rèn)及報(bào)警是指收到跌倒信息后,查看跌倒視頻,再次確認(rèn)老人是否跌倒以及提供視頻通話和撥打急救電話等功能;視頻通話采用成熟的第三方即時(shí)通訊SDK 來實(shí)現(xiàn)。
圖3 軟件整體架構(gòu)
本文針對老年人容易摔倒的現(xiàn)狀,基于OpenPose 獲取人體關(guān)節(jié)點(diǎn)數(shù)據(jù),結(jié)合跌倒行為特征,設(shè)計(jì)了一個(gè)基于人體關(guān)節(jié)點(diǎn)來判定跌倒行為的算法,詳細(xì)闡述了算法中需要用到的關(guān)節(jié)點(diǎn)及其計(jì)算公式和算法流程,經(jīng)過在Android 手機(jī)終端測試驗(yàn)證,該算法具有較好的檢測效果。