劉 釗,崔恒榮,吳江林,謝吉成,劉 濤
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
在過去幾十年中,計算機技術(shù)飛速發(fā)展,計算機在各行各業(yè)為人類提供著服務(wù),人類與計算機密不可分,人與計算機的信息交互不可或缺。手勢是一種自然、直觀的人機交互手段,以手勢作為計算機的輸入,已經(jīng)成為一種趨勢,手勢識別在人機交互技術(shù)上的應(yīng)用前景,極大地促進了手勢識別的研究發(fā)展。
雷達(dá)向物體表面發(fā)射電磁波,一部分電磁波會攜帶可以解算出物體形狀輪廓的多普勒頻移信息反射回來,進而實現(xiàn)對動態(tài)物體的檢測。
如圖1所示,理論上雷達(dá)可通過對反射的波形中所攜帶的目標(biāo)位置、速度、散射截面大小等信息的混頻處理,得到動態(tài)手勢的相關(guān)信息,再通過數(shù)字信號處理的方法進行后續(xù)分析[1]。
圖1 雷達(dá)采集動態(tài)手勢信號示意圖
本文采集的手勢信號為過程信號,當(dāng)手勢以速度v動態(tài)經(jīng)過時,會產(chǎn)生多普勒信號,其頻率fD為:
(1)
手勢的運動過程是一個時間遍歷信號,且速度、距離變化多樣,單一的頻域變換的方法難以識別多普勒雷達(dá)接收的手勢信號。因而本文將先利用分段快速傅里葉變換(Fast Fourier Transform,FFT)對信號進行處理,提取頻域信息,再結(jié)合機器學(xué)習(xí)算法對手勢進行分類。
研究人員已開始使用雷達(dá)來進行動態(tài)物體的檢測和識別,JAIME LIEN等人曾設(shè)計了soli雷達(dá)系統(tǒng)來捕獲手勢動作,其利用雷達(dá)波照射手部,接收多個來自動態(tài)散射中心疊加的反射信號,并將接收到的信號轉(zhuǎn)換為抽象表示,再利用機器學(xué)習(xí)的技術(shù)實現(xiàn)了對手勢的分類和識別[2]。機器學(xué)習(xí)不僅可以對數(shù)據(jù)進行快速處理,還可對問題進行預(yù)測、分類,其在包含手勢分類在內(nèi)的模式識別領(lǐng)域擁有極大的發(fā)展?jié)摿ΑAKAYOSHI YAMASHITA等人提出了“bottom-up structured”深度卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)了對6種靜態(tài)手勢的分類,其正確率達(dá)88.78%[3]。李富等人采用基于連續(xù)隱馬爾科夫模型,實現(xiàn)了對不同用戶手指滑動的原始手勢特征的辨別,進而實現(xiàn)了身份驗證,其錯誤率為1.22%[4]。張芷君等人提出協(xié)同重排序法的手勢參數(shù)進行分解,利用k-最鄰近算法實現(xiàn)各局部單元的估計姿態(tài),結(jié)合全局姿態(tài)估計,可在30 ms內(nèi)完成靜態(tài)手勢識別,其最大平均估計誤差小于10。[5]。
相較于已有的研究成果,本文結(jié)合雷達(dá)檢測、信號處理及機器學(xué)習(xí),面向嵌入式平臺,自行采集手勢信號作為數(shù)據(jù)集,提出分段FFT提取手勢的時-頻域信息以作為一種新的算法輸入信號,采用拓?fù)渲С窒蛄繖C(Support Vector Machine,SVM)算法結(jié)構(gòu),為動態(tài)手勢識別提供新的方法和應(yīng)用手段。
本文利用ARM微控制單元STM32F405RGT6和多普勒雷達(dá)硬件平臺實現(xiàn)對信號的采集及處理,繼而傳給上位機,進而提供了一個算法研發(fā)的硬件系統(tǒng)平臺,硬件設(shè)備如圖2所示。
圖2 手勢雷達(dá)硬件設(shè)備
現(xiàn)階段對手勢識別的研究往往以手勢圖像作為數(shù)據(jù)集,多數(shù)課題以靜態(tài)手勢數(shù)據(jù)庫Thomas Moselund等作為數(shù)據(jù)集進行訓(xùn)練和測試[3]。而本文以手勢雷達(dá)信號作為模型的輸入,所以需要自行采集相關(guān)手勢信息。
雷達(dá)裝置采集的信息為時域信息,而受不同人手型、手速差異的影響,含時域、頻域信息能更直觀地表達(dá)手勢信息,F(xiàn)FT是最經(jīng)典的頻域分析方法[6]。經(jīng)采集實驗發(fā)現(xiàn),1 024個數(shù)據(jù)點可完整恰當(dāng)?shù)乇磉_(dá)出一個實時手勢信號。如直接對1 024點數(shù)據(jù)進行FFT不會降低數(shù)據(jù)的維度,而以32點數(shù)據(jù)為一組進行FFT處理,則會有較為良好的效果。
結(jié)合本文需求,參考常用的串口調(diào)試助手,數(shù)據(jù)采集系統(tǒng)圖形用戶界面(Graphical User Interfaces,GUI)如圖3所示。
圖3 GUI界面
雷達(dá)手勢信號預(yù)處理的主要目的就是將一維手勢信號轉(zhuǎn)換為同時包含時域和頻域信息的二維信號。一維的手勢信號是時域信號,無法直接表現(xiàn)出頻率變化規(guī)律,傅里葉變換可以將時域信號變換為頻域信號。經(jīng)前期預(yù)采集實驗,以每1 024個點為一組信號表征一個手勢動作,每秒可采集512個數(shù)據(jù)點,采集過程歷時2 s,采集信號經(jīng)模數(shù)轉(zhuǎn)換,表現(xiàn)為電壓形式。本文嘗試進行全段(信號長度N=1 024)FFT運算進行預(yù)處理,如圖4(b)所示??梢钥闯觯蜦FT沒有降低數(shù)據(jù)維度,也沒有保存時域信息,不利于后續(xù)數(shù)據(jù)處理。而經(jīng)32點分段FFT得到的像素為32×32的二維圖既保存了時域信號,也捕獲了頻域信息,如圖4(c)所示,其像素顏色深淺代表了其電壓大小,為之后的模型建立與求解創(chuàng)造了有利條件。
圖4 不同信號長度FFT結(jié)果圖
目前,常用的手勢識別算法有人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)及隱馬爾科夫模型(Hidden Markov Model,HMM)兩類。
ANN在靜態(tài)手勢的識別中應(yīng)用較多,其自組織、自學(xué)習(xí)和抗噪聲能力強,但神經(jīng)網(wǎng)絡(luò)易受到非線性以及維數(shù)災(zāi)難的干擾,容易產(chǎn)生局部極小點問題。神經(jīng)網(wǎng)絡(luò)在手勢的識別中多為圖像識別技術(shù),常以手勢圖像作為輸入,其建模需要一定的運算成本[7]。
HMM可以詳細(xì)地分解手勢信號的時空變化,相較于神經(jīng)網(wǎng)絡(luò)更適用于動態(tài)手勢識別,但需人工提取手勢特征,過程復(fù)雜且對陌生場景適應(yīng)能力不強[8]。
SVM基于結(jié)構(gòu)風(fēng)險最小化原則以及統(tǒng)計學(xué)理論VC準(zhǔn)則,可對本文有限的手勢信號進行分類[9]。
SVM主要有線性和非線性兩種方式,對于線性可分的數(shù)據(jù),決策函數(shù)類似于線性擬合,該超平面f(x)可以表示為:
f(x)=ωTx+b
(2)
其中ω是權(quán)重向量,x為訓(xùn)練元組,b為偏移。不難看出,線性的SVM與線性規(guī)劃問題相似,對本文較簡潔的數(shù)據(jù)輸入,SVM比ANN及HMM更簡便,在CPU中即可快速完成運算。當(dāng)有新的x進入分類器時,將根據(jù)其與決策邊界的對應(yīng)關(guān)系對其進行分類,相應(yīng)的決策函數(shù)g(x)為:
g(x)=sign(ωTx+b)
(3)
而本文的數(shù)據(jù)經(jīng)過了分段FFT運算,已從一維數(shù)據(jù)變換為32*32的數(shù)組,成為了一個高維的非線性分類問題,因而需要將手勢信號的FFT運算結(jié)果映射到32維空間,在32維空間中構(gòu)造線性最優(yōu)分類面對手勢信息進行分類,即可將低維空間非線性問題轉(zhuǎn)化為32維空間線性可分問題。本文手勢分類模型主要環(huán)節(jié)如圖5所示。
圖5 手勢分類模型
一次支持向量機只可進行一次二分類,針對所研究的靠近、遠(yuǎn)離、揮手與握拳四種手勢的分類問題,可采用拓?fù)浣Y(jié)構(gòu)通過3個SVM分類器來實現(xiàn)分類。經(jīng)研究,遠(yuǎn)離和靠近與揮手和握拳之間的頻譜有著較大的差異,應(yīng)將其用第一個分類器分為兩大類,然后再分別使用一個分類器,完成對手勢的四分類,如圖5(d)所示。為將低維空間非線性問題轉(zhuǎn)化為32維空間線性可分問題,引入了核函數(shù),而原來的線性分類函數(shù)g(x)被改造為:
(4)
其中,K(·)是核函數(shù),yi∈{-1,+1}為手勢信號xi實際分類,g(x)的值決定了手勢信號x的隸屬度。構(gòu)造一個最優(yōu)超平面即找到所有的非零值αi,作為任意手勢向量xi最優(yōu)超平面的支持向量系數(shù),以達(dá)到SVM保留非常小數(shù)量的支持向量訓(xùn)練點的理想情況,提供一個緊湊的手勢分類器。
選擇不同的核函數(shù),可以構(gòu)造不同手勢分類器。非線性支持向量機算法常用的核函數(shù)有如下四種,本文將利用嘗試法尋找各SVM中最優(yōu)核函數(shù)。
(1)線性核函數(shù)
K(x,xi)=xT·xi
(5)
(2)多項式核函數(shù)(多項式次數(shù)d≥1,d=1時退化為線性核)
(6)
(3)高斯核函數(shù)(高斯核帶寬δ>0)
(7)
(4)sigmoid核函數(shù)(tanh為雙曲正切函數(shù),η>0,θ<0)
K(x,xi)=tanh(η〈xT,xi〉+θ)
(8)
為使模型訓(xùn)練的效果具有普遍性,需利用數(shù)據(jù)采集系統(tǒng)采集具有一定樣本容量的數(shù)據(jù)集。按照實際應(yīng)用情況,本文邀請了多位師生,按照各自的習(xí)慣完成了有效的靠近、遠(yuǎn)離、揮手及握拳動作各1 000次。
本文對4 000條手勢信號采集后完成了FFT處理等相關(guān)工作,作為本次實驗的數(shù)據(jù)集。在4組1 000條手勢信號中,各隨機選取其中的900條對SVM模型進行訓(xùn)練,其余的100條作為測試集進行實驗驗證。
SVM進行分類時,核函數(shù)的選取對結(jié)果有重要的影響,目前對于核函數(shù)選取沒有統(tǒng)一的方法,經(jīng)驗法與嘗試法是較常見的方法[10]。本文對三次SVM嘗試了不同的核函數(shù),其訓(xùn)練結(jié)果如表1所示。
表1 訓(xùn)練結(jié)果
由表1可得最佳的核函數(shù)組合方案為:SVM1選擇線性核,SVM2選擇多項式核,SVM3選擇高斯核,訓(xùn)練集分類結(jié)果如圖6所示。
圖6 訓(xùn)練集分類結(jié)果
由圖6可以看出,訓(xùn)練集分類正確率為90.69%(3 265/3 600)。 利用最佳方案,測試集分類結(jié)果如圖7所示。
圖7 測試集分類結(jié)果
由圖7可以看出,測試集分類正確率為90.25%(361/400)。
本文面向嵌入式系統(tǒng),利用多普勒雷達(dá)傳感器,接收動態(tài)手勢信號,并用分段FFT對手勢的時-頻域信息進行整合,以作為拓?fù)銼VM輸入量,實現(xiàn)了對手勢信號的分類和識別,該系統(tǒng)具有實時采集、快速分類的特點,為動態(tài)手勢分類提供了新的方法。