張 璐,方春,祝銘
(山東理工大學計算機科學與技術學院,山東淄博 255049)
跌倒是指突然、無意發生的體位改變,普遍發生于老年群體,其后果可能嚴重影響老年人的身體和心理健康[1]。據統計,我國每年至少有2 000 萬老年人發生2 500 萬次跌倒,因受傷耗費的醫療費用達50 億元人民幣以上[2]。為了給獨居老人提供合格的醫療健康服務,減輕跌倒帶來的負面影響,開發有效的跌倒檢測系統必不可少。
近年來,關于跌倒檢測算法的研究工作主要分為3 種:基于可穿戴設備的方法[3]、基于場景傳感器的方法[4]和基于計算機視覺的方法[5]。相較于前兩種方法,基于視覺處理的方法有其獨特的優勢,它們是非侵入式的(老年人無需佩戴特殊設備),用戶體驗更好,并且監控設備的成本也較低,通過監控捕捉的視頻語義更豐富,方便后期的審查。
基于計算機視覺的方法旨在從圖像和視頻中提取信息來檢測跌倒。隨著圖像處理技術的提高和機器學習算法的廣泛應用,國內外學者開展了諸多相關的跌倒檢測算法研究,其重點主要集中在如何精確提取到視頻中的前景運動目標,如何提取人體行為的有效特征和如何設計區分跌倒與非跌倒的分類算法。在提取視頻中人體目標方面,主要包含背景減除算法,如高斯混合模型(Gaussian Mixed Model,GMM)[6]、Codebook[7]和ViBe[8]等。跌倒相關特征主要包括幾何特征和運動特征,Min 等[9]提出一種基于人體運動軌跡和形狀縱橫比的方法,以實時檢測人體跌倒。Vaidehi 等[10]提取人體長寬比和傾斜角度等靜態特征來檢測跌倒。Lin 等[11]結合運動歷史圖(Motion History Image,MHI)分析跌倒行為,并提出了加速度和角加速度兩個額外特征,以多種特征綜合判斷跌倒事件。常用的分類器模型包括支持向量機(Support Vector Machine,SVM)、隱馬爾可夫模型(Hidden Markov Model,HMM)和卷積神經網絡(Convolutional Neural Network,CNN)等。Mirmahboub 等[12]通過從連續高斯平均背景差中提取的多個連續幀中獲取的輪廓區域作為特征,將其輸入到多類SVM 中,以對不同類型的正常活動進行分類。Tra 等[13]采用橢圓模型擬合人體姿勢并從中提取出5 個特征,輸到兩個HMM 中,以對跌倒事件和正常事件進行分類。Yu 等[14]對圖像序列預處理后,并結合CNN 模型判斷人體姿勢,以躺在地面區域視為跌倒。目前該領域的研究工作取得了一定成果,但仍需進一步改進,主要有以下方面:
1)目前視頻中前景目標的提取主要依靠傳統的背景減除算法,而背景減除算法在復雜的背景設置下魯棒性較差,適用范圍有限,難以應用在實際家庭環境下。如何在復雜環境下精準且快速地提取視頻中的前景目標仍值得研究。
2)目前人體行為識別領域可識別諸多行為[15],但對應的網絡結構過于復雜,導致實時性差,而對于家庭行為來說,人體活動較為單一,如何設計出輕量級的網絡結構應用于家庭活動分類也值得探討。
3)為準確區分與跌倒行為相似的活動類型,如何提取有關跌倒的有效特征,提高檢測準確率、降低誤判率也是重要研究內容。
本文針對上述情況,提出了一種基于Res2Net-YOLACT和融合特征的室內跌倒檢測算法,主要內容包括:1)將Res2Net 模塊融入傳統YOLACT 的骨干網絡,增強骨干網絡各層的感受域,從而更精準地完成人體實例的分割任務;2)將CNN 深度特征和手工提取的跌倒特征進行融合,增強了關于跌倒行為的特征表達力;3)先以豎直運動速度閾值預判異常,再通過二次分類的方法區分跌倒與非跌倒行為,減少僅依靠網絡模型帶來的高運算量。
YOLACT 網絡是由Bolya 等[16]基于一級(one-stage)目標檢測器開發的一級實例分割模型。本文在YOLACT 網絡基礎上對骨干網絡部分進行改進,提出一種用于人體分割的Res2Net-YOLACT 網絡結構,其結構如圖1 所示。

圖1 Res2Net-YOLACT的網絡結構Fig.1 Network structure of Res2Net-YOLACT
實例分割大致步驟為:首先使用特征提取網絡提取多尺度特征圖(圖1 所示的C3~C5),原始的YOLACT 模型默認骨干網絡為ResNet101,網絡層數深,內部主要由Bottleneck 結構塊[17]構成。為提高網絡對多尺度特征的提取能力,實現快速且準確的人體實例分割,本文將原骨干網絡ResNet 的Bottleneck 模塊都替換為Res2Net 模塊[18](圖1 左側),Res2Net結構塊在保持原結構中的卷積核大小和總數不變的情況下,對所有卷積核進行分組,形成多個包含較少卷積核的分支,并以一種分層的類殘差的方式將不同的卷積核分支連接。這種方式增大了各層的感受域,并且不會增加網絡的參數。考慮到本文檢測的類別單一,最終本文采用尺度為4 的Res2Net-50 作為特征金字塔網絡(Feature Pyramid Network,FPN)的骨干網絡,在確保提取語義特征充足的同時降低網絡深度,提高人體分割的速度。改進后的Res2Net-50 骨干網絡如表1 所示。

表1 用于特征提取的Res2Net-50骨干網絡Tab.1 Res2Net-50 backbone network for feature extraction
接著,基于FPN 生成P3、P4、P5,通過P5 生成P6 和P7。然后,將實例分割的復雜任務分解為兩個更簡單的并行任務,這些任務可以組合以形成最終的掩模:第一個分支通過Protonet 結構進行不同位置和前景背景分割的預測,生成多個“原型掩模”(prototype masks);第二個向目標檢測分支添加額外的head,以預測每個用于原型掩模空間中實例表示的anchor 的“掩模系數”(mask coefficient)向量。兩分支任務可以獨立地計算。最后將經過非極大值抑制(Non-Maximum Suppression,NMS)得到每個實例,以線性組合的方式生成每一個anchor 對應的Mask 分割結果,詳細原理內容可見文獻[16]。利用這種方式,既在特征空間上保持了空間一致性,也達到了一階段快速分割的目的。
最后,YOLACT 的訓練涉及到分類損失、邊界框損失和Mask 損失三部分,其中分類損失和邊界框損失同SSD(Single Shot MultiBox Detector)[19],Mask 損失為預測Mask 和真實Mask 的逐像素二進制交叉熵。給定人體姿態的圖像和相關注釋(包含人體類別標注和人體輪廓標注)的訓練數據集,則可以通過最小化損失函數來訓練得到網絡的權重文件。經過訓練好的Res2Net-YOLACT 網絡,可以完成視頻幀中人體輪廓的提取。
本文選取精確率(Precision,P)、召回率(Recall,R)和F1三種評價指標。精確率表示正確檢測到的前景像素數量與所有檢測為前景像素的數量之比,反映了丟失人體目標內部信息的相關性;召回率為正確檢測到的前景像素數量與總的前景像素的數量之比,反映丟失運人體目標以外信息的相關性;F1 兼顧了精確率和召回率,綜合衡量提取結果的好壞。

其中:tp(true positive pixels)表示正確檢測出的前景像素數;fn(false negative pixels)表示誤檢為背景的像素數;fp(false positive pixels)誤檢為前景的像素數。
本文提出的跌倒檢測算法總體流程結構如圖2 所示。

圖2 跌倒檢測總體流程Fig.2 Overall flowchart of fall detection
2.1.1 人體輪廓的橢圓擬合
橢圓擬合[20]對較差的分割結果具有一定魯棒性,相較于外接矩形擬合,更能有效描述人的姿勢,因為手臂的伸展會導致矩形擬合發生較大的變化。人體擬合結果及參數如圖3 所示,可見橢圓擬合更加緊湊。

圖3 跌倒人體的橢圓擬合及關鍵參數Fig.3 Ellipse fitting and key parameters of falling human body
橢圓參數的計算過程如下:
對于一張圖像f(x,y),矩特征為:


根據中心矩,可通過式(6)計算出橢圓的方向角為:

橢圓的長半軸a和短半軸b可以計算為:

其中:Imax和Imin分別為式(9)特征矩陣J的最大和最小特征值。

參數計算完后,可以將橢圓擬合到前景輪廓上。
2.1.2 運動特征提取
當人體在走路、躺臥和慢坐等日常活動時,其垂直速度將不發生大幅度變化;而發生跌倒行為時,人體的豎直速度會突變。因此,本文采用橢圓輪廓來計算人體豎直方向的速度,并作為跌倒行為的第一次預判。具體來說,通過相鄰幀質心位置的距離差值計算速度,當多幀之間速度差超過閾值T,預判為跌倒。算法流程如下:
算法1 基于人體質心垂直速度預判跌倒。
輸入 提取的人體輪廓圖像序列,初始值c=0。

輸出 垂直速度超過閾值時的前一幀圖像,并進入二次分類流程。
經過一次分類,如快速坐、快速下蹲等與跌倒近似的行為也可能會初步斷定為異常,接下來通過人體姿勢分類作出二次判斷,確認是否發生跌倒。
本文利用融合雙路特征的模型算法對人體姿勢進行分類。第一路利用CNN 提取圖像靜態特征,第二路先通過橢圓擬合人體;然后手動提取有關跌倒的幾何運動特征并組合成特征向量;接著利用全連接層完成特征向量拼接;最后利用Softmax 函數進行特征分類。雙路特征模型結構如圖4 所示,圖中虛線框表示手工特征的提取。

圖4 姿勢分類的模型結構Fig.4 Model structure of behavior classification
2.2.1 卷積神經網絡提取的深度特征
在計算機視覺研究領域,CNN 能夠直接從大量的標注數據中逐層提取圖像的信息并對圖像進行檢測與分類[21]。本文中人體目標輪廓只占據原始圖像的小部分,而背景對于人體活動的識別不起作用,為了消除圖像冗余,減少計算量,本文對輸入圖片進行預處理。首先提取每個輪廓的最小外接矩形,然后保持輪廓的長寬比并縮放到30×30 像素大小的圖像模板,最后對每個像素點作歸一化處理。本次所設計的CNN 結構參數如表2 所示,共包含3 個卷積層(Conv)、3 個池化層(Pooling)和兩個全連接層(FC)。卷積池化之間利用ReLU(Rectified Linear Unit)激活函數來獲取固定神經元輸出,輸出層之前利用Softmax 激活函數輸出人體行為類別的概率。為了訓練網絡,利用多類交叉熵損失函數(categorical_crossentropy),并采用能夠自動調節學習率的RMSProp 作為優化函數來估計CNN 的權重參數,批次大小設置為32。

表2 卷積神經網絡參數Tab.2 Convolutional neural network parameters
2.2.2 手工提取的幾何運動特征
橢圓的參數(質心坐標(xˉ,yˉ)、方向角θ以及長半軸a、短半軸b)可以生成對定位區域內目標姿態粗略描述的指標。人體在不同的運動狀態下會有不同的幾何特性,為了能夠將跌倒行為與其他日常行為進行區別,本文提取視頻幀中人體目標的以下特征:
1)質心高度Hc。當人體發生跌倒行為時,質心Z在垂直方向上會發生位移變化,Hc的數值會下降。如圖3所示,質心Z到直線L的距離Hc為質心高度。
2)縱橫比ρ。如果人體發生縱向跌倒時,縱橫比ρ會發生突變;而發生橫向跌倒時,基本不變。

3)離心率e。離心率同樣包含了能夠描述跌倒行為的信息,其變化規律與縱橫比相同。

4)跌倒傾斜角θ。人體逐漸跌倒的過程中,跌倒傾斜角θ會不斷變小,但縱向跌倒時,跌倒傾斜角θ的變化不太明顯,其大小為橢圓方向角。
因此,一旦發生跌倒,以上特征可以表征人體姿態的變化。將這些特征表示為一個4 維特征向量F=[Hc,ρ,θ,e],來作為區分跌倒行為與其他日常行為的依據。為了獲得更好的融合效果,本文將提取的特征向量重復4 次變為16 維特征,同時利用Sigmoid 激活函數對特征向量歸一化處理,使數值處于0~1,最終特征向量F′=σ([Hc,ρ,θ,e,…,,Hc,ρ,θ,e]),其中σ為Sigmoid 激活函數。
3.1.1 Res2Net-YOLACT的人體目標提取
本節實驗中的數據集由人工采集,包含2 400 幅包含站、坐、彎身和跌倒姿勢的圖像。實驗利用labelme 工具手動標注人體輪廓和person 類別,借助遷移學習[22]來微調訓練新的人體分割模型。通過選取不同場景、不同姿勢的圖片來測試Res2Net-YOLACT 的提取效果,部分測試結果如圖5 所示。實驗表明,訓練的網絡模型可在不同場景下較好地提取各種人體姿勢的輪廓。

圖5 不同人體姿勢的提取結果Fig.5 Extraction results of different human poses
3.1.2 與其他人體目標提取方法的對比實驗
為了驗證Res2Net-YOLACT 網絡在人體目標提取方面的優勢,本文選取Le2i 公開跌倒數據集[23]的6 個片段,視頻片段的相關信息如表3 所示。

表3 視頻信息的介紹Tab.3 Introduction of video information
通過視覺提取效果對比(圖6 所示)和量化分析(表4 所示)兩種方式比較了幾種算法在不同環境下的人體提取效果。

表4 不同人體輪廓提取算法的量化比較結果Tab.4 Quantitative comparison results of different human contour extraction algorithms

圖6 不同人體輪廓提取算法的對比結果Fig.6 Comparison results of different human contour extraction algorithms
從圖6 可以發現,傳統的GMM 算法和Codebook 算法在不同環境下表現得不穩定,可視化結果容易受燈光變化影響,且在有背景移動的情況下會產生噪聲;三種深度學習網絡模型可視化結果均較優質,對光線變化不敏感。
從表4中可以發現,Codebook 和GMM算法Recall值 較高,最高達91.67%,但是Precision值低,F1值均值在50%左右,說明傳統背景減除算法對噪聲較為敏感,導致人體提取的穩定性不高。而深度學習模型都獲得了很高的Recall、Precision 和F1值,說明深度學習算法對于人體提取的效果更好,且穩定性較高。在速度方面,Mask RCNN 速度較慢、實時性差;而原始YOLACT 網絡,Res2Net-YOLACT 的主干網絡的深度較淺,總體結構更加輕量,其分割速度約28 fps(RTX2080Ti),在原有模型基礎上提升約4 fps,基本可滿足實時需求。
本節實驗使用的圖像數據是通過跌倒公開數據集以及自行采集的方式獲得的,共提取4 200 幅包含不同室內場景下人體站立(1 050 幅)、坐立(1 050 幅)、彎身(1 050 幅)和跌倒(1 050 幅)姿勢的圖像。根據訓練集∶測試集=7∶3 的比例方式劃分數據集。為了驗證融合深度特征和手工特征對人體姿勢分類的有效性,本文在構建的數據集上將傳統的SVM算法和KNN 算法進行對比。為了公平比較,所有分類算法分別在訓練集上通過5 折交叉驗證進行參數選擇。具體地,借助sklearn 庫中的GridSearchCV 類,即網格搜索方法選取最優參數,使得驗證數據集的準確率最高。最后均在相同的測試集上比較各算法的準確率,對比結果如圖7 所示。

圖7 測試數據上準確率的對比結果Fig.7 Accuracy comparison of three algorithms on test data
由圖7 可以看出,與傳統的KNN 和SVM 分類算法相比,本文算法分類結果更優,其準確率更高。相較于單一的手工特征和CNN 特征,以雙路融合特征作為輸入進行分類,其結果均獲得了一定提升。在本文算法下,與單一的CNN 特征相比,在融入手工提取特征后,人體活動分類準確率提升了1.03 個百分點。總體表明,手工提取的跌倒特征有助于姿勢的識別。
為了綜合驗證本文算法的準確性,采用分辨率1 920×1 080 的固定攝像頭拍攝10 段模擬人體跌倒的視頻,每段視頻包含150 左右幀圖像,白天正常光錄制5 段和晚上燈光照明(干擾光)錄制5 段。每段視頻均包含模擬者正常站立、坐、彎身和跌倒的行為。
3.3.1 不同跌倒檢測方案測試
實驗結果如表5 所示,實驗數據可觀察到:Codebook 和GMM 方法跌倒檢測幀數較低,原因是當人體跌倒不動時背景減除算法容易造成目標的丟失;閾值法指設置檢測閾值,當其中一個指標超過閾值時即判定為跌倒,此方法簡單但存在較高的誤判率。CNN 分類可以提取到圖像的深度特征信息,檢測效果優于閾值法,但是缺少人體姿勢變化的相關特征,跌倒特征不夠充分。Mask RCNN、YOLACT和Res2Net-YOLACT這些深度學習算法的跌倒檢測準確率高、誤判率低,優于傳統的背景減除算法。經3.1.2 節驗證,Res2Net-YOLACT 網絡在速度上存在優勢。總體分析可得,基于Res2Net-YOLACT和融合特征CNN 方法的檢測準確率可達97.14%,誤判率為1.43%,并且檢測速度快,可滿足實時性的要求。

表5 不同跌倒檢測算法對比實驗Tab.5 Comparison experiment of different fall detection algorithms
3.3.2 不同光照干擾下對比實驗
上述實驗表明了基于Res2Net-YOLACT 和雙路融合特征的在跌倒檢測應用的優勢,考慮到現實場景會受光線亮度的干擾,因此本文設置不同光照環境下的對比實驗來驗證光照對本文算法跌倒檢測的影響。錄制環境分為白天正常光照和晚上燈光照明(干擾光),相應實驗結果如表6 所示。從實驗結果可知,在不同光照下,跌倒檢測的準確率、誤判率并沒有發生很大的變化,表明本文提出的跌倒檢測算法對光照的干擾不敏感,魯棒性較高。

表6 光照干擾對比實驗結果Tab.6 Comparison result with light interference
3.3.3 跌倒檢測算法的測試
為了評估本文跌倒檢測算法在視頻片段上的檢測性能,邀請10 名志愿者分別模擬行走、坐起、下彎、躺和跌倒活動,總共記錄了500 個視頻片段。跌倒活動和非跌倒活動的檢測結果如表7 所示。

表7 提出的跌倒檢測算法的檢測結果Tab.7 Detection results of the proposed fall detection algorithm
從表7 中可以觀察到,在400 個非跌倒視頻中有8 段被誤檢為跌倒,而在100 個跌倒視頻片段中有3 段未被檢測到,總體上準確率高且誤檢率低。分析結果:攝像機視角可能使質心垂直速度的計算受到影響,造成漏檢;在姿勢分類階段可能出現單幀圖像的錯誤分類,最后造成個別視頻片段的誤檢。為解決該問題,可以采用多個攝像視角捕獲不同的姿勢來進行改善最終結果。
本文提出了一種新的基于計算機視覺的跌倒檢測算法。該算法主首先利用Res2Net-YOLACT 網絡提取人體區域,魯棒性比傳統背景減除算法更高,檢測速度比原始YOLACT 模型結構更快;然后,通過兩級判斷流程來區分跌倒與正常行為,這樣可減少僅依靠網絡模型帶來的高運算量,并且與單一的CNN 網絡相比,雙路融合特征的模型算法準確率更高。綜合實驗表明,本文提出的算法對單幀圖像的檢測率較高,誤報率較低,并且對光照的干擾具有魯棒性。今后的工作將充分考慮實際應用中軟硬件、存儲及實現平臺的要求,在最少的資源消耗下高效地完成跌倒檢測。