徐為則 葛艷紅 李文鋒 張?zhí)炱?/p>
(武漢理工大學(xué)物流工程學(xué)院 湖北 武漢 430063)
隨著可穿戴設(shè)備、云計(jì)算與物聯(lián)網(wǎng)技術(shù)的發(fā)展,遠(yuǎn)程醫(yī)療逐漸出現(xiàn)在人們的視野中,無(wú)論用戶處于何時(shí)何地,無(wú)線體域網(wǎng)BAN(Body Area Network)都能實(shí)時(shí)監(jiān)測(cè)用戶的生理狀況[1]。由于人有相當(dāng)長(zhǎng)的時(shí)間是在活動(dòng)狀態(tài)下生活和工作,人們對(duì)移動(dòng)健康的關(guān)注和研究逐漸增多[2-3]。然而,單一類型生理參數(shù)無(wú)法滿足人體健康評(píng)估的需求。針對(duì)此問(wèn)題,文獻(xiàn)[4]設(shè)計(jì)了多參數(shù)健康系統(tǒng),對(duì)多種生理參數(shù)的有效性進(jìn)行驗(yàn)證,并通過(guò)數(shù)據(jù)融合技術(shù)對(duì)健康評(píng)估;文獻(xiàn)[5]采用智能手機(jī)作為移動(dòng)網(wǎng)關(guān),能夠自動(dòng)收集人體的生理信息與人體姿態(tài)。當(dāng)人體異常時(shí),數(shù)據(jù)上傳至云端報(bào)警;文獻(xiàn)[6]通過(guò)安裝Android系統(tǒng)驅(qū)動(dòng)、生理參數(shù)驅(qū)動(dòng)與監(jiān)護(hù)應(yīng)用軟件,設(shè)計(jì)了一款遠(yuǎn)程多生理參數(shù)監(jiān)護(hù)系統(tǒng)。
由于采集人體健康數(shù)據(jù)的每個(gè)節(jié)點(diǎn)的能量、計(jì)算能力與存儲(chǔ)能力是有限的[7-8],對(duì)多類型數(shù)據(jù)持續(xù)與雜亂的傳輸,容易導(dǎo)致系統(tǒng)數(shù)據(jù)冗余,設(shè)備能耗損失增大。隨著移動(dòng)通信的發(fā)展,借助智能手機(jī)擁有多樣式的無(wú)線通信技術(shù)和較強(qiáng)大的計(jì)算能力[9-12],搭建了一種能夠智能管理移動(dòng)健康設(shè)備,減少數(shù)據(jù)上傳至云端的智能島。該智能島通過(guò)自動(dòng)調(diào)整設(shè)備優(yōu)先級(jí)獲取設(shè)備權(quán)重,并結(jié)合加權(quán)輪詢算法對(duì)移動(dòng)健康設(shè)備進(jìn)行管理與采集數(shù)據(jù)。當(dāng)遇到異常情況時(shí),可在第一時(shí)間感知并將結(jié)果上傳至云端報(bào)警。
針對(duì)移動(dòng)健康設(shè)備的統(tǒng)一管理與數(shù)據(jù)采集的需求,在智能手機(jī)上采用MVP模式搭建了一種智能島。采用MVP模式將數(shù)據(jù)與界面完全分離,降低層次之間的耦合,同時(shí)業(yè)務(wù)邏輯完全交給Presenter(數(shù)據(jù)處理層)層處理,具有可移植性的優(yōu)點(diǎn)。如圖1所示,智能島架構(gòu)共分為三層。
圖1 智能島總體架構(gòu)
第一層是數(shù)據(jù)層,包括藍(lán)牙技術(shù)與數(shù)據(jù)庫(kù)技術(shù)。該層的主要作用是從數(shù)據(jù)源(通過(guò)藍(lán)牙技術(shù)與移動(dòng)健康設(shè)備組網(wǎng)交互,HTTP技術(shù)與云端交互)中獲取數(shù)據(jù)。其中:藍(lán)牙技術(shù)與移動(dòng)健康設(shè)備動(dòng)態(tài)組網(wǎng)采集數(shù)據(jù);數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)對(duì)歷史數(shù)據(jù)的增、刪、改、查的功能。第二層是數(shù)據(jù)處理層(業(yè)務(wù)邏輯層),負(fù)責(zé)對(duì)數(shù)據(jù)層數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯處理,如查詢數(shù)據(jù)庫(kù)數(shù)據(jù),實(shí)現(xiàn)異常報(bào)警、智能管理設(shè)備。第三層是應(yīng)用層,為用戶提供可視化界面,實(shí)現(xiàn)對(duì)移動(dòng)健康設(shè)備的手動(dòng)控制,包括調(diào)整設(shè)備采集數(shù)據(jù)的頻率、數(shù)據(jù)庫(kù)的升級(jí)與設(shè)備狀態(tài)的控制。同時(shí)該層還可以查看用戶當(dāng)前設(shè)備狀況和健康狀況等。智能島主要完成以下兩項(xiàng)功能:
(1) 健康異常監(jiān)測(cè) 對(duì)用戶而言,身體健康異常狀況報(bào)警十分重要。智能島通過(guò)分析移動(dòng)健康設(shè)備采集的多生理數(shù)據(jù),實(shí)現(xiàn)對(duì)人體健康狀態(tài)判斷。身體健康狀態(tài)分為三種:健康、質(zhì)疑(如用戶久坐超過(guò)一定時(shí)間等)與危險(xiǎn)(多種類型生理參數(shù)均異?;蛉梭w久坐并血壓異常等)。當(dāng)質(zhì)疑或危險(xiǎn)發(fā)生時(shí),自動(dòng)向監(jiān)護(hù)人報(bào)警,提高報(bào)警響應(yīng)速度;若健康,則采取定期發(fā)送數(shù)據(jù)至云端的方式,達(dá)到減少數(shù)據(jù)上傳的目的。
(2) 智能組網(wǎng) 在體域網(wǎng)中,設(shè)備節(jié)點(diǎn)數(shù)據(jù)發(fā)送、接收與空閑時(shí)間對(duì)信道的監(jiān)聽(tīng)消耗大部分能量[13-14]。因此,在保障健康監(jiān)測(cè)的情況下,應(yīng)當(dāng)盡量減少節(jié)點(diǎn)數(shù)據(jù)傳輸。通過(guò)智能組網(wǎng)的方式,可解決此問(wèn)題。
在體域網(wǎng)中,由于異構(gòu)可穿戴設(shè)備的空間位置、傳輸速度與頻率的不同,采集的數(shù)據(jù)往往是雜亂無(wú)序的,容易導(dǎo)致數(shù)據(jù)碰撞與丟失等問(wèn)題出現(xiàn)。然而傳統(tǒng)的藍(lán)牙微微網(wǎng)中,調(diào)度算法RR采用輪詢不同的從節(jié)點(diǎn),將全部帶寬平均分布給每個(gè)從設(shè)備,存在不考慮設(shè)備對(duì)帶寬資源的需求以及用戶狀況需求的問(wèn)題。因此,本文采取提取用戶生理特征方式,進(jìn)行設(shè)備優(yōu)先級(jí)分配,并設(shè)計(jì)加權(quán)輪詢算法對(duì)設(shè)備動(dòng)態(tài)組網(wǎng)。
(1)
(2)
(3)
該智能島權(quán)重是變化的,采用滑動(dòng)時(shí)間窗形式,根據(jù)權(quán)重判斷規(guī)則,定期更新設(shè)備優(yōu)先級(jí)。通過(guò)優(yōu)先級(jí),分配設(shè)備的權(quán)重,默認(rèn)按數(shù)值等級(jí)來(lái)分配權(quán)重,如1,2,…,N。
假設(shè)在智能島區(qū)域D內(nèi),健康設(shè)備能夠被連接,且用戶所有設(shè)備MAC地址已保存在智能島。輪詢算法流程如圖2所示。
圖2 獲取輪詢?cè)O(shè)備算法
具體算法步驟如下:
(1) 智能島首先找到區(qū)域內(nèi)屬于用戶的設(shè)備,確保設(shè)備在活動(dòng)狀態(tài)。未搜索到設(shè)備默認(rèn)關(guān)閉且權(quán)重設(shè)為0,時(shí)間閾值Tmax獲得的藍(lán)牙網(wǎng)集如下:
Φ(t+Tmax)={X|X1,X2,…,Xn}
(4)
式中:Xi表示一個(gè)空間集合的位置。
(2) 進(jìn)行數(shù)據(jù)初始化。其中,cWij表示該設(shè)備當(dāng)前權(quán)重值,下標(biāo)i、j分別表示設(shè)備與輪詢的次數(shù);eWi表示設(shè)備影響權(quán)重(即通過(guò)優(yōu)先級(jí)獲取的權(quán)重);sum0表示影響權(quán)重之和,初始值為0;cWtmax表示已遍歷的健康設(shè)備中當(dāng)前權(quán)重最大的值(以下簡(jiǎn)稱最大權(quán)重值),下標(biāo)t的范圍為0≤t≤n-1;i表示設(shè)備號(hào),初始值為0;n表示設(shè)備數(shù)量。
(3) 更新該設(shè)備當(dāng)前權(quán)重與影響權(quán)重之和。將設(shè)備當(dāng)前權(quán)重值更新為設(shè)備影響權(quán)重與上一次該設(shè)備當(dāng)前權(quán)重之和,并更新影響權(quán)重之和sumi,公式如下:
cWij=cWij-1+eWisumi+=eWi
(5)
式中:cWij表示該設(shè)備在上一次輪詢中當(dāng)前權(quán)重值。
(4) 選取當(dāng)前權(quán)重最大的設(shè)備,作為輪詢?cè)O(shè)備。首先判斷是否是第一個(gè)設(shè)備,如果是第一個(gè)設(shè)備,此時(shí)更新最大權(quán)重值cWtmax及下標(biāo)t,公式如下:
cWtmax=cWit=i
(6)
如果不是,則將該設(shè)備的當(dāng)前權(quán)重與最大權(quán)重值進(jìn)行對(duì)比。如果小于,且判斷此時(shí)是最后一個(gè)設(shè)備,則選取cWtmax中下標(biāo)為t的設(shè)備,作為輪詢?cè)O(shè)備;如果小于,且判斷此時(shí)不是最后一個(gè)設(shè)備,則繼續(xù)比較下一個(gè)設(shè)備。如果大于,此時(shí)更新最大權(quán)重值cWtmax及下標(biāo)t,且判斷此時(shí)不是最后一個(gè)設(shè)備,繼續(xù)比較下一個(gè)設(shè)備當(dāng)前權(quán)重;如果大于且判斷此時(shí)是最后一個(gè)設(shè)備,則選取與cWtmax中下標(biāo)為t的設(shè)備,作為此時(shí)輪詢的設(shè)備。為了能夠輪詢到其他設(shè)備,將該被輪詢?cè)O(shè)備的當(dāng)前權(quán)重值cWt更新以及更新cWtmax=0,公式如下:
cWi=cWi=t-sumn-1
(7)
(5) 獲取到該cWtmax中t的值,表示第t種健康設(shè)備為輪詢?cè)O(shè)備。當(dāng)判斷該設(shè)備與上一次輪詢?cè)O(shè)備相同時(shí),并且上一次數(shù)據(jù)正常,則不進(jìn)行數(shù)據(jù)采集,若上一次異常,則進(jìn)行數(shù)據(jù)采集。
若在輪詢時(shí)發(fā)現(xiàn)數(shù)據(jù)超過(guò)閾值,則將輪詢停止,進(jìn)行多設(shè)備數(shù)據(jù)采集,按照分類進(jìn)行身體健康狀態(tài)診斷并報(bào)警。當(dāng)用戶久坐時(shí),彈出對(duì)話框的形式提醒用戶是否取消報(bào)警,如果超過(guò)時(shí)間閾值Tmax仍未取消,則進(jìn)行報(bào)警,表示質(zhì)疑等級(jí)報(bào)警;當(dāng)血壓超過(guò)時(shí),結(jié)合心率狀況,若此時(shí)心率也異常,則進(jìn)行危險(xiǎn)等級(jí)報(bào)警;若正常,但并未取消報(bào)警,則發(fā)送質(zhì)疑報(bào)警,否則,不進(jìn)行報(bào)警。
圖3為動(dòng)態(tài)組網(wǎng)連接健康設(shè)備采集數(shù)據(jù)的場(chǎng)景,將智能島安裝在智能手機(jī)上,采用Java語(yǔ)言編寫(xiě)的智能島進(jìn)行數(shù)據(jù)采集,使用多個(gè)時(shí)段進(jìn)行重復(fù)穩(wěn)態(tài)仿真[11]的方法測(cè)試效果。實(shí)驗(yàn)測(cè)試采用10組實(shí)驗(yàn),三種組網(wǎng)方式進(jìn)行對(duì)比,顯示動(dòng)態(tài)組網(wǎng)的效果,以及用異常感知時(shí)間來(lái)證明感知的效果。第一種是設(shè)備傳輸,未有優(yōu)先級(jí),采集全部數(shù)據(jù);第二種是設(shè)備輪詢傳輸,按順序采集數(shù)據(jù);第三種是設(shè)備權(quán)重輪詢,依次將1到4種用戶健康設(shè)備進(jìn)行連接與關(guān)閉。通過(guò)與其他場(chǎng)景能耗對(duì)比,說(shuō)明此方法的優(yōu)越性。圖4為智能島部分功能效果。其中:(a)表示心率值動(dòng)態(tài)變化;(b)表示解除報(bào)警功能,用于避免誤報(bào)的行為;(c)表示設(shè)備狀況(包括設(shè)備名稱、開(kāi)關(guān)、頻率、運(yùn)行狀況),并可手動(dòng)進(jìn)行設(shè)備管理。參與智能島效果測(cè)試人數(shù)10人,實(shí)驗(yàn)表明,該智能島能夠滿足健康監(jiān)測(cè)與管理設(shè)備的需求。
圖3 實(shí)驗(yàn)仿真場(chǎng)景
(a) 心率動(dòng)態(tài)顯示 (b) 解除報(bào)警 (c) 節(jié)點(diǎn)手動(dòng)管理圖4 智能島部分界面
為了驗(yàn)證動(dòng)態(tài)輪詢的有效性,進(jìn)行實(shí)驗(yàn)仿真,在實(shí)驗(yàn)中設(shè)置每次設(shè)備輪詢時(shí)長(zhǎng)為60 s,并在輪詢總數(shù)為30次時(shí),將壓力坐墊關(guān)閉,心率與血壓被輪詢的次數(shù)將增大。圖5中,縱坐標(biāo)表示每個(gè)設(shè)備某段輪詢的次數(shù),橫坐標(biāo)表示在某段時(shí)間輪詢的總數(shù)。圖5中的數(shù)據(jù)與結(jié)果吻合,證明該算法的有效性。
圖5 動(dòng)態(tài)輪詢算法仿真圖
(8)
圖6中,橫坐標(biāo)表示測(cè)試的設(shè)備數(shù),縱坐標(biāo)表示消耗電量百分比,并與表1對(duì)應(yīng)。在連接設(shè)備相同情況下,全部連接并采集數(shù)據(jù)將增大電量消耗;在輪詢時(shí),均勻分配資源給每個(gè)設(shè)備,電量消耗趨于穩(wěn)定趨勢(shì);第三種權(quán)重分配消耗電量最少,由于權(quán)重的原因,設(shè)置不同的頻率進(jìn)行數(shù)據(jù)采集,并且當(dāng)前一次和此次采集設(shè)備相同時(shí),在數(shù)據(jù)正常情況下,此次不進(jìn)行采集,在一定程度上能夠節(jié)約能耗。
圖6 三種場(chǎng)景的電量消耗對(duì)比圖
表1 三種場(chǎng)景電量消耗對(duì)比 %
為了能夠測(cè)試異常第一時(shí)間感知,在測(cè)試時(shí)將心率與血壓閾值調(diào)小,以便測(cè)試異常感知狀況,參與實(shí)驗(yàn)人數(shù)為10人,年齡25周歲左右。由表2可知,延時(shí)時(shí)間非常短,報(bào)警準(zhǔn)確度達(dá)到100%。
表2 異常感知結(jié)果
針對(duì)移動(dòng)健康設(shè)備的管理與健康監(jiān)護(hù)的需求,研究了能夠管理移動(dòng)健康設(shè)備,節(jié)約設(shè)備能耗的智能島。該智能島具有以下優(yōu)點(diǎn):
(1) 既可以與移動(dòng)健康設(shè)備進(jìn)行智能組網(wǎng),又可以與云端交互,在人體異常時(shí),能夠第一時(shí)間進(jìn)行感知。
(2) 能夠根據(jù)用戶個(gè)人狀況自動(dòng)調(diào)整設(shè)備優(yōu)先級(jí),進(jìn)行藍(lán)牙4.0智能組網(wǎng)采集數(shù)據(jù),完成設(shè)備管理與控制,節(jié)約能耗。
(3) 采用MVP架構(gòu),減少數(shù)據(jù)的耦合,提高代碼清晰度,提高智能島的穩(wěn)定性、可移植性與可擴(kuò)展性。智能島還可記錄用戶的日常生活習(xí)慣,為日后的深度學(xué)習(xí)研究提供基礎(chǔ)。