陳祥寶,杜玉曉
(廣東工業(yè)大學 自動化學院,廣州 510006)
據(jù)國家人口普查公示,中國的老年化人口在逐年遞增。跌倒已經(jīng)成為造成我國老年人死亡的首要原因,老年人跌倒死亡率隨年齡的增加急劇上升。此外跌倒后產(chǎn)生的心理影響可能導致抑郁等心理疾病發(fā)生。因此,有必要對具有高準確率和高實時性的跌倒檢測算法開展研究,以期對老年人的生活起居[1]進行監(jiān)護。
傳統(tǒng)的跌倒檢測算法[2]通常采用閾值法判斷。該方法簡單,實時性好,但誤報率較高,無法滿足需求。目前,研究較多的跌倒檢測算法歸屬于支持向量機 SVM(support vector machine),其準確率高,但由于計算復雜所以通常很難保證實時性。KNN(k-Nearest Neighbor)算法也稱為K近鄰算法,準確率略低于SVM,但計算速度快于SVM。通過對相關文獻的研究,在此提出了基于多傳感器融合[3-4]的跌倒檢測算法。在硬件平臺上,采取三軸加速度計傳感器和三軸陀螺儀傳感器進行人體運動數(shù)據(jù)采集。對通過閾值判斷的特征數(shù)據(jù)進行二次判定,采用KNN算法進行二次跌倒檢測。該方法只對高于設定閾值的人體運動數(shù)據(jù)進行二次判定。通過數(shù)據(jù)驗證進行閾值設定,這樣在日?;顒覽5]中部分劇烈的運動才會進入二次判斷,運用閾值的高效和KNN算法的高準確度,滿足了在較高的準確性的情況下達到較好的實時性保障。
硬件部分主要是跌倒檢測終端,功能主要為實時地采集到用戶的運動信息、所在地理位置等數(shù)據(jù),通過GU620的移動網(wǎng)絡,將數(shù)據(jù)傳輸?shù)椒掌鲾?shù)據(jù)庫中,再通過服務器發(fā)送的用戶及其監(jiān)護人的手機,以實現(xiàn)對用戶的日常健康進行監(jiān)護。該終端由主控制器、電源管理電路、GU620模塊、六軸傳感器、蜂鳴器、OLED顯示屏、選擇/確定按鈕等組成。其總設計如圖1所示。
圖1 跌倒檢測硬件平臺Fig.1 Fall detection hardware platform
使用三軸加速度計傳感器和三軸陀螺儀傳感器采集人體運動姿態(tài)數(shù)據(jù),通過SPI接口傳輸給STM32主控制器;主控制器負責并行處理采集數(shù)據(jù)以及閾值和KNN聯(lián)合跌倒檢測[6]算法判斷。此外,具有GPS/GSM/GPRS通信定位功能的GU620模塊由主控制串口發(fā)送AT命令控制,電源管理模塊為系統(tǒng)的各個模塊提供供電,并為鋰電池充電。
通過硬件平臺的人體運動數(shù)據(jù)采集,對采集的數(shù)據(jù)進行特征處理[7],之后對特征數(shù)據(jù)進行閾值法和KNN聯(lián)合的跌倒檢測算法判定。通過對國內(nèi)外文獻的研究發(fā)現(xiàn),跌倒檢測算法的主流研究方向主要有:基于閾值法跌倒檢測;基于支持向量機的跌倒檢測;基于KNN的跌倒檢測。
這3種方法中,閾值法可以保證實時性但誤報和漏報率較高;支持向量機具有較高的準確性,因計算復雜不能保證實時性;KNN算法計算相對于支持向量機較為簡單,準確性略低于支持向量機,但計算時間比支持向量機短。故在此提出基于閾值和KNN聯(lián)合判定的算法思想,即采用閾值法進行一次判定后,對滿足閾值的特征數(shù)據(jù)采用KNN再進行跌倒檢測,可以保證實時性的情況下具有較高的準確性。其流程如圖2所示。
圖2 閾值和KNN聯(lián)合判斷流程Fig.2 Joint judgment flow chart of threshold and KNN
特征提取是對原始采集的數(shù)據(jù)進行分析,提取出數(shù)據(jù)所具有的特性特征,可用于表示原始數(shù)據(jù)所代表的含義。對于所設計的基于六軸傳感器[8]的跌倒檢測系統(tǒng),跌倒過程中時域信號的特征選擇如下:
(1)三軸加速度計的合加速度Aas
式中:Aas為三軸合成加速度;Ax,Ay,Az分別為 x,y,z軸的加速度。
(2)三軸陀螺儀的合角速度GR
式中:Gx,Gy,Gz分別為 3 個軸的角速度,由三軸陀螺儀傳感器采集后經(jīng)濾波處理獲得。GR反映出人體活動時采集端旋轉的強烈程度。
(3)信號幅值面積As
式中:T為1個時間窗口。它直觀地表達運動狀態(tài)變化的激烈程度,數(shù)值越大,運動越激烈,而跌倒動作比老年人絕大多數(shù)日常動作的激烈程度高很多。
在閾值判定前,先使用三軸加速度計傳感器和三軸陀螺儀傳感器采集日常行為活動數(shù)據(jù),例如站立、坐下、起立、跑步、跳躍、躺下、上下樓梯、向前跌倒、側向跌倒、向后跌倒等運動狀態(tài)。然后對采集的原始數(shù)據(jù)進行上述的特征提取。獲取特征數(shù)據(jù)后再進行算法分析。采集數(shù)據(jù)部分波形如圖3所示。
圖3 采集數(shù)據(jù)的部分波形Fig.3 Partial oscillogram of data acquisition
研究表明,在日常行為活動中跌倒情形發(fā)生的概率比較低。但是,人體一旦發(fā)生跌倒,會產(chǎn)生1個大的加速度峰值[9],可以依此區(qū)分其他活動。根據(jù)多次對跌倒行為的試驗結果分析,以合成加速度為例,跌倒行為可以分為3個階段,即失重階段、沖擊階段、反彈階段,其加速度波形如圖4所示。
圖4 前向跌倒加速度波形Fig.4 Forward fall acceleration oscillogram
以沖擊階段通過多次數(shù)據(jù)測試建模后進行研究設定閾值。對一次閾值判定可以較大地區(qū)分跌倒和非跌倒,對于一些模糊的狀態(tài)再進行二次KNN算法進行判定。其仿真結果如5圖所示。
圖5 日常活動加速度峰值波形Fig.5 Daily activity acceleration peak oscillogram
由圖可見,一次閾值判定可以保證在無漏報的情形下,較明確區(qū)分跌倒與部分非跌倒日?;顒印τ谂懿?、跳躍等較劇烈的運動則需進入二次KNN算法判斷。
跌倒行為發(fā)生時的狀態(tài)檢測和誤判情況存在較強的模糊性,采集的數(shù)據(jù)和參數(shù)適用面相對較窄,傳統(tǒng)方法是單純通過判斷人體加速度來確定算法達到某一閾值,在此并不可行。為此使用了閾值法結合KNN分類的方法,對數(shù)據(jù)特征向量進行較為精準的模型匹配,可以更準確地分辨出跌倒動作。
KNN分類算法屬于有監(jiān)督[10]的機器學習算法。它采用測量不同特征值之間的距離方法進行分類。其思想很簡單:如果1個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別。
在KNN中,通過計算對象間距離來作為各個對象之間的非相似性指標,避免了對象之間的匹配問題。距離一般使用歐氏距離或曼哈頓距離。在此采用歐式距離:
KNN算法需要先對原始數(shù)據(jù)進行特征提取,獲取加速度峰值、角速度峰值、幅值面積峰值,對特征數(shù)據(jù)進行歸一化處理,之后建立訓練樣本數(shù)據(jù)庫,如圖6所示。對每一個樣本進行標簽歸類。
圖6 預處理樣本庫建立流程Fig.6 Pre processing sample library establishment process
建立樣本庫后,通過KNN算法對樣本庫的數(shù)據(jù)進行歸一化處理,然后再進行測試數(shù)據(jù)判定。對通過閾值一次判定的特征數(shù)據(jù)進行KNN二次判定[11],得到判定結果是否跌倒。其算法流程如圖7所示。
圖7 跌倒檢測算法流程Fig.7 Fall detection algorithm flow chart
進行二次跌倒判定時,根據(jù)200組跌倒樣本數(shù)據(jù),800組非跌倒樣本數(shù)據(jù),總計1000組樣本數(shù)據(jù),建立樣本庫。對800組測試數(shù)據(jù)(跌倒特征數(shù)據(jù)150組,非跌倒特征數(shù)據(jù)650組)進行二次算法判定。其中,通過一次閾值判斷的共有437組,即150組跌倒特征數(shù)據(jù),287組非跌倒特征數(shù)據(jù)。
為了判斷聯(lián)合算法的有效性,將跌倒判斷結果分為4類:
TP—跌倒動作檢測為跌倒;
FP—日常行為檢測為跌倒;
TN—日常行為檢測為未跌倒;
FN—跌倒動作檢測為未跌倒。
通過以下3個性能指標,判斷跌倒檢測試驗結果的好壞[12]:
準確率Ac反映所有動作被正確檢測出來的比例。其表達式為
漏報率Fr反映跌倒動作未被檢測出來的比例。其表達式為
誤報率Fp反映日常動作被檢測為跌倒事件的比例。其表達式為
對通過一次判斷的數(shù)據(jù)進行二次跌倒檢測。使用python進行KNN算法仿真,測試結果見表1。由表可知,k=5時,準確率最高,達到97.6%。仿真結果如圖8所示。
表1 KNN算法測試結果Tab.1 KNN algorithm test results
圖8 KNN算法仿真結果Fig.8 KNN algorithm simulation results
如圖所示,由于跌倒數(shù)據(jù)和非跌倒數(shù)據(jù)樣本數(shù)不同,當k超過一定值后,取值越大,其漏報率就越高。這是由于跌倒樣本和非跌倒樣本數(shù)的比例不同所致。使用閾值和KNN進行聯(lián)合判定,可以使用閾值進行一次判定,對于大部分非跌倒數(shù)據(jù)進行過濾,減少二次判斷處理數(shù)據(jù)的時間,保證了實時性。對于通過一次判定的數(shù)據(jù)進行KNN二次判定,以零誤報和高準確性為標準進行參數(shù)設定,保證老年人每一次跌倒的狀態(tài)都可以被檢測出來,滿足高準確性和實時性。
基于多傳感器的跌倒檢測算法研究可以有效地檢測老年人的跌倒事件,為獨居老人的健康監(jiān)護提供有效的保障。所提出的基于閾值和KNN聯(lián)合判定的算法能在保證實時性的條件下具有較高的準確性。除了在理論上完成跌倒檢測仿真效果,在實際測試中獲得較高的準確性,在實踐上已經(jīng)完成了整體平臺的搭建,形成了集硬件終端、服務器、APP定位于一體的智能穿戴式跌倒檢測產(chǎn)品。
[1]Shoaib M,Dragon R,Ostermann J.View-invariant fall detection for elderly in real home environment[C]//Fourth Pacific-Rim Symposium on Image and Video Technology.IEEE Computer Society,2010:52-57.
[2]Belshaw M,Taati B,Snoek J,et al.Towards a single sensor passive solution for automated fall detection[C]//International Conference of the IEEE Engineering in Medicine and Biology Society(EMBC).2011:1773-1776.
[3]王剛.基于多傳感器的可穿戴跌倒檢測系統(tǒng)的設計與實現(xiàn)[D].北京:北京工業(yè)大學,2015.
[4]Tracy L,Alex M.An intelligent emergency response system:preliminary development and testing of automated fall detection[J].Journal of Telemedicine&Telecare,2005,11(4):194-198.
[5]于普林.北京市社區(qū)老年人跌倒狀況研究[D].長沙:中南大學,2010.
[6]Bourke A K,Pw V D V,Chaya A E,et al.Testing of a longterm fall detection system incorporated into a custom vest for the elderly[C]//International Conference of the IEEE Engineering in Medicine&Biology Society.2013:2844-2847.
[7]李強.跌倒檢測關鍵技術的研究與應用[D].北京:北京工業(yè)大學,2013.
[8]Zhao G,Mei Z,Liang D,et al.Exploration and implementation of a pre-impact fall recognition method based on an inertial body sensor network[J].Sensors,2012,12(11):15338-15355.
[9]Tao S,Kudo M,Nonaka H.Privacy-preserved behavior analysis and fall detection by an infrared ceiling sensor network[J].Sensors,2012,12(12):16920-16936.
[10]Cheng W.Triaxial accelerometer-based falldetection method using a self-constructing cascade-adaBoost-SVM classifier[J].IEEE JournalofBiomedicaland Health Informatics,2013,17 (2):411-419.
[11]Kobayashi T.Smoothly structured sparse CCA for partial pattern matching[C]///Proceedings of International Conference on Pattern Recognition(ICPR).2014:1981-1986.