陳京榮
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣州510006)
目前社會(huì)人口老齡化問題日益嚴(yán)重,因此檢測(cè)出老年人摔倒并且及時(shí)報(bào)警的算法便顯得尤為重要。近年來關(guān)于跌倒檢測(cè)的工作主要分為基于可穿戴設(shè)備的檢測(cè)方法和基于機(jī)器視覺的檢測(cè)方法兩類。由于可穿戴設(shè)備和各種傳感器在實(shí)際使用中有諸多限制,基于機(jī)器視覺的檢測(cè)方法是當(dāng)前的研究熱點(diǎn)?;跈C(jī)器視覺的檢測(cè)方法主要分為基于傳統(tǒng)圖像處理的方法和基于深度學(xué)習(xí)的兩類方法。宋菲等人[1]利用背景差分法提取視頻中的人體輪廓,然后將人體分為3個(gè)區(qū)域分別計(jì)算重心來進(jìn)行跌倒檢測(cè)。Miguel[2]等結(jié)合背景減除法、光流法、卡爾曼濾波方法進(jìn)行跌倒檢測(cè)。但傳統(tǒng)的圖像處理方法受陰影、光照變化和遮擋等問題影響嚴(yán)重,在復(fù)雜環(huán)境下的效果很差,適用范圍有限。隨著深度學(xué)習(xí)的發(fā)展,陰影和遮擋等問題能得到較大的改善。Huang等人[3]在雙流法的基礎(chǔ)上提出了一種三流卷積神經(jīng)網(wǎng)絡(luò),用于識(shí)別人類活動(dòng),例如跌倒和嬰兒爬行。Min等人[4]使用Faster R-CNN并結(jié)合人體特征(例如人的長寬比、質(zhì)心和運(yùn)動(dòng)速度)來判斷是否跌倒。近年來,2D人體姿態(tài)估計(jì)有了長足的進(jìn)步,于乃功[5]等使用OpenPose[6]提取人體骨骼關(guān)鍵點(diǎn),計(jì)算人體質(zhì)心運(yùn)動(dòng)速度等特征是否大于閾值及根據(jù)人體部位的相對(duì)位置關(guān)系來進(jìn)行跌倒檢測(cè)。
長短期記憶網(wǎng)絡(luò)(LSTM)[7]在處理視頻、文本等具有時(shí)空關(guān)系數(shù)據(jù)表現(xiàn)較好,能較好應(yīng)對(duì)序列過長會(huì)導(dǎo)致梯度消失問題。跌倒動(dòng)作由一段連續(xù)的圖像組成,可以將其視為時(shí)空數(shù)據(jù)。Bi-LSTM(Bi-directional Long Short-Term Memory)網(wǎng)絡(luò)是在LSTM基礎(chǔ)上添加了一個(gè)反向LSTM組合而成,它不僅可以較好處理長序列,還能夠融合上下文信息,捕捉跌倒前后人體狀態(tài)。因此本文引入Bi-LSTM網(wǎng)絡(luò)對(duì)人體進(jìn)行跌倒判別。
本文首先利用人體姿態(tài)估計(jì)算法獲取人體關(guān)鍵點(diǎn)坐標(biāo),將坐標(biāo)數(shù)據(jù)歸一化并進(jìn)行特征提取,再送入Bi-LSTM網(wǎng)絡(luò)進(jìn)行分類檢測(cè)。本文主要工作:
(1)對(duì)人體關(guān)鍵點(diǎn)進(jìn)行特征提取,添加了部分人體關(guān)鍵點(diǎn)之間的矢量特征。
(2)使用3層Bi-LSTM網(wǎng)絡(luò)并加入注意力機(jī)制作為分類網(wǎng)絡(luò),不僅能提取到更高維的特征,還能捕捉到跌倒發(fā)生時(shí)的上下文信息。
本文輸入為視頻數(shù)據(jù),使用人體姿態(tài)估計(jì)網(wǎng)絡(luò)獲得人體關(guān)鍵點(diǎn),再通過多層Bi-LSTM網(wǎng)絡(luò)分類實(shí)現(xiàn)跌倒檢測(cè)。算法包括人體關(guān)鍵點(diǎn)獲取、動(dòng)作特征提取和分類網(wǎng)絡(luò)三部分,具體流程如圖1所示。
圖1 跌倒檢測(cè)算法流程
人體姿態(tài)估計(jì)又稱人體關(guān)鍵點(diǎn)檢測(cè),目的是將人體的各個(gè)關(guān)鍵點(diǎn)從RGB圖像中準(zhǔn)確提取出來。本文采用自上而下的策略進(jìn)行人體關(guān)鍵點(diǎn)檢測(cè),用YOLOv3[8]網(wǎng)絡(luò)進(jìn)行人體目標(biāo)檢測(cè),在此基礎(chǔ)上采用HRNet[9]作為人體姿態(tài)估計(jì)網(wǎng)絡(luò)得到17個(gè)人體關(guān)鍵點(diǎn),人體關(guān)鍵點(diǎn)圖如圖2所示。
圖2 姿態(tài)估計(jì)算法獲取到的關(guān)鍵點(diǎn)圖
首先對(duì)人體姿態(tài)估計(jì)網(wǎng)絡(luò)得到的人體關(guān)鍵點(diǎn)進(jìn)行歸一化處理,但在實(shí)際中由于人體運(yùn)動(dòng)速度過快、遮擋等因素會(huì)出現(xiàn)缺失點(diǎn)以及判斷不準(zhǔn)等問題,對(duì)接下來的跌倒檢測(cè)有所影響,故我們還需進(jìn)一步處理。
通過分析,跌倒時(shí)人體的頭部變化最明顯,對(duì)跌倒行為的判別也最為關(guān)鍵,因此我們將鼻子、眼睛和耳朵坐標(biāo)進(jìn)行平均得到新的頭部中心坐標(biāo),同時(shí)剔除上述5個(gè)點(diǎn)的原始數(shù)據(jù),這樣可以提高檢測(cè)魯棒性,另外添加左肩和右肩的中點(diǎn)作為新的人體關(guān)鍵點(diǎn)。
而2D坐標(biāo)只能反映人在圖片中的位置信息,不能較好的表示人體當(dāng)前狀態(tài),故需引入反映人體運(yùn)動(dòng)的新特征。跌倒檢測(cè)中通常使用外接矩形長寬比和中心線傾斜角作為特征,但在實(shí)際中獲取的關(guān)鍵點(diǎn)可能會(huì)缺失或錯(cuò)位,尤其是跌倒這種發(fā)生比較快的運(yùn)動(dòng),沒辦法正確提取到傾斜角等特征,因此我們添加以下新的特征:頭部到左右腳部位(圖2中16點(diǎn)、17點(diǎn))的矢量特征、頭部到左右膝蓋(圖2中14點(diǎn)、15點(diǎn))、頭部到左右手肘(圖2中8點(diǎn)、9點(diǎn))以及頭部到左右臀部(圖2中12點(diǎn)、13點(diǎn))的矢量特征。上述幾個(gè)矢量可以一定程度上反映人體輪廓。經(jīng)特征提取后的效果如圖3所示。
圖3 特征提取后效果
人體動(dòng)作可以由連續(xù)的人體姿態(tài)圖進(jìn)行描述,將這些姿態(tài)圖轉(zhuǎn)化為具體數(shù)據(jù),相比SVM等傳統(tǒng)的機(jī)器學(xué)習(xí)方法,本文使用可以處理時(shí)序信息的Bi-LSTM網(wǎng)絡(luò)進(jìn)行分類可以得到更好的效果。
1.3.1 Bi-LSTM
Hochreiter等人[11]提出并實(shí)現(xiàn)了LSTM,避免了傳統(tǒng)RNN出現(xiàn)的梯度消失和梯度爆炸問題。其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 LSTM網(wǎng)絡(luò)結(jié)構(gòu)圖
LSTM在RNN基礎(chǔ)上添加了3個(gè)門和存儲(chǔ)隱藏狀態(tài)的記憶單元。網(wǎng)絡(luò)的輸入可由{X1,X2,X3,…,Xn}表示,每個(gè)LSTM網(wǎng)絡(luò)中的輸入門it、輸出門ot、遺忘門ft和記憶單元Ct可由以下公式計(jì)算得出:
其中Wi、Wf、Wo、Wa表示Ht-1的權(quán)重矩陣;Ui、Uf、Uo、Ua表示Xt的權(quán)重矩陣;bi、bf、bo、ba為偏置,σ表示sigmoid函數(shù),⊙表示點(diǎn)乘。記憶單元Ct用于保存隱藏細(xì)胞狀態(tài),Ht表示當(dāng)前單元的輸出及隱藏層向量,遺忘門ft控制是否遺忘上一LSTM單元保存的隱藏細(xì)胞狀態(tài)。
Bi-LSTM由前向LSTM與后向LSTM組合而成,前向LSTM能夠記憶上文信息,后向LSTM能夠記憶下文信息,對(duì)連續(xù)的序列分析起到了促進(jìn)作用。Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)圖如圖5所示。
圖5 Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)圖
Bi-LSTM網(wǎng)絡(luò)的輸出如下:
其中xt、xt-1、xt+1為輸入,hLn、hRn分別代表前向LSTM和后向LSTM的輸出,即Bi-LSTM網(wǎng)絡(luò)的輸出hn為前向LSTM和后向LSTM的堆疊。
Bi-LSTM應(yīng)結(jié)合實(shí)際情況選擇合適的序列長度即時(shí)間步長T作為輸入,過短的T不能學(xué)習(xí)到足夠的信息從而識(shí)別出跌倒,而過長的時(shí)間步則存在冗余信息,不但會(huì)降低識(shí)別精度,還會(huì)增加模型運(yùn)算量和預(yù)測(cè)時(shí)間。經(jīng)實(shí)驗(yàn),將T長度設(shè)為15時(shí)效果最好。
1.3.2 注意力機(jī)制
對(duì)于跌倒檢測(cè)來說,視頻中的每幀圖像以及提取到的人體運(yùn)動(dòng)高維特征對(duì)于識(shí)別動(dòng)作的作用不同,為了提高模型的分類準(zhǔn)確率,引入注意力機(jī)制[10]。注意力機(jī)制的本質(zhì)是是加權(quán),通過計(jì)算注意力概率分布,反映網(wǎng)絡(luò)模型對(duì)每個(gè)部分的關(guān)注度。
Bi-LSTM輸出為H={h1,h2,…,hn},其中n為時(shí)間步長,每個(gè)時(shí)間步的注意力權(quán)重系數(shù)αt和輸出O由以下公式計(jì)算:
(3)Bi-LSTM+Attention
分類網(wǎng)絡(luò)的輸入數(shù)據(jù)為15×44的矩陣,經(jīng)過3層堆疊的Bi-LSTM單元網(wǎng)絡(luò),可以提取更高層特征,每層網(wǎng)絡(luò)隱藏神經(jīng)元個(gè)數(shù)為64,上一層網(wǎng)絡(luò)的輸出狀態(tài)h作為輸入傳遞給下一層接著將輸出送入Attention層,再接入一個(gè)全連接層,最后采用Softmax進(jìn)行分類??傮w分類網(wǎng)絡(luò)如圖6所示。
圖6 Bi-LSTM+Attention結(jié)構(gòu)圖
本文使用UR Fall Detection Dataset(URFD)[11]和自有的跌倒數(shù)據(jù)集作為數(shù)據(jù)集。URFD包含40個(gè)日常生活和30個(gè)跌倒視頻。自有數(shù)據(jù)集包含了60組視頻,每個(gè)視頻中均包含站立、行走、跳躍、躺下以及摔倒動(dòng)作。圖7、圖8分別為自由數(shù)據(jù)集和URFD的檢測(cè)效果圖。
圖7 自有數(shù)據(jù)集檢測(cè)效果
圖8 URFD檢測(cè)效果
實(shí)驗(yàn)環(huán)境為Ubuntu 18.04系統(tǒng),使用NVIDIA Ge-Force GTX 1060 6G顯卡,采用PyTorch深度學(xué)習(xí)框架進(jìn)行姿態(tài)估計(jì)模型以及分類網(wǎng)絡(luò)的搭建。將經(jīng)過動(dòng)作特征處理后的數(shù)據(jù)進(jìn)行劃分,70%的數(shù)據(jù)作為訓(xùn)練集,30%的數(shù)據(jù)作為測(cè)試集。經(jīng)過實(shí)驗(yàn),確定Bi-LSTM模型參數(shù)中batch大小和Epoch設(shè)置為32和50、學(xué)習(xí)率0.001。損失函數(shù)采用交叉熵,優(yōu)化算法為Adam,其余參數(shù)均為默認(rèn)值。
跌倒檢測(cè)中通常使用的敏感度(Sensitivity)、特異度(Specificity),準(zhǔn)確率(Accuracy)作為評(píng)價(jià)標(biāo)準(zhǔn),具體計(jì)算方法如下:
其中:
(1)真陽性(TP):跌倒的樣本被檢測(cè)為跌倒。
(2)假陽性(FP):未跌倒的樣本被檢測(cè)為跌倒。
(3)真陰性(TN):未跌倒的樣本沒有被檢測(cè)為跌倒。
(4)假陰性(FN):跌倒的樣本沒有被檢測(cè)為跌倒。
我們按時(shí)間步長T的長度15幀將視頻分割為新的視頻片段,其中URFD分割為8700余個(gè)片段,包含跌倒830余個(gè)片段;自有數(shù)據(jù)集分割為23000余個(gè)片段,包含跌倒870余個(gè)片段。以下實(shí)驗(yàn)中準(zhǔn)確率是按照分割后的視頻片段數(shù)量進(jìn)行統(tǒng)計(jì),敏感度、特異度、總準(zhǔn)確率則是按照原視頻總數(shù)量進(jìn)行統(tǒng)計(jì)。
2.3.1 特征提取對(duì)準(zhǔn)確率的影響
由表1、表2可知,經(jīng)過特征提取后在,準(zhǔn)確率得到提升。跌倒動(dòng)作在視頻中被標(biāo)記為一段連續(xù)的跌倒標(biāo)簽,假設(shè)時(shí)刻{T-9,…,T-1,T,T+1,…,T+9}都被標(biāo)記為跌倒,在跌倒過程中心也即最明顯的時(shí)刻T識(shí)別效果會(huì)最好,而離這個(gè)時(shí)刻越遠(yuǎn)的數(shù)據(jù)識(shí)別精度會(huì)遞減,但T+9、T-9等時(shí)刻較遠(yuǎn)的數(shù)據(jù)不能正確識(shí)別為跌倒,可實(shí)際上它仍屬于跌倒動(dòng)作,而我們加入新特征后能識(shí)別的范圍擴(kuò)大,泛化能力增強(qiáng)。例如跌倒的過程已經(jīng)開始,人處于準(zhǔn)備倒地的半空狀態(tài),如果從此時(shí)開始跌倒檢測(cè),可能會(huì)無法檢測(cè)出來,但經(jīng)過特征提取后可以改善這個(gè)問題。
表1 URFD下的檢測(cè)結(jié)果(%)
表2 自有數(shù)據(jù)集下的檢測(cè)結(jié)果(%)
2.3.2 分類模型對(duì)準(zhǔn)確率的影響
表3、表4為不同模型的檢測(cè)結(jié)果,與SVM、Random Forest等傳統(tǒng)機(jī)器學(xué)習(xí)相比,采用了Bi-LSTM網(wǎng)絡(luò)處理這種包含時(shí)序信息的數(shù)據(jù)時(shí)效果明顯較好。而Bi-LSTM相比LSTM,準(zhǔn)確率有所提高,說明雙向的LSTM通過對(duì)上下文信息融合對(duì)跌倒動(dòng)作的識(shí)別有促進(jìn)作用。在加入注意力機(jī)制后,對(duì)識(shí)別效果也有進(jìn)一步的提高,提高了我們模型的泛化能力。
表3 URFD下不同模型的檢測(cè)結(jié)果(%)
表4 自有數(shù)據(jù)集下不同模型的檢測(cè)結(jié)果(%)
2.3.3 不同算法的準(zhǔn)確率對(duì)比
在公開數(shù)據(jù)集URFD下,表5為本文方法與其他方法進(jìn)行對(duì)比。Harrou[12]通過尋找視頻興趣點(diǎn)并計(jì)算其光流特征,再設(shè)置閾值進(jìn)行跌倒判斷。Abobakr[13]使用Kinect采集的深度圖像進(jìn)行特征處理,然后送入Random Forest分類器進(jìn)行分類。Adrian[14]將光流圖像作為輸入,送入CNN進(jìn)行跌倒檢測(cè),但光流計(jì)算量非常大,受光照變化影響嚴(yán)重。
表5 URFD下本文方法與其他方法的對(duì)比(%)
相比其他人的方法,我們的方法達(dá)到較優(yōu)秀的水平,但依舊會(huì)出現(xiàn)虛警的情況。經(jīng)過對(duì)誤判視頻進(jìn)行分析,發(fā)現(xiàn)我們的跌倒檢測(cè)算法有以下缺點(diǎn),當(dāng)攝像頭所處的位置太低時(shí),這樣采集的圖像提取的特征容易與其他正常視角的拍攝下的特征混淆,從而導(dǎo)致誤判。針對(duì)這個(gè)問題,我們的解決方案是將攝像頭置于較高的位置,得到的檢測(cè)效果會(huì)較好。另外若只使用單一圖像傳感器進(jìn)行跌倒檢測(cè),在遮擋嚴(yán)重的情況下效果也會(huì)不理想。
本文提出了一種高效的跌倒檢測(cè)方法,該方法首先通過姿態(tài)估計(jì)方法獲取人體關(guān)鍵點(diǎn),然后從中提取用于跌倒檢測(cè)的新特征,結(jié)合注意力機(jī)制使用Bi-LSTM分類網(wǎng)絡(luò)進(jìn)行跌倒行為判斷。實(shí)驗(yàn)結(jié)果表明,我們的方法可以實(shí)現(xiàn)準(zhǔn)確的跌倒檢測(cè),效果優(yōu)于其他先進(jìn)方法。