本發(fā)明涉及人體行為識別,狀態(tài)分析與危險(xiǎn)報(bào)警等領(lǐng)域,具體為一種基于動態(tài)時(shí)間規(guī)整(dynamictimewarping)的人體跌倒識別方法。
背景技術(shù):
根據(jù)國家統(tǒng)計(jì)局發(fā)布的公告,2014年中國60歲及以上的老年人人口占總?cè)丝诒壤?5.5%,且據(jù)世界衛(wèi)生組織預(yù)測,到2050年,上述數(shù)字會達(dá)到35%,中國將成為世界上老齡化最嚴(yán)重的國家。而2012年全國疾病監(jiān)測系統(tǒng)死因監(jiān)測結(jié)果顯示:65歲及以上老年人跌倒死亡率為45.72/10萬。跌倒已成為65歲及以上老人傷害死亡的“頭號殺手”。通過科學(xué)的手段有效檢測跌倒事件的發(fā)生,通知監(jiān)護(hù)人及時(shí)送其就醫(yī),得到及時(shí)的治療。
目前,對于人體跌倒檢測,從方法上來說基本采用閾值判決法,通過在不同階段設(shè)定相應(yīng)的閾值來綜合判斷是否發(fā)生跌倒。這種方法雖然邏輯簡單,但有針對不同身高體重的人群需要通過不斷的調(diào)整閾值才能達(dá)到較高的識別率,這大大增加了閾值判決法的復(fù)雜性。另一方面,從硬件角度而言,一般分為基于感官和穿戴式傳感器兩種。前者一般都需要實(shí)現(xiàn)鋪設(shè)額外的設(shè)施來,成本高昂,最重要的是使用區(qū)域受限,無法實(shí)現(xiàn)全天候全方位的監(jiān)測。穿戴式傳感器價(jià)格低廉,且對用戶日常生活入侵性低,并且能夠?qū)崟r(shí)監(jiān)控。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對上述問題,提出一種基于動態(tài)時(shí)間規(guī)整的人體跌倒識別的方法,針對老年人進(jìn)行實(shí)時(shí)監(jiān)測,以滿足老年人在跌倒之后能及時(shí)通知到家屬或監(jiān)護(hù)人,獲得治療,減小跌倒帶來的危害。
實(shí)現(xiàn)本發(fā)明目的的具體技術(shù)方案:
一種基于動態(tài)時(shí)間規(guī)整的人體跌倒識別方法,用于智能手機(jī)終端中監(jiān)測用戶在某個(gè)時(shí)刻發(fā)生跌倒,從而短信通知監(jiān)護(hù)人或直接撥號,該方法包括以下步驟:
步驟1:采集真實(shí)跌倒事件的三軸加速度數(shù)據(jù),共n個(gè)樣本點(diǎn),并將其轉(zhuǎn)換成相應(yīng)的加速度信號幅值(m_sv),經(jīng)過中值濾波算法濾除噪聲后,最終的數(shù)據(jù)將作為動態(tài)時(shí)間規(guī)整(dtw)算法中的樣本序列s(a1,a2……an)用于后續(xù)的相似度匹配,其中濾波器選取窗口大小為m個(gè)樣本為一組;
步驟2:通過智能手機(jī)自帶的三軸加速計(jì)對人體加速度進(jìn)行采樣;
步驟3:將步驟2中采樣獲得的加速度信號轉(zhuǎn)換成加速度信號幅值(m_sv);
步驟4:對步驟3中的加速度信號幅值(m_sv)進(jìn)行端點(diǎn)檢測,預(yù)測跌倒事件是否可能發(fā)生;設(shè)定當(dāng)加速度信號幅值小于閾值g,認(rèn)為可能會發(fā)生跌倒,需要采集后續(xù)的加速度數(shù)據(jù)進(jìn)行確認(rèn);
步驟5:某點(diǎn)加速度若滿足端點(diǎn)檢測的條件,抽取該點(diǎn)之后n個(gè)采樣點(diǎn)的加速度數(shù)據(jù);
步驟6:對上述n個(gè)采樣點(diǎn),依次獲取其加速度信號幅值(m_sv),使用中值濾波法濾除噪聲后作為動態(tài)時(shí)間規(guī)整(dtw)算法中的查詢序列q(a1,a2……an)進(jìn)行相似度匹配,濾波器大小為m個(gè)樣本點(diǎn)為一組;
步驟7:通過動態(tài)時(shí)間規(guī)整(dtw)算法來計(jì)算出樣本序列s(a1,a2……an)和查詢序列q(a1,a2……an)之間的最優(yōu)路徑所對應(yīng)的累積距離,此距離定義為兩個(gè)序列的相似度;距離值越小,相似度越高,最后與設(shè)定的相似度閾值相比較,判斷是跌倒還是日?;顒?;其中,計(jì)算累積距離的具體步驟為:
計(jì)算樣本序列s和查詢序列q之間每個(gè)加速度信號幅值的相互距離,距離計(jì)算公式為di,j=(qi-sj)2,式中,di,j表示當(dāng)前查詢序列q的第i個(gè)信號幅值與樣本序列s第j個(gè)信號幅值的距離值;qi表示當(dāng)前查詢序列中第i個(gè)加速度信號幅值;sj表示當(dāng)前樣本序列中第j個(gè)加速度信號幅值;
構(gòu)造一個(gè)n*n的矩陣,將計(jì)算得到的距離值di,j按其下標(biāo)依次填入n*n矩陣的相應(yīng)位置;
在路徑約束條件的基礎(chǔ)上,在n*n的矩陣中尋找出一條最優(yōu)路徑,并將該路徑所經(jīng)過位置的距離累加求和,得出的結(jié)果即為最優(yōu)路徑所對應(yīng)的累積距離;
上述提到的路徑約束條件是:
邊界條件:所選路徑須從矩陣的左下角出發(fā),在右上角結(jié)束;
連續(xù)性:所選路徑只能沿相鄰或?qū)沁@三個(gè)方向前進(jìn);
單調(diào)性:所選路徑必須是隨著時(shí)間單調(diào)前進(jìn)的;
結(jié)合連續(xù)性和單調(diào)性的約束,每一個(gè)點(diǎn)的路徑只有三個(gè)方向。例如若路徑此時(shí)的點(diǎn)的位置為(i,j),那么下一個(gè)通過的點(diǎn)只可能是(i+1,j),(i,j+1),(i+1,j+1)三點(diǎn)中的其中一點(diǎn),累積距離d(i,j)=di,j+min{d(i-1,j),d(i,j-1),d(i-1,j-1)}。
步驟8:判斷為跌倒后,反饋給用戶判斷結(jié)果并發(fā)出警報(bào)聲;設(shè)定t秒讓用戶響應(yīng)判斷結(jié)果,若規(guī)定時(shí)間內(nèi)用戶取消了此次跌倒警報(bào),則這是一次誤判為跌倒的日常行為,不需要通知監(jiān)護(hù)人;返回步驟2繼續(xù)采集傳感器數(shù)據(jù);反之,若t秒內(nèi)無響應(yīng),確定發(fā)生跌倒,短信或電話通知監(jiān)護(hù)人。
本發(fā)明利用加速度傳感器收集原始的人體加速度數(shù)據(jù),并據(jù)此得到加速度向量幅值(m_sv);采集真實(shí)跌倒事件的數(shù)據(jù),設(shè)定為動態(tài)時(shí)間規(guī)整算法中的樣本序列;對處理后的加速度向量幅值進(jìn)行端點(diǎn)檢測;抽取一定長度的加速度向量幅值,經(jīng)過預(yù)處理后作為動態(tài)時(shí)間規(guī)整(dtw)算法中的查詢序列;利用動態(tài)時(shí)間規(guī)整(dtw)算法計(jì)算樣本序列與查詢序列之間的相似度,根據(jù)相似度大小判斷是否發(fā)生跌倒。
本發(fā)明只采用了三軸加速計(jì)這一個(gè)傳感器,不需要任何其他硬件設(shè)備,并且對加速度傳感器的型號指標(biāo)無硬性要求。此方法可移植性高,可直接應(yīng)用于手機(jī),手環(huán)等智能穿戴設(shè)備中,不需外部鋪設(shè)輔助設(shè)施。
本發(fā)明事先收集確定長度為n的真實(shí)跌倒事件的加速度數(shù)據(jù),經(jīng)過預(yù)處理后將其作為動態(tài)時(shí)間規(guī)整(dtw)算法中的樣本序列。
本發(fā)明中的樣本序列普適性高,對人體體型的差異不敏感,體重或身高的不同不會影響算法的識別效果。
本發(fā)明采用端點(diǎn)檢測法來預(yù)測跌倒事件是否可能發(fā)生,端點(diǎn)的閾值設(shè)定為g。采用端點(diǎn)檢測可以減少計(jì)算量,提高算法的速度。
本發(fā)明計(jì)算兩個(gè)序列的相似度,沒有采用普通的對應(yīng)點(diǎn)歐氏距離法,而是采用實(shí)時(shí)動態(tài)時(shí)間規(guī)整dtw算法將抽取得到的查詢序列與通過真實(shí)跌倒事件獲得的樣本序列進(jìn)行匹配識別,通過延伸或縮短序列找到一條最優(yōu)路徑使得兩序列之間的累計(jì)距離最短,距離即定義為相似度。
本發(fā)明的跌倒識別準(zhǔn)確率較高,但由于環(huán)境人為等不可抗因素,準(zhǔn)確率無法達(dá)到100%,存在較小的誤判率。為了減小誤判的影響,增加如下修訂方案:方法判斷為跌倒后,需要結(jié)合用戶對事件的響應(yīng)進(jìn)行最后的確認(rèn)。設(shè)定t秒的響應(yīng)時(shí)間,若該時(shí)間內(nèi)用戶取消了此次跌倒警報(bào),則這是一次誤判為跌倒的日常行為,不需要通知監(jiān)護(hù)人;若t秒內(nèi)沒有響應(yīng),確定發(fā)生跌倒,短信或電話通知監(jiān)護(hù)人。
本發(fā)明能正常工作在復(fù)雜環(huán)境下,不受區(qū)域限制,不需額外增加輔助設(shè)備,利用智能設(shè)備(如手機(jī),手環(huán)等)準(zhǔn)確識別跌倒并同時(shí)通知家屬或監(jiān)護(hù)人。
附圖說明
圖1為本發(fā)明流程圖;
圖2為本發(fā)明具體實(shí)施方式中樣本序列和查詢序列的匹配示意圖。
具體實(shí)施方式
結(jié)合以下具體實(shí)施例和附圖,對本發(fā)明作進(jìn)一步的詳細(xì)說明,以下實(shí)施例不構(gòu)成對本發(fā)明的限定。
本實(shí)施例針對搭載在android智能手機(jī)上,以android應(yīng)用的形式監(jiān)測人體跌倒,并立即以短信或語音通話的方式通知監(jiān)護(hù)人。能滿足實(shí)時(shí)性和工作在復(fù)雜的周圍環(huán)境下,不需要額外配置其他設(shè)備,不受地域的限制,又有較高的識別跌倒的準(zhǔn)確率,其流程如圖1所示。
分別在三類手機(jī)中進(jìn)行了測試,其具體參數(shù)如表一中所示。測試表明,這三類手機(jī)的性能差異不影響本發(fā)明識別跌倒的效果,所以本實(shí)施例的具體數(shù)據(jù)均基于三星手機(jī)。
如圖1所示為本發(fā)明的流程圖。在本實(shí)施例中,需要采集真實(shí)跌倒的加速度數(shù)據(jù),因此用app來收集存儲跌倒數(shù)據(jù)。通過測試傳感器采樣頻率和樣本大小的不同組合方式,最終確定識別效果最好的組合是采樣頻率為“sensor_dealy_normal”,樣本大小是300個(gè)采樣點(diǎn)。數(shù)據(jù)采集時(shí),將智能手機(jī)固定在腰部位置,進(jìn)行多次跌倒實(shí)驗(yàn),每次跌倒均收集300個(gè)樣本點(diǎn)。獲得的數(shù)據(jù)在存儲前已經(jīng)過一定的預(yù)處理,包括:轉(zhuǎn)換成加速度信號幅值和中值濾波(濾波器大小為5個(gè)樣本點(diǎn)為一組)。把獲得的多組跌倒數(shù)據(jù)均以波形的方式呈現(xiàn),選出一組最符合跌倒加速度變化的數(shù)據(jù),并把這組數(shù)據(jù)記錄下來,記為樣本序列s(a1,a2……a300)運(yùn)用到后續(xù)的相似度計(jì)算中。
典型的跌倒過程一般分為4個(gè)階段:站立—失重—碰撞—靜止,人體在站立或較為平和的活動時(shí),身體的加速度大小一般維持在0.85g—1.1g之間。從站立到碰撞到地面這之間由于身體處于自由落體的失重狀態(tài),加速度大小會在短時(shí)間內(nèi)急劇下降至0.35g及以下。而人體與地面碰撞的瞬間,人體加速度達(dá)到最大值,在1.5g—2.5g之間。跌倒發(fā)生后,人平躺在地面上,加速度又會趨近于1g,根據(jù)上述數(shù)據(jù),在本實(shí)施例中,端點(diǎn)檢測的閾值g為3.5m/s2。接下來具體闡述在本實(shí)施例中,如何使用動態(tài)時(shí)間規(guī)整(dtw)算法來識別一個(gè)典型的跌倒。首先實(shí)現(xiàn)監(jiān)聽傳感器這個(gè)基礎(chǔ)功能,方法是在android程序里啟用一個(gè)service,在service里調(diào)用系統(tǒng)的傳感器服務(wù)。使用service的優(yōu)點(diǎn)是可以讓這部分功能運(yùn)行在后臺,不需要創(chuàng)建用戶界面與用戶進(jìn)行交互。在service中得到原始的加速度數(shù)據(jù)后,立即通過計(jì)算得到加速度信號幅值(m_sv),然后對m_sv進(jìn)行端點(diǎn)檢測。如果檢測到m_sv<0.35g或m_sv<3.5m/s2,則判斷為接下來可能會發(fā)生跌倒,需要采集更多的數(shù)據(jù)進(jìn)一步判斷。否則將不斷地監(jiān)聽傳感器的變化,直到監(jiān)聽到滿足端點(diǎn)檢測條件的點(diǎn)。
若某點(diǎn)滿足端點(diǎn)檢測,抽取了該點(diǎn)之后一段長度的加速度數(shù)據(jù)。為了簡化動態(tài)時(shí)間規(guī)整算法,抽取與樣本序列相同長度的,即300個(gè)采樣點(diǎn)的加速度數(shù)據(jù)。對其依次進(jìn)行計(jì)算加速度信號幅值和中值濾波(濾波器大小為5個(gè)樣本點(diǎn)為一組),最后得到的300個(gè)數(shù)據(jù)作為查詢序列q(a1,a2……a300)運(yùn)用到后續(xù)的相似度計(jì)算中。
在得到樣本序列和查詢序列的基礎(chǔ)上,將兩者作為動態(tài)時(shí)間規(guī)整(dtw)算法的輸入。利用動態(tài)時(shí)間規(guī)整算法(dtw),對齊樣本序列和查詢序列上的特征點(diǎn),結(jié)果如圖2所示。圖中,a曲線為采集到的真實(shí)摔倒的樣本序列,b曲線為后續(xù)預(yù)測為摔倒的查詢序列。兩個(gè)曲線變化趨勢非常相似,但在時(shí)間軸上并不一一對應(yīng)。通過動態(tài)時(shí)間規(guī)整算法(dtw),就可對齊特征點(diǎn),找到兩曲線間的最短路徑。
根據(jù)最短路徑,獲得了查詢序列與樣本序列之間最優(yōu)路徑所對應(yīng)的累計(jì)距離,即為兩序列的相似度。距離值越小,相似度越高,最后與設(shè)定的相似度閾值相比較,本實(shí)施例中的相似度閾值為10。小于閾值,判斷為跌倒,進(jìn)入之后的用戶響應(yīng)階段;反之判斷為日常活動,返回監(jiān)聽傳感器數(shù)據(jù)。
設(shè)置用戶響應(yīng)階段的目的是為了方便用戶糾正判斷結(jié)果,如果發(fā)生沒有跌倒而判斷為跌倒的情況,可在此階段通過用戶的操作取消后續(xù)通知監(jiān)護(hù)人的功能。實(shí)現(xiàn)方法是,在上述判斷為跌倒后,流程進(jìn)入用戶響應(yīng)階段。先彈出一個(gè)alertdialog對話框和啟動手機(jī)的音頻功能發(fā)出警報(bào)聲,告訴用戶檢測到跌倒,并倒計(jì)時(shí)30s。在30之內(nèi),如果用戶點(diǎn)擊“取消”,則認(rèn)為這是一次錯(cuò)誤判斷為跌倒的日常行為,返回初始狀態(tài)繼續(xù)監(jiān)聽傳感器;否則30s內(nèi)沒有收到用戶響應(yīng),認(rèn)為跌倒事件成立,發(fā)送短信或撥打電話通知監(jiān)護(hù)人,及時(shí)就醫(yī),減小危害。在本實(shí)施例中,發(fā)送警報(bào)的方式可以通過短信或自動撥號的方式通知移動設(shè)備中預(yù)設(shè)的監(jiān)護(hù)人,并且報(bào)警信息包括移動設(shè)備的當(dāng)前時(shí)間信息和位置信息,從而監(jiān)護(hù)人可以獲知跌倒事件發(fā)生的確切時(shí)間和地理位置。