金瑋, 孟君, 黃宇飛, 何萍
(上海交通大學醫(yī)學院附屬新華醫(yī)院, 信息管理部, 上海 200025)
目前,在世界范圍內(nèi)住院患者中老年人的比例在逐步提升,而老人跌倒的概率明顯高于其他患者。據(jù)統(tǒng)計,在美國每年記錄的352 000例髖部骨折中,約有90%是跌倒導致的且僅有1/4的患者能夠完全康復。本文提出一種基于CNN的人體姿態(tài)估計方法來實時檢測摔倒并及時發(fā)出告警。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是在多層神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,在全連接層前加入了部分連接的卷積層和池化層,使其增加了特征學習的功能并實現(xiàn)深度學習[1-2]。
CNN的基本組成包括輸入層、卷積層、池化層、激活層以及輸出層。卷積層是 CNN的核心,其是由多個卷積單元組成,目的是提取圖像的特征;激活層具有非線性分割能力[3];池化層也稱為下采樣層,主要目的在于保持大部分重要信息的同時縮小卷積層提取特征后的參數(shù),通常可分為最大池化和平均池化。
如圖1所示,OpenPose是基于卷積神經(jīng)網(wǎng)絡(luò)和監(jiān)督學習的一種自底向上的網(wǎng)絡(luò)模型。其上分支網(wǎng)絡(luò)用于預測人體關(guān)節(jié)點的置信度P,下分支網(wǎng)絡(luò)用于預測人體部分親和字段M。各階段網(wǎng)絡(luò)前向傳播公式如下:
P1=ρ1(F),t=1
M1=φ1(F),t=1
Pt=ρt(F,Pt-1,Mt-1),?t≥2
Mt=φt(F,Pt-1,Mt-1),?t≥2
(1)
其中,F(xiàn)為由VGG網(wǎng)絡(luò)所得到的圖像特征,t代表第t級聯(lián)網(wǎng)絡(luò)。通過多級網(wǎng)絡(luò)級聯(lián)可以使系統(tǒng)提高置信度P和M,從而提高識別精度。

圖1 OpenPose 網(wǎng)絡(luò)結(jié)構(gòu)
人體姿態(tài)估計是以RGB圖片或視頻中檢測出人體的一些關(guān)鍵點作為基本特征,構(gòu)造出關(guān)節(jié)向量以及向量間的夾角與長度比值,通過這些特征信息來描述骨骼脈絡(luò),進而判斷人體姿態(tài)。
在醫(yī)院中,最常見的監(jiān)測姿態(tài)是跌倒姿態(tài),跌倒監(jiān)測系統(tǒng)工作流程見圖2。其通過攝像頭獲取視頻圖像數(shù)據(jù),然后利用高速通信技術(shù)將數(shù)據(jù)傳送至處理器端,最后通過本文提出的人體姿態(tài)識別方法進行實時計算與分類識別出不同的人體姿態(tài)。當識別出人員存在跌倒姿態(tài)時,自動發(fā)出警告。因此,跌倒監(jiān)控系統(tǒng)的核心是跌倒姿態(tài)的監(jiān)測。

圖2 醫(yī)院跌倒監(jiān)測系統(tǒng)工作流程圖
本文跌倒姿態(tài)檢測算法主要分為人體關(guān)鍵點提取、人體姿態(tài)分類以及人體姿態(tài)分析3部分,如圖3所示。

圖3 跌倒檢測算法流程圖
本文采用OpenPose[4-5]姿態(tài)估計算法提取的25個關(guān)鍵點,如圖4所示。圖5為該算法提取出的前10種骨架向量的特征重要程度。其中,f56指人體軀干與左大腿長度比值,f57指軀干與右大腿長度比值,f70指軀干與右小腿的向量夾角。

圖4 OpenPose提取到的25關(guān)鍵

圖5 特征重要程度
在獲取人體關(guān)鍵節(jié)點后,需要對關(guān)鍵點進行分類以確定人體所處的姿態(tài),最終對姿態(tài)進行判斷。分類的作用是利用給定的類別與已知的訓練數(shù)據(jù)集來學習分類規(guī)則,并構(gòu)建一個分類函數(shù)或分類模型,然后對未知數(shù)據(jù)進行預測。本文采用XGBoost[2]分類器來進行人體關(guān)鍵點的分類,其在GBDT算法基礎(chǔ)上將損失函數(shù)通過二階泰勒展開式做了近似,并對正則項進行了改進,使其更加高效、靈活和便攜。文中通過分類器將人體關(guān)鍵點分為正常狀態(tài)、跌倒狀態(tài)、平躺狀態(tài)以及其他狀態(tài),如圖6所示。

(a) 正常狀態(tài)

(c) 平躺狀態(tài)
在獲取人體姿態(tài)分類后,需要判斷人體此時所處的狀態(tài)。由于每一幀圖像可能同時存在多個人,因此會導致同一幀圖像出現(xiàn)多個人體姿態(tài),從而對最終的跌倒姿態(tài)檢測產(chǎn)生影響。為此其需要提取每一幀圖像中的關(guān)鍵狀態(tài),即每一幀圖像中與跌倒姿態(tài)最接近的狀態(tài),而對于其他狀態(tài)無需過度關(guān)注。文中4種姿態(tài)的重要程度按從大到小進行排序可表示為
pfalling>play>pother>pnormal
(2)
由于當一幀圖像中出現(xiàn)跌倒姿態(tài)時,發(fā)生跌倒事件的概率最大,因此跌倒狀態(tài)的重要程度最高;而平躺狀態(tài)下出現(xiàn)跌倒的可能性較大,故其重要程度次之;由于正常狀態(tài)最為常見,所以其重要程度排名最低。
由于跌倒不是一個單一行為,而是一個從正常到倒地的動態(tài)過程,因此采用一個單一狀態(tài)來判別是否跌倒容易出現(xiàn)誤判。本文采用{pfalling,play}序列來判斷是否存在跌倒事件,即當前一幀圖像的關(guān)鍵姿態(tài)為跌倒,后一幀的關(guān)鍵姿態(tài)為平躺時,則可認為發(fā)生了跌倒事件。
實驗情況為在單人與多人情況下的正常行走、半蹲、前倒、后倒和隨機方向側(cè)倒,實驗者共3人。該算法只檢測出人體的骨架圖與實驗者的體型、年齡、性別等因素無關(guān)。為了測試算法的兼容性,本文參與實驗的實驗者身高均不相等。另外,為了評估算法的魯棒性,實驗還模擬醫(yī)院環(huán)境設(shè)有柜臺、識別閘機、椅子等物體。實驗樣本情況,如表1所示。

表1 實驗樣本說明
為了提高算法的通用性,本文分別研究了單人與多人狀態(tài)下的跌倒檢測效果,如圖7和圖8所示。

(a) 正常行走

(a) 正常行走
在處理分類問題時,常用的模型分類效果評價指標主要有敏感度、特異度、準確率、精確率、召回率和F得分,其均可通過混淆矩陣計算得出。本實驗得出的測試集混淆矩陣,如圖9所示。
效果評價采用文獻[4]給出的度量標準,由混淆矩陣可得:TP=176;FP=2;TN=614;FN=0。
該模型的各項評價指標,如表2所示。

圖9 測試集的混淆矩陣

表2 模型的評價指標
在表2中,準確度為跌倒被檢測出來的概率,其值越高,分類效果越優(yōu);敏感度為發(fā)生跌倒且被判斷為跌倒的概率;特異度為未跌倒且被判斷為未跌倒的概率,兩者越高,誤判率越低;F1-score是精確度和召回率的調(diào)和平均,其值越大,表明模型質(zhì)量越高。由表2中數(shù)據(jù)可知,該算法的誤判率較低,分類效果和模型質(zhì)量較好。
本文在使用相同訓練集和測試集的情況下,分別測試了Hu J、Ren W、Kolivand H等[6-8]提出的跌倒算法識別準確度,并與文中結(jié)果進行比較,結(jié)果如表3所示。從表3可以看出,本文算法的識別準確度最高。
本文基于OpenPose的關(guān)鍵點提取以及XGBoost分類器的跌倒檢測方法,提出了一種人體姿態(tài)識別方法。在醫(yī)院環(huán)境下,以實時的監(jiān)控視頻作為數(shù)據(jù)源,利用OpenPose結(jié)合XGBoost分類器進行人體姿態(tài)估計。實驗結(jié)果顯示,本文所提出方法的準確度為99.75%、敏感度為100%、特異度為99.68%,可以準確地檢測出跌倒動作,且應用簡單、實時性良好。