金彥亮,陳 剛
(上海大學(xué) 通信與信息工程學(xué)院,上海 200444)
針對老齡化加劇伴隨而來的獨(dú)居老人跌倒問題,本文對基于雙流卷積的實(shí)時(shí)跌倒檢測展開研究。
目前針對跌倒檢測的研究主要有兩個(gè)方向:基于三維傳感數(shù)據(jù)的方法與基于視覺的方法。基于三維傳感數(shù)據(jù)的方法即采用陀螺儀等傳感器獲取人體運(yùn)動(dòng)的三維加速度和角速度值[2]來檢測跌倒事件,近幾年也出現(xiàn)了利用智能手機(jī)配備的傳感器來實(shí)時(shí)獲取人體運(yùn)動(dòng)的加速度和角速度信息的解決方案[3]。但是這些傳感器和手機(jī)需要定期更換電池或充電,受限于設(shè)備的電量與壽命,還存在老人在家中并不會(huì)隨身攜帶手機(jī)的情況。相比之下基于視覺的方法主要利用計(jì)算機(jī)視覺來檢測畫面中的人是否跌倒,這種方法不需要佩戴相關(guān)傳感器,方便、體驗(yàn)好。
基于視覺的跌倒檢測關(guān)鍵在于從視頻幀中提取有意義的特征來進(jìn)行檢測,例如人體姿態(tài)、傾斜角度等。Stone等[4]提出了一種使用Kinect深度相機(jī)和兩階段跌倒檢測系統(tǒng)來檢測老人跌倒的方法,第一階段除了提取人體速度、加速度等特征外,在單個(gè)深度圖像幀中還計(jì)算一個(gè)人在地面的投影面積,這個(gè)特征可以很好區(qū)別跌倒和躺下動(dòng)作,然后在第二階段使用決策樹來計(jì)算跌倒的置信度。J.Donahue等[5]提出將CNN與LSTM相結(jié)合對空間維度特征與時(shí)間維度特征進(jìn)行學(xué)習(xí)和理解的方法。而LSTM復(fù)雜度高,相比雙流卷積方法計(jì)算會(huì)更耗時(shí),不適合實(shí)時(shí)的跌倒檢測。此外,利用光流圖作為時(shí)間流輸入雖能很好地描述運(yùn)動(dòng)特征,但光流圖的計(jì)算也比較耗時(shí),對實(shí)時(shí)性影響較大。
本文構(gòu)建雙流卷積神經(jīng)網(wǎng)絡(luò),選用預(yù)訓(xùn)練的輕量級模型MobileNetV2,輸入人物輪廓的RGB單幀提取空間維特征,輸入連續(xù)的多幀MHI提取時(shí)間維特征,將兩個(gè)流輸出的特征按一定方式進(jìn)行融合獲得時(shí)空特征來進(jìn)行跌倒行為識別。實(shí)驗(yàn)結(jié)果表明,基于人物輪廓RGB-MHI的雙流卷積神經(jīng)網(wǎng)絡(luò)對于跌倒檢測具有良好的可靠性和實(shí)時(shí)性。
雙流卷積神經(jīng)網(wǎng)絡(luò)是通過模仿人眼觀察事物的機(jī)制,將視頻分為空間流與時(shí)間流兩條支路[6]。空間流的每一幀代表著視頻中所描繪的物體和場景信息等,而時(shí)間流是指幀與幀之間的運(yùn)動(dòng)信息,因此,該神經(jīng)網(wǎng)絡(luò)由分別處理時(shí)間維度與空間維度信息的兩個(gè)神經(jīng)網(wǎng)絡(luò)所構(gòu)成。
空間流采用MobileNetV2[7]模型,相比其它預(yù)訓(xùn)練模型,MobileNetV2更加輕量級,在減少網(wǎng)絡(luò)大量計(jì)算量的同時(shí)能夠保持良好的性能,適合將實(shí)時(shí)跌倒檢測模型放入嵌入式平臺(tái)上。MobileNetV2是由MobileNetV1升級來的,MobileNetV2更加高效,首先它依然使用MobileNetV1中的深度可分離卷積(depthwise separable convolution),深度可分離卷積的目的在于對參數(shù)量的節(jié)省,控制參數(shù)的數(shù)量,從而提高網(wǎng)絡(luò)運(yùn)行速度,區(qū)別在于MobileNetV2又引入了殘差結(jié)構(gòu)和瓶頸層。MobileNetV2的殘差結(jié)構(gòu)借鑒于ResNet,在ResNet的殘差結(jié)構(gòu)基礎(chǔ)上又做了些改進(jìn),引入了倒殘差塊,ResNet的殘差塊是對圖像先將降維、卷積,再升維,而倒殘差塊是對圖像先升維、深度可分離卷積,再降維,所以倒殘差塊的作用就是將輸入的數(shù)據(jù)變換到高維度后再經(jīng)過深度可分離卷積提取特征,從而提升網(wǎng)絡(luò)的表達(dá)能力。加入瓶頸層這種新的結(jié)構(gòu)被稱作為線性瓶頸,即在深度可分離卷積之前添加了一個(gè)1×1卷積用于改變輸入數(shù)據(jù)的維度,保證卷積過程是在高維空間提取特征,然后為了不破壞特征,去掉了第二個(gè)1×1卷積后的激活函數(shù),使用線性激活函數(shù)以保持卷積提取到的特征。MobileNetV2 網(wǎng)絡(luò)結(jié)構(gòu)的具體參數(shù)見表1,其中Conv2d代表標(biāo)準(zhǔn)卷積,Inverted Residual代表由倒殘差塊組成的卷積層,Avgpool代表平均池化,通道擴(kuò)張系數(shù)代表倒殘差塊中通道升維的倍數(shù)。該網(wǎng)絡(luò)共包含19層,中間各層用于提取特征,最后一層用于分類。
表1 MobileNetV2網(wǎng)絡(luò)參數(shù)
因此本文選擇MobileNetV2作為空間流的基礎(chǔ)網(wǎng)絡(luò),然后添加全連接層,與后面一小節(jié)的時(shí)間流模型在相同維度的全連接層Concatenation相連。
空間流的輸入為對視頻中的連續(xù)幀采用幀間差分法提取出的人物輪廓單幀,輸入shape為224×224×3,輸入提取的人物輪廓RGB相比較輸入原始RGB可以消除背景對檢測的干擾,在實(shí)驗(yàn)與結(jié)果分析章節(jié)通過實(shí)驗(yàn)表明輸入人物輪廓RGB比輸入原始RGB準(zhǔn)確率提高了5.26%。幀間差分法的執(zhí)行速度較快,實(shí)現(xiàn)思路簡單,可以滿足實(shí)時(shí)性要求,且在大多數(shù)情況下檢測結(jié)果較好[8]。幀間差分法的算法流程介紹如下:將fn和fn-1分別表示為視頻中的第n幀和第n-1幀,fn(x,y)和fn-1(x,y)分別表示為第n幀和第n-1 幀在(x,y)像素點(diǎn)的灰度值,然后將其對應(yīng)像素點(diǎn)的灰度值做差后取絕對值,于是得出差分圖像Dn
Dn(x,y)=|fn(x,y)-fn-1(x,y)|
(1)
(2)
幀間差分法的核心在于THRESHOLD閾值的設(shè)置,THRESHOLD值的選擇會(huì)對檢測結(jié)果造成直接影響,如果THRESHOLD的值設(shè)置較大,當(dāng)運(yùn)動(dòng)目標(biāo)的RGB值與背景的RGB值接近時(shí),會(huì)導(dǎo)致運(yùn)動(dòng)目標(biāo)部分區(qū)域的缺失,相反的,如果THRESHOLD的值設(shè)置較小,檢測的結(jié)果就會(huì)混合一些背景區(qū)域。在本文中THRESHOLD的值取為32,最終目標(biāo)輪廓檢測結(jié)果如圖1所示。
圖1 人物輪廓檢測
由于數(shù)據(jù)集的視頻是固定鏡頭的,所以從圖1可以看出當(dāng)鏡頭固定時(shí)幀間差分法的檢測結(jié)果是良好的,而跌倒檢測一般用于鏡頭固定的監(jiān)控設(shè)備,所以使用幀間差分法能夠基本滿足需求。
時(shí)間流設(shè)計(jì)的CNN網(wǎng)絡(luò)包含卷積操作、批標(biāo)準(zhǔn)化操作(Batch Normalization)、采樣操作、“壓平”操作(Flatten)、全連接網(wǎng)絡(luò)和Sigmoid網(wǎng)絡(luò),將輸入幀的特征抽象化來實(shí)現(xiàn)分類任務(wù)。其中Batch Normalization層的作用第一為了加快收斂速度,第二為了控制過擬合,能少用或者不用Dropout和正則,第三為了降低網(wǎng)絡(luò)對初始化權(quán)重不敏感,第四可以允許用較大的學(xué)習(xí)率來實(shí)現(xiàn)[9]。
為提高檢測速度達(dá)到實(shí)時(shí)性,將模型中濾波器的數(shù)量、深度、大小、步長等因素進(jìn)行了權(quán)衡,第1個(gè)卷積層卷積核大小為7×7,卷積核個(gè)數(shù)為64,第2個(gè)卷積層大小為5×5,個(gè)數(shù)為128,第 3、4、5個(gè)卷積層大小均為3×3,個(gè)數(shù)均為256,采樣層窗口均為2×2,采樣方式都采用最大值下采樣;全連接層T-Full1維度為512,T-Full2維度為256,T-Full3維度為128。激活函數(shù)采用不飽和非線性函 ReLUs(rectified linear units),該函數(shù)已被驗(yàn)證更接近人腦神經(jīng)突觸效果,具有更快的收斂速度[10]。其數(shù)學(xué)表達(dá)式如下
F(y)= max(0,y)
(3)
時(shí)間流設(shè)計(jì)的CNN網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 時(shí)間流網(wǎng)絡(luò)結(jié)構(gòu)
時(shí)間流的輸入為連續(xù)3幀的MHI運(yùn)動(dòng)歷史圖,輸入shape為224×224×3。MHI是基于視覺的模板方法,根據(jù)一定持續(xù)時(shí)間內(nèi)同一點(diǎn)的像素值變換,從而以圖像亮度的形式來表示目標(biāo)的運(yùn)動(dòng)情況。運(yùn)動(dòng)歷史圖中每一點(diǎn)的灰度值代表了在某段持續(xù)時(shí)間內(nèi)該點(diǎn)位像素的最近運(yùn)動(dòng)狀況,點(diǎn)位像素的灰度值高則表示該點(diǎn)位的運(yùn)動(dòng)時(shí)刻接近于當(dāng)前幀。所以可以通過運(yùn)動(dòng)歷史圖來描述人體在摔倒過程中的動(dòng)作狀況。通過式(4)可算出MHI像素的強(qiáng)度值Hτ(x,y,t)
(4)
式中:(x,y)和t為像素點(diǎn)的位置和時(shí)刻;τ為設(shè)定的持續(xù)時(shí)間,相當(dāng)于運(yùn)動(dòng)的時(shí)間范圍;δ為衰退參數(shù)。ψ(x,y,t)為更新函數(shù),可由幀間差法來定義
(5)
其中
D(x,y,t)=|I(x,y,t)-I(x,y,t±Δ)|
(6)
式中:I(x,y,t)表示視頻序列第t幀中(x,y)像素點(diǎn)的強(qiáng)度值,Δ表示幀間距離,T為設(shè)定的閾值,可根據(jù)動(dòng)作和視頻場景的不同來設(shè)置。
在本文中動(dòng)作持續(xù)時(shí)間τ設(shè)為1500 ms,閾值T設(shè)為32,實(shí)現(xiàn)的MHI效果圖如下,其中圖3一組為從站立到摔倒的連續(xù)3張運(yùn)動(dòng)歷史圖,圖4為一組跟摔倒動(dòng)作近似的從站立到坐下的連續(xù)3張運(yùn)動(dòng)歷史圖。
圖3 從站立到摔倒動(dòng)作運(yùn)動(dòng)歷史
圖4 從站立到坐下動(dòng)作運(yùn)動(dòng)歷史
從圖3和圖4中可以發(fā)現(xiàn),由于摔倒的加速度更快,所以在相同的持續(xù)時(shí)間內(nèi),從站立到摔倒的運(yùn)動(dòng)歷史圖比從站立到坐下幅度更大,且越遠(yuǎn)離當(dāng)前時(shí)刻,像素的灰度值越低,所以運(yùn)動(dòng)歷史圖可以很好地描述幀之間的運(yùn)動(dòng)信息。
由圖1可以看出,雙流卷積神經(jīng)網(wǎng)絡(luò)有兩個(gè)支路,分別用來提取時(shí)間特征和空間特征,最后是把兩個(gè)網(wǎng)絡(luò)的輸出按一定方式關(guān)聯(lián)到一起。對于跌倒動(dòng)作,空間特征描述了人體在跌倒過程中某一刻的姿態(tài)以及人體寬高比、傾斜角度等,而時(shí)間特征描述了跌倒動(dòng)作前后時(shí)刻的人體趨勢變化。在文獻(xiàn)[11]中,作者采用的是分別訓(xùn)練時(shí)間流和空間流網(wǎng)絡(luò),最后將兩個(gè)網(wǎng)絡(luò)的Softmax層的輸出做了加權(quán)融合,時(shí)間流權(quán)值取2/3,空間流權(quán)值取1/3。即
(7)
R表示雙流網(wǎng)絡(luò)的輸出結(jié)果,R1表示空間流的Softmax輸出,R2表示時(shí)間流的Softmax輸出。
本文對以上融合方式做了一定改進(jìn),沒有選擇在兩個(gè)網(wǎng)絡(luò)的激活層輸出進(jìn)行融合,而是在兩個(gè)網(wǎng)絡(luò)的全連接層將兩個(gè)網(wǎng)絡(luò)的同shape張量Concatenation相連后再添加新的網(wǎng)絡(luò)層,并通過多組實(shí)驗(yàn)分別比較了在不同維全連接層Concatenation融合的準(zhǔn)確率以及在相同維全連接層采用其它融合方式比如平均融合和Maximum融合的準(zhǔn)確率比較,從而以找到最優(yōu)結(jié)果,兩個(gè)網(wǎng)絡(luò)Concatenation融合后的輸出結(jié)果為
R=Fcat(R1,R2)
(8)
R表示融合后的輸出結(jié)果,R1表示空間流的全連接層輸出,R2表示時(shí)間流的全連接層輸出,F(xiàn)cat為Concatenation相連操作。因?yàn)槿B接層具有更高層次的抽象和更友好的語義信息,從而可以通過神經(jīng)網(wǎng)絡(luò)的訓(xùn)練來學(xué)習(xí)和定義兩個(gè)模型之間的對應(yīng)關(guān)系。Concatenation相連后再添加新的網(wǎng)絡(luò)層,最后連接Sigmoid層完成二分類。
本文選取公開的摔倒數(shù)據(jù)集Le2i作為實(shí)驗(yàn)數(shù)據(jù)集,該數(shù)據(jù)集包含Home、Office、Coffee room、Lecture Room這4種場景的視頻,視頻fps為25,分辨率為320×240,并且包含一個(gè)txt文件標(biāo)注了每個(gè)視頻開始出現(xiàn)摔倒和摔倒行為結(jié)束的幀的序號。
首先對每個(gè)視頻提取出人物輪廓RGB圖和運(yùn)動(dòng)歷史圖,然后將所有的圖片大小統(tǒng)一為224×224后分別存儲(chǔ)到對應(yīng)目錄下。由于摔倒行為數(shù)據(jù)偏少,所以對摔倒數(shù)據(jù)做了簡單的增強(qiáng)處理,對每張摔倒的RGB圖和MHI圖進(jìn)行水平翻轉(zhuǎn),使數(shù)據(jù)集擴(kuò)大了兩倍,然后將摔倒的數(shù)據(jù)標(biāo)簽記為1,非摔倒數(shù)據(jù)的標(biāo)簽記為0。另外由于視頻有些畫面沒有人物出現(xiàn)或人物靜止,會(huì)導(dǎo)致運(yùn)動(dòng)歷史圖為純黑色,為減少過多的這類圖片特征的干擾,對純黑色的MHI圖進(jìn)行了隨機(jī)剔除。最后將摔倒行為和非摔倒行為的數(shù)據(jù)分別選取70%作為訓(xùn)練集,20%作為測試集,10%作為驗(yàn)證集。
本文實(shí)驗(yàn)環(huán)境選擇keras深度學(xué)習(xí)框架,使用隨機(jī)梯度下降法,初始學(xué)習(xí)率設(shè)定為0.01,動(dòng)量參數(shù)(momentum)為0.95,學(xué)習(xí)率衰減值(decay)為0.001,批次大小(batch size)設(shè)置為24。訓(xùn)練集的準(zhǔn)確率如圖5所示,loss損失值如圖6所示??梢钥闯鲇?xùn)練70個(gè)epoch后模型基本收斂,準(zhǔn)確率在訓(xùn)練集上接近100%,損失值接近于0。
圖5 準(zhǔn)確率
圖6 損失值
結(jié)果對比采用3個(gè)指標(biāo)對模型的性能進(jìn)行評估,分別為召回率(R)、精確率(P)、準(zhǔn)確率(acc),分別定義如下
(9)
(10)
(11)
其中,TP表示將摔倒預(yù)測為摔倒的數(shù)量,F(xiàn)N表示將摔倒預(yù)測為非摔倒的數(shù)量,F(xiàn)P表示將非摔倒預(yù)測為摔倒的數(shù)量,TN表示將非摔倒預(yù)測為非摔倒的數(shù)量。
將測試集數(shù)據(jù)輸入到訓(xùn)練得到的摔倒檢測模型中,首先對MobileNetV2模型輸入人物輪廓RGB和輸入原始RGB的準(zhǔn)確率比較,見表2。
從表2可以看出MobileNetV2輸入人物輪廓RGB比輸入原始RGB準(zhǔn)確率提高了5.26%,且輸入原始RGB的召回率比輸入人物輪廓RGB低了15.96%,即存在很多摔倒了但未檢測到的情況,這對于獨(dú)居老人的跌倒檢測問題是非常嚴(yán)重的,所以提取人物輪廓可以有效消除背景對跌倒檢測的干擾,提高檢測準(zhǔn)確率。
表2 模型性能對比/%
然后對輸入人物輪廓RGB的單流MobileNetV2模型、輸入MHI的單流CNN模型以及采用相同數(shù)據(jù)集的文獻(xiàn)[11]模型與本文雙流卷積模型進(jìn)行比較,其中文獻(xiàn)[11]采用的是雙流卷積模型,該模型將RGB幀輸入3D-CNN,并提取光流圖輸入至VGGNet-16,融合方式是在兩個(gè)網(wǎng)絡(luò)的Softmax層輸出做了加權(quán)融合,時(shí)間流權(quán)值取2/3,空間流權(quán)值取1/3,性能指標(biāo)的對比見表3(文獻(xiàn)[11]未給出精確率和召回率)。
表3 模型性能對比/%
從表3可以看出本文的雙流卷積模型在測試集上的準(zhǔn)確率為98.12%,比文獻(xiàn)[11]的準(zhǔn)確率提高了2.2%,且精確率和召回率指標(biāo)都比單流的模型要高,比空間流提高了9.41%,比時(shí)間流提高了1.35%。綜上可以得出,雙流卷積神經(jīng)網(wǎng)絡(luò)比單流的卷積神經(jīng)網(wǎng)絡(luò)對于跌倒行為檢測準(zhǔn)確率更高,且本文設(shè)計(jì)的雙流卷積神經(jīng)網(wǎng)絡(luò)相比文獻(xiàn)[11]的模型在跌倒行為檢測中更具可靠性和有效性。
接下來本文對不同的融合位置和融合方式做了多組實(shí)驗(yàn)對比。首先是在不同維度的全連接層Concatenation融合時(shí)空特征與在Softmax層平均融合和加權(quán)融合的模型指標(biāo)進(jìn)行對比,見表4。
表4 融合方式對比/%
從表4可看出在空間流的Full2層和時(shí)間流的Full2層即在兩個(gè)網(wǎng)絡(luò)的256維全連接層進(jìn)行Concatenation融合的準(zhǔn)確率最高,為98.12%,其中與表4的第一、第二組實(shí)驗(yàn)對比可看出,兩個(gè)網(wǎng)絡(luò)在256維全連接層Concatenation融合比在Softmax層平均融合和加權(quán)融合的準(zhǔn)確率分別高0.68%和0.14%,同時(shí),從上表還可以看出采用平均融合和加權(quán)融合方式的召回率指標(biāo)非常高,但精確率偏低,這是由于這些模型很容易產(chǎn)生誤判,將數(shù)據(jù)集中躺下、坐下動(dòng)作誤判為摔倒。因此,將Softmax層的輸出進(jìn)行融合與在256維全連接層進(jìn)行Concatenation融合相比,在256維全連接層融合能提取到對跌倒行為更深層次的信息。與表4的第三、第五組實(shí)驗(yàn)對比可看出兩個(gè)網(wǎng)絡(luò)在256維全連接層Concatenation融合比在512維全連接層和128維全連接層Concatenation融合效果要稍好。
針對兩個(gè)網(wǎng)絡(luò)的256維全連接層特征具有更好的表達(dá)信息,本文又比較了在256維全連接層分別采取平均融合和Maximum融合的準(zhǔn)確率比較,見表5。
表5 256維全連接層融合方式對比/%
由表5可看出在256維全連接層采用Concatenation融合比采用平均融合和Maximum融合的方式準(zhǔn)確率都要高。
同時(shí)本文對輸入MHI和文獻(xiàn)[11]采用的輸入光流圖的實(shí)時(shí)性進(jìn)行了對比。采用上述相同的網(wǎng)絡(luò)結(jié)構(gòu),空間流輸入不變,時(shí)間流輸入由連續(xù)3幀MHI圖改為連續(xù)3幀光流,GPU為GTX960,如圖7所示。
圖7 連續(xù)3幀的MHI和連續(xù)3幀的光流
得出連續(xù)10次的檢測速度,使用fps進(jìn)行衡量。由表6可看出使用MHI運(yùn)動(dòng)歷史圖的平均fps達(dá)到33.5 Hz,比光流圖要高13 Hz。由于我國采用PAL制式,而PAL制式的幀速率為25 fps[12],所以基于此網(wǎng)絡(luò)結(jié)構(gòu)時(shí)間流輸入MHI運(yùn)動(dòng)歷史圖能滿足實(shí)時(shí)性要求,而輸入光流圖沒有達(dá)到。
表6 MHI、光流圖檢測速度fps對比/Hz
本文構(gòu)建了一種基于雙流卷積神經(jīng)網(wǎng)絡(luò)的實(shí)時(shí)跌倒檢測模型,該模型的空間流輸入為提取人物輪廓的RGB單幀,相比輸入原始RGB,提取人物輪廓能減少背景造成的干擾,采用MobileNetV2模型處理,時(shí)間流輸入為連續(xù)3幀的MHI運(yùn)動(dòng)歷史圖,采用搭建的CNN模型,改進(jìn)了融合方式,在特定維度的全連接層將兩個(gè)網(wǎng)絡(luò)的同shape張量Concatenation融合后再添加到新的網(wǎng)絡(luò)層,相比直接在Softmax層融合,全連接層具有更高層次的抽象和更友好的語義信息,最后在公開的摔倒數(shù)據(jù)集上進(jìn)行了測試。實(shí)驗(yàn)結(jié)果表明,采用人物輪廓RGB-MHI的雙流卷積神經(jīng)網(wǎng)絡(luò)在非摔倒和摔倒的區(qū)分檢測中準(zhǔn)確率為98.12%,比人物輪廓RGB的MobileNetV2模型提高了9.41%,比MHI的CNN模型提高了1.35%,模型優(yōu)于其它采用相同數(shù)據(jù)集的文獻(xiàn);在256維全連接層Concatenation融合時(shí)空特征與在其它維全連接層Concatenation融合相比,準(zhǔn)確率最高,比在分類層進(jìn)行平均融和和加權(quán)融合識別率分別提高了0.68和0.14個(gè)百分點(diǎn);基于此網(wǎng)絡(luò)結(jié)構(gòu)通過比較fps,輸入MHI比輸入光流圖具有更好的實(shí)時(shí)性,驗(yàn)證了本文的雙流卷積模型具有良好的可靠性和實(shí)時(shí)性。