張 陶,鄔春學
(上海理工大學 光電信息與計算機工程學院,上海 200093)
第七次全國人口普查顯示,我國60 歲及以上人口為26 402 萬人,占總人口的18.70%(其中,65 歲及以上人口為19 064 萬人,占13.50%)。可見我國人口老齡化進一步加深,如何妥善地照顧老年人已成為社會各界關注的焦點問題。據調查,每年大約有30 多萬人死于意外跌倒,其中60歲以上的老年人占一半以上,可見意外跌倒已成為老年人意外死亡的頭號殺手,同時一半以上的老年人跌倒是發生在家里,而且大部分較為嚴重的后果并不是在跌倒的第一時間造成,而是由于跌倒后沒有得到及時幫助和救護。通常,子女和其他看護人員無法對老年人進行全天候照看,因此開發一套高效實用的老年人跌倒檢測系統尤為重要。系統能夠準確地檢測到老年人的跌倒行為,并發送報警信息以及時呼叫救援,從而避免情況進一步惡化。
目前,針對跌倒檢測的研究主要有3 個方向,分別是基于可穿戴設備的檢測方法、基于分布式環境參數采集的檢測方法以及基于機器視覺的跌倒檢測方法。
基于可穿戴設備的跌倒檢測[1-3]主要是人體佩戴集成了各類傳感器設備,通過集成的傳感器檢測人體運動數據變化,如加速度、方位角等信息,以進行跌倒檢測。Nho等[4]使用心率傳感器和0 加速度計融合的基于聚類分析的用戶自適應跌倒檢測方法,通過特征選擇提出最好的13維特征子集進行跌倒檢測。但是可穿戴設備要求使用者實時佩戴設備,一定程度上會影響日常生活,并且設備還會受限于電量等因素干擾,有時老人也容易忘記佩戴,因而實際用戶體驗不佳。
基于分布式環境參數采集的跌倒檢測技術[5-7]是通過在家居環境中安裝傳感器,主要采集地面振動[7]或壓力數據、環境聲音[8]以及雷達信號等之類的信息,分析人體在采集區域內的環境信息進行跌倒檢測。該類方法對用戶影響較小,無需實時佩戴設備,但是檢測區域大小受限,若所有場景全覆蓋則會造成成本增加,并且往往無法有效地區分振動源,容易受到環境干擾,從而導致誤報,降低系統檢測準確率。
基于機器視覺的跌倒檢測技術[9-15]主要通過攝像頭采集人體日常生活的影像,并對視頻序列進行相應分析,提取出人體的一些特征信息,進而判斷人體跌倒行為和非跌倒行為。Ge 等[9]以YOLOv3-tiny 目標檢測算法為基礎融合通道注意力機制和空間注意力機制,增加了檢測準確性。Chhetri 等[14]使用增強型動態光流技術對光流視頻的時間數據進行等級池化編碼,從而提高跌倒檢測處理時間并提高動態光照條件下的分類精度。基于機器視覺的跌倒檢測是非侵入式的,不需要用戶實時佩戴設備,因而不會影響老人的日常生活,其成本相對較小,并且檢測范圍廣,因而獲得廣泛關注。
傳統跌倒檢測算法一般通過人工設計相關特征參數以表征運動目標,例如寬高比、質心高度等,再通過閾值分析法完成判斷,但是人工選取的特征參數往往無法全面地表征目標。近年來,隨著智能家居的不斷發展,家居環境中視頻監控的逐漸普及為家居場景中老年人的跌倒行為檢測提供了新的解決方案。并且,隨著機器視覺的發展,已經可以從監控視頻中提取到人體輪廓和運動特征,再經卷積神經網絡自動地通過卷積核提取目標特征[16],這樣做既可避免佩戴相關設備,還克服了人工設計特征的片面性,進而達到對目標的智能化檢測、監控和管理。
鑒于此,本文基于機器視覺的跌倒檢測方法提出一種添加了融合流的多流卷積神經網絡模型,以視頻序列中提取出的人體輪廓圖為空間流卷積神經網絡輸入,以運動歷史圖作為時間流神經網絡輸入,并新增融合流用于融合時間流和空間流特征提取網絡中的時空信息,更全面地利用時空特征對跌倒行為進行檢測。實驗證明,該模型對跌倒行為檢測具有良好的實時性和可靠性。
雙流卷積神經網絡的融合階段是在單流網絡的全連接層和分類函數之后的一種晚融合,這種融合方式在一定程度上忽略了時空信息之間的交互,無法充分利用網絡中的所有有效信息[17]。鑒于此,本文在雙流卷積網絡模型的基礎上,加入一個融合流網絡,與時間流和空間流一起組成一個三支流的多流卷積神經網絡模型,其網絡結構如圖1 所示。融合流單獨于時間流和空間流作為一個全新的融合流網絡,分別對時間流和空間流的最后兩層卷積層進行時空特征融合,并將得到的兩個時空融合特征進行融合得到多級時空融合特征,最后將這3 支流的輸出進行晚融合從而得到最終跌倒檢測結果。
從圖1 可以看出,相較于傳統的雙流卷積模型,本文提出的多流卷積神經網絡模型在特征提取階段就進行了對應層級的特征融合。傳統雙分支結構的晚融合對特征提取網絡中的時間信息和空間信息間利用不充分,致使丟失了網絡淺層中的局部信息和網絡深層中的全局信息。本文提出的方法對特征提取階段對應層進行了一定程度上的早融合,即使用了全局信息,同時也保留了一部分局部信息,極大程度上結合了特征提取網絡中的時間信息和空間信息間,彌補了傳統雙分支結構全連接層和分類函數之后晚融合特征的缺點。

Fig.1 Architecture of fall detection network based on multi-stream convolutional neural network圖1 基于多流卷積神經網絡的跌倒檢測網絡架構
空間流的主要目的是從圖片中提取出有效的空間信息,其輸入的是從視頻序列中提取的人體輪廓單幀,大小為224×224,經卷積神經網絡訓練后提取出圖像序列中人體在空間上的表征。空間流卷積神經網絡結構(見圖2)主要由5 個卷積層、3 個池化層、2 個全連接層以及2 次歸一化處理組成,采用自適應矩估計優化算法對網絡參數作優化處理,并利用交叉熵損失函數計算損失值。網絡中第一個卷積層使用7 × 7 的卷積核,第二個卷積層使用5 × 5 的卷積核,其余卷積層均使用3 × 3 的卷積核,通過多個卷積核對上一層的輸出進行卷積運算,并通過Zero Padding 控制輸出維度的一致性。激活層選用ReLU 函數進行稀疏化處理,以提高訓練速度。池化層窗口均為2 × 2,并且都采取最大池化法。全連接層整合卷積層和池化層中的信息,解決了非線性問題,并添加了失活層用來防止過擬合,最后通過Softmax 輸出空間流網絡訓練結果。

Fig.2 Spatial flow convolutional neural network structure圖2 空間流卷積神經網絡結構
因為卷積神經網絡識別圖像的理論依據是卷積可以識別邊緣、紋理,然后通過不斷的卷積提取抽象的特征,最終實現圖像識別。但是圖像中的陰影背景之類,由于其邊緣模糊,沒有明顯輪廓,一定程度上會影響檢測結果。因此,本文以背景差分法為基礎,提出基于高斯混合模型的人體輪廓檢測方法,具體流程如圖3 所示。先對圖像進行處理,輸出人物輪廓圖,并將其作為空間流的輸入,可在一定程度上消除背景對檢測的干擾[18],提高最終檢測結果的準確性。高斯混合模型建模的主要步驟分為模型建立、參數更新、前景提取這3個步驟。
2.1.1 模型建立

Fig.3 Overall block diagram of the human body contour extraction algorithm圖3 人體輪廓提取算法總體框圖
背景差分法主要將圖像序列中的視頻幀和背景模型進行差分處理,進而檢測出前景圖像。在整個運動目標檢測中最重要的一步是背景圖像建模,背景建模的精準度直接決定了檢測準確度。同時,考慮到現實生活中背景圖像是動態變化的,因此要對已經建成的背景模型進行適當的背景更新。
本文選用高斯混合模型(Gaussian Mixture Model,GMM)進行背景建模,高斯混合模型是用高斯分布精確地量化事物,將一個事物分解成若干個基于高斯分布形成的模型[19],在該模型中假設像素點之間相互獨立,將視頻序列中的每個像素點按多個高斯分布的疊加進行建模,每種高斯分布可以表示一種場景,多個高斯模型混合就可以模擬出多模態情形。因此,對每個像素點建立K 個高斯模型,概率密度函數可由K 個高斯模型的概率密度函數的加權和決定,具體如式(1)所示。

其中,Xj,t表示t時刻像素j的取值;K 表示高斯分布個數,一般設置為3~5;ωi,t表示t時刻第i個高斯分布的權重;μi,t為第i個高斯分布的均值;為協方差矩陣;η代表高斯分布概率密度函數。
2.1.2 參數更新
為了適應背景動態變化,更好地描述圖像的像素分布,模型匹配之后需進行參數更新,以保證算法準確性。首先將當前圖像序列中每個視頻幀的像素值和所建立的K個高斯模型進行比較,如果視頻序列中某幀的K個高斯模型滿足式(2),則稱像素Xj,t和第i個高斯模型匹配。

若不匹配,則新增一個高斯分布,并用其將權值系數最小的分布替代,其余分布的均值和方差保持不變,并按式(3)進行參數更新。

其中,α為學習速率,代表背景更新速度;ρ為參數學習速率;M為狀態值,取決于匹配狀態,匹配成功與失敗分別對應1和0。
2.1.3 前景提取
訓練完成后進行前景圖像提取,針對圖像序列中的每個視頻幀,將其對應的K個高斯模型按照ω/σ的大小進行排序,并選中其中前B個模型對背景模型進行重構。

其中,T 為閾值,通常為0.5~1,本文設置為0.75,即判斷前B個模型的權值之和是否大于閾值。
若這前B個高斯分布可以匹配上當前視頻幀的任意高斯分布,則為背景,否則該幀為前景。圖4 為不同場景下的人體輪廓檢測圖及其對應的前景圖,可見能夠實現對人體目標的準確檢測。

Fig.4 Human contour detection map and foreground image圖4 人體輪廓檢測圖及前景圖像
時間流和空間流類似,采用不同尺寸的卷積核對輸入進行卷積操作,并經過池化、激活等操作處理,最后通過Softmax 函數得到時間流的訓練結果。相比于空間流輸入RGB 圖片,時間流輸入運動歷史圖(Motion History Image,MHI)以提取時間特征。MHI 是一種基于視覺的模板方法,通過計算時間段內同一位置像素值的變化,進而以圖像亮度的形式表示時間段內目標的運動情況。與RGB 圖片能夠直接從視頻中逐幀分隔得到不同,MHI 是從連續的RGB 圖片或者視頻中估算得到。圖像中每個像素點的灰度值代表了在一組視頻序列中該像素點的最近運動狀況,運動發生的時間越近,則該點的灰度值越高。因此,MHI可以用來表征在一段時間內人體的運動情況,這使得其非常適合作為時間流網絡的輸入。
設H 為MHI每個像素的灰度值,則有:
其中,(x,y)表示像素點的位置,t表示時間,τ為持續時間,即運動時間的范圍。δ是衰退參數,Ψ(x,y,t)為更新參數,由背景差分法定義:

其中,I(x,y,t)為視頻序列第t幀中坐標(x,y)的像素點的強度值,Δ 為幀間距離,ξ為差異閾值,一般通過實驗獲取,不同的視頻場景對應不同的閾值。
時間流的輸入是連續3 幀的運動歷史圖,大小為224×224×3。本文將持續時間τ設為15,差異閾值ξ設為32。具體運動歷史圖的實現效果如圖5所示。

Fig.5 Motion history image extraction effect圖5 運動歷史圖提取效果
融合流網絡主要對時間流和空間流的最后兩層卷積層進行特征融合,選取最后兩層是為了彌補單層融合造成的信息缺失。由于卷積神經網絡對卷積層疊加的特性,網絡淺層中富含局部信息但缺少全局信息,而網絡深層中富含全局信息,缺少局部信息,因而單層融合無法充分利用特征信息,而層數過多又會導致過多的無用信息,增加計算量。因此,綜合考慮后選取最后兩層進行融合,既可使用全局信息又保留了局部信息,同時平衡了計算量和網絡精度。
2.3.1 多模態融合算法
傳統的特征融合一般使用特征拼接、按位乘、按位加等,其操作復雜度雖然弱于外積,但不足以建立模態間的復雜關系,然而外積的復雜度又過高,運用在跌倒檢測中計算量過于龐大。鑒于此,本文采用多模態融合算法(Multimodal Compact Bilinear pooling,MCBP),該算法將外積的結果映射到低維空間中,并且不需要顯式地計算外積。
雙線性池化是對雙線性融合后的特征進行池化處理,雙線性的實現就是向量的外積計算。由于雙線性的特征維度特別高,因而壓縮雙線性池化(Compact Bilinear Pooling,CBP)這一概念被提出,CBP 是對雙線性池化的一種降維近似。而MCBP 又是對CBP 的改進,可以用來融合多模態的特征值,拓寬了CBP 輸入的特征維度。該算法包括數據降維和融合兩部分。
首先是數據降維,使用Count Sketch 映射函數對兩個模態的特征向量進行降維處理,得到特征的Count Sketch。記輸入的特征向量v∈Rm,初始化一個零向量y,同時從{1,...,n}中隨機選取樣本參數向量h,從{-1,1}中隨機選取樣本參數向量s。經由投影函數式(8)開始降維處理。

數據降維完成后,在融合階段經由快速傅里葉變換(FFT)和快速傅里葉逆變換(IFFT)處理得到融合的特征。記k個輸入特征為vj∈,降維處理后∈Rn。則可通過式(9)計算得到數據結果。

其中,FFT代表快速傅里葉變換,FFT-1代表快速傅里葉逆變換,⊙表示對應元素乘法。
MCBP 算法整體流程如算法1所示。
算法1:多模態融合算法


2.3.2 多模態融合模塊
融合流網絡主要對時間流和空間流的最后兩層卷積層進行特征融合。本文基于MCBP 算法設計了多模態特征融合模塊(Multimodal Feature Fusion Module,MFFM),用來對特征值進行融合調整。首先,要將對應層級的時空特征使用MFFM 進行融合得到對應的融合時空特征,待最后兩層卷積層都融合完成后,將得到的兩個融合時空特征再次經由MFFM 模塊進行融合得到最后的多級融合時空特征。MFFM 模塊具體結構如圖6所示。

Fig.6 Multi-modal feature fusion module圖6 多模態特征融合模塊
MFFM 包括特征融合和特征調整兩個階段。特征融合階段主要使用MCBP 算法對輸入的多個特征進行降維融合。特征調整階段主要通過特征調整網絡對融合得到的時空特征進行噪聲問題和感受野調整,特征調整網絡經由2 個卷積層、2 個激活層和2 次數據歸一化處理。通過特征調整可對融合特征作進一步優化,以降低數據維度并抑制噪聲,提高預測精準度。
多流卷積神經網絡一共有3 個分支,通過相應處理分別提取空間特征、時間特征以及多級融合時空特征,最后將3 個分支的輸出進行融合得到最終檢測結果。設f是神經網絡提取的特征向量,其中θ為Softmax 分類器參數,則將f分類為類別j的概率p(j|f)為:

記Ps為空間流神經網絡檢測的分數結果,Pt為時間流神經網絡檢測的分數結果,Pf為融合流神經網絡檢測的分數結果。最后,整個多流網絡檢測為類別j的概率scorej為:

其中,α、β、χ分別是空間流、時間流和融合流對應的權重,本文設置α=1,β=2,χ=1。
實驗中使用Pytorch[20]深度學習環境,損失函數使用交叉熵損失函數,動量參數設置為0.9,初始學習率設置為0.001,批數據大小設置為48,訓練輪數epoch 設置為100。
為驗證實驗檢測準確性,實驗在Le2i 和蒙特利爾兩個公開的跌倒數據集進行檢驗,Le2i 跌倒檢測數據集包含家庭、辦公室、教室及咖啡廳4 種場景,且存在假摔視頻及無人視頻。數據集使用單攝像頭拍攝,刷新率為25Hz,分辨率為320×240。蒙特利爾數據集是由蒙特利爾大學公開的摔倒數據集,該數據集包含24 個場景,利用8 個IP 視頻攝像機拍攝,視頻刷新率為120Hz,分辨率為720×480。
實驗首先對視頻數據進行預處理,使用OpenCV 庫將數據集的視頻數據按照幀數截取成相應的RGB 圖片,然后采用COLOR_BGR2GRAY 對圖像作灰度化處理,并將圖像尺寸轉換為224×224 后輸出得到實驗所需的圖像序列,再對圖像序列進行相應處理,提取出的人物框架和運動歷史圖將分別作為空間流和時間流的輸入,并利用融合流對特征提取網絡中的時空特征融合,最終融合得到輸出結果,按照相應的實驗指標驗證實驗的有效性。
為了客觀評價本文模型在人體跌倒檢測中的檢測效果,規定TP 表示真陽性,即跌倒行為成功檢測為跌倒事件;FP 表示偽陽性,即非跌倒行為檢測為跌倒;FN 為偽陰性,即跌倒行為檢測為非跌倒。采用在ICDAR 大賽中規定的準確率P、召回率R 及綜合F 值3 個指標對模型性能進行評估。
準確率P 表示在所有檢測樣本中成功檢測為跌倒事件所占的檢測為跌倒事件的比例,可表示為:

召回率R 表示所有跌倒樣本中檢測為跌倒的部分在所有跌倒樣本中所占比例,即模型對跌倒行為的檢測能力,可表示為:

F 是準確率和召回率的調和平均數,用來綜合評價模型檢測能力,可表示為:

為了驗證本文新增的融合流網絡輸入層數對跌倒檢測精確度的影響,在實驗數據集上設置了4 組對照實驗,分別是使用傳統雙流卷積網絡和三組分別添加了從對雙流網絡最后一層到最后三層的卷積層融合的多流卷積網絡的精確度比較,結果如表1所示。

Table 1 Comparison of accuracy of multi-level spatiotemporal feature detection表1 多級時空特征檢測精確度比較
由表1 可知,當增加對雙流網絡最后一個卷積層的融合流后,整體網絡檢測精確度為93.2%,較傳統卷積網絡上漲1.4%,驗證了時空融合特征的有效性。而融合最后兩層卷積層時,整體精確度又上漲0.3%,但當選用最后三層卷積層時整體精確度卻只增加了0.1%。由此可見,隨著融合層度的增加,多流網絡的檢測精確度確實有所增加,但同時不斷增加的融合層一定程度上增加了計算量,并且隨著層數的不斷增加,檢測精確度的漲幅越來越小。因此,為了平衡計算量和檢測精度,本文選取對時間流和空間流的最后兩層進行時空特征融合處理。
此外,還在兩個數據集上分別進行實驗與比較,為了驗證本文多流卷積網絡檢測跌倒事件的有效性,將其與其他跌倒檢測方法在檢測效果上進行比較。為了確保驗證的有效性,訓練和測試的所有條件保持一致,輸入尺寸均為224×224,具體性能指標比較如表2、表3所示。

Table 2 Comparison of the detection effectiveness of each model on the Le2i dataset表2 Le2i數據集上各模型檢測準確性比較
由表2 各模型的檢測結果比較可知,在Le2i 數據集上本文提出的基于多流卷積神經網絡的檢測模型與現有網絡模型相比,準確率方面有較大提升,為所有測試模型中精確度最高,并且其在各種指標上的性能均優于其他算法,可見添加融合流之后檢測依據的特征信息更充分,模型性能有所提高,進一步說明本文結合了融合流的多流神經網絡的有效性。
由表3 可知,在蒙特利爾數據集上的實驗結果與在Le2i 數據集上的結果相同,本文提出的多流卷積的跌倒檢測算法依舊擁有著最高的準確率,相比雙流網絡精確度增加1.8%,較VGG16、GBDT 和SVM 增加3.9%、3.6%和5.8%。并且,本文方法在兩個數據集上的檢測精確度差距不大,由此也證明了本文多流卷積神經網絡在跌倒檢測方面的普適性。

Table 3 Comparison of the detection accuracy of each model on the Montreal dataset表3 蒙特利爾數據集上各模型檢測準確性比較
同時,由于跌倒檢測在時效性上有著較高要求,因此本文比較不同模型處理單個視頻幀圖片所耗時間,如圖7所示。其中,橫坐標表示不同的比較算法,縱坐標表示處理時間,單位為ms。由圖7 可知,本文多流卷積神經算法雖然處理時間比SVM 和GBDT 算法長,但是考慮到精確度提升,本文提出的基于多流卷積神經網絡的檢測算法可以滿足跌倒檢測要求。

Fig.7 Comparison of the detection speed of each model圖7 各模型檢測速度比較
最后,針對數據集中的假摔及無人場景進行針對性實驗。針對無人場景,由于畫面中并無人物出現,因而會導致人物輪廓圖及運動歷史圖均為純黑色圖片,對其進行單獨測試后發現,針對無人場景,并不會出現誤判情況。對于假摔場景,本文從兩個數據集中選取共計50 組包含假摔的場景進行針對性實驗,最終在50 次實驗中,有2 次發生誤判,也證明了本文算法檢測的有效性。
傳統的雙流卷積神經網絡雖然結合了時空特征信息、多特征提取以及融合判斷,但是其融合發生在全連接層和分類函數之后,忽略了時間信息和空間信息間的交互。為了解決傳統雙流卷積網絡時空特征交互信息交互不足的問題,提高人體跌倒行為檢測準確率,提出一種添加了融合流的多流卷積神經網絡模型。多流網絡利用空間流網絡提取幀內外觀信息,利用時間流網絡捕捉幀間運動信息,并利用新增的融合流模塊加強網絡對細節信息的捕捉,很好地結合時空信息,更充分地利用特征提取網絡中的全局信息和局部信息。最終實驗表明,相較于傳統檢測方法,本文提出的多流卷積神經網絡在處理跌倒檢測問題時較傳統方法提取特征能力更強,檢測更全面、更精確,證實了模型的有效性。同時,該方法也有待改進之處,后續研究中可通過增加注意力機制等方法進一步提升網絡精確度。