黃展原,李 兵,李庚浩,3
(1.對外經(jīng)濟(jì)貿(mào)易大學(xué)信息學(xué)院,北京 100029;2.東北大學(xué)計(jì)算機(jī)學(xué)院,加州 圣荷西 95136,美國;3.中國人民大學(xué)漢青經(jīng)濟(jì)與金融高級研究院,北京 100872)
據(jù)中國國家統(tǒng)計(jì)局2018年發(fā)布的統(tǒng)計(jì)數(shù)據(jù)顯示,我國目前老年人(65歲及以上人群)超過1.58億人。這一數(shù)字在未來幾年將持續(xù)增長。老年人由于平衡能力和視力等身體機(jī)能的退化,摔倒事件經(jīng)常發(fā)生。具體來說,每年約有三分之一的老年人發(fā)生過摔倒[1]。摔倒對年輕人來說并不要緊,但對老年人卻是非常危險(xiǎn)的。它可能導(dǎo)致一些嚴(yán)重的疾病,如髖部骨折、頭部受傷或心臟病發(fā)作。故而,摔倒成為中美兩國老年人因傷致死的頭號原因[2]。幸運(yùn)的是,就醫(yī)時(shí)間與摔倒死亡率之間存在明顯的正相關(guān)。換句話說,如果能在很短的時(shí)間內(nèi)就醫(yī),摔倒的老人可能不會有嚴(yán)重的后果。因此,自動化的摔倒監(jiān)測越來越受到研究者和醫(yī)護(hù)人員的關(guān)注。它可以在監(jiān)測到老年人摔倒時(shí)自動發(fā)出警報(bào),其家人或附近的醫(yī)院可以迅速做出反應(yīng),以挽救生命或降低摔倒受傷的嚴(yán)重程度。
摔倒監(jiān)測并不是一個(gè)全新的研究領(lǐng)域,早在20世紀(jì)80年代就有學(xué)者做過關(guān)于老年人摔倒的統(tǒng)計(jì)研究[2]。進(jìn)入21世紀(jì)以來,也有學(xué)者借助機(jī)器學(xué)習(xí)方法,嘗試實(shí)現(xiàn)自動化的摔倒監(jiān)測[3,4]。最近兩年,隨著硬件能力的提升和深度學(xué)習(xí)的崛起,摔倒監(jiān)測重新受到人們的關(guān)注。一些學(xué)者借助新出現(xiàn)的人工神經(jīng)網(wǎng)絡(luò)提升摔倒監(jiān)測的準(zhǔn)確率[5]。從目前摔倒監(jiān)測的3種主流方法看,基于穿戴式傳感器的方法和基于環(huán)境傳感器的方法,都有設(shè)備復(fù)雜昂貴、操作不方便以及識別率低等缺陷;而基于3D視頻的摔倒監(jiān)測方法,由于計(jì)算復(fù)雜度較高導(dǎo)致處理速度過慢,實(shí)時(shí)性較差?;?D視頻的摔倒監(jiān)測研究作為一個(gè)新興的研究方向,具有計(jì)算量小、處理速度快等特點(diǎn),但積累的數(shù)據(jù)集規(guī)模較小,模型的泛化能力和實(shí)際應(yīng)用效果都有待于在實(shí)踐中進(jìn)一步驗(yàn)證和提升??傊?,與包含深度數(shù)據(jù)的3D攝像頭相比,基于2D視頻的摔倒監(jiān)測性價(jià)比更高,并且可以直接應(yīng)用于現(xiàn)有的監(jiān)控系統(tǒng)當(dāng)中,更具實(shí)際價(jià)值。本文基于2D視頻來進(jìn)行摔倒監(jiān)測研究,并將人體姿態(tài)特征[6]引入到摔倒監(jiān)測中,嘗試對本文算法的敏感性和實(shí)效性進(jìn)行提升。
目前,摔倒監(jiān)測有3種主流方法,包括基于穿戴式傳感器的方法、基于環(huán)境傳感器的方法和基于視頻的方法。
基于穿戴式傳感器的摔倒監(jiān)測方法的設(shè)備又可以分為按鍵設(shè)備和自動式設(shè)備。按鍵嚴(yán)格意義上不算傳感器,它在老年人摔倒后被按下,類似一鍵報(bào)警設(shè)備。按鍵式設(shè)備在老年人摔倒喪失行動能力后不適用,自動式的穿戴傳感器則更具實(shí)用價(jià)值。其中,自動式的穿戴傳感器監(jiān)測又可以分為基于人工設(shè)定閾值的方法和基于機(jī)器學(xué)習(xí)的方法。早在2007年,Chen等人[7,8]就已經(jīng)相繼提出了基于人工設(shè)定閾值的方法。他們通過對三軸加速度傳感器數(shù)據(jù)設(shè)定閾值,進(jìn)而進(jìn)行摔倒事件的判定。Zhang等人[9,10]則相繼提出了基于機(jī)器學(xué)習(xí)的摔倒監(jiān)測方法。他們利用SVM對加速度傳感器的數(shù)據(jù)進(jìn)行訓(xùn)練,建立可靠的分類器?;诳纱┐鱾鞲衅鞯姆椒ń?jīng)過多年的研究,可以實(shí)現(xiàn)相對可靠的監(jiān)測,但其本身固有的缺點(diǎn)依然存在。比如雖然它的漏檢率較低,但是容易出現(xiàn)假陽性,即容易將坐下、蹲下和躺下等動作判定為摔倒。同時(shí),移動設(shè)備的攜帶和充電也是一個(gè)問題。這并不適合應(yīng)用在老年人的摔倒監(jiān)測上,因?yàn)槔夏耆丝赡軙浥宕髟O(shè)備及為其充電。
基于環(huán)境傳感器的方法由于不影響老年人的生活,曾經(jīng)受到許多關(guān)注。在2006年,Alwan等人[11]就引入了一種基于地面振動的摔倒監(jiān)測方法,它幾乎不會影響老年人的正常生活。Rimminen等人[12]也采用了地面?zhèn)鞲衅?,利用近場成像進(jìn)行摔倒監(jiān)測,在少量數(shù)據(jù)的測試中取得了90%左右的敏感性和特異性。這些環(huán)境傳感器被安裝于地面下方。盡管這類研究取得了較高的準(zhǔn)確率,但由于每臺設(shè)備成本過高、監(jiān)測范圍小,很難將其應(yīng)用于現(xiàn)實(shí)環(huán)境中。因此,我們可能需要性價(jià)比和準(zhǔn)確率更高的方法。Zhuang等人[13]使用遠(yuǎn)場話筒將摔倒與家庭環(huán)境中的其他噪音區(qū)分開來,并利用高斯混合模型分類,但該研究的準(zhǔn)確率并不高,在實(shí)驗(yàn)室環(huán)境中也只能達(dá)到67%左右的準(zhǔn)確率,同樣無法在現(xiàn)實(shí)環(huán)境中使用。
基于視頻的摔倒監(jiān)測研究由來已久,不少學(xué)者將精力放在3D視頻的摔倒監(jiān)測上。早在2010年,Zambanini等人[3]利用多個(gè)攝像頭進(jìn)行3D建模,嘗試引入人體的3D特征來提高準(zhǔn)確率,但效果差強(qiáng)人意。一年之后,Rougier等人[14]把人體形狀輪廓和3D建模結(jié)合起來,達(dá)到了看似精準(zhǔn)的檢測效果,但由于當(dāng)時(shí)用于測試的數(shù)據(jù)集太小,并沒有很強(qiáng)的說服力。Rougier等人[15]嘗試提出魯棒性更好的算法,即通過計(jì)算3D人體加速度來減小摔倒事件將要結(jié)束時(shí)被家具遮擋的影響。2015年,Stone等人[16]別出心裁地使用了Microsoft為Xbox游戲機(jī)開發(fā)的Kinect體感設(shè)備來進(jìn)行摔倒監(jiān)測,并取得了不錯(cuò)的效果。但是,基于3D視頻的摔倒監(jiān)測有很大的局限性,首先,成本較高;其次,若利用成本較低的深度攝像頭,又會受限于它對被測物體位置的嚴(yán)格要求;最后,計(jì)算復(fù)雜性高,會導(dǎo)致處理速度過慢。
另一個(gè)研究思路是基于2D視頻的摔倒監(jiān)測研究。Chen等人[17]在2010年就將前景提取算法應(yīng)用于2D圖像,并將人體形狀輪廓的變化作為摔倒的主要特征進(jìn)行摔倒監(jiān)測,但由于測試數(shù)據(jù)過少,我們很難評判這種方法在現(xiàn)實(shí)場景中的應(yīng)用效果。Liu等人[18]利用KNN分類器將人體輪廓邊界的高度和寬度的比值和臨界時(shí)間差進(jìn)行分類,對跌倒和躺下事件檢測的準(zhǔn)確率為80%左右。Charfi等人[19]手動選擇了一些基于人體邊界框的高度和寬度及比例、人體的軌跡及其方向等特征,并利用SVM分類器分類,取得了超過90%的準(zhǔn)確率。然而與此同時(shí),他們的研究是基于自己制作的小規(guī)模數(shù)據(jù)集,這導(dǎo)致其模型并沒有很好的說服力。但是,這些研究在特征選擇和分類器的多樣性上仍然取得了不小的進(jìn)步??傊c包含深度數(shù)據(jù)的3D攝像頭相比,基于2D視頻的摔倒監(jiān)測性價(jià)比更高,實(shí)時(shí)性更好,并且可以直接應(yīng)用于現(xiàn)有的監(jiān)控系統(tǒng)當(dāng)中,更具實(shí)際價(jià)值。本文也將基于2D視頻來進(jìn)行摔倒監(jiān)測。
在2016年,Wang等人[20]提出了一個(gè)全新的研究框架,即把摔倒監(jiān)測分為2個(gè)階段。第1步訓(xùn)練一個(gè)靜態(tài)分類器,即將每一幀圖像用支持向量機(jī)進(jìn)行分類并為其標(biāo)注相應(yīng)的3種標(biāo)簽,包括未摔倒、摔倒中和已摔倒。第2步訓(xùn)練一個(gè)動態(tài)分類器,即將上一步驟生成的標(biāo)簽序列作為第2個(gè)支持向量機(jī)的輸入,進(jìn)而達(dá)到分類視頻的目的。這個(gè)序列的長度因研究而異,該研究的序列速度被設(shè)定為30 fps,而另一項(xiàng)研究的序列速度被設(shè)定為16 fps[19]。Wang等人[20]的研究使用了當(dāng)時(shí)較為流行的神經(jīng)網(wǎng)絡(luò)PCANet作為特征提取算法。最后他們在公開的摔倒數(shù)據(jù)集上實(shí)現(xiàn)了89.2%的敏感性和90.3%的特異性。一年之后,Wang等人[21]嘗試改進(jìn)這個(gè)方法,他們將方向梯度直方圖和局部二值模式提取的低層特征和用Caffe提取的高層特征相結(jié)合,再進(jìn)行二階段摔倒監(jiān)測。然而,這項(xiàng)研究對結(jié)果的提升并不顯著。2018年,Zerrouki等人[22]認(rèn)為摔倒是一個(gè)與時(shí)間序列緊密相關(guān)的事件,在利用支持向量機(jī)作為分類器的基礎(chǔ)上,將隱馬爾可夫模型引入摔倒監(jiān)測領(lǐng)域。在實(shí)驗(yàn)中,他們只給出了測試集最后的總體準(zhǔn)確率,沒有足夠說服力。
綜上,基于視頻的摔倒監(jiān)測具有成本低、實(shí)時(shí)性好和可靠性高等優(yōu)點(diǎn),且不需要老年人佩戴外部設(shè)備或?yàn)槠涑潆姡奖憧旖?;但另一方面,一些調(diào)查指出,可能會有部分老年人在實(shí)際應(yīng)用中有一種被監(jiān)控的不適感??傮w來說,在利大于弊的同時(shí),基于2D視頻的摔倒監(jiān)測方法仍然有一定的提升空間。先前的大部分研究都沒有考慮到人體姿態(tài)對摔倒的影響,故本文引入人體姿態(tài)特征,嘗試對本文算法的敏感性和實(shí)效性進(jìn)行提升。
本文在基于2D視頻的摔倒監(jiān)測研究中,需要將人體關(guān)節(jié)位置信息作為特征項(xiàng),引入到摔倒監(jiān)測模型中。本文利用OpenPose提取原始數(shù)據(jù)中人體關(guān)節(jié)的位置[6],該數(shù)據(jù)集和開源框架是由卡內(nèi)基·梅隆大學(xué)的感知計(jì)算實(shí)驗(yàn)室建立的,可以檢測包含多人圖像(2D和3D)中的人體關(guān)節(jié)點(diǎn)。該數(shù)據(jù)集和開源框架可以提供2D多人實(shí)時(shí)人體關(guān)節(jié)點(diǎn)監(jiān)測,是第1個(gè)可以同時(shí)檢測人體、手、面部和足部關(guān)鍵點(diǎn)(總共135個(gè)關(guān)鍵點(diǎn))的實(shí)時(shí)多人系統(tǒng)。
為了驗(yàn)證引入人體姿態(tài)數(shù)據(jù)的模型準(zhǔn)確性和泛化能力,本文選取了3個(gè)在摔倒監(jiān)測領(lǐng)域常用的公開數(shù)據(jù)集進(jìn)行模型效果驗(yàn)證,如表1所示。
Table 1 Fall dataset statistics表1 摔倒數(shù)據(jù)集統(tǒng)計(jì)信息
第1個(gè)數(shù)據(jù)集Multicam(Multiple cameras fall dataset)包含24個(gè)不同的場景,每個(gè)場景的視頻都由8個(gè)不同方位的攝像頭進(jìn)行錄制[23]。其中22個(gè)視頻包含了摔倒事件,剩下2個(gè)視頻只有一些迷惑性的事件,比如坐下、蹲下和躺下等。這些視頻拍攝的速率為30 fps,分辨率為720×480,每段視頻長度在30 s~1 min不等,共31.2 GB。每個(gè)場景的1~7號視頻都被作為訓(xùn)練集,而8號視頻則作為測試集。
第2個(gè)數(shù)據(jù)集URFD(UR Fall Detection)包含70個(gè)視頻序列,其中30個(gè)視頻中包含摔倒事件,剩余40個(gè)視頻是一些日常生活中的迷惑性事件,比如坐下、蹲下和躺下等[24]。這些視頻拍攝的速率為30 fps,分辨率為640×480,每段視頻長度在3 s~30 s不等,共8.5 GB。隨機(jī)選取50個(gè)視頻序列作為訓(xùn)練集,剩余20個(gè)視頻作為測試集。
第3個(gè)數(shù)據(jù)集FDD(the Fall Detection Dataset)包含191個(gè)視頻序列,有家庭、咖啡館、辦公室和教室等場景[25]。這些視頻是以25 fps的速率錄制的,分辨率為320×240,每段視頻長度在30 s~1 min不等,共16.3 GB。隨機(jī)選取130個(gè)視頻作為訓(xùn)練集,剩余61個(gè)視頻作為測試集。
基于視頻的摔倒監(jiān)測通常都由3個(gè)步驟實(shí)現(xiàn),分別是數(shù)據(jù)預(yù)處理、特征提取和分類。本文提出的基于2D視頻的摔倒監(jiān)測方法的技術(shù)路線如圖1所示。具體步驟如下:
(1)數(shù)據(jù)預(yù)處理,即規(guī)范圖像大小并合理去除部分冗余的幀數(shù),以提升整體實(shí)驗(yàn)的效率。
(2)特征提取,即利用OpenPose提取原始數(shù)據(jù)中人體關(guān)節(jié)的位置[6]。
(3)構(gòu)建靜態(tài)分類模型,即利用這些具有增強(qiáng)特征的數(shù)據(jù)和支持向量機(jī)分類每一幀的狀態(tài)[4]。
(4)構(gòu)建動態(tài)分類模型,即引入時(shí)間維度的特征進(jìn)行摔倒監(jiān)測。
Figure 1 Research technology roadmap圖1 研究技術(shù)路線圖
4.2.1 數(shù)據(jù)預(yù)處理
在摔倒監(jiān)測的問題中,數(shù)據(jù)預(yù)處理是最重要的步驟之一[20,21]。本文的數(shù)據(jù)預(yù)處理共分為2個(gè)步驟,如圖2所示。
第1步,將所有原始數(shù)據(jù)切分為單幀圖像,以便于后續(xù)處理。
第2步,對原始數(shù)據(jù)的幀進(jìn)行抽取,以加速訓(xùn)練和測試過程。通過對原始數(shù)據(jù)的研究,我們發(fā)現(xiàn)摔倒事件的完整展現(xiàn)并不一定需要每秒25幀或30幀。在很多情況下,保留大約一半的幀數(shù)便可以區(qū)分摔倒與否。如圖2所示,按照每相鄰2幀保留1幀的方式刪除多余的幀數(shù),在不大幅降低準(zhǔn)確率的前提下,最大化地提升本文算法運(yùn)行效率。
Figure 2 Schematic diagram of data preprocessing圖2 數(shù)據(jù)預(yù)處理示意圖
通常來說,許多研究會在數(shù)據(jù)預(yù)處理階段采用各種前景提取算法將動態(tài)的人體和靜態(tài)的背景區(qū)別開[3,17],比如混合高斯模型和ViBe算法[26,27]。
4.2.2 特征提取
在特征提取部分,將經(jīng)過預(yù)處理的每一幀圖像(如圖2所示)作為輸入,利用OpenPose開源庫,輸出效果圖和15個(gè)關(guān)節(jié)點(diǎn)的坐標(biāo)。其中,效果圖是為了用于檢驗(yàn)結(jié)果,而坐標(biāo)數(shù)據(jù)是用于構(gòu)建靜態(tài)分類模型。
如圖3所示,3個(gè)數(shù)據(jù)集中每個(gè)人的15個(gè)關(guān)節(jié)點(diǎn)位置均可正確表示。盡管這些數(shù)據(jù)集中圖像序列只包含一個(gè)人,但本文提供的算法可以在一個(gè)房間中進(jìn)行多人監(jiān)測。當(dāng)人們跌倒時(shí),他們的身體關(guān)節(jié)點(diǎn)開始劇烈扭曲,姿勢非常不自然。這導(dǎo)致了OpenPose輸出的關(guān)節(jié)坐標(biāo)會發(fā)生異常,這可能是一個(gè)很好的特征。
Figure 3 Feature extraction diagram圖3 特征提取效果圖實(shí)例
4.2.3 靜態(tài)分類模型構(gòu)建
摔倒是在一段連續(xù)時(shí)間內(nèi)發(fā)生的事件,要想直接分類并不容易。通過對比各種算法對計(jì)算資源和數(shù)據(jù)集規(guī)模的要求[4,20,28 - 30],以及相應(yīng)的評價(jià)效果等,本文確定了采用2個(gè)SVM分類模型實(shí)現(xiàn)時(shí)間和空間維度上分類的方案。建立靜態(tài)分類模型,即對每一幀圖像進(jìn)行分類。由于摔倒是一個(gè)過程,每一幀都有一種狀態(tài)。在本文中,狀態(tài)可以分為3種,包括正常狀態(tài)、摔倒進(jìn)行中的狀態(tài)和摔倒已結(jié)束的狀態(tài)。
靜態(tài)模型的核心算法為支持向量機(jī)SVM[4]。在許多實(shí)際問題中,樣本并非線性可分的,因此可以采用基于核方法的SVM[1]。核方法即利用一些核函數(shù)將樣本從原始的特征空間映射到更高維度的空間中,使得樣本線性可分。本文研究的摔倒監(jiān)測問題,由于特征維數(shù)并不多且樣本適中,在沒有足夠先驗(yàn)知識的情況下,在實(shí)驗(yàn)中選擇使用高斯核函數(shù)(RBF)[1]。
在摔倒監(jiān)測的問題中,樣本類別是不均衡的。例如,圖4中狀態(tài)1(摔倒中)和狀態(tài)2(已摔倒)在視頻中占幀數(shù)的百分比大致為3%~7%,所以需要采用不同方法平衡分類器。通常可以從樣本和算法2個(gè)角度入手,比如可以通過欠抽樣,即只使用部分多數(shù)類樣本進(jìn)行訓(xùn)練。但是,目前已有的摔倒數(shù)據(jù)集樣本量較小,因此本文考慮從算法層面來進(jìn)行處理,即利用懲罰系數(shù)和類別權(quán)重參數(shù)分別控制對錯(cuò)分樣本的損失度量和不同類別樣本的權(quán)重。同時(shí),按照樣本數(shù)據(jù)集的大致比例,來緩解樣本不平衡和過擬合所帶來的問題。
Figure 4 Data schematic diagram of static classification model圖4 靜態(tài)分類模型的數(shù)據(jù)示意圖
4.2.4 動態(tài)分類模型構(gòu)建
建立動態(tài)分類模型即對多幀序列進(jìn)行分類。靜態(tài)分類模型已經(jīng)將每一幀圖像分類至某種狀態(tài),包括正常狀態(tài)0、摔倒進(jìn)行狀態(tài)1和摔倒已結(jié)束狀態(tài)2。根據(jù)這3種狀態(tài),可以描述視頻中的所有過程,比如標(biāo)簽“0011122”很可能表示一個(gè)摔倒事件的發(fā)生。而對于整個(gè)視頻,其間可能發(fā)生了若干次摔倒,則動態(tài)模型每次只需要將視頻中一段時(shí)間所包含的內(nèi)容進(jìn)行分類即可。通過計(jì)算發(fā)現(xiàn),在數(shù)據(jù)集中發(fā)生摔倒的平均所需幀數(shù)為14幀左右(視頻錄制條件為每秒30幀),考慮到要讓動態(tài)模型分類必須保證每次輸入的幀數(shù)包含一部分摔倒前和摔倒后的影像,所以每次輸入20幀左右即可。同時(shí)考慮到數(shù)據(jù)預(yù)處理中只保留了視頻中一半的幀數(shù),則每次輸入10個(gè)連續(xù)的標(biāo)簽序列即可。
動態(tài)模型的核心算法依然為支持向量機(jī)。動態(tài)模型與靜態(tài)模型的訓(xùn)練沒有前后關(guān)系,因?yàn)樵紨?shù)據(jù)集中已經(jīng)標(biāo)注好了0,1或2的標(biāo)簽,所以本文在訓(xùn)練階段不使用由靜態(tài)模型產(chǎn)生的標(biāo)簽序列,而直接使用原始數(shù)據(jù)集中的標(biāo)簽(ground truth)進(jìn)行訓(xùn)練,即可最大化地避免靜態(tài)模型的錯(cuò)誤分類結(jié)果影響動態(tài)模型的建立。
本文選取3個(gè)摔倒監(jiān)測領(lǐng)域常用的公開數(shù)據(jù)集Multicam、URFD和FDD進(jìn)行實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)硬件平臺為一臺Windows 10 64位操作系統(tǒng)的筆記本電腦。處理器為Intel i7-4710mq,4核8線程,最大頻率為3.5 GHz。搭配三星 8 GB DDR3內(nèi)存和NVIDIA GTX960m顯卡。硬盤為1 TB機(jī)械硬盤搭配128 GB固態(tài)硬盤。實(shí)驗(yàn)使用Python 3.6.5版本,并預(yù)先安裝好實(shí)驗(yàn)所需的OpenCV,OpenPose, cntk, Scikit-learn和NumPy等開源庫,同時(shí)搭建了基于Visual Studio Code代碼編輯器的開發(fā)環(huán)境。整個(gè)實(shí)驗(yàn)過程如下所示:
第1步,將所有以視頻形式存儲的原始數(shù)據(jù)按幀切分成圖像,并按照每相鄰2幀保留1幀的方式刪除多余的幀。
第2步,在特征提取部分,將經(jīng)過預(yù)處理的每一幀圖像作為輸入,利用OpenPose開源庫輸出效果圖和15個(gè)關(guān)節(jié)點(diǎn)的坐標(biāo)。每一幀圖像的關(guān)節(jié)點(diǎn)坐標(biāo)為一個(gè)包含2×15個(gè)整數(shù)(int)類型的對象,將每個(gè)數(shù)據(jù)集的對象合并為若干個(gè)文件(.json),以便分類步驟使用。
第3步,在靜態(tài)分類模型構(gòu)建階段,首先,將上一步驟得到的坐標(biāo)數(shù)據(jù)對象作為模型的輸入;其次,對輸入的特征進(jìn)行縮放(Feature Scaling),以減少取值范圍對模型結(jié)果的影響;再次,調(diào)整本文算法參數(shù),對于實(shí)驗(yàn)中的不平衡樣本,需要調(diào)整不同類別的權(quán)重,使得損失函數(shù)能夠更好地發(fā)揮作用,即讓每一次漏檢摔倒中1和摔倒后2類別的損失變得比漏檢摔倒前0(或者說是正常狀態(tài))要大很多。在實(shí)驗(yàn)中,經(jīng)過反復(fù)地調(diào)參優(yōu)化后,將3個(gè)類別的權(quán)重分別設(shè)為0.05, 0.45, 0.45。其中損失函數(shù)loss采用默認(rèn)的Hinge損失函數(shù),核函數(shù)選取默認(rèn)的RBF Kernel,即高斯徑向基核函數(shù)。對于RBF Kernel,必須選擇合適的Gamma參數(shù),因?yàn)樗鼪Q定了核函數(shù)的形狀,即數(shù)據(jù)映射到新的特征空間后的分布。Gamma值越大,則支持向量越少,反之則支持向量越多。懲罰參數(shù)默認(rèn)為1.0,如果增大即表示對分類錯(cuò)誤容忍更小,但過大將增加模型過擬合的可能性。對于懲罰參數(shù)和Gamma的確定,最穩(wěn)妥的方式應(yīng)該是采用網(wǎng)格搜索(Grid Search)進(jìn)行枚舉,但由于本文實(shí)驗(yàn)數(shù)據(jù)集較小,若使用交叉驗(yàn)證法,很可能會由于沒有足夠的數(shù)據(jù)訓(xùn)練造成過擬合等現(xiàn)象,故本文參考Charfi等人[19]和Wang等人[20]的一些實(shí)驗(yàn)方法和參數(shù),將懲罰參數(shù)設(shè)置為5,Gamma設(shè)置為默認(rèn)值。
Figure 5 Data schematic diagram of dynamic classification model圖5 動態(tài)分類模型的數(shù)據(jù)示意圖
在摔倒監(jiān)測研究中,由于數(shù)據(jù)集本身的不平衡,傳統(tǒng)的準(zhǔn)確率無法作為可靠的性能指標(biāo)來衡量算法的效果。敏感性將成為本文研究的重點(diǎn),因?yàn)閷τ谒さ贡O(jiān)測,本文的首要任務(wù)就是把摔倒事件的發(fā)生檢測出來,即召回。由于在靜態(tài)分類模型構(gòu)建中有3個(gè)類別,本文重點(diǎn)關(guān)注標(biāo)簽1和標(biāo)簽2,即摔倒中和摔倒后的分類效果。這里的召回率即標(biāo)簽1和標(biāo)簽2樣本的平均召回率,如式(1)所示:
(1)
其中,TP表示真正例的個(gè)數(shù),即被模型預(yù)測為正的正樣本個(gè)數(shù);FN表示假負(fù)例的個(gè)數(shù),即被模型預(yù)測為負(fù)的正樣本個(gè)數(shù)。
3個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表2所示。URFD數(shù)據(jù)集取得了最好的分類效果,這可能是由于URFD數(shù)據(jù)集統(tǒng)一由一個(gè)攝像頭在固定位置固定場景進(jìn)行拍攝,所以訓(xùn)練與測試并沒有很大區(qū)別;FDD數(shù)據(jù)集的表現(xiàn)一般,這可能是由于FDD數(shù)據(jù)集包含了辦公室、教室和臥室等不同場景,雖然錄制角度相差無幾,但仍然影響分類器效果;而Multicam數(shù)據(jù)集表現(xiàn)稍遜,這可能是由于Multicam數(shù)據(jù)集中每一個(gè)視頻序列都是由8個(gè)不同攝像頭拍攝,導(dǎo)致數(shù)據(jù)集噪聲較大。
Table 2 Recall rate of static classification model表2 靜態(tài)分類模型召回率 %
對于本文沒有檢測出的摔倒事件,我們?nèi)斯さ胤治隽瞬糠皱e(cuò)誤案例產(chǎn)生的原因:(1)有過半的錯(cuò)誤案例并沒有出現(xiàn)特殊干擾,因此我們認(rèn)為除了人體姿態(tài)特征以外,還需要引入其他重要特征。(2)有少部分將摔倒中判定為摔倒前(即正常)的案例是由于出現(xiàn)了家具等遮擋物,導(dǎo)致一開始的特征提取就出現(xiàn)了問題。
第4步,在動態(tài)分類模型構(gòu)建階段,將10個(gè)連續(xù)的輸入作為特征,進(jìn)行二分類,即對同一個(gè)滑動窗口,每10幀對應(yīng)一個(gè)分類結(jié)果,即摔倒或是未摔倒。動態(tài)分類模型所用視頻幀如圖5所示。實(shí)驗(yàn)調(diào)用sklearn包實(shí)現(xiàn)SVM算法,以用于分類[31]。對于實(shí)驗(yàn)中的不平衡樣本,需要調(diào)整類別權(quán)重,使得損失函數(shù)能夠更好地發(fā)揮作用,即讓每一次漏檢摔倒事件(標(biāo)簽為1)的損失變得比未摔倒事件(標(biāo)簽為0)要大很多。具體實(shí)驗(yàn)中,經(jīng)過參數(shù)優(yōu)化將2個(gè)類別的權(quán)重設(shè)置為0.9和0.1。損失函數(shù)與核函數(shù)在前文研究框架中有詳細(xì)解釋,其中損失函數(shù)loss采用默認(rèn)的Hinge損失函數(shù),核函數(shù)參考其他研究,選取線性核函數(shù)(Linear Kernel)[19,20]。在確定好相關(guān)參數(shù)后還需要導(dǎo)入靜態(tài)模型,以便測試最后的動態(tài)模型分類效果。測試結(jié)果用敏感性(召回率)作為衡量指標(biāo),如表3所示。
Table 3 Recall rate of dynamic classification model表3 動態(tài)分類模型召回率 %
本文人工分析了部分錯(cuò)誤分類的案例的原因:(1)從特征提取部分就開始出錯(cuò),即由于家具的遮擋無法正確識別人體姿態(tài);(2)有不少摔倒前的滑動窗口中,坐下或蹲下的情況被判定為摔倒,這樣在動態(tài)分類時(shí)輸入的本來就是錯(cuò)誤結(jié)果,最后的動態(tài)分類結(jié)果自然也不會正確;(3)最后的動態(tài)分類出錯(cuò),比如在摔倒事件發(fā)生之前就判定摔倒開始,在摔倒事件結(jié)束后很多幀才判定摔倒結(jié)束。
對于整個(gè)摔倒監(jiān)測流程而言,動態(tài)模型的構(gòu)建完畢也就標(biāo)志著整個(gè)實(shí)驗(yàn)的結(jié)束。更進(jìn)一步地,本文通過上限分析(Ceiling Analysis)發(fā)現(xiàn),動態(tài)分類模型的提升空間并不大,而特征提取和靜態(tài)分類模型部分有更大的提升空間,這可能也是接下來需要改進(jìn)的部分。因?yàn)樵S多研究并未公布每個(gè)數(shù)據(jù)集的準(zhǔn)確率,而是公布了3個(gè)數(shù)據(jù)集的平均準(zhǔn)確率,所以我們很難參考和對比他們的研究成果。但總的來說,本文僅使用人體姿態(tài)特征就取得了不錯(cuò)的分類效果,因此,進(jìn)一步結(jié)合其他特征的摔倒檢測研究值得期待。
除了對模型的分類效果進(jìn)行評估以外,本文對模型的實(shí)時(shí)性也進(jìn)行了評估分析。因?yàn)樗さ贡O(jiān)測的實(shí)時(shí)性對于人工干預(yù)效果具有較大影響,因此模型測試運(yùn)行的實(shí)時(shí)性也是一個(gè)重要指標(biāo)。由于實(shí)驗(yàn)條件的限制(單機(jī)普通筆記本電腦的情境下),數(shù)據(jù)處理速度為30 fps,大概有3倍左右的延遲,即視頻播放1 s,判斷摔倒與否的結(jié)論會在3 s后得出,無法實(shí)現(xiàn)完全實(shí)時(shí)的摔倒監(jiān)測。如果在云計(jì)算平臺應(yīng)用該方法,視頻連接到互聯(lián)網(wǎng)進(jìn)行摔倒監(jiān)測,應(yīng)該能夠?qū)崿F(xiàn)實(shí)時(shí)的摔倒監(jiān)測。這也是未來的研究方向之一。
本文提出了一種基于人體姿態(tài)估計(jì)的2D視頻摔倒監(jiān)測算法。首先,使用OpenPose提取原始數(shù)據(jù)中人體關(guān)節(jié)的位置;其次,利用這些具有增強(qiáng)特征的數(shù)據(jù)和支持向量機(jī)算法構(gòu)建靜態(tài)分類模型,以有效區(qū)分每一幀的狀態(tài);最后,構(gòu)建動態(tài)摔倒監(jiān)測分類模型。本文算法在3個(gè)公共摔倒數(shù)據(jù)集上進(jìn)行摔倒監(jiān)測,取得了不錯(cuò)的效果。
本文的主要貢獻(xiàn)有:(1)將人體姿態(tài)估計(jì)方法引入到2D摔倒監(jiān)測領(lǐng)域;(2)采用基于人體狀態(tài)特征的靜態(tài)分類和動態(tài)分類相結(jié)合的方法進(jìn)行摔倒監(jiān)測研究。
基于視頻的摔倒監(jiān)測是一項(xiàng)非常有潛力的研究。在未來,將從以下方面深入研究摔倒監(jiān)測問題:(1)搜集更多的真實(shí)環(huán)境下的摔倒視頻,這是目前所缺乏的;(2)引入神經(jīng)網(wǎng)絡(luò)的方法提取一些高層特征,以提高召回率。同時(shí),采用并行計(jì)算技術(shù),將可能在更短時(shí)間內(nèi)得出監(jiān)測結(jié)果。