程 康,葉 寧,黃海平,王汝傳
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,南京 210023)
隨著計(jì)算機(jī)科學(xué)技術(shù)的飛速發(fā)展,人們開始探討 人機(jī)共生的可能性,以此提高人類的生活質(zhì)量和工作效率.手勢(shì)控制技術(shù)[1]使人與計(jì)算機(jī)的交互變得更簡(jiǎn)單、自然,用戶可以通過(guò)適當(dāng)?shù)氖謩?shì)來(lái)控制周圍的機(jī)器,不再局限于鍵盤和鼠標(biāo)輸入、手柄操作,也不僅限于觸摸屏.
目前,手勢(shì)控制的方式主要分為視覺、傳感器和無(wú)線射頻三大類.基于視覺的手勢(shì)控制技術(shù)通過(guò)分析攝像頭捕獲到的圖像序列來(lái)識(shí)別用戶靜態(tài)或動(dòng)態(tài)手勢(shì),最后利用內(nèi)部硬件集成實(shí)現(xiàn)系統(tǒng)交互[2,3].該方法不足之處在于圖像數(shù)據(jù)量較大,同時(shí)基于可見光的識(shí)別存在光照不穩(wěn)定、手勢(shì)對(duì)象彼此遮擋等一系列干擾問(wèn)題.基于運(yùn)動(dòng)傳感器的手勢(shì)控制技術(shù)利用傳感器采集手勢(shì)動(dòng)作數(shù)據(jù)并提取其關(guān)鍵特征來(lái)實(shí)現(xiàn)手勢(shì)識(shí)別與控制[4].該方法存在功耗和便攜性問(wèn)題.由于需要額外供電,部分傳感器采用有線連接,不便于某些空間復(fù)雜的交互場(chǎng)景.而無(wú)線傳感器需攜帶電池,其電量受限且尺寸不便于佩戴.基于WiFi的手勢(shì)控制技術(shù)[5]中需要使用特制的硬件設(shè)備進(jìn)行無(wú)線信號(hào)的處理,其價(jià)格昂貴,不利于普及到日常生活.
本文研究的是基于無(wú)線射頻的手勢(shì)控制技術(shù),通過(guò)提取RFID反向散射通信中標(biāo)簽反射信號(hào)的關(guān)鍵特征,構(gòu)造手勢(shì)識(shí)別模型,最后利用無(wú)線藍(lán)牙與機(jī)器人之間的串口通信實(shí)現(xiàn)對(duì)機(jī)器人的手勢(shì)控制.
無(wú)源RFID標(biāo)簽無(wú)需攜帶能進(jìn)行內(nèi)部供電的電池,而是由RFID閱讀器通過(guò)天線傳輸?shù)碾姶拍芰抗╇?圖1給出RFID讀寫器和無(wú)源標(biāo)簽之間的無(wú)線電波傳播的概念圖.讀寫器中的電流通過(guò)天線輻射出電磁波,并形成變化的電磁場(chǎng),接收端標(biāo)簽內(nèi)部線感應(yīng)到變化的電磁場(chǎng),從而在其線圈內(nèi)部產(chǎn)生電壓.若標(biāo)簽天線通過(guò)某種負(fù)載連通,就會(huì)產(chǎn)生感應(yīng)電流.另外,標(biāo)簽內(nèi)部芯片調(diào)制后輻射的電磁波能返回到讀寫器的天線中,并產(chǎn)生能被識(shí)別的信號(hào),稱為反向散射信號(hào).讀寫器能夠通過(guò)識(shí)別標(biāo)簽的反向散射信號(hào)來(lái)獲取必要信息,這就是反向散射通信.
對(duì)于載波頻率為f(Hz)的電磁波,其頻率與波長(zhǎng)的關(guān)系為其中c是波速,在空氣中的傳播大小約等于光速(3×108m/s).如圖1所示,信號(hào)的傳輸距離為2R.除了距離上的射頻相位偏移之外,讀寫器的發(fā)射電路、標(biāo)簽的反射特性以及讀寫器的接收器電路都將帶來(lái)一些額外的相位偏移,分別記為則總的相位偏移可以被表示為:
圖1 RFID反向散射通信機(jī)制
本文采用動(dòng)態(tài)手勢(shì)識(shí)別方案實(shí)現(xiàn)用戶與機(jī)器人的交互應(yīng)用.一旦用戶在天線讀取范圍內(nèi)做出動(dòng)態(tài)手勢(shì),系統(tǒng)就通過(guò)分割提取出標(biāo)簽信號(hào)的相位特征段,然后利用DTW算法和kNN算法對(duì)時(shí)序的特征分段進(jìn)行手勢(shì)歸類,從而識(shí)別用戶的手勢(shì).最后在此基礎(chǔ)上利用藍(lán)牙設(shè)備與機(jī)器人進(jìn)行串口通信,機(jī)器人在接收串口數(shù)據(jù)指令后執(zhí)行相應(yīng)的動(dòng)作.圖2為基于RFID反向散射通信的機(jī)器人手勢(shì)控制系統(tǒng)原理圖.
2.1.1 相位周期性消除
由上述可知,讀寫器讀取到的初始相位是周期性函數(shù),其會(huì)在每個(gè)傳輸循環(huán)節(jié)點(diǎn)跳變,我們稱之為相位突變.如圖3(a)所示,當(dāng)相位值減小到0時(shí),它將跳變?yōu)?這種相位突變嚴(yán)重影響系統(tǒng)對(duì)標(biāo)簽位置變化特征的判斷.另一方面,觀察到RFID讀寫器的讀取速率極快,導(dǎo)致兩次連續(xù)采樣點(diǎn)標(biāo)簽位移距離d很小.根據(jù)本系統(tǒng)中標(biāo)簽的運(yùn)動(dòng)速度,可以假設(shè)由三角形約束得到是讀寫器天線對(duì)標(biāo)簽兩次連續(xù)讀取的距離之差.再結(jié)合公式(1)可以計(jì)算出兩次連續(xù)相位值之差的約束關(guān)系:
由于k是整數(shù),根據(jù)公式(2)進(jìn)一步可以得到
圖2 基于RFID反向散射通信的機(jī)器人手勢(shì)控制系統(tǒng)原理圖
圖3 相位周期性消除前后的數(shù)據(jù)流
2.1.2 平滑處理
由于固有的電路噪聲的影響,即使當(dāng)標(biāo)簽靜止的情況下,測(cè)量到的相位值也會(huì)在某固定值上下隨機(jī)波動(dòng).為了減小隨機(jī)波動(dòng)對(duì)控制系統(tǒng)的影響,需要分析這種隨機(jī)性并采用針對(duì)性的濾波手段.我們隨機(jī)采集40個(gè)樣本數(shù)據(jù)并將其與標(biāo)準(zhǔn)正態(tài)分布作比較,畫出兩者對(duì)比的QQ圖.如圖4所示,QQ圖上點(diǎn)的線性特征驗(yàn)證了樣本數(shù)據(jù)是服從正態(tài)分布的.因此,本文針對(duì)這種高斯噪聲,利用窗口大小為10的滑動(dòng)濾波器對(duì)采集到相位值進(jìn)行平滑處理.圖5給出了平滑處理前后的相位流對(duì)比,可見噪聲得到了較好的抑制,同時(shí)減小了之后數(shù)據(jù)分割與匹配的誤差.
一旦獲得處理后的相位流,我們需要提取有利于本系統(tǒng)手勢(shì)識(shí)別的數(shù)據(jù)特征.難點(diǎn)主要來(lái)自兩個(gè)方面:首先,數(shù)據(jù)流不斷快速更新,這給確定每個(gè)手勢(shì)的開始和結(jié)束時(shí)間帶來(lái)了較大的難度.另一方面,手勢(shì)的數(shù)據(jù)特征容易受到不適當(dāng)?shù)牟僮饕约霸O(shè)備部署的影響從而表現(xiàn)的不穩(wěn)定.本小節(jié)主要介紹了如何進(jìn)行精確高效的手勢(shì)分割,并建立完備的手勢(shì)特征訓(xùn)練集提高識(shí)別的準(zhǔn)確度.
圖4 樣本數(shù)據(jù)與標(biāo)準(zhǔn)正態(tài)分布的QQ圖
圖5 平滑處理前后的數(shù)據(jù)流
2.2.1 基于相對(duì)熵的手勢(shì)分割
每個(gè)動(dòng)態(tài)手勢(shì)對(duì)應(yīng)的相位流區(qū)間會(huì)出現(xiàn)不同的數(shù)據(jù)波動(dòng),因此如何分割出該區(qū)間是手勢(shì)特征提取的關(guān)鍵.本文采用相對(duì)熵[6]的思想,通過(guò)比較不同數(shù)據(jù)窗口的概率分布差異分別計(jì)算出相位波動(dòng)的起始和終止點(diǎn).記系統(tǒng)相位數(shù)據(jù)流為其中N代表讀寫器實(shí)時(shí)讀取次數(shù).算法流程如下: 將每w個(gè)連續(xù)采集的數(shù)據(jù)分組整合到固定窗口中,窗口尺寸設(shè)置為w; 根據(jù)窗口內(nèi)各相位值的大小進(jìn)行數(shù)據(jù)再分區(qū),并在此基礎(chǔ)上計(jì)算窗口內(nèi)相位數(shù)據(jù)的離散概率分布函數(shù); 然后利用相對(duì)熵方法比較相鄰窗口內(nèi)數(shù)據(jù)的概率分布差異,假設(shè)兩相鄰窗口和,對(duì)應(yīng)離散概率分布函數(shù)分別為P和Q,則P對(duì)Q的相對(duì)熵計(jì)算公式如下:
DKL(P∥Q)表示當(dāng)用概率分布Q來(lái)擬合真實(shí)分布P時(shí)產(chǎn)生的信息損耗,其值可以衡量?jī)蓚€(gè)概率分布的相似度.
根據(jù)吉布斯不等式[7],可以證明DKL(P∥Q)的非負(fù)性,即DKL(P∥Q)≥0.因此將DKL(P∥Q)與給定的閾值比較,有以下兩種情況:
如果DKL(P∥Q)的值小于給定的閾值,表示兩相鄰窗口和都處于數(shù)據(jù)平穩(wěn)采樣區(qū)間.相反,如果DKL(P∥Q)的值大于等于給定閾值,則表示兩相鄰窗口之間有一個(gè)或兩個(gè)都在數(shù)據(jù)波動(dòng)采樣區(qū)間.
最后通過(guò)遍歷所有符合DKL(P∥Q)≥ρ的相鄰窗口,確定數(shù)據(jù)波動(dòng)區(qū)間的邊界采樣序號(hào),提取動(dòng)態(tài)手勢(shì)對(duì)應(yīng)數(shù)據(jù)特征.
2.2.2 手勢(shì)指紋庫(kù)建立
由于個(gè)體差異性,用戶執(zhí)行手勢(shì)時(shí)的數(shù)據(jù)特征也會(huì)存在出入.因此,本文通過(guò)采集n個(gè)志愿者的手勢(shì)特征建立完備的手勢(shì)指紋庫(kù),從而減小個(gè)體差異對(duì)識(shí)別準(zhǔn)確度的影響.志愿者在指定手勢(shì)下做出相應(yīng)動(dòng)作,系統(tǒng)則立即開始對(duì)相位流進(jìn)行數(shù)據(jù)預(yù)處理和相應(yīng)手勢(shì)特征提取.
為了確保手勢(shì)訓(xùn)練的可靠性,使用離群值檢測(cè)[8]的方法從獲取的手勢(shì)數(shù)據(jù)集中選擇一些代表性樣本.主要思想是基于對(duì)象(點(diǎn)或向量)接近的概念,其反映了向量與其他候選向量的接近程度.也就是說(shuō),矢量的接近程度越高,異常值的可能性就越大.假設(shè)手勢(shì)j存在n個(gè)數(shù)據(jù)分段對(duì)于每個(gè)數(shù)據(jù)分段,計(jì)算它與剩余n–1個(gè)數(shù)據(jù)分段的DTW距離(在2.4節(jié)提及)得出接近程度; 分別計(jì)算手勢(shì)j對(duì)應(yīng)的n個(gè)分段,得出前個(gè)較小接近程度的數(shù)據(jù)段,并記為其中表示待識(shí)別手勢(shì)的索引號(hào).
由于RFID相位數(shù)據(jù)的幅值依賴于標(biāo)簽初始的位置,在系統(tǒng)的實(shí)際部署中會(huì)因?yàn)椴僮髡`差導(dǎo)致各數(shù)據(jù)段的幅值差異.比如確定標(biāo)簽初始位置后,相同手勢(shì)特征數(shù)據(jù)段會(huì)呈現(xiàn)不同的空間性,但其波形變化模式是相同的.因此,在應(yīng)用DTW算法之前將時(shí)間序列的數(shù)據(jù)段歸一化處理到相同的范圍值能夠有效地減小匹配誤差.另外,全局標(biāo)準(zhǔn)化方法用于處理具有不同范圍值的傳感器數(shù)據(jù),而本系統(tǒng)中數(shù)據(jù)段相對(duì)獨(dú)立,因此采用局部標(biāo)準(zhǔn)化單獨(dú)針對(duì)每個(gè)模板.具體處理方法如下: 對(duì)于一維時(shí)間序列或多維時(shí)間序列的分量,歸一化處理用下列公式表示:
在對(duì)手勢(shì)特征數(shù)據(jù)的提取與歸一化處理后,系統(tǒng)開始進(jìn)入手勢(shì)識(shí)別模塊,其難點(diǎn)在于如何準(zhǔn)確得到當(dāng)前手勢(shì)與指定訓(xùn)練集的匹配得分.由于用戶個(gè)體的差異性、脆弱的反向散射鏈路以及多徑效應(yīng)的影響,各數(shù)據(jù)呈現(xiàn)幅度與長(zhǎng)度不一的情況,如圖6所示.為了解決這個(gè)問(wèn)題,本文利用DTW算法計(jì)算兩個(gè)數(shù)據(jù)分段之間的距離作為匹配得分.
圖6 不同用戶執(zhí)行手勢(shì)4得到的數(shù)據(jù)分段
DTW是一個(gè)時(shí)間序列對(duì)齊算法,最早應(yīng)用于孤立詞語(yǔ)音識(shí)別.它旨在通過(guò)迭代扭曲時(shí)間軸來(lái)對(duì)齊兩個(gè)特征序列,直到找到兩個(gè)序列之間的最佳匹配.假設(shè)兩個(gè)離散時(shí)間序列記為成對(duì)距離矩陣,其中的歐氏距離.我們將序列A的點(diǎn)分配給序列B的點(diǎn)以獲得一條規(guī)整路徑(warping path):則序列A和B之間的規(guī)整路徑v的總花費(fèi)可以用以下公式計(jì)算:
在所有可能的規(guī)整路徑中,本文通過(guò)動(dòng)態(tài)規(guī)劃算法和附加約束[9]得到具有最小總成本的最佳對(duì)齊路徑.則序列A和B之間的DTW距離DTW(A,B)可由最佳對(duì)齊路徑的總花費(fèi)獲得,即:
2.5.1 硬件結(jié)構(gòu)與配置
(1) 控制模塊: 四足機(jī)器人裝配12個(gè)數(shù)字雙軸舵機(jī),采用LSC-20舵機(jī)控制器實(shí)現(xiàn)高精度、快響應(yīng)的舵機(jī)控制.另外,使用7.4 v鋰電池供電,每個(gè)舵機(jī)接口都有過(guò)流保護(hù).
(2) 藍(lán)牙模塊: 采用藍(lán)牙4.0版本,遵循LSC系列控制板通信協(xié)議,波特率設(shè)置為9600 bps,工作頻率為2.4 GHz,工作范圍10 m內(nèi).
2.5.2 手勢(shì)指令匹配
本文在實(shí)驗(yàn)部署中實(shí)現(xiàn)了6種動(dòng)態(tài)手勢(shì),圖7給出了機(jī)器人手勢(shì)指令匹配的概圖.其中箭頭表示手掌正對(duì)讀寫器天線的移動(dòng)方向,序號(hào)表示手掌移動(dòng)的次序.例如手勢(shì) 1表示“前推”,手勢(shì) 5表示先“前推”再“左移”,最后“右移”回到天線垂直方向.圖中還給出了手勢(shì)j(j=1,…,6)的相位數(shù)據(jù)波形以及相應(yīng)的機(jī)器人指令:前進(jìn)、后退、左移、右移、順時(shí)針旋轉(zhuǎn)、停止.
在實(shí)際的操作過(guò)程中,當(dāng)用戶手掌處于靜止或緩慢移動(dòng)狀態(tài)時(shí),機(jī)器人重復(fù)執(zhí)行上一次手勢(shì)指令,直到獲取下一次執(zhí)行指令.由于RFID讀寫器極快的讀取率,用戶在執(zhí)行不同手勢(shì)指令時(shí)幾乎不需要等待系統(tǒng)的緩沖,一定程度提高了系統(tǒng)的靈敏度.
圖7 機(jī)器人手勢(shì)指令匹配概圖
本實(shí)驗(yàn)是利用Java語(yǔ)言在配置OSX系統(tǒng)的Mac book pro (處理器: Intel Core i5 2.7 GHz,內(nèi)存: 8 GB)下結(jié)合英頻杰公司提供的讀寫器支持文件[10]完成的.實(shí)驗(yàn)場(chǎng)景如圖8所示,英頻杰R420讀寫器通過(guò)以太網(wǎng)與PC端連接,H47標(biāo)簽貼在用戶手背.手勢(shì)執(zhí)行區(qū)域距離天線1~2 m,電腦終端利用藍(lán)牙與機(jī)器人進(jìn)行串口通信.
圖8 實(shí)驗(yàn)場(chǎng)景圖
為了驗(yàn)證系統(tǒng)的穩(wěn)定性,實(shí)驗(yàn)邀請(qǐng)10位志愿者執(zhí)行手勢(shì)控制系統(tǒng),每位實(shí)驗(yàn)者分別執(zhí)行每個(gè)手勢(shì)10次.表1列出了機(jī)器人對(duì)該100次手勢(shì)指令的反饋結(jié)果,其中反饋時(shí)延包括手勢(shì)執(zhí)行完畢到機(jī)器人正確移動(dòng)的時(shí)間; 識(shí)別率為機(jī)器人正確反饋率.可以發(fā)現(xiàn)當(dāng)系統(tǒng)在執(zhí)行前進(jìn)和后退指令時(shí)平均反饋時(shí)延低于0.74 s,且識(shí)別率在89%以上.當(dāng)實(shí)驗(yàn)者操作手勢(shì)3和手勢(shì)4時(shí),系統(tǒng)的平均反饋時(shí)延分別為0.88 s和0.91 s,相應(yīng)的識(shí)別率也下降至85%和86%.而對(duì)于分段較長(zhǎng)的手勢(shì)4和手勢(shì)5,識(shí)別效果得到了改善,分別為89%和87%,平均時(shí)延為0.80 s和0.79 s.
系統(tǒng)性能分析:
(1) 不當(dāng)?shù)氖謩?shì)操作導(dǎo)致數(shù)據(jù)分割的效果降低.比如當(dāng)手勢(shì)執(zhí)行速度過(guò)快或過(guò)慢時(shí),會(huì)導(dǎo)致一直小于分割閾值等.
(2) 較長(zhǎng)的特征分段擁有較多的數(shù)據(jù)量,在增多數(shù)據(jù)孤立點(diǎn)的同時(shí)也會(huì)增加候選規(guī)整路徑v的長(zhǎng)度和條數(shù),從而影響模板匹配的計(jì)算效率.
(3) 對(duì)于手勢(shì)5和手勢(shì)6數(shù)據(jù)分段較長(zhǎng)的情況,系統(tǒng)在代碼實(shí)現(xiàn)部分采用長(zhǎng)度過(guò)濾方法(即判斷當(dāng)前分段長(zhǎng)度,并與手勢(shì)指紋庫(kù)內(nèi)指定數(shù)量的數(shù)據(jù)段匹配),有效提高了系統(tǒng)性能.
表1 機(jī)器人對(duì)手勢(shì)指令反饋結(jié)果
本文主要研究實(shí)現(xiàn)了一種基于無(wú)源標(biāo)簽反射信號(hào)特征的手勢(shì)控制系統(tǒng).該系統(tǒng)利用標(biāo)簽與天線之間的距離與反射信號(hào)相位的關(guān)系建立手勢(shì)識(shí)別模型,從而能夠進(jìn)一步實(shí)現(xiàn)對(duì)機(jī)器人的手勢(shì)控制.實(shí)驗(yàn)結(jié)果表明,RFID反向散射通信對(duì)標(biāo)簽的位置特別敏感,因此對(duì)時(shí)序數(shù)據(jù)有效分割的基礎(chǔ)上,利用DTW算法以及kNN分類方法能夠準(zhǔn)確識(shí)別動(dòng)態(tài)手勢(shì).如果該系統(tǒng)的方法趨于成熟,將能為人機(jī)共生創(chuàng)造更多的可能.
本研究也存在不足之處,主要包括以下3個(gè)方面:
(1) 采用頻率為2.4 GHz藍(lán)牙設(shè)備以及增益為8 dBi的RFID天線,系統(tǒng)的工作區(qū)域有限.
(2) 手勢(shì)分割算法效果依賴于用戶執(zhí)行速度和讀寫器的讀取速度.當(dāng)手勢(shì)執(zhí)行較慢時(shí),讀寫器獲取的數(shù)據(jù)特征不夠明顯,導(dǎo)致手勢(shì)分割的難度增加.
(3) 動(dòng)態(tài)規(guī)整算法運(yùn)算效率需要進(jìn)一步提高.
對(duì)于以上問(wèn)題,我們將在今后逐步討論完善方案.比如根據(jù)不同用戶來(lái)設(shè)置不同的讀寫器工作頻率和窗口大小,提高手勢(shì)分割的準(zhǔn)確度.另外,針對(duì)動(dòng)態(tài)規(guī)整算法計(jì)算效率低的問(wèn)題,可以通過(guò)建立查詢表存儲(chǔ)部分約束信息,避免計(jì)算機(jī)的重復(fù)操作,提高匹配度計(jì)算效率.