劉曉光,靳少康,韋子輝,梁 鐵,王洪瑞,劉秀玲*
(1.河北大學電子信息工程學院,河北保定 071002;2.河北省數字醫療工程重點實驗室(河北大學),河北保定 071000;3.河北大學質量技術監督學院,河北保定 071002)
(*通信作者電子郵箱liuxiuling121@hot-mail.com)
隨著人口老齡化的加劇,全球老年人的數量預計在2045年首次超過兒童的數量。跌倒是65 歲及以上人群受傷住院的主要原因,老年人的所有重傷中有2/3由跌倒造成。在家里發生的跌倒對獨自生活的老年人來說非常危險,因為他們可能無法尋求幫助。研究還發現,超過20%因跌倒而入院的患者已經在地上躺了一個小時或更長時間,跌倒在地一個小時以上的老年人即使沒有發生墜落造成的直接傷害,也會在6個月內死亡。這說明跌倒后未及時發現不僅會使身體健康狀況惡化,而且會造成負面的心理影響。如果不能實時地檢測老年人跌倒,那么會對經濟、社會發展和社會進程帶來深刻影響[1]。
跌倒探測器可分為可穿戴式、視頻設備和環境設備。Sucerquia 等[2]只使用單個的加速度計,盡管使用基于非線性分類特征的跌倒檢測方法,彌補了單個傳感器在準確率上的不足,但是仍然存在較高的假陽性率,即容易將日?;顒幼R別為跌倒,產生誤報警。Nweke等[3]提出相似活動的區分需要用到融合慣性傳感器,即多傳感器的融合能提高識別疑似動作的精度和降低假陽性率。隨著傳感器技術的發展,可穿戴式的跌倒探測器的成本變得越來越小,有利于實時跌倒檢測。雖然可穿戴式跌倒探測器相較于視頻設備和環境設備具有成本低廉、不受環境限制和隱私性高等優點,但是視頻設備和環境設備在跌倒檢測上更加準確。Zerrouki 等[4]使用攝像頭和模式識別技術對跌倒進行檢測,達到了97.02%的整體準確度。黃濛濛等[5]利用普適、低成本的商用WiFi設備,經過在實際環境下的大量測試,所提出的方法達到了95%的準確率。雖然環境設備與傳統的設備相比,有更高的覆蓋率,并且對環境條件依賴更少,但是覆蓋的范圍依舊有限,并不能像可穿戴設備那樣便捷。
為了滿足穿戴式跌倒探測器的識別精度和假陽性率,基于閾值的嵌入式算法不再被單純使用,Saleh 等[6]提出一種高精度的可嵌入式機器學習算法,使用滑動時間窗口提取特征,然后通過支持向量機算法在電腦端對特征進行分類。算法受到低功耗微控制器中有限的內存和處理資源的嚴格限制,機器學習無法嵌入在價格比較低廉的微控制器中[7]。即使不考慮成本的因素而使用價格昂貴的機器學習芯片,也不能在低功耗的情況下頻繁訓練機器學習算法的模型。隨著移動互聯網的不斷發展,大多數可穿戴系統都配備了智能手機以傳輸和處理可穿戴數據。但是,智能手機有限的功能和計算能力可能無法完成對數據傳輸和處理的復雜任務,而且過度依賴智能手機會造成其能源和資源的消耗。為了解決這些問題,有人提出了基于物聯網云的可穿戴系統,并通過功能強大的服務器進行了增強。物聯網云技術正在推動可穿戴醫療系統的新革命,稱為可穿戴2.0,其中的主要挑戰是限制實時監控中應用的端到端延遲。此外,借助先進的技術創新和硬件的大量生產,可以在不依賴云的情況下進行設備上數據分析。在這項工作中,所有收集的數據通過無線的方式傳輸到個人計算機,以進行數據存儲和分析[8]。
郭欣等[9]使用視頻設備和嵌入式設備實時檢測跌倒,視頻設備限制了跌倒檢測的場景,同時老人的生活容易受到侵犯,可穿戴設備更容易被老年人接受;羅濤等[10]提出基于可穿戴設備的實時跌倒檢測方法,該方法使用了卡爾曼濾波并且基于閾值實時檢測跌倒,但沒有實驗結果。本文提出了一種基于閾值和極端隨機樹的實時跌倒檢測的方法。該方法分為兩步:第一步為疑似跌倒檢測。日常動作中有許多類似跌倒的動作,諸如躺下、坐下和蹲下等,這些疑似跌倒動作是有意識的日常動作,比如具有較高的加速度或者是行走的周期性消失。本文通過可穿戴設備——姿態角度傳感器和智能鞋墊對老年人活動進行判斷,識別疑似跌倒。這一步可為下一步過濾掉大部分低加速度和有周期信號的日常活動。第二步為實時跌倒檢測,在疑似跌倒檢測的基礎上,進一步識別跌倒。使用隨機森林提取特征,然后利用極端隨機樹檢測每一個疑似跌倒數據樣本,極端隨機樹算法防止疑似跌倒對跌倒檢測結果產生影響,確保了跌倒檢測的準確率。經過實際測試,該方法能夠滿足跌倒檢測中準確性、誤報率和實時性的要求。
單純基于閾值的跌倒檢測算法在穿戴式設備中易產生誤報,機器學習可以降低跌倒檢測的假陽性率,大幅度提高穿戴設備的使用體驗。本文結合閾值和極端隨機樹以降低跌倒檢測的假陽性率。出于成本的考慮,選用了價格低廉的微控制芯片。穿戴設備和上位機分別采用閾值和極端隨機樹的方法以滿足實時檢測的要求,該方法主要分為實時疑似跌倒判斷、模型訓練和提取、實時跌倒檢測三個模塊,其整體流程如圖1所示。為了避免極端隨機樹算法處理過多數據而降低系統的實時性,提出疑似跌倒檢測的方法,使用姿態角度傳感器和壓力鞋墊檢測合加速度和壓力值的閾值過濾大部分日常動作,只有疑似跌倒和跌倒的數據才會送入使用機器學習的實時跌倒檢測算法中。如果實時跌倒檢測算法檢測錯誤,那么將檢測錯誤的樣本加入日常活動中再訓練,這種反饋機制使跌倒模型成為動態的、可學習的模型。當關閉跌倒檢測系統的跌倒檢測按鈕開關時,跌倒檢測終止。

圖1 本文方法的整體流程Fig.1 Overall flowchart of proposed method
相似活動的區分需要用到融合慣性傳感技術,即多傳感器的融合能提高識別疑似動作的精度。傳感器技術的發展和基于傳感器的設備成本的降低推動了使用移動和穿戴傳感器的健康監測和跌倒檢測的實施[3]。本文使用的姿態角度傳感器是維特智能公司研發的姿態角度傳感器,型號為JY901。環境傳感器有壓力傳感器,為了使得壓力傳感器穿戴方便,將其嵌入到鞋墊中。為了保證兩個可穿戴設備的實時性,只分別計算姿態角度傳感器的合加速度和壓力傳感器足跟區域的步態周期。
合加速度閾值:由于加速度計和陀螺儀可以直接提供直線和角運動信息,因此跌倒檢測方法通常使用慣性傳感器來檢測跌倒事件[11]。姿態角度傳感器集成高精度的陀螺儀、加速度計、地磁場傳感器和氣壓計。傳感器穿戴于靠近身體重心的腰部位置,能夠提供關于受試者姿勢和運動的可靠信息,通過計算合加速度判斷受試者是否超出疑似跌倒的閾值,閾值如圖2(a)所示,如果超出閾值1.03 g,則判定為疑似跌倒,進一步通過步態分析檢測老年人足部的周期性。如果Ax、Ay和Az分別為x、y和z軸方向的加速度,則在任何時間t的加速度合成合加速度公式,可以表示為:

步態周期性:鞋墊壓力傳感器作為一種可穿戴的傳感器,便攜、不引人注目并且用途廣泛,為室內和室外環境中的實時跌倒檢測提供了有效的信息源[8]。足底壓力傳感器為薄膜基材和壓力敏感油墨制備而成的壓力傳感器,它能夠讀取足底的壓力信號,28 個壓力傳感器測量了整個足底的壓力分布。通過將整個足底分為足跟、足弓、足趾三個區域,分別計算每個區域的壓力平均值以減小誤差。壓力平均值的計算公式,可以表示為:

其中:i為區域的編號;N代表壓力傳感器的個數;Sk代表第k個壓力傳感器的壓力值。
通過計算足跟區域的壓力平均值獲取周期信號,周期信號如圖2(b)所示,當老人正常行走時,足跟會首先落地,產生壓力信號。三名實驗人員的體重為(60±10)kg,為了方便數據的處理,將得到的足跟區域壓力值縮小有一定倍數。足跟區域的閾值設為210 Pa,當壓力信號平均值大于210 Pa,足跟區域沒有檢測到壓力值,或者說受試者的行走周期性中斷,那么老人可能發生跌倒,此時足底壓力傳感器會持續采集3 s的數據,如果仍然檢測不到壓力值,則滿足疑似跌倒條件,進而將存儲的數據包發送給上位機作跌倒判斷。如果平均值小于210 Pa,說明受試者處于正常行走狀態中,則返回繼續實時檢測疑似跌倒。實時疑似跌倒檢測的流程如圖3所示。

圖2 閾值分析Fig.2 Threshold analysis

圖3 實時疑似跌倒檢測的流程Fig.3 Flowchart of real-time suspected fall detection
為了能夠實現高精度的實時跌倒檢測,本文將閾值和機器學習進行融合。嵌入式設備基于閾值判斷出疑似跌倒后,將數據發給上位機,利用隨機森林將選好的特征送入極端隨機樹算法訓練并將模型保存下來,上位機基于機器學習的模型判斷是否發生真實跌倒。基于Python開發了實時跌倒檢測的上位機軟件。軟件包含數據采集、數據處理、模型訓練和跌倒檢測等功能。數據可通過串口傳輸到上位機上,軟件支持數據的存儲和提取、模型的實時訓練和提取、實時跌倒檢測等功能。
1.2.1 隨機森林評估特征重要性
隨機森林會隨機提取訓練集的數據得到子集,從子集中有放回地隨機提取特征以構建決策樹,其在訓練過程中避免了過擬合現象,性能優于單分類器[12]。高維的數據容易導致隨機森林分類錯誤,特征個數越多,樹的相關性越大,錯誤率越高。為了減少特征的維數,使用隨機森林對特征進行選擇。
本文利用隨機森林對特征的重要性進行評估,其原理是通過計算特征對森林中每棵樹的分枝貢獻程度來評價特征重要度,貢獻程度使用基尼指數(Gini Index,GI)來衡量[13]?;嶂笖档挠嬎愎饺缦拢?/p>

其中:K代表類別;f代表節點數;pfk表示節點f中類別k所占的比例。GIf計算得到從節點f中隨機抽兩個樣本類別不一致的概率。
假設有M個特征{X1,X2,…,Xj,…,Xm},j為第j個特征,那么節點f分枝前后基尼指數變化量VIMjf為:

其中:GIa和GIb分別表示分枝后兩個新節點的基尼指數。
假設隨機森林共有n棵樹,特征Xj在第i棵樹的節點在集合M中,那么Xj在第i棵樹的重要性評分為:

那么特征Xj在森林中的重要性評分為:

因為壓力傳感器有28 個壓力傳感器生成了28 個壓力特征,姿態角度傳感器提取加速度、角速度、角度、氣壓、高度和四元素13個運動特征,所以M包含41個特征。
對41 個特征求取各自的重要性評分后,對所有重要性評分做歸一化處理,VIMj的歸一化結果如式(7)所示,本文選取特征重要度大于0.1的所有特征。

1.2.2 極端隨機樹
極端隨機樹是一種基于樹的擾動和組合算法。與隨機森林和深度森林[14]相似的是,其基估計器是決策樹。與之不同的是,極端隨機樹使用全部的樣本進行訓練,隨機提取特征使極端隨機樹完全隨機地分叉屬性,分裂過程不剪枝,直到生成一個決策樹。極端隨機樹在小樣本上有更好的平滑性,能有效降低樣本數據的偏差和方差[15]。
不用的決策樹由不同的特征構建而成,所有決策樹預測的平均值即為極端隨機樹的預測結果。決策樹的數量越多,極端隨機樹的分類效果越好,當樹的數量到達臨界值時,分類效果增長緩慢,本文隨機森林和極端隨機樹的樹設為500 棵。樹可以并行構建,預測過程也可以并行計算以提高系統的實時性。
使用ET表示極端隨機樹模型,極端隨機樹算法可表示為{ET(C,Y,D)},其中:C為基分類器的數目;Y為輸入樣本{Y1,Y2,…,Y}r;D為數據樣本集。極端隨機樹算法[16]的流程如下:
步驟1 給定數據樣本集D,其中樣本特征數M為41,樣本量為S,將樣本分為訓練集TD和測試集SD。使用全部的特征訓練TD樣本。
步驟2 利用CART 算法生成決策樹。隨機從M個特征中選取m個特征以增強隨機性,每個節點選擇最優屬性進行分裂,對分裂產生的子集進行遞歸直至生成一棵決策樹。
步驟3 步驟1 和步驟2 迭代C次,生成C棵決策樹和極端隨機樹。
步驟4 用極端隨機樹對SD進行樣本預測,生成預測結果。
1.2.3 實時訓練和反饋
為了方便用戶訓練模型,本文改進了一種實時訓練的方法:當采集數據時,每次采集1 s 的運動數據。可以選擇將數據加載到跌倒數據集或日常動作數據集,最后使用機器學習自動訓練數據集。
提高跌倒檢測算法模型有效性的一種方法是包括檢測結果的反饋。解決這一問題的學者通常在他們的方法中包括一個錯誤的警報按鈕,假警報按鈕允許用戶取消檢測為跌倒的日常活動。假如沒有警報按鈕,那么即使跌倒檢測的準確率達到99%以上,仍然大約每10 h產生一次假報警。在本文中,當極端隨機樹預測樣本出現錯誤時,系統會自動將錯誤的樣本再學習。反饋機制保證了不同用戶配備適應的模型,個人警報能夠進一步降低跌倒檢測的誤報率。
當實時疑似跌倒檢測算法檢測到某種活動為疑似跌倒后,實時跌倒檢測算法對跌倒與否作進一步判斷,實時跌倒檢測算法的流程如圖4所示。

圖4 實時跌倒檢測算法的流程Fig.4 Flowchart of real-time fall detection algorithm
跌倒檢測的實時性對老人具有重要意義,實時檢測可以提供老人的活動狀態和安全的寶貴信息,Karantonis 等[7]指出實時需要滿足以下約束:
1)不了解未來事件;
2)可以緩沖的數據量是有限的;
3)可用的處理時間有限,必須跟上數據采集的速度。
第1)個約束意味著不涉及檢測未來運動趨勢。為了提高跌倒檢測的實時性,應當刪除不必要的功能,疑似跌倒檢測算法只需檢測當前的狀態,無需預測未來的狀態。
可穿戴設備只有有限的內存,這一硬件約束影響了系統檢測運動的能力,第2)約束意味著疑似跌倒檢測算法只能緩沖3 s的數據樣本。
關于第3)個約束,應當試圖避免任何類型的處理占用大量時間。在本文的方法中,疑似跌倒檢測算法會過濾到大部分的日?;顒樱苊膺^多地占用上位機資源,只有疑似跌倒的數據包才會傳給上位機。上位機接收到姿態角度傳感器和足底壓力傳感器發來的十六進制數據后,會實時地將其轉為十進制數據。并不是所有的特征都會送入極端隨機樹,而是會依據隨機森林的重要度評分對特征進行評估,評估發生在訓練階段中。
實時跌倒檢測算法無需實時訓練模型,只需提取離線的模型,能夠節省訓練模型的時間。如果在一定時間內連續3次檢測到跌倒狀態,則觸發報警模塊。如果取消報警,那么說明導致報警的樣本檢測錯誤,檢測錯誤的樣本再訓練以降低假陽性率;如果沒有取消報警,那么意味著發生真實跌倒,軟件會向老人護理小組發送短信。
本文中用于處理數據的硬件平臺是姿態角度傳感器、足底壓力傳感器和DELL 電腦,姿態角度傳感器的微控芯片是stm32l431,足底壓力傳感器的微控芯片是stmf103,電腦的處理器是Intel Core i5-8400 CPU@2.80 GHz,內存為8 GB,處理軟件為PyCharm2020.1 x64,姿態角度傳感器和智能鞋墊分別穿戴于腰部和足部進行數據采集。硬件信號采集處理系統結構圖和穿戴位置如圖5所示。

圖5 硬件信號采集處理系統結構圖和穿戴位置Fig.5 Hardware signal acquisition and processing system structure diagram and wearing positions
考慮到老人在實驗過程中容易發生危險,故此,實驗人員均為健康的年輕人。受試者的年齡為(22±4)歲,身高為(170±12)cm,體重為(65±15)kg。為了評估實時跌倒檢測算法在跌倒檢測中的效果,在本項工作中,采集8 位受試者的實驗數據訓練模型并測試,他們在實驗中執行了諸如坐下、躺下和蹲下等日常動作和向前、向后跌倒動作。
本文系統的實時跌倒檢測算法具備可學習性,以年輕人的實驗數據為基礎,也可以在老年人的穿戴過程中訓練出適合老年人的模型。因為年輕人在模擬跌倒時,往往會比老年人完成的速度要快,不會試圖避免撞擊,所以在疑似跌倒檢測算法中設置的閾值門檻應該適當降低,否則會遺漏老年人的跌倒信息[17]。
為了衡量實時跌倒檢測算法的優劣程度,使用普遍認同的衡量標準——精度Acc(Accuracy)[12,18]、假報警率FAR(False Alarm Rate)[18]、真陽性率TPR(True Positive Rate)[12,18]、真陰性率TNR(True Negative Rate)[12,18]和F1 分數[18]。衡量指標如表1所示。

表1 衡量指標中基本參數的含義Tab.1 Meanings of basic parameters in measurement indicators
Acc表示檢測正確的樣本或次數與總樣本或次數的比例,即所有事件檢測結果正確的概率,計算公式如下:

FAR或假陽性率是模型檢測為跌倒樣本,而實際為非跌倒樣本與所有檢測為跌倒樣本的比例,計算公式如下

TPR或靈敏度為跌倒檢測正確的樣本數占所有跌倒樣本的比值,即跌倒動作檢測結果正確的概率,計算公式如下:

TNR表示模型正確檢測出非跌倒樣本占所有非跌倒樣本的比值,即日常動作檢測結果正確的概率,計算公式如下:

F1 分數為查準率和靈敏度的加權調和平均,構建出單一的綜合衡量模型整體的檢測效果評估指標,計算公式如下:

本文將跌倒檢測作為二分類問題進行考慮,各個方向的跌倒數據歸為跌倒數據集,行走、坐下和躺下等數據歸為日?;顒訑祿?。表2是使用8名受試者的數據訓練和測試算法。在實驗中采集了8 位受試者的運動數據,分為1 259 個訓練樣本和1 259個測試樣本。

表2 不同算法的性能對比 單位:%Tab.2 Performance comparison of different algorithms unit:%
本文使用本地數據集測試,從表2 可知,姿態角度傳感器和足底壓力傳感器采集的數據能夠良好地表征行為動作,在1 259 個測試樣本中,樣本檢測的準確率高達99.7%,錯誤識別為跌倒的日常行為樣本只有十幾個,假陽性率為0.08%。本文算法的靈敏度、真陰性率和F1 指標均優于文獻[9]算法和文獻[12]算法,其中:文獻[9]使用深度學習的方法實時識別人類活動,在MPII 數據集中獲得81.7%的平均精度;文獻[12]算法準確率為95.2%。本文算法獲得的準確度比文獻[9]算法和文獻[12]算法的準確率分別高22.0%和4.73%。
為了降低跌倒檢測假陽性率,加入反饋機制使跌倒檢測算法的模型具有可學習性,能夠生成適合穿戴者的跌倒模型,減少了誤報率對老人及醫療工作者的干擾,相較于Fallsense方法[5],誤報警的情況大幅度減少。本文方法在滿足高精度的前提下使誤報率保持在極低的水平,反饋機制也避免了設備誤報對裝備使用者產生困擾,廉價的穿戴式設備也使得該系統具備應用價值。
本文提出了一種實時跌倒檢測方法。該方法分為兩個部分:第一部分是疑似跌倒檢測,用姿態角度傳感器和壓力傳感器采集老人的運動信號;同時,姿態角度傳感器檢測老人軀干的合加速度,足底壓力傳感器檢測老人的足底壓力信號;當老人軀干的合加速度信號大于閾值,并且步態的周期信號消失時,將采集的數據發給上位機。第二部分是上位機利用隨機森林對特征進行篩選并將樣本送給極端隨機樹算法。另外該系統具有反饋機制,當系統檢測出跌倒而實際沒有跌倒時,系統將采集的樣本加入日常活動數據集,再利用極端隨機樹算法重新訓練。該方法將閾值和機器學習進行融合,不但減少了機器學習處理數據的數量,而且避免了單獨用閾值檢測跌倒所帶來的不確定性和準確性不高的問題。
基于閾值與極端隨機樹的實時跌倒檢測方法具有以下優點:1)實驗結果表明硬件信號采集處理系統能良好地反映運動狀態,在1 259 個測試樣本中假陽性率最低可達0.08%。2)系統沒有過度使用上位機資源,疑似跌倒檢測算法可以過濾大部分的日?;顒?。3)實時跌倒檢測系統具有良好的實時性和精度。上位機保證了基于機器學習的跌倒檢測的實時性,在實時跌倒實驗中,獲得了平均99.7%的精度和最低0.08%的假陽性率。4)系統具有可學習性,老年人在使用設備的初期會出現誤報警的情況,隨著模型的不斷訓練,極端隨機樹模型會生成適合穿戴者的個人報警模型,減少誤報警對老人正常生活的干擾。
我們下一步的工作將優化實時訓練的過程,縮短訓練的周期,使得實施訓練過程更快。另外,為了提高系統的便捷性,我們考慮使用手機傳輸硬件系統發來的數據給上位機并且減少對手機資源的消耗。