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