曾億山, 劉 睿
(合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 合肥 230009)
專利《一種嬰兒爬行訓(xùn)練機(jī)及其控制系統(tǒng)和控制方法》[1]設(shè)計(jì)初衷是輔助初生嬰兒爬行訓(xùn)練。原型設(shè)備利用攝像頭采集嬰兒的動作并結(jié)合安置在墊子上的壓力傳感器數(shù)據(jù)判斷的爬行意圖和方向。這種識別方式受環(huán)境光線和傳感器精度的制約,工作環(huán)境存在局限,本文對設(shè)備適應(yīng)性差等缺點(diǎn)提出改進(jìn)。加速度傳感器和陀螺儀具有不受環(huán)境影響、可獲取空間動作信息等特點(diǎn),非常適合作為肢體動作識別的工具。無線傳感器網(wǎng)絡(luò)具有高效率、低成本、部署靈活等特點(diǎn)[2,3]。Mantyjarvi J等人將2個含有三軸加速度傳感器的盒子放在測試者左右兩側(cè)腰上,識別佩戴者的不同動作[4];Costante G等人通過智能手表內(nèi)置的加速度傳感器采集手臂手勢作為輸入方式實(shí)現(xiàn)手機(jī)的免提交互[5]。
本文設(shè)計(jì)基于六軸傳感器的無線動作識別系統(tǒng),用于識別嬰兒的動作。嬰兒動作不具有規(guī)律性,用單個傳感器無法完成要求,需要在嬰兒脊背(傳感器0)、手腕(傳感器1,2)、腳踝(傳感器3,4)共5處佩戴傳感器終端采集佩戴部位的動作信號。終端通過WiFi將數(shù)據(jù)發(fā)往服務(wù)器,根據(jù)實(shí)時動作判斷爬行的意圖和爬行方向。
硬件分為可穿戴終端和服務(wù)器。終端采用Espressif ESP8266無線模塊作為控制器。慣性測量單元(inertial measurement unit,IMU)選用InvenSense MPU—6050六軸傳感器,通過I2C總線與無線模塊通信。終端可以實(shí)現(xiàn)數(shù)據(jù)的采集、預(yù)處理和傳輸。終端工作電壓為3.3 V,鋰電池經(jīng)TPS63020線性穩(wěn)壓器降壓后供電。
服務(wù)器采用MediaTek MT7621A無線開發(fā)板,其集成32 bit雙核微處理器,32 MB FLASH和512 MB RAM,支持2.4,5 GHz雙頻段WiFi。服務(wù)器根據(jù)每個終端不同的MAC地址區(qū)分佩戴位置。
該系統(tǒng)關(guān)鍵是通過嬰兒四肢的動作判斷爬行意圖。匍匐爬行的過程可分解為手臂向前伸出、膝蓋彎曲腿部向軀干靠近、保持手腳位置不變、手足用力拉動身體前進(jìn)等一系列動作組成。觀察發(fā)現(xiàn)整個爬行過程,手腳移動的軌跡可以簡化為水平面上的“↑”、“↗”和“↖” 3種模型,并且包含在z軸上的升降。因此將問題簡化為圖1中3個手勢的識別。
圖1 3種手勢的運(yùn)動示意
手勢識別僅需要利用加速度信號,需要預(yù)先去除重力加速度的影響并對數(shù)據(jù)濾波。本系統(tǒng)對濾波要求較低,終端采集信號后經(jīng)過滑動平均濾波處理后再發(fā)往服務(wù)器。
信號提取用于從連續(xù)信號中提取出僅包含動作部分的信號,如文獻(xiàn)[6,7]的方法。本文采用加速度一階向后差分的方法。在沒有手勢動作時,信號平穩(wěn);執(zhí)行手勢動作時,信號迅速變化。對加速度信號進(jìn)行差分可反映加速度變化的劇烈程度,具體地終端獲取的3種手勢模版的加速度信號及其一階向后差分信號如圖2所示。
(1)
圖2 加速度和加速度向后差分信號
由圖可知每一個手勢都對應(yīng)一個加速度差分信號的主峰。手勢的起點(diǎn)和終點(diǎn)通過閾值來確定,本系統(tǒng)采用0.02gn。差分信號閾值內(nèi)數(shù)據(jù)即為有效手勢信號。為避免將突發(fā)數(shù)據(jù)識別為手勢,若截取起點(diǎn)和終點(diǎn)的時間小于0.15 s,則拋棄該組數(shù)據(jù)。
現(xiàn)今手勢識別研究中[8],考慮本系統(tǒng)中機(jī)能的限制,選用動態(tài)時間規(guī)整(dynamic time warping,DTW)算法較合適[9],系統(tǒng)的模型簡單,直接利用歐氏距離計(jì)算相似度[10]。
DTW通過調(diào)整時間序列不同時間點(diǎn)對應(yīng)元素之間的關(guān)系獲得最優(yōu)路徑,使其能很好地度量時間序列之間的關(guān)系。假定服務(wù)器中儲存的手勢模板S=[s1,s2,…,sm,…,sM]和待測序列T=[t1,t2,…,tn,…,tN],其中M和N為序列中特征矢量的總幀數(shù)。m,n為矢量的時序標(biāo)號。
如圖3所示,在坐標(biāo)系的橫軸和縱軸上標(biāo)出待測序列和手勢模板的特征矢量,各個特征矢量之間的關(guān)系用網(wǎng)格表示,網(wǎng)格中的交叉點(diǎn)(n,m)表示待測序列T(n)和手勢模板S(m)相交,記DTW[T(n),S(m)]為交叉點(diǎn)的失真。D[T,S]為待測序列與手勢模板的總失真。
圖3 DTW算法及路徑限制示意
若N=M,即兩個序列的長度相等有
(2)
若N≠M(fèi),定義路徑代價函數(shù)d[(n,m)],其意義為從起點(diǎn)(1,1)出發(fā)到當(dāng)前點(diǎn)(n,m)的累積失真,且有以下遞推公式
d[(n,m)]=DTW[T(n),S(m)]+min{d[(n-1,m)],d[(n-1,m-1)],d[(n,m-1)]}
(3)
d[(1,1)]=DTW[T(1),S(1)]
(4)
式(3)表示路徑中任意交叉點(diǎn)(n,m)前一點(diǎn)為(n-1,m),(n-1,m-1),(n,m-1)3個交叉點(diǎn)之一。根據(jù)上述公式,可從終點(diǎn)(N,M)反推至起點(diǎn)(1,1)求解最優(yōu)路徑,計(jì)算出長度不同的特征序列之間的最小失真度總和D[T,S]=d[(N,M)]。通過DTW算法可以使不同長度的序列相互度量。
為了避免盲目搜索,通常采用限定搜索路徑中斜率的極值實(shí)現(xiàn)路徑限制以降低算法運(yùn)算量、提高速度。實(shí)際操作中雖然手勢執(zhí)行的速度和幅度有所不同,但各部分次序仍保持不變,因此,搜索路徑必然從左下角出發(fā),終止于右上角。通常規(guī)定以(1,1)為起點(diǎn),(N,M)為終點(diǎn),以經(jīng)過(1,1)的直線l1,l4和經(jīng)過(N,M)的直線l2,l3組成的平行四邊形內(nèi)進(jìn)行搜索。其中l(wèi)1,l3的斜率為2,l2,l4的斜率為1/2。
與加速度傳感器不同。陀螺儀測量的是角速度,對線性機(jī)械運(yùn)動敏感度較低,但其本身固有特性,工作中會產(chǎn)生漂移,姿態(tài)檢測需要陀螺儀的測量值矯正加速度傳感器測量值的錯誤。系統(tǒng)根據(jù)上一次加速度傳感器測量值的估計(jì),結(jié)合陀螺儀的測量值計(jì)算出當(dāng)前時刻重力矢量的方向,再與當(dāng)前時刻加速度傳感器測量值加權(quán)平均,得到當(dāng)前的最優(yōu)估計(jì)值[11]。圖4為姿態(tài)測量原理。
圖4 姿態(tài)測量原理
定義估計(jì)值Rest=[Rxest,Ryest,Rzest]作為算法的輸出,并認(rèn)為Rest(0)=Racc(0)。由圖4可知tanθxz=Rx/Rz,進(jìn)而求得θxz=arctan 2(Rx/Rz),利用當(dāng)前加速度傳感器的測量值計(jì)算陀螺儀上一時刻的角度為tan(θxz(n-1))=Rx(n-1)/Rz(n-1)。
陀螺儀的測量值為當(dāng)前轉(zhuǎn)動角速度ωxz,ωyz,設(shè)T為采樣間隔,則得到陀螺儀在任意時刻n的角度為
(5)
引入由陀螺儀當(dāng)前測量值和上一次估計(jì)值計(jì)算得到的矢量Rgvro=[Rxgvro,Rygyro,Rzgyro]。由合加速度R2可寫出矢量長度,并假設(shè)長度為1 且旋轉(zhuǎn)后不發(fā)生變化,有
(6)
令x=Rxgyro,y=Rygyro,z=Rzgyro,根據(jù)式(6)可得
(7)
當(dāng)前時刻的重力矢量估計(jì)值Rest(n)由加速度傳感器當(dāng)前的測量值Racc(n)和Rgyro(n)加權(quán)平均得到
(8)
式中W為陀螺儀權(quán)值,表示相對于加速度傳感器,信任陀螺儀的程度,通常取5~20,本系統(tǒng)中取W=12。
實(shí)際工作中,只考量在與實(shí)驗(yàn)者身體方向相同的軸上的偏轉(zhuǎn)角度,忽略其他軸上的偏轉(zhuǎn)。且設(shè)定閾值為角度超過15°且持續(xù)時間超過0.75 s時系統(tǒng)判定為有轉(zhuǎn)向意圖,當(dāng)角度或時間小于閾值時視為無效動作。
采集手勢并隨機(jī)挑選3種手勢各100份,其中手部和腳部分別占50份,存入服務(wù)器數(shù)據(jù)庫作為模板。
結(jié)合實(shí)際情況,實(shí)驗(yàn)重點(diǎn)考察實(shí)驗(yàn)者開始連續(xù)執(zhí)行動作到服務(wù)器給出指令所用的時間,具體某次手勢的識別情況放在次要。系統(tǒng)工作流程如圖5。
設(shè)定終端采樣頻率為40 Hz。傳感器1~4采集加速度信號經(jīng)濾波后通過WiFi傳送到服務(wù)器,服務(wù)器對數(shù)據(jù)分割匹配,當(dāng)超過2只傳感器的手勢匹配成功則直接判定為滿足要求并結(jié)合脊背處傳感器測出的傾斜方向輸出相應(yīng)指令;若只有1只傳感器匹配成功,則視為無關(guān)動作;若2只傳感器匹配成功,需要進(jìn)一步判斷是否同時為手部、腳部傳感器,若是,則視為無關(guān)動作;若不是,則結(jié)合傳感器0測出的傾斜方向并輸出指令。
相應(yīng)選取8名實(shí)驗(yàn)者穿戴傳感器終端,距離服務(wù)器1 m處完成爬行動作15次,觀察記錄從實(shí)驗(yàn)者連續(xù)執(zhí)行動作到服務(wù)器給出正確反應(yīng)所用的時間,實(shí)驗(yàn)結(jié)果記錄如表1。
表1 系統(tǒng)識別時間
因?yàn)橥瑫r處理多只傳感器的數(shù)據(jù),服務(wù)器負(fù)載較大且設(shè)定了時間閾值,實(shí)驗(yàn)表明在動作執(zhí)行1 s后服務(wù)器才能完成動作識別發(fā)出指令。其他情況是由于終端設(shè)計(jì)簡單,存在供電不足等原因?qū)е聜€別終端無法將數(shù)據(jù)發(fā)往服務(wù)器。
實(shí)驗(yàn)表明,該系統(tǒng)能在3 s內(nèi)正確給出指令的概率為74.2 %,3~4 s內(nèi)給出正確指令的概率為17.5 %,4 s以后完成識別的概率僅為6.67 %。
本文針對實(shí)際需要設(shè)計(jì)基于六軸傳感器的無線動作識別系統(tǒng),實(shí)驗(yàn)證明該系統(tǒng)可以滿足實(shí)際需要。因?yàn)橛布O(shè)計(jì)簡單,工作穩(wěn)定性尚有不足。且基于模板匹配的手勢識別有多種因素會影響識別的正確率,如手勢模板的數(shù)量、執(zhí)行手勢的穩(wěn)定性等。事實(shí)上,手勢識別的應(yīng)用是在線計(jì)算的過程,而文中的結(jié)論均為離線計(jì)算得到。因此,還需要對硬件和算法進(jìn)一步改進(jìn),提高識別的速度和系統(tǒng)穩(wěn)定性,以適應(yīng)更加復(fù)雜的情況。