王 振, 肖明波
(杭州電子科技大學 通信工程學院,浙江 杭州 310018)
數據融合的跌倒檢測系統設計*
王 振, 肖明波
(杭州電子科技大學 通信工程學院,浙江 杭州 310018)
為解決跌倒檢測中檢測設備功耗高、報警范圍受限、攜帶不便等難題,結合Arduino與Android設計了基于MPU6050的跌倒檢測系統,提出了基于數據融合的并行閾值算法,通過對5位實驗者的模擬測試,該算法實現了97.6 %的精確度和99.2 %的特異性。實驗表明:算法和方案在方便攜帶的基礎上能較為準確地實現人體跌倒檢測并及時定位報警。
跌倒檢測; 數據融合; 并行閾值算法; Arduino; Android
目前,國內外大部分跌倒檢測系統的研究并沒有給出完整的系統設計方案,只針對跌倒檢測算法做出了研究,且大多計算量較大、設計復雜、價格昂貴,難以得到廣泛的應用。Shibuya N等人提出基于步態分析的支持向量機 (support vector machine,SVM)跌倒檢測算法[1,2],實現了對人體活動的分類識別,并有效的檢測到跌倒事件。Jantaraprim P等人提出了基于時間窗的SVM雙閾值判決法[3]檢測人體摔倒,算法簡單有效。2012年深圳愛福萊科技有限公司推出了檢測跌倒并且自動發送求救信息的手機—愛福萊A03[4],它能夠自動檢測跌倒事件、并對跌倒地點自動定位、報警,但生產成本太高,采樣器也只采用了單一的三軸加速度計,可靠性不高。2015年,重慶郵電大學聯合北京醫院開發了一種基于多閾值判決法的跌倒檢測系統[5],將六軸慣性運動傳感器MPU6050和GMS/GPS模塊集成在一起,增大了裝置的體積和開發成本。
本文提出了一種基于數據融合的并行閾值算法,并設計開發出以Arduino為硬件平臺,MPU6050為采樣器,Android App自動定位報警的跌倒檢測系統,具有體積小、運行穩定可靠等優勢,成本低、操作簡單,擁有較大的市場空間。
系統控制器采用Arduino Nano開發板[6],相較于其他開發板,該控制板體積小、功耗低、功能強大,其主控制芯片為ATmega328,可提供14路數字I/O接口(其中6路作為脈寬調制(PWM)輸出)和8路模擬輸入接口,完全滿足系統設計需求。跌倒檢測系統的示意框圖如圖1所示,系統主要由跌倒檢測模塊和報警通知模塊兩大部分組成。

圖1 跌倒檢測系統示意框圖
跌倒檢測模塊中,首先將MPU6050接入到Arduino控制板的數據端和時鐘端,并通過I2C串口通信傳輸數據。Arduino通過Z相應轉換及系統設定的數據融合算法提取相應特征值,進而由文中提出的并行閾值算法判斷跌倒事件是否發生。若跌倒事件觸發,則小燈閃爍,警報響起;如果20 s內沒有解除警報,藍牙模塊HC—05就會通過Arduino的串行輸出和輸入通信與上位機藍牙進行通信,并傳輸“true”給手機App端。硬件電路設計原理圖2所示。

圖2 硬件電路設計原理
報警通知模塊中,當上位機App后臺監聽到“true”時,系統自動定位用戶當前位置,并將用戶當前位置以短信形式發送到監護人手機。Android App的設計流程圖如圖3所示。Android App的主要設計程序為:使用Bluetooth Adapter的start Discovery()方法搜索藍牙設備,通過BluetoothSocket建立通信并實施監聽。當后臺監聽到“true”字符的時候,觸發getLocation()方法調用百度API自動定位當前位置,同時觸發事件,通過SmsManager向預先設定好的手機號發送當前所讀取到的經緯度以及對應位置。Android App端的界面圖和收到的短信內容如圖4所示。

圖3 APP設計流程

圖4 APP界面和報警短信內容
MPU6050是由陀螺儀和三軸加速度傳感器組成。陀螺儀輸出角速度,角速度與時間積分計算角度,其積分時間Dt越小,輸出角度越精確。但陀螺儀的原理決定了它的測量基準是自身,并沒有系統外的絕對參照物,且Dt不可能無限小,所以,積分的累積誤差會隨著時間流逝迅速增加,最終導致輸出角度與實際不符。而加速度傳感器測量的是重力方向,在無外力加速度的情況下,能準確輸出Roll/Pitch兩軸姿態角度,且角度不會有累積誤差。但是加速度傳感器實際上是用微系統(MEMS)技術檢測慣性力造成的微小形變,而慣性力與重力本質是一樣的,所以,加速度計不會區分重力加速度與外力加速度,當系統在三維空間做變速運動時,其輸出變得不準確。在沒有其他參照物的基礎上,要得到較為準確的身體傾斜角,就要利用信息融合揚長避短,結合兩者的優點,摒棄各自缺點,設計算法在短時間尺度內增加陀螺儀的權值,在更長時間尺度內增加加速度權值,這樣系統輸出角度就接近真實值了。
本文采用聯合卡爾曼融合算法[7],先分散處理,再全局融合,各子濾波器并行運行。聯合卡爾曼濾波融合框圖如圖5所示。

圖5 聯合卡爾曼濾波融合框圖
根據卡爾曼基本方程,局部濾波方程為
Xi(k,k-1)=Φi(k,k-1)Xi(k-1)

Xi(k)=Xi(k,k-1)+Ki(k)[Zi(k)-Hi(k)Xi(k,k-1)]
Pi(k)=[1-Ki(k)Hi(k)]Pi(k,k-1)
式中i=1,2;X為被估計狀態;Φ為狀態轉移陣;Γ為系統噪聲驅動陣;Q為系統噪聲序列的方差陣;R為量測噪聲序列的方差陣;H為量測陣;K為濾波增益;Z為X的量測;P為估計均方誤差。
主濾波器只負責信息融合處理,不進行濾波運算,取系統的全局估計值為各局部濾波器加權和,即
X(k,k-1)=β1X1(k,k-1)+β2X2(k,k-1)
式中β1+β2=1。β1和β2均為子濾波器的權值。
在信息融合的過程中,如果某一子濾波器的狀態估計精度高,則主濾波器對該子濾波器輸出的利用權重就大;反之,其利用權重就小[8]。這種結構的子濾波器相互獨立,沒有反饋作用帶來的相互影響,能夠保障系統的容錯性能最好。同時數據計算量少,有利于數據獲取的實時性。
為驗證算法的適用性,實驗中,截取一部分人體繞豎直方向轉動的運動信息,通過融合算法得到角度值,并與常見的一階、二階互補濾波得到的角度值以及原始數據做出對比。如圖6所示,看出:原始數據包含許多噪聲,經過一階濾波之后數據平滑,但是數據的穩定性相對于二階濾波和卡爾曼濾波融合略差,而二階互補濾波后的數據仍摻雜不明顯的高頻信號,故卡爾曼濾波融合更適于本文研究。

圖6 傾斜角度值對比
人體跌倒屬于一種短暫性的活動,身體加速度的幅度峰值變化較大,人體跌倒的過程中,身體的傾斜角度也是在變化的,最終變化幅度為80°~100°。經典閾值算法根據加速度幅值和傾斜角度的優先級進行判斷,然而這種算法的缺點是,當一些檢測對象做劇烈運動時,會出現誤判、漏判的問題。參照經典閾值算法,本文所提取的特征值如下
θ=arccos((ax×bx+ay×by+az×bz)/AM/BM)

跌倒檢測系統的主要應用對象是病人和老人,他們的日常行為往往只有走路,坐下站起,上下樓和彎腰。人體行為的幅度和持續時間是不可控的,所以,這些日常行為往往會對跌倒行為的檢測產生干擾。但跌倒行為有一個日常行為所不具備的特征點,即θ和AM是同步大幅度變化的。由圖7可以看出,在采樣周期為20 ms的前提下,人體在實際跌倒過程中,由于多種因素影響,AM會降低到接近0.4gn,緊接著人體與地面發生撞擊,在加速度曲線中會產生一個很大的沖擊,AM高達2.1gn。AM大幅度變化的同時,隨著跌倒行為的發生,人體會發生翻轉,傾斜角度遞增變化。而人體跌倒的時間一般在2~4 s,通過分析,跌倒過程中,失重狀態大約持續0.6~1.2 s,撞擊狀態持續大約0.7~1.5 s。基于這些特征變化,本文提出基于數據融合的并行閾值算法,流程圖如圖8所示。

圖7 跌倒時AM變化和θ變化

圖8 人體跌倒檢測流程圖
為了驗證本文提出算法的可行性和準確性,邀請了5名健康志愿者(4男1女,年齡22~25歲,身高160~182cm),在實驗樓內模擬病患者和老年人,分別進行走路,上下樓,站起蹲下一系列連貫的日常行為,并模擬跌倒動作:前后跌倒、左右跌倒。實驗中,共采集100組數據與現有的算法做對比,得到的結果為通過組數。如表1與表2所示,其中,表2所得到的準確率為算法的特異性。

表1 跌倒檢測實驗結果統計

表2 日常行為實驗結果統計
根據相關資料[2],SVM算法的準確率為98.7 %,特異性為99.5 %。從表1可以看出,本文提出的算法準確率為97.6 %,特異性為99.2 %。在準確率上,基于數據融合的并行閾值算法優于經典閾值算法,略低于SVM算法。在特異性上,本文算法與SVM算法持平,高于經典閾值算法。然而SVM算法雖然精度高,但是計算量大,實時性低,對處理器要求高,功耗大。經典閾值算法的實時性,功耗低,精度卻偏低。而本文提出的基于數據融合的并行閾值算法,在保留經典閾值算法優點的基礎上,提高了精度和實時性,降低了功耗,實現了最初的設計目標。
本文在經典閾值法的基礎上提出了基于數據融合的并行閾值算法,并將跌倒檢測模塊和Android App相結合,這樣既方便了被檢測者的攜帶,又消除了報警范圍的局限性,實現了對跌倒事件的高精度檢測。此外,系統還具有功耗低、操作簡單、成本低、精度較高、故障發生率低等優點,不僅可以解決老年人及病人的跌倒檢測和報警問題,在醫療康復方面,也能夠對康復中的病人起到輔助看護的作用,并且可以輔助醫生通過采集到的數據了解病人康復情況。
[1] Shibuya N,Nukala B T,Rodriguez A I,et al.A real-time fall detection system using a wearable gait analysis sensor and a support vector machine(SVM)classifier[C]∥2015 the Eighth International Conference on Mobile Computing and Ubiquitous Networking(ICMU),IEEE,2015:66-67.
[2] 鄭漢卿,谷安.物體輪廓識別算法的應用研究[J].自動化技術與應用,2016,35(1):106-110.
[3] Jantaraprim P,Phukpattaranont P,Limsakul C,et al.Improving the accuracy of a fall detection algorithm using free fall characte-ristics[C]∥IEEE International Conference on Electrical Engineering/Electronics Computer Telecommunications and Information Technology,Chiang Mai,Thailand,2010:501-504.
[4] 深圳市愛福萊科技有限公司.全球首款自動求救的老人手機[DB/OL].[ 2012—10—26].http:∥www.beareyes.com.cn/2/lib/201210/26/20121026269.htm.
[5] 卓從彬,楊龍頻,周 林,等.基于MPU6050加速度傳感器的跌倒檢測與報警系統設計[J].電子器件,2015(4):821-825.
[6] 趙英杰.Arduino互動入門設計[M].北京:科學出版社,2014.
[7] 陳玉坤,司錫才,李志剛.聯合卡爾曼濾波在多傳感器信息融合技術中的應用[J].彈箭與制導學報,2005,25(4):946-948.
[8] 何艷麗,黃飛龍.多傳感器自動站的數據融合效果及優勢分析[J].氣象,2015(8):1028-1035.
Design of fall detection system based on data fusion*
WANG Zhen, XIAO Ming-bo
(School of Communication Engineering,Hangzhou Dianzi University,Hangzhou 310018,China)
Aiming at problem of high power consumption,limited range of alarm and inconvenience for carrying existing in fall detection devices,a fall detection system is designed based on MPU6050,using Arduino and Android.A parallel threshold algorithm based on data fusion is proposed,which achieves accuracy of 97.6 % and specificity of 99.2 % as shown by the simulation test of five subjects.Experiments show that the proposed algorithm and scheme can achieve accurate detection and timely location and alarming of human body fall,as well as portability.
fall detection; data fusion; parallel threshold algorithm; Arduino; Android
2016—06—07
浙江省重點實驗室建設基金資助項目(GK130907208001)
10.13873/J.1000—9787(2017)06—0086—04
R 318
A
1000—9787(2017)06—0086—04
王 振(1993-),男,通訊作者,碩士研究生,主要研究方向為嵌入式系統設計、通信與信息系統,E—mail:zhen_always@sina.com。
肖明波(1971-),男,博士,教授,主要從事過程控制與優化、無線通信等研究工作。