夏倫騰 ,張 莉 *
(1. 中南民族大學(xué)生物醫(yī)學(xué)工程學(xué)院,武漢430070; 2. 中南民族大學(xué)檢測(cè)與儀器校級(jí)工程中心,武漢430070)
根據(jù)時(shí)代數(shù)據(jù)2016 年統(tǒng)計(jì)數(shù)據(jù)表明,我國(guó)盲人數(shù)量1 731 萬(wàn),占全國(guó)總?cè)丝跀?shù)量的1.26%,目前我國(guó)存在視力障礙的人數(shù)居世界第一[1]。由于盲人的視力障礙,他們摔倒或者迷路走丟的情況時(shí)有發(fā)生,而一旦發(fā)生摔倒之類的安全問題,很容易錯(cuò)過最佳的救助時(shí)間,對(duì)身體造成永久性的損害。在日常生活中,盲人使用的手杖功能單一[2],這種手杖不能保證盲人的出行安全,同時(shí)盲人的監(jiān)護(hù)人也不能實(shí)時(shí)了解盲人的身體狀況和地理位置等情況。針對(duì)如今日益復(fù)雜的路面情況和交通狀況,如何設(shè)計(jì)一款能夠幫助盲人日常安全出行,并且能夠?qū)崟r(shí)監(jiān)護(hù)盲人身體姿態(tài)信息和定位的盲人智能手杖系統(tǒng),具有極大的應(yīng)用價(jià)值。
物聯(lián)網(wǎng)的概念在1999年被正式提出[3],顧名思義就是“物與物相連的互聯(lián)網(wǎng)”,其用戶端延伸和擴(kuò)展到了人和物之間進(jìn)行信息交換和通信,目前國(guó)內(nèi)對(duì)物聯(lián)網(wǎng)的定義是:通過傳感器無(wú)線射頻識(shí)別技術(shù)、全球定位系統(tǒng)等信息傳感設(shè)備,按約定協(xié)議,把任何物品和互聯(lián)網(wǎng)連接起來(lái)進(jìn)行信息交換和通信,以實(shí)現(xiàn)智能化識(shí)別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。機(jī)器學(xué)習(xí)方法在20 世紀(jì)80 年代被提出[4],在如今互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)量的累積是海量的,目前由海量數(shù)據(jù)構(gòu)成的大數(shù)據(jù)時(shí)代已經(jīng)到來(lái),機(jī)器學(xué)習(xí)方法在大數(shù)據(jù)挖掘中起著重要的作用,因此,如何融合物聯(lián)網(wǎng)技術(shù)與機(jī)器學(xué)習(xí)算法是當(dāng)今物聯(lián)網(wǎng)技術(shù)面臨的重要技術(shù)問題之一。在操作用戶應(yīng)用方面,傳統(tǒng)上大部分家庭安全系統(tǒng)操作監(jiān)護(hù)界面都是利用手機(jī)應(yīng)用或者計(jì)算機(jī)應(yīng)用,目前微信已經(jīng)成為了我們?nèi)粘I钪幸粋€(gè)必不可少的通信工具,很多人的關(guān)系鏈已經(jīng)從通信錄轉(zhuǎn)移到了微信,所以在微信小程序上的監(jiān)測(cè)可能會(huì)在一定程度上優(yōu)于傳統(tǒng)的計(jì)算機(jī)端。
本文提出了一種基于K 近鄰(K-Nearest Neighbor,KNN)和動(dòng)態(tài)時(shí)間規(guī)整(Dynamic Time Warping,DTW)算法的盲人物聯(lián)網(wǎng)手杖系統(tǒng),集傳感器、物聯(lián)網(wǎng)通信、機(jī)器學(xué)習(xí)和微信小程序?yàn)橐惑w,是一款具備避障、定位、報(bào)警、通信和監(jiān)護(hù)等多功能的集成系統(tǒng),并且集成了微信小程序作為監(jiān)護(hù)操作界面。該系統(tǒng)能夠?yàn)槊と顺鲂械谋憷桶踩蕴峁┯行У慕鉀Q方案,在盲人出現(xiàn)摔倒或者迷路的情況時(shí)可以第一時(shí)間借由一個(gè)按鍵通過互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程求助,監(jiān)護(hù)人則可以通過微信小程序查看盲人的安全情況。
盲人物聯(lián)網(wǎng)手杖系統(tǒng)總體框架如圖1 所示,主要包括手杖(硬件)端、云端服務(wù)器和用戶端三部分。通過物聯(lián)網(wǎng)技術(shù)將一個(gè)單純的輔助工具——盲人手杖與互聯(lián)網(wǎng)相連,通過云端服務(wù)器的數(shù)據(jù)存儲(chǔ)功能供用戶端調(diào)取查詢,用戶端則利用目前的輕量級(jí)應(yīng)用——微信小程序[5-6]作為核心的監(jiān)護(hù)操作上位機(jī)。三個(gè)部分功能實(shí)施的具體內(nèi)容如下:
1)手杖(硬件)端的功能包括:利用紅外線傳感器實(shí)現(xiàn)的避障,通過電位器調(diào)節(jié)的超聲波避障,語(yǔ)音求助和遠(yuǎn)程通過全球移動(dòng)通信系統(tǒng)(Global System for Mobile communications,GSM)求助,以及全球定位系統(tǒng)(Global Positioning System,GPS)和加速度計(jì)陀螺儀傳感數(shù)據(jù)的采集、處理和傳輸。
2)云端服務(wù)器的功能包括:域名注冊(cè)、域名解析、網(wǎng)站備案以及云服務(wù)器的搭建和數(shù)據(jù)庫(kù)存儲(chǔ)功能的實(shí)現(xiàn)、云函數(shù)的創(chuàng)建和調(diào)用、云端服務(wù)器應(yīng)用程序接口(Application Programming Interface,API)和HTTP API的調(diào)用[7]。
3)微信小程序的微信標(biāo)記語(yǔ)言(WeiXin Markup Language,WXML)、微信樣式表(WeiXin Style Sheets,WXSS)和Java Script架構(gòu)的編寫。功能包括:調(diào)用服務(wù)器數(shù)據(jù)庫(kù)中的GPS 定位數(shù)據(jù)信息、陀螺儀加速度計(jì)采集的傳感信息數(shù)據(jù)和姿態(tài)報(bào)警信號(hào)數(shù)據(jù),從而實(shí)現(xiàn)遠(yuǎn)程定位監(jiān)護(hù)、監(jiān)護(hù)盲人姿態(tài)信息[8]以及遠(yuǎn)程報(bào)警功能。另外還有異地天氣查詢、盲人安全新聞資訊和家庭成員登錄等附加功能的設(shè)計(jì)。
盲人物聯(lián)網(wǎng)手杖系統(tǒng)的硬件端設(shè)計(jì)如圖2 所示,以STM32F4103ZET6為核心處理器,集合了各類傳感器:
1)紅外線傳感避障模塊:本文采用的是以LM393 電壓比較器為基礎(chǔ)的紅外線避障模塊,位于盲人手杖的最前端。該模塊對(duì)環(huán)境光線適應(yīng)能力強(qiáng),具有一對(duì)紅外發(fā)射與接收管,發(fā)射管發(fā)射一定頻率的紅外線,當(dāng)檢測(cè)方向遇到障礙物時(shí),紅外線反射回來(lái)被接收管接收,經(jīng)過電壓比較器處理之后,模塊綠色LED 燈亮起,模塊輸出端便會(huì)輸出邏輯低電平,觸發(fā)語(yǔ)音播放模塊的提示語(yǔ)音及手柄處的震動(dòng)電機(jī)提醒,其有效距離達(dá)到30 cm。該模塊主要用于探測(cè)狹窄的過道以及臺(tái)階,確保盲人外出安全對(duì)及其對(duì)路況的掌握。
2)超聲波傳感測(cè)距避障模塊[9]:本文采用的是HC-SR04超聲波模塊,位于手杖紅外探頭上方。該模塊的最大的傳感距離可以通過手柄電位器靈活調(diào)節(jié),最大探測(cè)距離可以達(dá)到4 m,可以探測(cè)較遠(yuǎn)距離的障礙物。模塊工作原理是采用IO觸發(fā)測(cè)距,模塊自動(dòng)發(fā)送8個(gè)40 kHz的方波,探測(cè)是否有信號(hào)返回,有信號(hào)返回通過IO 輸出一個(gè)邏輯高電平信號(hào),所以當(dāng)盲人與前方障礙物的距離小于最大的感應(yīng)距離時(shí),便會(huì)觸發(fā)震動(dòng)電機(jī)提醒以及語(yǔ)音提示前方障礙物的距離,保障盲人出行的安全。
3)求助語(yǔ)音及通信模塊[10-11]:盲人可以通過按鍵觸發(fā)語(yǔ)音播放模塊中存儲(chǔ)的求助語(yǔ)音向周圍人群進(jìn)行求助。同樣地,可以通過另一個(gè)按鍵觸發(fā)遠(yuǎn)程求助功能,遠(yuǎn)程求助通信通過SIM808 模塊上的SIM 卡向指定的電話號(hào)碼發(fā)送求助短信,短信內(nèi)容包括盲人的固定求助短語(yǔ)及SIM808 模塊采集的地理位置經(jīng)緯度信息。
除了以上基本功能以外,本文還加入了GPS+通用分組無(wú)線服務(wù)(General Packet Radio Service,GPRS)定位功能[12],經(jīng)過定位模塊傳感器的數(shù)據(jù)采集,再通過GPRS 數(shù)據(jù)傳輸功能將定位數(shù)據(jù)傳輸至云端服務(wù)器數(shù)據(jù)庫(kù)存儲(chǔ);基于MPU6050 加速度計(jì)陀螺儀傳感模塊的姿態(tài)監(jiān)護(hù)功能[13],將傳感器采集到的三軸加速度和三軸角速度數(shù)據(jù)通過卡爾曼濾波(Kalman Filtering,KF)[14]姿態(tài)解算得出精確度極高的姿態(tài)角度數(shù)據(jù),通過連接數(shù)據(jù)傳輸模塊發(fā)送至云端服務(wù)器數(shù)據(jù)庫(kù)存儲(chǔ),同時(shí)融合機(jī)器學(xué)習(xí)KNN&DTW 為基礎(chǔ)的算法進(jìn)行姿態(tài)識(shí)別,當(dāng)輸入傳感器采集的角度數(shù)據(jù)之后,利用機(jī)器學(xué)習(xí)算法進(jìn)行姿態(tài)分類,當(dāng)分類為異常姿態(tài)時(shí)(如摔倒)會(huì)產(chǎn)生一個(gè)報(bào)警信號(hào),再將此信號(hào)數(shù)據(jù)包通過GPRS 數(shù)據(jù)傳輸至云端服務(wù)器數(shù)據(jù)庫(kù)存儲(chǔ)。
圖2 系統(tǒng)硬件設(shè)計(jì)框圖Fig. 2 Block diagram of hardware design for the proposed system
為了保證手杖系統(tǒng)定位功能的實(shí)現(xiàn)和定位精準(zhǔn)度與穩(wěn)定性,以及加速度計(jì)陀螺儀姿態(tài)監(jiān)護(hù)的穩(wěn)定性和核心監(jiān)護(hù)上位機(jī)功能的實(shí)現(xiàn),用戶端的監(jiān)護(hù)查看操作都離不開程序的調(diào)度,本章主要介紹實(shí)現(xiàn)手杖核心功能的軟件開發(fā)過程。
本文研究利用MPU6050 獲取相應(yīng)位置的角加速度和加速度,再將二者數(shù)據(jù)利用已經(jīng)相對(duì)比較成熟的KF 算法處理,融合計(jì)算出姿態(tài)角度,因?yàn)榧铀俣扔?jì)傳感數(shù)據(jù)及陀螺儀傳感原始數(shù)據(jù)具有一定程度的數(shù)據(jù)噪聲,例如加速度計(jì)傳感數(shù)據(jù)受帶寬影響,陀螺儀狀態(tài)易受震動(dòng)、溫度等影響。為解決這個(gè)問題,提高后續(xù)機(jī)器學(xué)習(xí)分類器姿態(tài)分類的精準(zhǔn)度,本文在將加速度計(jì)和陀螺儀傳感數(shù)據(jù)作為算法輸入?yún)?shù)的基礎(chǔ)上,添加了姿態(tài)角度數(shù)作為KNN&DTW 算法分類器的第三項(xiàng)對(duì)比參數(shù)。姿態(tài)角度是通過KF 算法融合加速度計(jì)及陀螺儀的傳感測(cè)量數(shù)據(jù)得到的濾除噪聲對(duì)于姿態(tài)最優(yōu)估計(jì)的角度數(shù)據(jù)。
KF 算法可以用于計(jì)算估計(jì)過程的狀態(tài)[15-16],并使估計(jì)均方差最小。在單片機(jī)平臺(tái)上利用KF 整合由陀螺儀和加速度計(jì)獲得的原始數(shù)據(jù)[17]。陀螺儀的作用是測(cè)量角速度,通過對(duì)角速度的積分得到角度值,但其噪聲大且極易受到環(huán)境的影響,因此不適合單獨(dú)用于使用陀螺儀作為傳感器得到姿態(tài)角度。本文系統(tǒng)使用加速度計(jì)測(cè)量角度與陀螺儀角度積分結(jié)果進(jìn)行修改再積分,再通過系統(tǒng)中的線性系統(tǒng)狀態(tài)方程輸出觀測(cè)數(shù)據(jù),濾掉相關(guān)外在噪聲,以獲得姿態(tài)數(shù)據(jù)的最優(yōu)估計(jì),如圖3所示。
圖3 卡爾曼濾波姿態(tài)解算示意圖Fig. 3 Schematic diagram of Kalman filter attitude calculation
二者數(shù)據(jù)融合的過程主要是通過卡爾曼濾波的標(biāo)準(zhǔn)方程并參考應(yīng)用文獻(xiàn)[18]中提出的姿態(tài)融合算法進(jìn)行計(jì)算。本文假設(shè)盲人姿態(tài)角度為ψ,采用加速度計(jì)探測(cè)的作為姿態(tài)角度的常值偏差b,以ψ 與b 作為盲人姿態(tài)角度的狀態(tài)方程,結(jié)合卡爾曼濾波標(biāo)準(zhǔn)方程得出狀態(tài)方程(1)及觀測(cè)方程(2):
其中:ωgyro為包含固定偏差的陀螺儀輸出角度;ψacce為手杖上處理過的加速度計(jì)角度值;ωg為陀螺儀采集測(cè)量中的誤差,ωa為加速度計(jì)采集測(cè)量中的誤差,本文假設(shè)ωg和ωa是相互獨(dú)立且滿足正態(tài)分布的白色噪聲。設(shè)Ts為采樣周期,可以得到離散系統(tǒng)的狀態(tài)方程(3)和測(cè)量方程(4):
根據(jù)KF 算法的標(biāo)準(zhǔn)方程,要想知道k 時(shí)刻的盲人姿態(tài)角度情況,就需要知道k - 1時(shí)刻的角度值,再通過預(yù)測(cè)得到的k時(shí)刻的預(yù)測(cè)值和高斯噪聲的方差,在此基礎(chǔ)之上通過KF算法進(jìn)行遞歸運(yùn)算直至估算出最優(yōu)的姿態(tài)角度值。KF 的標(biāo)準(zhǔn)預(yù)測(cè)公式如下:
式(5)中X(k|k - 1)是根據(jù)上一狀態(tài)預(yù)測(cè)的結(jié)果,X(k -1|k - 1)為上一次的最優(yōu)結(jié)果另外還需要知道系統(tǒng)過程噪聲協(xié)方差陣Q以及測(cè)量誤差的協(xié)方差陣R進(jìn)行校正,本文中Q和R的矩陣形式為:
其中q_acce和q_gyro分別為加速度計(jì)和陀螺儀測(cè)量值的協(xié)方差。對(duì)應(yīng)的X(k|k - 1)的協(xié)方差參考式(6),其中P(k - 1|k -1)為X(k - 1|k - 1)對(duì)應(yīng)的協(xié)方差,AT為A的轉(zhuǎn)置矩陣,Q 的取值參考式(7)。式(5)、(6)的主要作用為系統(tǒng)狀態(tài)的更新。姿態(tài)數(shù)據(jù)的最優(yōu)估計(jì)X(k|k)計(jì)算公式如下:
其中的 Kg()為卡爾曼增益(Kalman gain,Kg)[19],計(jì)算公式如下:
上述計(jì)算已經(jīng)可以得出k狀態(tài)下的最優(yōu)估計(jì)X(k|k),為了使該系統(tǒng)持續(xù)運(yùn)轉(zhuǎn)下去,還需要更新k 狀態(tài)下X(k|k)的協(xié)方差,所以根據(jù)標(biāo)準(zhǔn)KF可得到:
本文系統(tǒng)還融合了機(jī)器學(xué)習(xí)KNN&DTW 分類算法為基礎(chǔ)的姿態(tài)異常進(jìn)行報(bào)警的功能,實(shí)現(xiàn)過程為:將加速度計(jì)陀螺儀模塊采集的傳感器數(shù)據(jù)輸入KNN&DTW 算法的分類器之中進(jìn)行分類判斷,分類器中預(yù)先已經(jīng)訓(xùn)練過大量數(shù)據(jù)集,手動(dòng)對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行標(biāo)記,包含5 個(gè)姿態(tài)常態(tài)標(biāo)簽,當(dāng)輸入實(shí)時(shí)傳感器數(shù)據(jù)經(jīng)過算法運(yùn)算分析之后,若不屬于任何一類常態(tài)行為的標(biāo)簽,就會(huì)分類為姿態(tài)異常,此時(shí)會(huì)輸出一個(gè)報(bào)警信號(hào),實(shí)現(xiàn)遠(yuǎn)程姿態(tài)安全的監(jiān)護(hù)。
KNN 分類算法[20]:如果一個(gè)樣本在特征空間中的k 個(gè)最相似(即特征空間中最鄰近)的樣本的大多數(shù)屬于某一個(gè)類別,則該樣本也屬于這個(gè)類別。原始KNN 算法用于分類問題時(shí),存在諸多可以改進(jìn)的地方,例如樣本屬性特征的相關(guān)性不一致、算法中k 值的選取對(duì)分類結(jié)果有較大的影響等。針對(duì)這些缺點(diǎn),可以采用特征選擇剔除不相關(guān)的屬性,亦可以通過改進(jìn)距離函數(shù)來(lái)優(yōu)化算法,本文使用的就是后者。KNN 算法的距離度量一般采用歐氏距離,但標(biāo)準(zhǔn)的歐氏距離在面對(duì)多屬性特征空間劃分時(shí)會(huì)變得不準(zhǔn)確,所以本文在KNN 算法基礎(chǔ)上融合了DTW 方法作為KNN 算法的距離度量,可以很好地解決這個(gè)問題,使分類結(jié)果更加準(zhǔn)確。
動(dòng)態(tài)時(shí)間規(guī)整(DTW)由日本學(xué)者Itakura 在1970 年提出[21],是一種衡量?jī)蓚€(gè)長(zhǎng)度不同的時(shí)間序列的相似度的方法,在模板匹配、手勢(shì)識(shí)別、數(shù)據(jù)挖掘和信息檢索等領(lǐng)域應(yīng)用廣泛。DTW 是一個(gè)典型的優(yōu)化問題,它用滿足一定條件的時(shí)間規(guī)整函數(shù)描述測(cè)試模板和參考模板的時(shí)間對(duì)應(yīng)關(guān)系,求解兩模板匹配時(shí)累計(jì)距離最小所對(duì)應(yīng)的規(guī)整函數(shù)。如序列(11)、(12)所示,分別為參考時(shí)間序列數(shù)據(jù)集Q 和測(cè)試時(shí)間序列數(shù)據(jù)集C,它們的長(zhǎng)度分別為n、m,Q和C的特征點(diǎn)分別為q和c。
DTW 非常適合對(duì)具有不同頻率或異相的序列進(jìn)行分類,所以用DTW 分類一個(gè)人是走路、站立還是坐下就非常適合,圖4(b)顯示了DTW 距離矩陣的表現(xiàn)方式,通過測(cè)量Q、C之間的距離來(lái)計(jì)算每個(gè)像元,黑色路徑代表最佳路徑,代表兩個(gè)序列的最佳比對(duì)。使用動(dòng)態(tài)編程技術(shù)在Python 中實(shí)現(xiàn)DTW 對(duì)于距離矩陣的運(yùn)算,實(shí)現(xiàn)主要依靠三個(gè)關(guān)鍵步驟:
1)計(jì)算兩個(gè)序列之間的動(dòng)態(tài)時(shí)間規(guī)整距離;
2)計(jì)算Q、C之間的距離矩陣;
3)通過式(1)、(2)進(jìn)行KNN 計(jì)算預(yù)測(cè)類別的標(biāo)記和分類數(shù)據(jù)集的概率。
算法的實(shí)施過程是:通過KNN&DTW 算法計(jì)算兩個(gè)時(shí)間序列特征點(diǎn)到特征點(diǎn)的相似程度,在盲人手杖系統(tǒng)中則是將傳感器訓(xùn)練數(shù)據(jù)樣本和參考數(shù)據(jù)樣本進(jìn)行相似度匹配。DTW 使用所有相似點(diǎn)之間的距離的和(稱之為規(guī)整路徑距離(Warp Path Distance,WPD))來(lái)衡量?jī)蓚€(gè)時(shí)間序列之間的相似性,利用全局路徑窗口(Warping Window,WW)(如圖4(b))顯示全距離矩陣的最佳路徑。如式(13),最佳路徑的計(jì)算主要是計(jì)算兩個(gè)時(shí)間序列節(jié)點(diǎn)間的最短距離,例如q1與c1,利用shortestpaths()表示最短距離的運(yùn)算,再通過SUM()進(jìn)行累加運(yùn)算。
手動(dòng)對(duì)測(cè)試樣本進(jìn)行標(biāo)記,本文設(shè)計(jì)了5 類標(biāo)簽,分別是站立、坐、行走、下樓和上樓。可通過計(jì)算兩個(gè)序列之間的動(dòng)態(tài)時(shí)間規(guī)整距離的方法計(jì)算兩個(gè)序列之間的DTW 距離,也可以通過計(jì)算Q、C之間的距離矩陣的方法來(lái)計(jì)算兩個(gè)集合的距離,這是支撐KNN&DTW 分類算法的兩種方法;之后再利用預(yù)測(cè)方法進(jìn)行兩個(gè)方面的預(yù)測(cè):1)預(yù)測(cè)的類標(biāo)簽;2)KNN 標(biāo)簽計(jì)數(shù)概率。
圖4 KNN&DTW 算法示意圖Fig. 4 Schematic diagram of KNN&DTW algorithm
微信小程序作為監(jiān)護(hù)應(yīng)用相較于原生應(yīng)用具有更優(yōu)的便捷性和可操作性,基于現(xiàn)代人的社交習(xí)慣,微信端的通知情況比原生應(yīng)用要更加及時(shí);微信端集成了家庭監(jiān)護(hù)人成員安全登錄、盲人地理位置查詢、姿態(tài)角度查詢及姿態(tài)異常報(bào)警監(jiān)護(hù)功能,此外還附加了如天氣查詢、一鍵遠(yuǎn)程報(bào)警、盲人安全小資訊等功能,完善了盲人物聯(lián)網(wǎng)手杖集成系統(tǒng)。用戶端微信小程序的功能流程框圖如圖5所示。
為了對(duì)KNN&DTW 算法分類器進(jìn)行訓(xùn)練,需要采集大量的傳感數(shù)據(jù)同時(shí)貼近盲人的日常生活行為姿態(tài),本文將以MPU6050 為核心傳感器的加速度計(jì)陀螺儀模塊固定在盲人手杖的握把處,因?yàn)榭紤]到盲人在日常生活中,握把處的動(dòng)作幅度相對(duì)整個(gè)身體來(lái)講是最小的,所以數(shù)據(jù)噪聲相對(duì)而言也較少。本文測(cè)試人員為實(shí)驗(yàn)室的10 位實(shí)驗(yàn)人員,分別在實(shí)驗(yàn)室和樓梯間進(jìn)行數(shù)據(jù)的采集和測(cè)試。
傳感器數(shù)據(jù)采集中,考慮到信號(hào)的相似性和行為動(dòng)作的連貫性,通過對(duì)盲人日常姿態(tài)和行為習(xí)慣[22]的分析,連貫動(dòng)作的切換間會(huì)產(chǎn)生較大的傳感曲線的變化,例如從上樓轉(zhuǎn)換為下樓、坐轉(zhuǎn)換為站立等,而這種變化容易造成對(duì)于異常姿態(tài)的誤報(bào)警,大大降低姿態(tài)識(shí)別的準(zhǔn)確率。所以在本文的實(shí)驗(yàn)過程中,分別對(duì)上樓和下樓、站立和坐傳感數(shù)據(jù)進(jìn)行同時(shí)采集,而將行走作為單獨(dú)采集的傳感數(shù)據(jù)。加速度的單位以重力加速度g(取9.8 m/s2)為基本單位,陀螺儀采集數(shù)據(jù)單位為def/s,經(jīng)卡爾曼濾波姿態(tài)融合角度數(shù)據(jù)單位為def。測(cè)試中利用深圳維特智能科技有限公司的上位機(jī)程序記錄傳感器各類數(shù)據(jù),通過OriginLab公司開發(fā)的Origin軟件繪制各類傳感曲線,如圖6。圖6中的三條曲線分別為X軸、Y軸和Z軸數(shù)據(jù),圖(a)~(i)分別包括加速度計(jì)的傳感數(shù)據(jù)曲線、陀螺儀傳感數(shù)據(jù)曲線和經(jīng)過卡爾曼濾波姿態(tài)解算輸出的姿態(tài)角度傳感數(shù)據(jù)曲線。
從圖6 的姿態(tài)傳感器測(cè)試傳感數(shù)據(jù)可以看出,不同姿態(tài)下的三軸傳感器數(shù)據(jù)均有不同的特征,本文將各種傳感器實(shí)時(shí)采集的各軸傳感數(shù)據(jù)時(shí)間序列與參考的各軸傳感數(shù)據(jù)時(shí)間序列的特征點(diǎn)一一進(jìn)行比對(duì),識(shí)別二者的相似度,從而進(jìn)行姿態(tài)分類,識(shí)別出盲人的姿態(tài)情況,以達(dá)到對(duì)異常姿態(tài)的預(yù)警、保障盲人的生命生活安全的目的。
圖5 用戶端軟件功能流程Fig. 5 Flowchart of user-end software functions
目前市面上最先進(jìn)的盲人智能手杖基本上以傳感器探測(cè)路面障礙物情況為主,少數(shù)盲人智能手杖具備通信求助功能以及定位功能,基本沒有一款智能手杖具備姿態(tài)識(shí)別及姿態(tài)監(jiān)護(hù)的功能。本文不僅在手杖端加入了姿態(tài)識(shí)別的功能,并且所采用的機(jī)器學(xué)習(xí)方法進(jìn)行姿態(tài)識(shí)別區(qū)別于傳統(tǒng)的姿態(tài)角系統(tǒng),姿態(tài)角系統(tǒng)通過機(jī)械地設(shè)定各軸變化角度,當(dāng)變化角度大于限定范圍時(shí),便會(huì)輸出報(bào)警信號(hào),不能智能識(shí)別復(fù)雜的行為姿態(tài)。本文系統(tǒng)的優(yōu)勢(shì)在于:以機(jī)器學(xué)習(xí)算法KNN&DTW來(lái)智能地判斷盲人姿態(tài)安全狀況并輔以微信小程序通知求助,極大地降低了姿態(tài)識(shí)別誤報(bào)警的可能性。將上述5 類姿態(tài)的數(shù)據(jù)各1 000組進(jìn)行交叉驗(yàn)證訓(xùn)練,然后將訓(xùn)練好的分類器模型與姿態(tài)角系統(tǒng)中設(shè)定的異常姿態(tài)功能[23]同時(shí)測(cè)試。測(cè)試中將隨機(jī)輸入10 組姿態(tài)角度數(shù)據(jù),并且與手杖實(shí)際狀態(tài)進(jìn)行對(duì)比,傳感器采集結(jié)果及對(duì)比結(jié)果如表1、2 所示,將同一個(gè)姿態(tài)角X軸、Y軸和Z軸角度數(shù)據(jù)作為輸入數(shù)據(jù),持續(xù)時(shí)間為手杖傳感器在該角度所持續(xù)的時(shí)間,在姿態(tài)角度預(yù)警系統(tǒng)中默認(rèn)正常姿態(tài)范圍為:X軸 -40°至 40°,Y軸 -25°至 25°,Z軸-20 至20°;兩組表格中實(shí)驗(yàn)序號(hào)一致則代表為同一組實(shí)驗(yàn),例如表1中實(shí)驗(yàn)序號(hào)1采集的三軸角度是支撐表2實(shí)驗(yàn)序號(hào)1輸出結(jié)果的實(shí)驗(yàn)數(shù)據(jù)。
圖7 陀螺儀硬件連接及傳感數(shù)據(jù)采集Fig. 7 Gyroscope hardware connection and sensor data acquisition
表1 傳感數(shù)據(jù)的采集結(jié)果Tab. 1 Acquisition results of sensing data
表2 姿態(tài)預(yù)警系統(tǒng)的預(yù)警結(jié)果Tab. 2 Warning results of attitude warning system
如表1 序號(hào)3 采集結(jié)果及表2 對(duì)比實(shí)驗(yàn)結(jié)果所示,在靠近臨界值的角度分析結(jié)果,系統(tǒng)設(shè)定的范圍精度并不高,不能準(zhǔn)確地判斷出正確的姿態(tài)結(jié)果;考慮到盲人出行實(shí)際情況,在表1,表中測(cè)試序號(hào)2、7 和9,模擬手杖摔到地上迅速撿起等情況,系統(tǒng)的報(bào)警結(jié)果就不太準(zhǔn)確,連續(xù)測(cè)試了10 組不同的姿態(tài)情況下的角度數(shù)據(jù),姿態(tài)角度系統(tǒng)的準(zhǔn)確率只有50%,而經(jīng)過數(shù)據(jù)集訓(xùn)練的分類器結(jié)果輸出有100%的準(zhǔn)確率。10 組測(cè)試數(shù)據(jù)顯示:相較于姿態(tài)角度預(yù)警系統(tǒng),該算法的姿態(tài)識(shí)別準(zhǔn)確率提高了50 個(gè)百分點(diǎn),在較小樣本測(cè)試的結(jié)果較好。當(dāng)后期將測(cè)試數(shù)據(jù)加大至100 組時(shí),KNN&DTW 的準(zhǔn)確率均在86%左右,相較于傳統(tǒng)的設(shè)定姿態(tài)角度范圍的預(yù)警系統(tǒng)的準(zhǔn)確率55%具有相當(dāng)大的優(yōu)勢(shì),充分體現(xiàn)了本文所應(yīng)用的機(jī)器學(xué)習(xí)分類器的性能良好,能夠達(dá)到一個(gè)很好的姿態(tài)監(jiān)護(hù)效果。
本文系統(tǒng)中手杖的GPS定位功能通過遠(yuǎn)程通過微信小程序界面查詢盲人的實(shí)時(shí)地理位置實(shí)現(xiàn)。在手杖中配置了一塊GPS+GPRS/GSM 定位數(shù)據(jù)傳輸模塊,采用了SIM808 定位通信模塊,通過模塊進(jìn)行GPS 信號(hào)數(shù)據(jù)的采集,并利用GPRS 進(jìn)行數(shù)據(jù)傳輸,將盲人地理位置信息以及速度信息以符合NEMA-0813協(xié)議的格式數(shù)據(jù)發(fā)送到云服務(wù)器。NEMA0183是美國(guó)國(guó)家海洋電子協(xié)會(huì)(National Marine Electronics Association,NMEA)制定的標(biāo)準(zhǔn)格式,目前已成了GPS 導(dǎo)航設(shè)備統(tǒng)一的海事無(wú)線電技術(shù)委員會(huì)(Radio Technical Commission for Maritime services,RTCM)標(biāo)準(zhǔn)協(xié)議,協(xié)議內(nèi)容指令如表3所示。
表3 NEMA-0183協(xié)議具體指令信息Tab. 3 NEMA-0183 protocol specific instruction information
實(shí)驗(yàn)測(cè)試地點(diǎn)為學(xué)校操場(chǎng),持手杖多次移動(dòng)位置,并在一個(gè)位置多次測(cè)量地理位置數(shù)據(jù),將測(cè)試的經(jīng)緯度信息通過串口顯示出來(lái),將NEMA-0183 格式的經(jīng)緯度數(shù)據(jù)及其他數(shù)據(jù)換算成標(biāo)準(zhǔn)經(jīng)緯度的格式,再通過GPS 經(jīng)緯度測(cè)試工具進(jìn)行查詢顯示;同時(shí)與測(cè)試地點(diǎn)的實(shí)際標(biāo)準(zhǔn)經(jīng)緯度進(jìn)行比較,實(shí)際經(jīng)緯度信息由百度地圖采集所得,用于對(duì)比測(cè)試手杖定位模塊的定位精度。測(cè)試在學(xué)校操場(chǎng)不同的地方利用不同的定位模塊進(jìn)行了多次定位采集,具體測(cè)試數(shù)據(jù)如表4 所示(以NEMA格式數(shù)據(jù)顯示例如E11 423.234 7 即東經(jīng)114°23′14.082″,地圖1″誤差約等于30.9 m,三者誤差比為三者經(jīng)緯度定位誤差距離之比)。
由于盲人個(gè)體的特殊性,求助時(shí)間一分一秒都顯得尤為重要,所以手杖的定位精度直接影響著盲人救護(hù)的及時(shí)性,但市面上多款盲人手杖的定位功能極易受到信號(hào)強(qiáng)度、天氣、溫度等多因素的影響??紤]到成本以及定位精度等問題,本文將NEO-6M-001、GU620 以及SIM808 定位傳感器進(jìn)行精度對(duì)比測(cè)試[24]。從結(jié)果可知,GU620 以及 SIM808 定位精度較高(誤差距離基本小于1 m),NEO-6M-001 定位精度對(duì)比二者稍差(誤差距離均大于1 m);又由于GU620 定位模塊的成本較高,并且沒有GPRS 數(shù)據(jù)傳輸功能而需另外外接,所以本文采用價(jià)格低廉的SIM808 模塊并且集成GPRS 數(shù)據(jù)傳輸模塊,可以實(shí)現(xiàn)定位數(shù)據(jù)的云端傳輸,恰好體現(xiàn)了盲人手杖的物聯(lián)網(wǎng)概念和微信小程序端查詢、監(jiān)護(hù)的功能需求。
綜上所述,本文設(shè)計(jì)結(jié)合物聯(lián)網(wǎng)技術(shù)的盲人手杖所實(shí)現(xiàn)的定位功能精度較高,能夠保證盲人的出行定位監(jiān)護(hù)功能的實(shí)現(xiàn)。
表4 GPS定位測(cè)試結(jié)果對(duì)比Tab. 4 Comparison of GPS positioning test results
本文融合KNN&DTW 方法及物聯(lián)網(wǎng)技術(shù),以盲人手杖為核心開發(fā)了一套完整的監(jiān)護(hù)系統(tǒng),從盲人本身的生活出行情況和監(jiān)護(hù)人的日常監(jiān)護(hù)兩個(gè)方面保障了盲人的安全出行。本文除了具備市場(chǎng)上手杖已具備的紅外線傳感避障和超聲波避障功能以外,還加入了遠(yuǎn)程求助通信功能,在盲人遇到危險(xiǎn)時(shí)能快速求助;市場(chǎng)上盲人手杖只能夠通過短信發(fā)送定位信息進(jìn)行求助,本文研究則將GPS 定位的功能通過GPRS 通信模塊實(shí)現(xiàn)云端服務(wù)器的傳輸,利用微信小程序查詢和實(shí)時(shí)地圖顯示,更加直觀地幫助監(jiān)護(hù)人監(jiān)護(hù)到盲人的地理位置情況;最重要的是在手杖中加入了加速度計(jì)及陀螺儀模塊,通過KF姿態(tài)解算后輸出的姿態(tài)角度來(lái)查看盲人的姿態(tài)情況,亦通過GPRS數(shù)據(jù)傳輸至云端服務(wù)器,同樣是利用微信小程序調(diào)取傳感數(shù)據(jù)信息;同時(shí)加入了融合機(jī)器學(xué)習(xí)算法的姿態(tài)異常監(jiān)護(hù)功能,加入機(jī)器學(xué)習(xí)KNN&DTW 算法,通過大量數(shù)據(jù)集進(jìn)行測(cè)試,手動(dòng)對(duì)姿態(tài)狀況進(jìn)行標(biāo)簽標(biāo)記,從而使分類器可以識(shí)別盲人正常行為的姿態(tài)情況,避免誤報(bào)警現(xiàn)象頻發(fā);監(jiān)護(hù)人可以通過微信小程序遠(yuǎn)程呼叫救護(hù)車,最大限度保障了盲人的安全。本文在算法應(yīng)用中加入了幾種基本的姿態(tài)情況,對(duì)于較復(fù)雜的行為判斷仍有較大的研究潛力。