鄭清蘭,陳壽坤
(閩南理工學(xué)院 實踐教學(xué)中心,福建 石獅 362700)
人在行走或直立的情況下都有可能發(fā)生跌倒事件,特別是老年人,一旦發(fā)生跌倒沒有得到及時救治就有可能會危及生命安全,所以若是有一款儀器能實時將老年人的跌倒信息和跌倒位置發(fā)送給家屬,老人就可以得到及時的救治.國內(nèi)外在跌倒檢測技術(shù)上也做了相當(dāng)多的研究.早期使用的跌倒檢測設(shè)備,一旦配帶者跌倒,只要按下跌倒檢測設(shè)備上的報警按鈕就會發(fā)出報警聲,用于發(fā)出求救信號.這種設(shè)備攜帶方便,易操作,但在使用時還是存在諸多問題,例如使用者若跌倒后失去知覺或意識不清醒,就很難按下報警按鈕.所以如果使用者配帶的是自動報警儀器,那就可以排除此類情況,在跌倒后不用做出任何動作,系統(tǒng)就會將跌倒信息和位置發(fā)送到相應(yīng)的Android手機(jī)上,這正是當(dāng)前國內(nèi)外研究的主導(dǎo)方向[1].為此,研究跌倒檢測技術(shù)對于老年人有極大的幫助,它能提高老年人群的生活質(zhì)量,減少老人外出時給家人帶來的憂慮感.
模式識別就是用數(shù)學(xué)理論的方法,通過計算機(jī)來研究模式的判別和自動處理.該設(shè)計采用基于支持向量機(jī)的模式識別技術(shù),即SVM[2].這種方法只要很少的樣本就可能識別出被觀察的對象特征,獲得較好的統(tǒng)計規(guī)律,在很大程度上簡化了模型的復(fù)雜程度,提高了識別的效果.
支持向量機(jī)首先將給定的樣本進(jìn)行分類,然后建立SVM模型,本設(shè)計采用三軸加速度傳感器采集跌倒訓(xùn)練樣本,訓(xùn)練出SVM分類器.假設(shè)n個樣本的訓(xùn)練集S=[(xi,yi)|i=1,2,3,…,N],x∈Rn,y∈{-1,1}能被直線wTx+b=0無誤的分開.
參數(shù)X為輸入向量,W為權(quán)值向量,b為偏置,則有
支持向量機(jī)的終極目標(biāo)是找到一個分離邊緣最大的超平面,即最優(yōu)超平面,如圖1所示.
圖1 最優(yōu)超平面示意圖Fig.1 Optimal hyper-plane diagram
當(dāng)離最優(yōu)超平面最近的特殊樣本XS滿足|g(XS)|=1時稱為支持向量.由于支持向量與分類決策面最近,是最好分類的數(shù)據(jù)點,因此在支持向量機(jī)的運行中起著重要作用.
基于奈奎斯特抽樣定理[4]可知,原始信號若要實現(xiàn)無失真、完整地恢復(fù),只能在被測信號的最高頻率位于采樣頻率50%以下的情況下.文獻(xiàn)表明,99%的人體在日?;顒又械念l率都在15 Hz以下,因此,本設(shè)計取三軸加速度傳感器的采樣頻率為50 Hz.
大多數(shù)情況下,跌倒檢測儀所收集的跌倒姿勢信號是由本身的重力加速度信號、所處位置的噪聲信號等信號的合成[5].所以,要通過濾波器將雜波信號濾除,只留下有用的跌倒檢測信號,濾波后的效果如圖2所示.
(a) 濾波前 (b)濾波后圖2 濾波前后效果對比圖Fig.2 Comparison charts before and after the filter effect
特征提取和特征選擇是連接跌倒識別和加速度數(shù)據(jù)采集的扭帶,是模式識別方法分類的基本問題.特征提取的主要目的是從三軸加速度數(shù)據(jù)中提取出最有效、最合適的向量.常用的特征提取方法有頻域分析法、時域分析法和時頻分析法[6].3種方法中時域分析法的計算復(fù)雜程度最低,并且人體在跌倒時的三維傾斜方向、跌倒的運動狀態(tài)、跌倒過程的速度快慢均可由時域信息來體現(xiàn).因此,本設(shè)計采用時域分析法,并選用加速度向量SVM、跌倒傾斜角θ作為特征向量.
目前的智能手機(jī)都帶有GPS定位功能,而Android系統(tǒng)是應(yīng)用最廣泛的,因此具備定位和通信需求的微型產(chǎn)品應(yīng)緊緊圍繞Android系統(tǒng)智能手機(jī)來開發(fā).本設(shè)計的基本組成要素是Android系統(tǒng)智能手機(jī)及跌倒檢測儀.其中跌倒檢測儀包括采集分析跌倒數(shù)據(jù),三軸加速傳感器,GPS定位發(fā)送模塊、通信模塊、通信網(wǎng)絡(luò).Aandroid系統(tǒng)智能手機(jī)用來接收報警和定位信號,當(dāng)使用者跌倒時,報警模塊立即向綁定的手機(jī)傳送報警信號,并開啟GPS定位系統(tǒng),及時將跌倒者的位置通過短信傳送給綁定的手機(jī),并通過藍(lán)牙進(jìn)行手機(jī)與檢測儀之間的數(shù)據(jù)傳輸.
總體設(shè)計方案如圖3所示,Android系統(tǒng)智能手機(jī)用于與檢測儀的藍(lán)牙建立連接,執(zhí)行客戶端軟件;檢測儀負(fù)責(zé)收集并分析加速度傳感器采集到的相關(guān)數(shù)據(jù);當(dāng)攜帶者發(fā)生跌倒時,跌倒信號會發(fā)送至手機(jī),手機(jī)接收到求救信息后通過GPS定位系統(tǒng)取得攜帶者的位置,最后通過短信的形式將跌倒者的位置和信息發(fā)送到監(jiān)護(hù)人的手機(jī)上.
圖3 總體設(shè)計方案Fig.3 Overall design
跌倒檢測儀的主要功能是檢測跌倒數(shù)據(jù)和實現(xiàn)遠(yuǎn)程報警.跌倒數(shù)據(jù)檢測由數(shù)據(jù)的收集、分析、算法識別等構(gòu)成.報警則由語音系統(tǒng)和跌倒定位構(gòu)成.因此硬件系統(tǒng)主要分為處理器STM模塊、傳感器模塊、語音報警模塊、無線通信模塊及電源模塊等,框圖如圖4所示.
圖4 硬件系統(tǒng)框圖Fig.4 Hardware system block diagram
跌倒檢測儀的CPU是嵌入式模塊,它主要采用中等容量增強(qiáng)型32位的帶64 K字節(jié)閃存的STM32F101微控制器,最高72 MHz工作頻率,擁有20 K的SRAM,2.0~3.6 V供電和I/O引腳,并包括多達(dá)7個定時器.根據(jù)系統(tǒng)的要求,其外圍電路設(shè)計如圖5所示.
圖5 STM32F101外圍電路Fig.5 STM32F101 peripheral circuits
本設(shè)計中的傳感器模塊使用三軸數(shù)字陀螺儀傳感器L3G4200DH.三軸陀螺儀能同時檢測6個方向的位置,具有體積小、結(jié)構(gòu)簡單等優(yōu)點. L3G4200DH作為意法半導(dǎo)體的最新產(chǎn)品,是一款高性能三軸數(shù)字輸出陀螺儀,它集成片上FIFO存儲器模塊[7],存儲量值最多可達(dá)96個,這些量值可分成32組X、Y、Z軸數(shù)據(jù)采樣.此項功能能使主處理器無需連續(xù)讀取傳感器的角速度功耗,能在很大程度上減小系統(tǒng)總體功耗.其外型及管腳功能如圖6所示.
圖6 L3G4200DH外型及管腳圖Fig.6 L3G4200DH appearance and pin diagram
GPS無線通信定位模塊選用功能強(qiáng)大的SIM808模塊. SIM808采用高性能工業(yè)級GPRS/GSM 四頻模塊,并集成GPS導(dǎo)航技術(shù)和藍(lán)牙功能的Arduino擴(kuò)展板,外型尺寸僅為一張IC卡大小,兼容Arduino UNO、 Leonardo、Mega等主控器,可以實現(xiàn)電話語音、彩信、短信、GPRS數(shù)據(jù)傳輸功能、GPS定位.模塊供電電壓5~18 V左右,電源可通過控制引腳控制,高電平供電,低電平斷電.模塊可通過TTL串口控制,可接入單片機(jī)或其它串口設(shè)備中[8].
系統(tǒng)軟件采用 Mini2440集成開發(fā)環(huán)境,用于控制各模塊的工作以完成跌倒檢測儀的整體設(shè)計.總體流程圖如圖7所示.
圖7 軟件流程圖Fig.7 Software flow chart
程序運行開始后,先對設(shè)備進(jìn)行初始化,通過藍(lán)牙與客戶端連接,將獲取的加速度值轉(zhuǎn)化為加速度向量進(jìn)行一次SVM判定,當(dāng)判定結(jié)果為“跌倒”時,程序開啟語音報警模式,10 s后如果沒用取消報警,啟動GPS定位.程序?qū)⒄{(diào)用子函數(shù)將跌倒信號及定位信息通過藍(lán)牙發(fā)送到監(jiān)護(hù)人的手機(jī)上.
配置本機(jī)藍(lán)牙模塊過程部分代碼如下:
BluetoothAdapter adapter=BluetoothAdapter.getDefaultAdapter();
Intentintent=new Intent(BluetoothAdapter.getDefaultAdpter();
startActivityForResult(intent,0xi);
Adapter.enable();
手機(jī)端軟件設(shè)計的目的是實時獲取檢測儀的信息,對檢測儀發(fā)送過來的數(shù)據(jù)進(jìn)行及時處理,并通過網(wǎng)絡(luò)調(diào)取地圖,顯示跌倒的具體位置.具體流程如圖8所示.
圖8手機(jī)軟件流程
Fig.8Mobilesoftwareflow
手機(jī)客戶端APP界面主要是使監(jiān)護(hù)者能直觀地設(shè)置跌倒檢測儀的各項功能,當(dāng)收到一個跌倒信息時,手機(jī)APP會彈出窗口并發(fā)出提示音,使監(jiān)護(hù)人可以在第一時間內(nèi)確定跌倒者的位置信息.APP圖標(biāo)如圖9 (a)圈內(nèi)所示,此APP的功能選擇如圖9(b)所示,包括電話、綁定、位置查詢等.
(a)界面1 (b)界面2圖9 手機(jī)APP圖標(biāo)Fig.9 The APP icon of the mobile phone
本文通過Java語言編寫應(yīng)用程序,實現(xiàn)手機(jī)對檢測儀的管理,部分代碼如下:
Phone=device.phonenum; //監(jiān)護(hù)人電話
Manager=Manager.getDefault();
Manager.send TextMessage(phone,content,null);
Device.userbind=true;
Tosst.make Text( mcontext,‘綁定成功’,Toast.LENGTH_LONG).show();
Break;
跌倒檢測儀內(nèi)GPS定位模塊的主要作用是將跌倒者的位置傳至網(wǎng)絡(luò),手機(jī)端對傳上來的數(shù)據(jù)進(jìn)行分析處理,然后調(diào)用地圖實現(xiàn)定位,主要程序如下:
Rad=mapView.getProjection().metersTO Equator Pixels(dm,pastloc.get(i).loc_acc);
Canvas.draw Circle(ptCire.x,ptCircle.y,rad,paint);//添加地圖范圍
Bitmap bitmap=Bitmap Factory.decode Resource(context.get Resources(),
R.drawable.map_iconl;//獲取位置
Paint.set Alpha(255);
Canvas.draw Bitmap(bitmap,ptCirclele,x-bitmap,getWidth()/2,
ptCircle.y_bitmap.getHeight(),paint);//添加圖標(biāo)
手機(jī)端軟件收到消息并在監(jiān)護(hù)人手機(jī)發(fā)報警信號,監(jiān)護(hù)人手機(jī)收到報警后需要馬上掌握跌倒者的位置.在虛擬機(jī)中使用Java語言編譯Android系統(tǒng)中的API接口,相應(yīng)程序代碼如下:
If(cur_device.isalarming){Log.d(TAG,cur_devoce.message);//服務(wù)器位置消息查找
Set Positive(‘確定’,null).show();
Toast.make Text(mcontext,‘服務(wù)器連接中....’,Toast.LENGTH_LONG).show();
CurLocation cl=newCurLocation(cur_device.lastmessage,cur_device.alarmdate,
cur_device.phonenum);
If(ValidLoation())
{cur_device.isalarnimg=false;
cur_device.pastloc.add(cl);
New Alert Dialog.Builder(mcontext).set Title(‘查詢成功’).
Set Message(x,y,z);
Set Positive Button(‘確定’,null);
Show();
}
通過分析目前國內(nèi)外跌倒檢測系統(tǒng),提出了一種基于支持向量機(jī)的模式識別算法,并通過分析老年人日常跌倒的各種姿勢,確定了跌倒檢測儀的硬件和軟件系統(tǒng),最終設(shè)計出一種方便攜帶的跌倒檢測儀.該檢測儀具有體積小,攜帶方便等特點,能及時將使用者的跌倒信息和位置發(fā)送到監(jiān)護(hù)人的手機(jī)上,使老年人的日常出行安全有一定的保障.