趙珍珍,董彥如,曹 慧,曹 斌
1.山東中醫藥大學 智能與信息工程學院,濟南 250355
2.山東中醫藥大學附屬醫院 心病科,濟南 250000
全球人口預期壽命的增加與生育率的下降導致全球面臨人口老齡化的危機,聯合國出版的《2020年世界人口老齡化-老年人的生活安排》[1]中預估2050年的老年人口將達到15億以上,65歲及以上的老年人口總數將由2020年的9.3%增長至16.0%左右,特別是人口眾多的國家,如中國,預測到2022年左右,超過65歲的人口將占總人口的14%;并且到2030年,中國將會進入老年人口占比25.26%的深度老齡化社會。在這快速老齡化的社會,老年人的健康問題日益凸顯,失能、半失能老人數量急劇增加,空巢獨居老人健康社會風險加大[2],老年人健康問題成為全球關注的焦點。而跌倒在全世界范圍內成為影響老年人健康的主要原因,其會導致老年人在生理與心理上產生不同程度的損傷,甚至會導致死亡[3]。因此,各式各樣的跌倒檢測算法應運而生。
跌倒檢測與識別的主要步驟包括目標檢測、特征提取和定性分類,其中目標檢測主要表現于檢測跌倒的視覺傳感器設備中,通過背景差分、幀間差分等方法定位圖像或視頻中的被測目標,而對于便攜式的傳感器則可以忽略,這一類傳感器是通過慣性測量單元收集人體運動學數據,其本身代表被測者的具體狀態,不屬于目標檢測的范疇,本文不過多贅敘。特征提取是根據算法結構和處理方式采取不同的方法獲取特征,至于定性分類是指根據采集的不同屬性判定數據的具體類別。其中,本文圍繞著特征提取這一重要步驟將跌倒檢測算法分為閾值分析法、基于機器學習的檢測算法和基于深度學習的檢測算法三類。閾值分析法是將實時的加速度或二次處理后的均方值等數據作為特征值,并與通過大量跌倒實驗得出的閾值作比較,當數據值超過或低于閾值時判定為異常情況。基于機器學習的檢測算法則是通過人工設計的特征算子來處理并描述底層視覺數據,比如HOG[4]特征、ORB[5]特征和LBP[6]特征等,該類算法含有多種功能的分類器,具有顯著的分類優勢。但是該類算法過度依賴于人工提取動作特征,一旦特征樣本發現偏差,跌倒檢測的性能便會極度下降,并且上述的特征算子難以獲取復雜圖像中的語義信息,而基于深度學習的檢測算法能較好地彌補的該缺點,可以自動獲取樣本數據中的特征值,形成一種學習策略,擁有很好的特征表示能力。
現階段,閾值算法、機器學習算法、深度學習算法及其變體已被廣泛應用于跌倒檢測領域中,本文著眼于跌倒檢測的算法,首先介紹了單一算法中基于閾值分析的跌倒檢測算法、基于機器學習的跌倒檢測算法和基于深度學習的跌倒檢測算法,概述了單一算法的優勢與不足之處。其次根據混合算法的雜糅的特點,詳細說明了多種算法結合后取得的檢測成果。同時,梳理了跌倒檢測算法中采用的公共數據集,最后總結了跌倒檢測算法的發展趨勢。通過以上分析,理清了跌倒檢測算法自身的意義與重要性,為后續的改進提供創新思路,為跌倒檢測系統的落實提供理論基礎。
研究者們從不同的方面綜述了跌倒檢測算法,涉及跌倒背后的生理原因、人體運動學、各種傳感器設備、分類技術和特征提取方法,為跌倒檢測的整體發展提供了有利的幫助。本章將從軟硬件角度概述主要的跌倒檢測文獻。從硬件方面,Mubashir等[7]從可穿戴式傳感器、環境式傳感器及視覺傳感器三方面綜述了跌倒檢測系統及算法,回顧了使用加速度值、姿勢分析和時空分析等相關文獻,得出前兩種傳感器硬件成本較低且便于安裝,而視覺傳感器則擁有良好檢測效果的結論。Bet等[8]綜述了可穿戴式傳感器在檢測跌倒中的最新技術及研究中使用的特征,他們發現腰部是最常用的佩戴位置,且從加速度值中提取特征占比較多,另外還觀察到利用機器學習提取特征的研究正在增多。但此類研究存在一些問題,如研究人群的類型、跌倒風險評估缺少統一標準等。Zhang等[9]基于視覺傳感器的角度分別概述了單個或多個RGB攝像機、深度相機、紅外相機與3D攝像機陣列的跌倒檢測方法,且是首次歸納了關于視覺類跌倒檢測的公共數據集。Cai等[10]則是回顧了Kinect傳感器及類似相機獲取的46個標準數據集,目前有20多個正在被高頻度地使用,文中強調了各數據集的特點,為跌倒檢測提供客觀依據。此外,自Kinect相機出現,其價格公道、易于安裝的優點使得基于視覺的跌倒檢測得到了更深一步的研究。Gutiérrez等[11]回顧了近五年的基于人工視覺的81個跌倒檢測系統,從表征(如光流)到分類技術(如支持向量機SVM)進行概括,發現基于人工視覺的系統實現了傳統意義上的環境領域的檢測。然而現有公共數據集相互獨立,缺少系統性能評估的共同參考框架,這使得系統之間的性能難以比較。
隨著電子元器件的發展,更小型的設備被研究出來,在過去幾年,智能手機輕便、易攜帶的特點使得基于智能手機的跌倒檢測成為熱門研究主題之一,Luque等[12]提到智能手機中使用固定閾值或機器學習算法較多,但在手機上設定加速度閾值難以掌握,手機自身的硬件不足以維持復雜的跌倒檢測算法。Lima等[13]回顧了基于智能手機進行人類活動識別,整理了機器學習和深度學習算法的應用與研究,為基于智能手機的跌倒檢測提供良好的理論依據。另有González-Caete等[14]研究智能手表在跌倒檢測中的可行性,其成本低、便攜帶的優點得到廣泛認可,為跌倒檢測的實現提供了其他可能性。但該類研究中個人隱私問題受到較高關注度,并且缺乏真實跌倒的基準數據集作為參照。
從軟件方面,Perry等[15]回顧了加速度在跌倒檢測中的作用,對比了使用加速度和不使用加速度的實時檢測跌倒,他們發現加速度發揮了重要的作用,并且提到加速度數據的好壞會影響檢測結果。Delahoz等[16]整理了跌倒檢測系統中的技術手段,對各種研究進行定性比較,指出定義閾值的重要性,詳細介紹了機器學習在跌倒系統中的特征提取、選擇和構建的過程,同時他們還總結了SVM、決策樹(DT)和K-近鄰(K-NN)等分類算法,比較了各算法的時間復雜度,探究了各模型的評估策略。Ramachandran等[17]則基于閾值、基于機器學習總結了跌倒檢測,介紹了影響跌倒的生理因素,并重點介紹機器學習在跌倒檢測中的應用,總結出該類算法能有效檢測跌倒行為。但檢測設備中有部分可穿戴式設備(如腕帶)不滿足檢測系統要求,存在假陽性的問題,難以辨別類跌倒動作,另外收集的跌倒數據需要考慮真實跌倒時產生的生理變化,便于提高跌倒檢測的真實性。Usmani等[18]重點從機器學習算法的角度介紹跌倒檢測及預防系統的發展趨勢,他們發現跌倒檢測的相關文獻中使用單一或多種機器學習融合的算法較為常見,其中SVM內存效率高使得其在近幾年使用率最高,但在跌倒檢測領域中機器學習難以在短時間內分析肌肉因刺激產生的變化并做出響應,因而它應用于預防跌倒的算法較少。Islam等[19]則是從深度學習的角度綜述了跌倒檢測算法,從工作原理、深度學習的方法、使用數據集及性能指標系統地進行比較,重點強調了LSTM(long short-term memory)、CNN(convolutional neural network)、AE(auto encoder)算法在跌倒檢測中的應用,這些算法表現出強大的功能,但深度學習同樣存在一些問題,比如LSTM的訓練時間長,涉及大量的參數,對硬件設備要求較高,基于CNN系統易受到攻擊等。周燕等[20]在深度學習的基礎上概述了二維人體骨架姿態在跌倒中應用,詳細討論了單人與多人骨架的研究方法,總結了近幾年相關的先進的算法,同時介紹了公開標準數據集與評價指標。該類算法能更充分地汲取圖像信息,擁有良好的魯棒性,運用該算法的研究正逐年增加。Wang等[21]從數據收集、傳輸、傳感器融合及物聯網平臺等方面進行文獻整理,介紹了單個傳感器與多個傳感器在信息處理過程中主要是基于閾值、基于機器學習和基于深度學習的方法,闡述了數據融合、特征融合及決策融合的方法,他們指出機器學習優于基于閾值的跌倒檢測,深度學習在計算機視覺上的跌倒檢測做出巨大貢獻,而強化學習可能是未來跌倒檢測的發展趨勢。不同于Wang等對單個傳感器和多個傳感器的跌倒過程(包含傳輸、信息處理、算法、存儲、數據集)進行清晰的介紹,本文在現有綜述的基礎上發現很少有文獻對跌倒檢測使用的算法進行總結,因而本文綜述了跌倒檢測使用的算法,分析了單一算法和多算法融合的異同,主要做出以下貢獻:
(1)從算法的角度梳理跌倒檢測算法的發展現狀,詳細地介紹了基于閾值、基于機器學習、基于深度學習的跌倒檢測算法。
(2)對比跌倒檢測中單一算法與混合算法的優劣。
(3)探究不同算法的性能及實際意義并總結常用的跌倒數據集。
(4)總結跌倒檢測已有成果及其面臨的挑戰。
此外,本文在表1中對比了三類算法的優劣并展示了跌倒檢測算法的整體流程(如圖1)。

圖1 跌倒檢測流程Fig.1 Fall detection process

表1 三類跌倒檢測算法Table 1 Three kinds of fall detection algorithms
基于閾值的跌倒檢測算法是通過人體體態轉變時的特征值來判斷跌倒動作是否產生,常用于便攜式設備中,如Sun等[22]利用足底傾斜角傳感器系統來識別人體狀態(圖2(a)),通過X軸與Y軸分析雙足移動時的傾斜角變化,但傳感器測得的數據波動幅度呈現兩極分化,為此在足底傾斜角特征中設定閾值提取可用數據,結果表明該算法達到了92%的準確率,但該算法因硬件限制,難以實現對振動做出快速動態響應。Nasiya等[23]則提出了可穿戴式跌倒檢測系統(圖2(b)),該系統通過3D加速度計實時采集使用者的動態加速度來檢測人體狀態,從X、Y、Z軸計算人體移動的方向,并設定角度閾值作為跌倒判定標準,結果表明檢測成功率最高可達95%,然而,個體生活的差異使得穿戴式傳感器呈現明顯的不便。Weng等[24]選擇利用智能手機傳感器來探究跌倒檢測(圖2(c)),該研究在智能手機上增加了加速度計與陀螺儀,根據手機存放的位置設定加速度閾值,最終經過實驗測試發現手機置于腰部位置時,靈敏度最高達到96.43%。現如今,市場上已推出輕量級、低功耗的便攜式設備,大幅度降低了使用者發生跌倒的幾率,增加了安全保障。但便攜式設備尚未完全普及,產品質量、功能設計和實際操作是否真實滿足老年人的需求有待進一步檢驗。于是,環境式的傳感器為老年人提供了第二層保障,環境式傳感器中最常見的是視覺傳感器,其主要通過監測的視頻流或單個幀圖像中人體活動并識別動作來確認使用者的當前狀態,Yuan等[25]采用Kinect傳感器進行跌倒檢測,首先利用傳感器收集深度圖像序列,而后提取圖像序列中的人體輪廓(圖2(d))、計算人體長寬比等相關參數,最后將參數與閾值相互比較,獲得目標的行為狀態,但該算法存在混淆彎腰與跌倒的問題,需要進一步的改善閾值的設置。馬宗方等[26]同樣使用Kinect傳感器檢測人體發生的異常情況,但該算法選擇結合雙閾值來改進算法結構,達到93.13%的準確率,具體內容將在混合算法中詳細敘述。除此之外,還有其他基于環境式的算法如利用壓力傳感器[27]、無線網[28]等來監測老年人的日常生活,該類算法同樣是基于閾值分析判定,在一定的范圍內進行目標識別,實時計算出人體活動姿態。

圖2 基于閾值的跌倒檢測算法的各類傳感器Fig.2 Various types of sensors for threshold-based fall detection algorithms
通過設定閾值分析人體動作是最為常見的一種算法,該算法雖然存在虛報率高、誤差大的弊端,且閾值的設定需要根據使用的傳感器和跌倒數據進行合理選定,不同情景下會產生不同效果,跌倒檢測系統的性能不穩定。但其有計算簡單、速度快的優點,同時隨著硬件的精進,檢測誤差率已大幅度降低,在處理慣性數據與圖像數據時能夠快速檢測出異常數據、定位圖像中的目標區域,分割前景等等,存在一定的使用價值。
機器學習算法擁有強大的識別分類功能,能自動學習數據屬性并建立分類模型,其中包含有多種分類器,可根據特征選擇合適的分類器,在跌倒檢測算法中主要采用有監督的機器學習算法。Ozdemir等[29]研究了六種不同的機器學習算法來檢測跌倒,他們選取了原始數據峰值周圍4S時間窗口的數據,通過分類器進行特征提取與縮減,實現了準確率、特異性及靈敏度都能達到95%以上。但參與的實驗對象數量偏少,當增加新對象或擴大活動范圍時將無法維持測試準確率。為此,Mrozek等[30]提出了一種新型可擴展架構的系統用于遠程監測,他們提出隨機森林(RF)、SVM、人工神經網絡(ANN)和增強決策樹(BDT)分類器,通過五倍交叉驗證及最佳參數設置,BDT展現了最優分類,在SisFall數據集中達到了99%的平均準確率。但從實驗對象獲得的監測數據與老年人存在一定的差距,真實數據源仍是跌倒檢測算法面臨的難題。為避免該問題,Dhole等[31]采用智能頭盔和慣性傳感器分別提取被測者的腦電圖及行為數據,選擇小波能量從時域和頻域提取通道特征,再利用RF分類器學習,以熵作為標準篩選出跌倒情況,最終分析結果表明該算法的精確度可達98%。而Ramirez等[32]選擇采用攝像機video-camera拍攝真實照片,將照片中的人體骨架作為特征,他們選擇了KNN、SVM、RF、MLP(multi-layer perceptron)、Adaboost(adaptive boosting)、XGBoost(extreme gradient boosting)作為分類器,且同時在兩種數據集上進行測試。可以發現,同一特征、同一分類方法在不同的數據集上獲得不同的檢測結果,數據源對跌倒檢測屬于重要影響因素。此外,基于機器學習的跌倒檢測分類器大部分是二分類,相較于人體活動時的姿態的變化,這些分類器在運用到現實生活中便存在不可忽視的不足,而多標簽分類算法為解決該問題提供可能。Thakur等[33]提出了多標簽的K-NN算法,并且在數據集上進行跌倒動作與類跌倒動作檢測,該算法表現出優良的性能,降低了假陽性的概率。還有其他有監督機器學習的跌倒檢測算法[34-39]。
Kim等[40]研究的跌倒檢測模型同樣使用了多種有監督分類器,但該模型中提出了無限特征選擇算法以及活動自動標注,且在離散和連續時間序列的數據上都達到了99%的平均分類準確率。若利用無監督的分類器,根據數據本身的屬性,自主選取特征,進而完成樣本數據的種類劃分,相較于需要手工標注樣本集特征的有監督分類器能夠極大地減少工作量。于是,Diraco等[41]提出一種k-means無監督算法,基于開普勒效應在不同細節水平上描述人體姿勢,獲得身體骨架與描述姿勢的直方圖信息,經過觀察組與測試組的實驗,測試顯示出良好的檢測性能,但該實驗存在前期校準長達95 min的不足,實驗收集的數據不具備代表性,無法驗證真實情況下的校準時長,在現實中可能需要更長時間。
機器學習算法中含有多種有監督與無監督的分類器,在跌倒檢測中更傾向于有監督的分類器,其根據選定的特征值完成跌倒與日常活動的區分,其中特征選定是機器學習算法的成敗關鍵,一旦手工提取的特征不理想便會對跌倒檢測造成極大的影響,反之,能夠實現優異的檢測率;無監督的機器學習算法則能自動提取數據特征進而完成分類,大幅度避免人工提取特征的劣勢,未來該方向將會是跌倒識別領域的研究熱點。此外,真實跌倒的數據集量較少,并且機器學習算法在輕量級的數據集中達到的性能要遠勝于重量級數據集,因此現階段基于機器學習的跌倒檢測算法仍在進一步研究中。
深度學習是當前最為熱門的一項技術,廣泛應用于多個領域,尤其在圖像識別方向獲得顯著成就,其中CNN在人體動作識別領域發揮重要的作用,2014年Girshick等[42]提出R-CNN(region-CNN)算法進行目標檢測,該算法在PASCAL VOC檢測數據集上完勝傳統的DPM(deformable parts model)檢測算法,而后便不斷出現各種基于CNN架構的跌倒檢測識別算法,CNN在跌倒檢測領域已占據絕對的領導地位。基于深度學習的跌倒檢測算法與基于機器學習的跌倒檢測算法類似,唯一的區別是自主選取特征,并且擁有強大的學習能力。以下從CNN、RNN(recurrent convolutional neural network)及AE(auto encode)三個方面介紹跌倒檢測算法。
2.3.1 基于CNN的跌倒檢測算法
現階段已有大量研究文獻表明CNN算法在檢測跌倒領域取得了顯著的性能,具體可分為CNN、1D CNN(one-dimensional convolutional neural network)、OF CNN(optical flow convolutional neural network)及3D CNN(three-dimensional convolutional neural network)[19]。
(1)CNN
Yu等[43]提出了基于CNN的跌倒檢測算法,該算法將碼本背景減除法提取出人體輪廓作為特征輸入到CNN中,通過標識分類不同的人體活動(如站立、躺下)來區分人類正常活動與跌倒等異常行為,可達到96.88%的跌倒檢測率。然而跌倒與躺下動作的輪廓剪影相似度較高,測試結果中含有誤判的實例。而Silva等[44]設計出基于CNN的跌倒檢測算法的多流學習模型,該模型采用可分離的并行網絡架構便于將多種高級手工特征分別輸入對應的VGG-16網絡中訓練,當其中一條特征流出現異常時利用其他特征流進行糾正,最后將學習的最優秀的網絡與輸出相關聯,該模型測試后能夠達到98.77%的準確率,但其選擇的光流、人體姿態和RGB特征都屬于圖像的范疇,算法的一般適用性有待考量。
但是,基于慣性傳感器采集加速度或信號等數據的CNN跌倒檢測算法在后期可進行降維處理或映射成圖像格式來檢測跌倒。Yhdego等[45]提出將加速度數據提供給CNN學習跌倒信息,他們利用小波變換將加速度值轉換成圖像,再采用遷移學習在圖像上訓練深度CNN模型。為了提高準確率,還在譜系圖像中進行數據增強,補充了有限的標記的跌倒數據,最終該方法的跌倒準確率達到了96.43%。Abdulaziz等[46]提出降維處理特征數據的跌倒檢測算法,其采用多線性原理成分分析對采集的數據進行特征降維,再基于殺手啟發式優化的AlexNet卷積神經網絡學習特征,其中應用了5層卷積層來優化分類器,激活過程與高計算量有助于提高檢測的準確性,最后經過仿真實驗發現該算法精確率達到了99.45%。然而,跌倒動作與類跌倒動作易產生混淆,在跌倒過程中,所選擇的特征起到決定性的作用,優化的學習分類器和特征選擇過程能提高算法的性能。
CNN以一張圖像作為輸入,在跌倒檢測中可用于處理視覺傳感器的圖像和慣性傳感器轉換的圖像,為了提高檢測性能,研究員們根據數據自身屬性采取不同的計算方法(如均值、求熵)選擇優質的特征[47-48],在CNN的基本結構上進行改進[49],來提升檢測算法的實用性。
(2)1D CNN
在處理由慣性、角度等傳感器采集的一維信號數據時,除了將一維數據映射成二維圖像外,還設計出能夠處理一維數據的1D CNN。Zhang等[50]提出多視角深度學習框架的檢測跌倒系統,他們將多個時間序列流作為多視圖的一維圖像輸入CNN中,其能了解隱藏的非線性模式,并利用完全連接的神經網絡融合所有學習模式,在包含跌倒及日常活動的數據集測試后發現該系統檢測率達到了91.5%。然而該算法基于智能手機采集數據,算法的計算復雜度越高對硬件設備的要求越佳,個人隱私和系統安全性的問題并未解決,它們仍受到較高的關注。Bolic等[51]則基于雷達傳感器輔助檢測跌倒來避免上述問題。他們提出學習多層次特征,將二次處理后的慢時間序列輸入到1D CNN中訓練目標模型,并采用全局最大池技術提高模型的可分辨性,獲得了92.72%的準確率。Xia等[52]提出新型自動霧檢測系統,對比霧步態與正常步態區分異常,其中一維加速度數據在網絡模型中以流線型的方式自動學習特征,消除了手工特征的需要和特征選擇,達到了99.85%的靈敏度。但基于霧的數據集內容不夠豐富,對實驗對象的測時間較短且需要在特定的環境進行測試。此外,不同年齡段的被測者的步態等行為存在差異,實驗應當按照年齡分組測試,確保實驗嚴謹,獲得精確的檢測系統。
1D CNN的維度低,類似于滑動窗口,在行為識別中一般處理序列信號數據,建立序列模型。可直接處理慣性傳感器(如加速度計)采集的時序信息,學習不同動作特征和自動選擇特征,在跌倒檢測實驗中同樣實現了良好的性能。
(3)OF CNN
OF CNN算法的特點是由光流作為二維圖像數據特征,從而追蹤目標的動作,解決因遮擋物而造成前景難以分割的問題。Wang等[53]提出PCANet網絡來檢測跌倒,采用光流法提取RGB圖像中的特征,但花費時間過長,于是Nú?ez-Marcos等[54]采用VGGNet-16網絡改進圖像處理的光流和卷積網絡結構,由于視頻是由連續的單幀堆疊呈現,跌倒識別只需檢測出幾個相鄰的幀即可,為描述兩幀之間的位移矢量,他們使用了tvl-1光流算法[55]處理數據,光流公式如下:

其中,I0和I1是圖像對,x表示為x軸上的像素點,u=(u1(x),u2(x))T是二維位移場,λ表示為相對權重,E代表能量函數。在數據處理過程中,RGB圖像會轉為光流圖像并輸入神經網絡學習,最后的結果表明其精確度為83.02%,且在各個公開數據集中獲得最優性能,但該算法極易產生位移場,使得檢測精度降低,另外tvl-1算法雖能去除靜態背景,但會造成各種背景噪聲,無法獲取完美的前景。針對以上問題,Chhetri等[56]提出了增強動態光流的跌倒檢測算法,通過公式(2)進行修正能量,增強光流,并且在公式(1)中添加了排序函數,如公式(3):

其中,d是一個參數的向量,S(q| d)+S(t|d)是每個時間和以后時間q的排名函數的得分,主要目的是在動態光照下提高分類精度,降低數據處理時間。該算法同樣是先計算RGB視頻中的光流信息進而轉變成光流圖像,通過秩池方法將光流圖像變為動態光流圖像,并將單個動態光流圖像融合為一幅圖像,減少處理時間的消耗,最后輸入CNN算法中。結果表明該算法的特異性及敏感度達到93.04%,精確度達到91.4%左右。但是,該算法未考慮到長期動作演變的局限,基于OF CNN的跌倒檢測算法仍需進一步研究探索。
光流能夠在連續的圖像中檢測到細微的變化,將光流作為特征運用到CNN中不僅能削弱視頻中光線變化影響目標檢測的問題,而且動態光流技術能將視頻匯總為單個圖像的機制,有助于提高圖像預處理步驟的性能。一些空間序列跌倒檢測算法如表2所示。

表2 空間序列的跌倒檢測算法Table 2 Fall detection algorithms for spatial sequences
(4)3D CNN
3D CNN能夠同時處理時間序列與空間序列數據,具備超強的學習人類行為的能力,Ahn等[60]基于3D CNN的跌倒檢測算法處理連續運動視頻,該算法提高了以視頻圖像作為輸入的跌倒檢測系統的準確率,與基于3D人體骨骼信息[61]的算法相比,避免了骨骼結構扭曲的形變,能檢測出慢速跌落,通過TST數據集實驗獲得準確率96.9%的實驗結果。Li等[62]同樣提出基于3D CNN的跌倒檢測算法,該算法首先通過Kinect收集的數據來訓練3D CNN,然后再將新收集的數據輸入到3D CNN中來微調網絡,利用時空模式區分正常行為與跌倒狀態,最后輸入視頻流測試三維CNN。該模型獲得更精準的檢測效果、緩解了泛化問題,并在自定義數據集中進行驗證,結果發現該方法在跌落的0.5 s內檢測跌倒能夠達到100%準確率。但該實驗樣本集較少,在處理大型數據集時性能存在不確定性,因此可以采用數據增強手段增加數據量,避免產生模型過擬合的問題。Kasturi等[63]基于kinect深度相機采集的視頻數據輸入3D CNN中進行跌倒檢測,該算法將視頻幀堆疊成立方體結構輸入3D CNN,觀察不同幀數對三維內核的影響,進而獲得良好的模型,通過數據集URFD進行跌倒檢測實驗后發現在訓練與測試集上都達到了100%準確率。若有大量的真實跌倒數據將能探究層次更深、魯棒更強的網絡結構,進而實現泛化應用。
此外,自然光照會大幅度影響數據質量,造成檢測與分類精度下降,Kim等[64]針對該問題采用熱攝像機采集熱數據集,再輸入3D CNN中學習人體在時空維度的特征,進而實現日夜監控,全天檢測,最終達到了90.2%的平均精確度。
類似地,雙流卷積神經網絡(Two-Stream CNN)[65]具有時間網絡和空間網絡,能夠在時空領域融合抽象特征,進一步提高網絡性能。在跌倒檢測算法中,從給定的數據集中提取單個特征(如光流、輪廓)被稱為單流體結構,雙流或多流結構會提取多個特征表示。Simonyan等[66]將RGB圖像與光流位移結合作為運動特征,由CNN算法識別活動。Zhi等[67]提出基于Two-Stream的跌倒檢測算法,以3D CNN和VGGNet-16作為輸入,同時去除背景干擾及增添光流信息,再將兩個網絡中softmax融合作為Two-Stream CNN的輸出,實驗結果顯示Two-Stream CNN能夠達到96%的檢測率。Khraief等[68]則根據視頻運動之間的特征提出了多流卷積神經網絡,以RGB、深度、運動及形狀四種特征提取四種模式,并且根據特征的關聯度附加權重,使得多流網絡互補信息,完善整體性能。其中,為了提取深度特征,作者放棄了手工特征,而選擇提取光流的大小和方向,其中光流幅OFmag與方向OFphase的相位信息如公式(4)、(5):

該算法的四種特征經過融合后,利用遷移學習與數據增強技術擴大數據量,而后輸入VGGNet-16網絡訓練模型,最后在標準公開數據集中最高可獲得99.72%的準確率。由此發現多模態特征訓練的深度網絡模型能避免當前存在的環境問題(如無法覆蓋區域),可同時用于在室內外場景的跌倒檢測。
3D CNN比二維卷積多出的時間維度使得其能直接處理視頻數據,而不用逐幀分析,能夠更有效地捕捉各幀之間的運動信息,進而建立更為精確的模型,察覺出人體運動的微小變化。一些時空數據的跌倒檢測算法如表3所示。

表3 時空數據的跌倒檢測算法Table 3 Fall detection algorithms for spatio-temporal data
2.3.2 基于RNN的跌倒檢測算法
RNN擁有“記憶”信息的功能,可將前一個神經元的輸出直接作用于下一時間戳的自身,長時間留有歷史信息,適于處理長時相關性任務。Mauldin等[70]利用含有GRU(門控遞歸單元)的RNN來檢測跌倒,其中,GRU能夠解決RNN在反向傳播中的梯度問題,GRU與LSTM網絡擁有相同的收斂性,但訓練參數少,計算量小,屬于輕量級深度學習體系,因而在智能手機等小型終端設備的行為檢測中較受歡迎。LSTM[71]算法因其特殊的遞歸神經網絡,能解決長序列過程中梯度爆炸與梯度消失的問題,主要的運算公式如下,→和←分別代表前向和后向傳播,xt為當前的時間信息,ht-1為以前的隱藏輸出,ht為當前的隱藏輸出:

最后的向量hT是前向和后向過程的輸出的連接向量,如下所示:

它可以利用門單元來控制網絡中的長期依存關系達到保存長期記憶的功能,因而更進一步提高了跌倒檢測的效率。Ge等[72]提出基于共顯增強的RCN(recurrent convolutional network)的跌倒檢測算法,RCN由分段的RNN、CNN和LSTM組成處理視頻相關幀,共顯增強方法能突出視頻中的人類活動區域,用于增強RCN對視頻各幀的特征學習,RCN在開放的數據集進行實驗,準確率高達98.96%。另外,根據RNN繼承歷史信息及收集未來信息的特性,雙向RNN、雙向LSTM(Bi-LSTM)算法相繼被提出。其中Bi-LSTM能夠同時處理過去與未來的元素,相對于LSTM擁有更高的預測準確率。Taramasco等[73]針對跌倒檢測算法,采用了LSTM、GRU和Bi-LSTM三類循環神經網絡算法,Bi-LSTM用于處理臨時數據序列,同時考慮過去與未來的信息,與LSTM傳遞信息方式相同(圖3)。

圖3 Bi-LSTM原理圖Fig.3 Bi-LSTM principle diagram
運算過程如下列公式:


表4 基于時間序列的跌倒檢測算法Table 4 Time series based fall detection algorithms
跌倒檢測的評價指標為準確率、靈敏度及特異性,具體計算公式如下:

其中,T P為真陽性,FP為假陽性,TN為真負值,FN為假負值。
2.3.3 基于AE的跌倒檢測算法
特征的選擇和融合能產生更高級的特征集,PCA、LDA和其他非線性特性融合機制推動基于深度學習算法的研究,而近年來AE[82]算法代替了非線性特征融合的方法。
2016年Jokanovic等[83]提出基于DCNN的跌倒檢測算法,由堆疊的AE和softmax構成深度網絡模型,通過AE自動學習,捕捉時頻特征的復雜性,并且能夠將底層特征反饋給分類器。與78%的傳統算法(如PCA)相比,該算法的準確率達到了87%。2017年Droghini等[84]提出了基于深度卷積的自動編碼器的跌倒檢測算法,該算法采用了端到端的策略利用聲音傳感器采集音頻,(由于日常動作在生活中占據絕大部分)將日常動作事件的音頻訓練成識別模型,其中,實驗分別在安靜與嘈雜的環境中測試,結果表明在聲音清晰的環境中跌倒檢測算法的準確率達到94.61%,在噪聲環境下跌倒檢測算法的準確率為95.02%。雖然該算法在噪聲環境中檢測并達到較高的準確率,但音頻數據中與目標聲音不同時都能判定為噪聲,而跌倒的數據與其他噪聲的區分標準并未指明,并且噪聲應當具體分類(如物品噪聲、人聲),便于提高檢測性能。2019年Zhou等[85]基于三維卷積殘差塊提出AE跌倒檢測算法,該算法以高精度的區域提取技術提取圖像中的特征區域,并通過重構誤差技術檢測跌倒與日常活動,但在經過兩種跌倒數據集的訓練與測試實現了88.7%的檢測精度。2020年Cai等[86]提出了多任務的沙漏卷積自編碼器的跌倒檢測算法,該算法通過沙漏卷積層擴展神經元的感受野來提取多尺度特征,采用多任務機制并行完成跌倒動作的檢測和幀重建任務(增強特征代表性),以便于下一步的分類,且該淺層網絡取得了92%的準確率。
本小節主要介紹了RNN、CNN和AE的跌倒檢測算法以及其性能。根據神經網絡的特點,發現RNN與時間維度關聯度高,常用于一維時序的深度挖掘,CNN可分為一維、二維和三維網絡,其中三維卷積神經網絡的算法可以同時獲取時間信息和空間信息,實現有效檢測,但三維算法在研究上存在著技術困難,目前尚未完全解決。AE不僅可以數據降維,而且能對數據去噪,能夠完成無監督的自動動作特征提取,提高動作分類的精度,降低誤差。在跌倒檢測中,各類算法分別含有不同的優勢,在現實應用中可根據具體要求選擇對應的算法。
為了完善跌倒檢測算法,優異算法的步驟被融合,閾值分析法、基于機器學習的跌倒檢測算法及基于深度學習的跌倒檢測算法相互結合,進而更好地應用于跌倒檢測系統中。
馬宗方等[26]使用Kinect傳感器檢測人體發生的異常情況,通過計算深度圖像中的關節點相對位置與速度,設置關節點熵閾值與人體中心點速度閾值,當同時超過兩個閾值則判定發生跌倒。李文陽等[87]使用Kinect傳感器檢測人體發生的異常情況,通過處理RGB-D圖像得到人體骨骼及位置信息,并實時計算人體中心點的空間位置、運動速度和離地高度等參數,設定了速度閾值與高度閾值判定異常,實驗達到了92.7%的準確率,但Kinect傳感器無法覆蓋區域進行全方位檢測,同時被測者身體易產生遮擋的問題,檢測精度還可進一步提高。
Chi等[88]研究了裝有三軸加速度計的可穿戴式跌倒檢測系統,由于在發生跌倒的幾秒內人體加速度會經過多次變化,該系統通過檢測加速度閾值和時間閾值判定是否有失重、撞擊、靜止三個連續的動作發生,一旦檢測到連續動作則判定發生了跌倒,經實驗研究表明該系統的檢測準確率達到97%。同樣地,Wang等[89]采用佩戴在胸部的可穿戴式傳感器系統,他們將加速度三次積和角速度三次積作為新的慣性參數,該算法能夠準確區分跌倒動作與日常活動,經過交叉驗證后完成了99%的檢測率,但該方法在不同的數據集中測試時都出現動作誤判的現象,特別是一種姿勢過渡到另一種時出現明顯的加速度變化。
基于閾值的跌倒檢測算法不受體重、性別等其他因素影響,主要取決于姿勢的變化,相較于其他算法更容易設置,但易出現動作誤判的錯誤,為了提高跌倒檢測的準確率,人們又將該算法結合了基于機器學習的跌倒檢測算法進行跌倒檢測。
Shahzad等[90]基于閾值的跌倒檢測算法結合多核學習SVM算法檢測跌倒事件,該算法先根據提前設定的閾值選出異常的數據,再通過多核學習SVM算法分類事件。該算法經測試發現在腰部與大腿周圍有較高準確率,分別為97.8%和91.7%。同時該系統采用的算法有效降低了誤報率,唯一的不足之處是計算量較高。Tsinganos等[91]研究了基于閾值的跌倒檢測算法結合KNN分類算法來檢測跌倒,增加的KNN模塊提高了總體精度,在MobiAct數據集測試獲得了97.53%的敏感性與94.89%特異性,但無法明確在真實環境中該系統的準確率。Ning等[92]基于離線閾值與梯度增強樹(GBDT)的算法研究人體行為與姿態,該算法可在活動期間有效檢測跌倒等異常行為且能達到96%的靈敏度與準確度,相較于單一的DT,改進的算法獲得了更高的精度。除了以上的混合算法,跌倒檢測還結合人ANN[93-94]、隱馬爾可夫模型(HMM)[95]、RF[96]等算法。
Alo等[97]則是將閾值與自動編碼器結合來檢測跌倒,該算法提出融合加速度值的幅值向量、pitch和roll的特征,避免與手機的位置移動或固有方向不一致帶來的影響,同時采用深度累加的自編碼器算法提取特征進行學習,其能夠識別復雜的活動細節,并獲得97.13%的準確率。但在不同的訓練樣本或網絡參數中表現出不同的性能,且訓練過程耗時較多,選擇合適的深度自編碼器的參數對系統的性能將有很大的幫助。結合閾值的跌倒檢測算法如表5所示,綜上,經由閾值計算的檢測算法使用慣性傳感器居多,實驗數據為實時采集,根據精確度等評價指標,該類算法在實驗室階段已達到了較高水平。然而由年輕人攜帶便攜式傳感器模仿老年人跌倒而收集的數據效果并不理想,老人的姿態與身體狀況相對于年輕人有很大差別,因此需要加深該算法在實際中的研究。

表5 結合閾值的跌倒檢測算法Table 5 Fall detection algorithms combining thresholds
Kong等[102]考慮到視頻圖像易受光照影響,選取人體骨骼特征訓練網絡。在最大似然法訓練出模型的基礎上,采用KNN或SVM分別對站立和跌倒兩類動作進行判別分類,同時通過快速傅里葉變換對輸出圖像進行加密和檢測。實驗測試獲得良好的檢測效果并有效保護了測試者的隱私。但二分類的跌倒檢測自身含有局限性,類跌倒動作(如躺著、趴著)并不能直接歸類為跌倒。于是,Thakur等[33]提出一種多分類的K-NN跌倒檢測算法,通過結合AdaBoost算法來增強分類性能,增強分類器可表示為公式(15)、(16):

其中,bn x中x為輸入,h(xm)為輸出假設,n為迭代變量,Dt為訓練誤差之和,Bn-1(xm)為應用AdaBoost的增強分類器,a(n)h(xm)為正在增強的機器學習分類器,同時該算法采用k-folds交叉驗證來消除數據過擬合并減小誤報率。經過實驗分析,跌倒、躺下、四肢著地及其他日常活動等七類跌倒與類跌倒的分類檢測準確率都達到了99%。
蔡文郁等[103]則是通過多次分類降低誤報率。他們以視頻幀數據中的人體特征點作為輸入,利用SVM做首次分類,再將判定為跌倒的數據輸入到SVM-MultiCNN模型進行二次分類,該算法不僅在檢測準確率達到96.8%,并且測量單幀耗時縮短近一倍,提高了跌倒檢測的效率。劉峰等[104]提出將YOLO目標檢測與深度森林相結合的跌倒檢測算法,通過YOLO定位運動目標,降低背景物體的影響,同時他們提取了RGB-D圖像中頭部的時序運動特征,并估算地平面方程,進而利用深度森林算法進行特征分類,該算法能有效檢測覆蓋范圍的跌倒事件,達到97.2%的準確率。隨著YOLO的系列發展,YOLO-v3改進了backbone網絡,從原先的darknet-19升級為darknet-53,相較于之前的版本提高了檢測精度。趙心馳等[105]基于XGBoost與YOLO-v3的跌倒檢測算法,采用YOLO-v3網絡選定檢測區域,再利用姿態估計網絡提取人體關節點特征,最后輸入XGBoost中訓練,該算法能達到98.3%的跌倒檢測率。
綜上,結合機器學習的跌倒檢測算法根據各類標準數據集的屬性設計了最適用的分類器,進而達到接近完美的檢測率,其次針對自然光、遮擋和假陽性等問題提出合理的解決方案。特別是YOLO目標檢測模型,現階段已設計出YOLO-v4,平均精度比YOLO-v3高出10%,同時減小了計算量,大大提高了YOLO模型在目標檢測中的實用性[106]。因而YOLO系列算法應用于跌倒檢測中成為未來的重要研究方向。
根據深度學習各算法的優點,將多種算法相結合逐漸成為主流趨勢,比如利用CNN與LSTM分別處理空間特征和時序特征已是較為普遍的跌倒檢測算法。Lie等[107]基于LSTM與CNN提出跌倒檢測算法,分別利用CNN和LSTM狀態單元的遞歸神經網絡來提取輸入幀的二維人體骨架和處理時間骨架序列,根據結合空間特征與時間信息進行站立、行走、躺下和升降動作分類,最后該算法在經過自定義數據集訓練和測試后達到了90%的準確率。但二維骨架是人體相連的關節點在平面上的投影,相較于三維少了深度信息,對人體信息的描述不夠精確。Tao等[108]利用LSTM與RNN的研究三維骨骼數據中的人體特征姿態,并利用混合網絡算法學習不平衡人體姿勢用以檢測跌倒,可達到91.7%的跌倒檢測率。同樣利用三維骨骼數據進行跌倒檢測,Tasi等[109]采用了1D CNN與DNN算法,通過剪枝技術對骨骼提取的結果進行細化,突出特征點,減少了模型參數與計算次數,獲得95%的精確度。
曹建榮等[110]研究出運動特征融合CNN的跌倒檢測算法,他們利用改進的目標檢測網絡YOLO-v3標記目標并分離前景,而結合運動特征與CNN模型提取的特征,實現人體跌倒分類與檢測,結果達到了98.3%的準確率,并且該算法能較好地抗噪抗光照干擾。但Lu等[111]認為低維CNN難以充分獲取運動信息,并且跌倒數據集視頻類居多,因而提出基于3D CNN與LSTM的跌倒檢測算法,通過3D CNN獲取視頻人體運動特征,并采用LSTM形成空間注意方案定位每一幀中的感興趣區域,經過測試在實驗環境下取得了100%精度。Hsieh等[112]考慮了算法在現實生活中的實用性,提出了3D CNN與反饋光流卷積神經網絡的跌倒檢測算法,該算法在光流進入卷積層前采用基于規則的濾波器來監控變化的光流,可檢測到人體行為框架,當檢測到跌倒的行為順序時判定為跌倒。研究結果表明該算法能區分跌倒與正常的躺姿,且在模擬真實家庭環境的正確率達到98%。
綜上,結合深度學習的跌倒檢測算法從維度、特征、數據格式等方面探究人體運動,利用各算法優勢不斷改進,進而解決跌倒檢測中呈現的各類問題,并且取得了顯著的檢測成果。然而老人的跌倒數據集較少,研究員們普遍采用相關的公開數據集進行跌倒研究,造成訓練與測試脫離真實場景,偏離真正的研究對象,該類算法同樣需要整理收集老年人的跌倒數據,由實驗室測試階段過渡到現實世界的實際應用。
跌倒檢測算法在跌倒檢測和跌倒預防中發揮重要的作用,包括基于閾值、基于機器學習和基于深度學習的跌倒檢測算法根據自身的優勢進行跌倒檢測,各跌倒檢測算法都能夠達到極高的精確度,如深度卷積與LSTM已能成功地從慣性傳感器數據中識別使用者的活動和步態,提取的特征也能以多模態的形式呈現,削弱或避免了光線、遮擋、噪音等問題,為此將跌倒算法運用到實際生活中是當前急需考慮的問題,本文基于上述的研究對跌倒檢測的未來發展大膽地提出自身見解:
(1)隨著研究的深入,單一的算法表現出一定的局限性,難以囊括多種場景下的跌倒行為。但混合算法表現出較強的優越性,通過結合算法的優點處理多環境、多姿態的跌倒分類。比如機器學習算法中的支持向量機(SVM)能夠根據提取的特征實現優秀的分類效果,因而常與閾值分析法結合來處理跌倒檢測問題;深度學習算法中的卷積神經網絡(CNN)可以自動學習數據的空間特征,能夠根據輸入數據的屬性準確地預測和分析,所以常與長短期記憶網絡(LSTM)相結合,用于分析含有時空信息的視頻流數據。表6對比了本文所提及文獻中相同數據集的各類算法及精確度,在UMA FALL與multiple cameras fall detection dataset數據集上混合算法優于單一算法,而在URFD數據集上單一算法的性能并不弱于混合算法,因而單一算法的價值仍在探究中,但混合算法在各標準數據集上更具有穩定性。而在FDD、MobiAct dataset和Le2i數據集上對比不同的混合算法,可以發現算法結構學習的人體信息越充實,算法達到的精確度越趨于完美,因此設計跌倒檢測混合網絡時,應盡可能地獲取多維度、多特征或多模態信息,進而提高跌倒檢測算法的高效性與實用性。

表6 跌落檢測方法的比較Table 6 Comparison of fall detection methods
(2)近期熱門的“注意力機制”被廣泛運用于自然語言處理,通過編碼與解碼的框架提取文本上下文信息,而根據人體運動學的研究表明跌倒動作屬于一系列連續的肢體行為,檢測傳感器得到的加速度或生理信號呈連續性波形,因而可將注意力機制運用于處理時間序列的1D CNN、RNN或LSTM中,增強數據處理能力。
(3)CNN在圖像處理領域獲得矚目的成就,但其只能處理歐式空間規則的二維結構圖。而現實生活中含有大量不規則的拓撲結構,早前有研究發現圖卷積神經網絡(GCN)可用于處理該類數據,GCN也逐漸被用于各交叉領域中。其中,人體關節點相互連接形成類似的無規則圖結構為跌倒檢測提供良好的研究條件,現已有用于跌倒檢測中[113]。為此可將GCN與CNN結合使用,采取多模態的數據或多任務機制提高跌倒檢測性能與落實的幾率。
(4)在現實中跌倒應用在受到“攻擊”時需要跌倒檢測算法具有良好的健壯性與穩定性,而算法的這一方面極少被考慮到。因而如何加強算法的魯棒性是跌倒檢測聯系實際應用的重點。
(5)人流量較多車站或商場是老年人跌倒的高發地點,而單人跌倒檢測算法在該場景中能否保持并不適用,多目標的跌倒檢測算法、多模態傳感器的應用(如視覺傳感器和紅外傳感器)同樣是今后的研究方向之一。
跌倒已成為世界老年人高死亡率的原因之一,跌倒檢測與預防的研究熱度一直居高不下,各式各樣的監測系統層出不窮,檢測識別算法更是經歷多期更新換代。本文綜述了跌倒檢測算法的研究進展,分別從單一算法與混合算法的角度闡述跌倒檢測的發展與改進,詳細介紹了閾值、機器學習和深度學習在該領域中發揮的重要作用,其中深度學習模型是該領域的前沿算法,并且總結了所使用的標準數據集。在未來,可穿戴式設備與視頻監控仍是跌倒檢測方向的發展主力,而輕量級CNN不僅能識別人體特征,而且能有效降低計算時間,在移動設備的目標檢測上具有廣闊的前景,另外圖卷積神經網絡作為提出的新框架,不僅能學習動態的圖數據的結構、屬性和動態信息,而且能處理不規則的空間結構的圖數據,因而實現動態圖數據中異常行為的檢測。因此,可以預估今后跌倒檢測的發展趨勢將更傾向落實于生活實際的應用及多元化的結合CNN及其拓展算法。