孫延鵬,艾 俊,屈樂樂
(沈陽航空航天大學(xué) 電子信息工程學(xué)院,沈陽 110136)
手勢識別已經(jīng)是人機(jī)交互的熱點(diǎn)領(lǐng)域[1-3]。該技術(shù)利用傳感器捕獲手勢動(dòng)作,并對其進(jìn)行實(shí)時(shí)的識別,已廣泛應(yīng)用在智能家居[1]、手語翻譯[2]以及游戲交互[3]等領(lǐng)域。傳統(tǒng)獲取手勢動(dòng)作信號的設(shè)備主要為光學(xué)傳感器[4-5],與該種捕獲方式相比,雷達(dá)傳感器可以不受光照、煙霧等外部環(huán)境的干擾。
近幾年來,基于雷達(dá)的手勢識別方法引起了很多關(guān)注[6-12]。文獻(xiàn)[6]采用主成分分析法(Principal Component Analysis,PCA)來識別手勢動(dòng)作,分類結(jié)果表明了基于雷達(dá)的手勢識別在智能家居領(lǐng)域中有良好的潛力。文獻(xiàn)[7]將多種傳感器的數(shù)據(jù)進(jìn)行融合,采用異源圖像配準(zhǔn)和三維卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)相結(jié)合的方法對汽車駕駛中的典型手勢進(jìn)行識別。文獻(xiàn)[8]通過深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network,DCNN)提取微多普勒特征,并對其進(jìn)行分類,實(shí)驗(yàn)結(jié)果顯示7種手勢動(dòng)作的識別精度為93.1%。文獻(xiàn)[9]使用60 GHz的專用毫米波雷達(dá)芯片收集手勢動(dòng)作,并從中提取低維特征向量,通過隨機(jī)森林分類器對多種手勢動(dòng)作進(jìn)行識別。文獻(xiàn)[10]先提取手勢動(dòng)作的多維參數(shù)并將其融合,進(jìn)而通過CNN進(jìn)行手勢識別。文獻(xiàn)[11]采用雙流融合神經(jīng)網(wǎng)絡(luò)(Two-Stream Fusion Neural Network,TS-FNN)識別10種生活中常見的手勢動(dòng)作。文獻(xiàn)[12]分別提取手勢動(dòng)作的距離-多普勒-時(shí)間圖特征、距離-時(shí)間特征、多普勒-時(shí)間特征、水平方向角度-時(shí)間圖特征,并通過輕量化的CNN對手勢動(dòng)作進(jìn)行分類。
目前,通過光學(xué)傳感器進(jìn)行手勢識別對外部環(huán)境依賴較大。針對該問題,本文提出了一種基于連續(xù)波雷達(dá)的手勢識別方法。同時(shí),基于雷達(dá)的手勢識別方法大多采用神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取和分類判決,這樣會增加算法的計(jì)算復(fù)雜度和模型的訓(xùn)練時(shí)間。針對此問題,本文選取手勢動(dòng)作的時(shí)頻譜中的方向梯度信息作為特征,并通過支持向量機(jī)(Support Vector Machine,SVM)進(jìn)行分類。具體做法如下:第一步,采用K頻段雷達(dá)收集手勢動(dòng)作的回波數(shù)據(jù);第二步,對回波數(shù)據(jù)進(jìn)行時(shí)頻分析獲得手勢動(dòng)作的時(shí)頻譜;第三步,通過分析手勢信號與背景雜波之間信號強(qiáng)度分布的差異,為每個(gè)手勢分別選取合適的閾值,將背景雜波從其時(shí)頻譜中去除;第四步,從處理后的時(shí)頻譜中提取手勢動(dòng)作的方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征,組成特征數(shù)據(jù)集;第五步,通過SVM對特征數(shù)據(jù)集進(jìn)行訓(xùn)練與測試,實(shí)現(xiàn)手勢識別。基于實(shí)測數(shù)據(jù)的實(shí)驗(yàn)結(jié)果表明,本文所提算法對4種典型手勢動(dòng)作具有良好的識別效果,且該方法的識別精度要優(yōu)于PCA+SVM和DCNN。
本文使用K頻段雷達(dá)收集手勢動(dòng)作的實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)時(shí),雷達(dá)工作在連續(xù)波(Continuous Wave,CW)狀態(tài),載波頻率為24 GHz,基帶信號采樣頻率為128 kHz,系統(tǒng)的輸出功率為16 dBm,天線增益為15 dBi。手指和天線在同一直線方向,且兩者相距0.3 m。收集的手勢動(dòng)作包括打響指、彈手指、抬手、招手4種,4種手勢動(dòng)作的解釋說明和圖示分別如表1和圖1所示。實(shí)驗(yàn)成員由兩名男性和兩名女性組成,每人每個(gè)手勢重復(fù)50次,一個(gè)完整的手勢周期為2 s,共收集4×4×50=800組數(shù)據(jù)。
表1 4種手勢動(dòng)作的解釋說明
圖1 4種手勢動(dòng)作的圖示
典型的基于連續(xù)波雷達(dá)的手勢識別流程主要有回波信號預(yù)處理、目標(biāo)特征選擇與提取、特征數(shù)據(jù)集的構(gòu)建和分類器訓(xùn)練與測試等,如圖2所示。
圖2 典型識別流程
為了使手勢動(dòng)作的多普勒特征直觀地顯示出來,選用漢明窗的短時(shí)傅里葉變換對回波數(shù)據(jù)進(jìn)行時(shí)頻分析,表達(dá)式如下:
(1)
式中:z(u)為雷達(dá)回波信號,g(u)為短時(shí)傅里葉變換的窗函數(shù),u為時(shí)間,t為窗函數(shù)滑動(dòng)的位置,f為頻率。
從式(1)可以看出,STFT實(shí)際上刻畫的是信號在時(shí)間-頻率平面上的分布,描述了手勢動(dòng)作信號的瞬時(shí)頻率隨時(shí)間的變化關(guān)系。圖3和圖4分別提供了同一名實(shí)驗(yàn)人員的4種手勢動(dòng)作的時(shí)頻譜和4名實(shí)驗(yàn)人員均作招手動(dòng)作的時(shí)頻譜。
圖3 4種手勢的時(shí)頻譜
圖4 4名實(shí)驗(yàn)人員招手的時(shí)頻譜
從圖3中可以看出不同手勢動(dòng)作的時(shí)頻譜也互不相同。打響指時(shí),中指向后的速度比大拇指向前的速度快,所以其負(fù)多普勒頻移大于正多普勒頻移。在彈手指時(shí),中指開始向靠近雷達(dá)天線方向運(yùn)動(dòng),而后又向遠(yuǎn)離雷達(dá)天線方向運(yùn)動(dòng),所以其多普勒頻移的變化為由正到負(fù)。因?yàn)樘质且粋€(gè)連貫動(dòng)作,所以其多普勒頻移也是連續(xù)變化的。而招手時(shí),手指彎曲和展開的速度相近,所以其負(fù)多普勒頻移和正多普勒頻移近似相等。從圖4可以看出,不同實(shí)驗(yàn)人員的相同手勢動(dòng)作具有相似的時(shí)頻譜。時(shí)頻譜圖中的這些特性可以用來對手勢動(dòng)作進(jìn)行分類。
為了從手勢動(dòng)作的時(shí)頻譜圖中提取明顯的特征,必須要去除其中的背景雜波。解決該問題的關(guān)鍵在于確定背景雜波和手勢動(dòng)作之間的閾值。背景雜波(無任何手勢動(dòng)作)的強(qiáng)度分布直方圖如圖5(a)所示。通過觀察直方圖,可以發(fā)現(xiàn)背景雜波具有類似高斯分布的特征。以招手為例,該手勢動(dòng)作信號的強(qiáng)度分布直方圖如圖5(b)所示。
圖5 信號強(qiáng)度分布直方圖
通過兩者的對比,可以使用圖5(b)中開始偏離類高斯分布的最低信號強(qiáng)度作為去除背景雜波的閾值,從圖中可以讀出招手動(dòng)作的閾值為-6 dBm。
同理,也可以確定打響指、彈手指和抬手的閾值分別為-6 dBm、-5 dBm和-8 dBm,使用該方法處理之后的時(shí)頻譜如圖6所示。通過與圖3的對比可以看出,該方法在當(dāng)前的實(shí)驗(yàn)條件下具有很好的效果,可以有效去除背景雜波。
圖6 閾值處理后的時(shí)頻譜
HOG特征是由圖像中局部區(qū)域的方向梯度信息通過統(tǒng)計(jì)形成的,而梯度信息主要存在于目標(biāo)的邊緣區(qū)域[13-14]。從時(shí)頻譜圖中可看出手勢動(dòng)作的邊緣區(qū)域的顏色有明顯變化,即該區(qū)域梯度發(fā)生突變,因此可以提取其HOG用于分類。在時(shí)頻譜圖中每個(gè)像素點(diǎn)在水平方向和垂直方向的梯度強(qiáng)度分別為
Gx(x,y)=I(x+1,y)-I(x-1,y),
(2)
Gy(x,y)=I(x,y+1)-I(x,y-1)。
(3)
式中:I(x,y)為像素點(diǎn)(x,y)的像素值。則每個(gè)像素點(diǎn)的梯度強(qiáng)度和梯度方向分別為
(4)
(5)
式中:Gx(x,y)為像素點(diǎn)(x,y)在其水平方向的梯度強(qiáng)度,Gy(x,y)為像素點(diǎn)(x,y)在其垂直方向的梯度強(qiáng)度。
由于方向梯度直方圖是在元胞(cell)中計(jì)算的,所以在得到每個(gè)像素的梯度強(qiáng)度值和方向后,需要將一幅圖片分割成若干個(gè)元胞。每個(gè)元胞由8×8個(gè)像素組成,其含有8×8×2=128個(gè)值,其中2代表了梯度強(qiáng)度和方向。為了得到更好的效果,通常將梯度方向θ取絕對值,故θ的取值范圍為0°~180°,即認(rèn)為兩個(gè)方向相反的箭頭均表示同一方向。如圖7所示,把每個(gè)元胞所在的平面按照180°平均劃分為9個(gè)通道(bin),可以降低計(jì)算量和增加魯棒性。接下來根據(jù)元胞內(nèi)每個(gè)像素的梯度方向與其相鄰的兩個(gè)通道角度的距離比例,將該像素的梯度強(qiáng)度分配到其相鄰的兩個(gè)通道內(nèi),再通過統(tǒng)計(jì)形成每個(gè)元胞的方向梯度直方圖,即該元胞的特征向量。
圖7 HOG特征的方向
在每張圖片的局部,將4個(gè)相鄰的元胞組成一個(gè)塊(block),其尺寸大小為16×16個(gè)像素,并對其進(jìn)行歸一化處理。把一個(gè)塊內(nèi)的每個(gè)元胞的特征向量首尾依次拼接起來,得到該塊的特征向量。在更大的局部上,將若干個(gè)相鄰的塊組成一個(gè)窗(window),把一個(gè)窗內(nèi)的每個(gè)塊的特征向量首尾依次拼接起來,得到該窗的特征向量。最后,通過塊在窗中滑動(dòng)而窗在圖片中滑動(dòng),就可以得到整張圖片的HOG特征。
經(jīng)過預(yù)處理和特征提取后,還需要選擇合適的分類器對手勢動(dòng)作進(jìn)行識別,才可以獲得較高的識別精度。由于本文所進(jìn)行的手勢識別是非線性多分類問題,所以采用傳統(tǒng)的線性分類方法不能得到較好的識別性能。因?yàn)镾VM分類器的識別性能僅與訓(xùn)練集數(shù)據(jù)有關(guān),具有良好的泛化能力,且計(jì)算復(fù)雜度較低,易于實(shí)現(xiàn),故選用SVM分類器進(jìn)行手勢識別。
SVM原始的最佳分離超平面算法只能解決線性二分類問題[15],但后來通過核函數(shù)的引入,可以實(shí)現(xiàn)非線性分類。其原理為利用非線性變換將原始的輸入空間轉(zhuǎn)化為某個(gè)維度更高的特征空間中進(jìn)行線性分類,在該空間中可以學(xué)習(xí)線性支持向量機(jī),判決函數(shù)為
(6)
式中:n為支持向量的個(gè)數(shù){x1x2…xn};{ω0ω1…ωn}為權(quán)值;K(xi,xj)為核函數(shù),本文選用高斯核函數(shù)為K(xi,xj)=exp (-γ||x-y||2)。
利用一對多(One vs.Rest,OvR)來實(shí)現(xiàn)多分類問題。OvR會依次從4個(gè)手勢動(dòng)作中選出一個(gè)類別作為正類,其余的類別作為負(fù)類,進(jìn)而產(chǎn)生4個(gè)二分類分類器。在測試集判斷類別階段,若只有一個(gè)分類器判斷是正類,則該分類器所對應(yīng)的類別即為最終的分類結(jié)果;若同時(shí)有多個(gè)分類器判斷是正類,還需要對它們的預(yù)測置信度大小進(jìn)行比較,從中選擇信度最大的類別標(biāo)記作為最終的分類結(jié)果。
手勢動(dòng)作的輸入數(shù)據(jù)類型為從時(shí)頻譜圖中提取的HOG特征向量,其維度大小為2 304。為了測試本文所提方法的識別性能,采用不同大小的訓(xùn)練數(shù)據(jù)集來對識別精度進(jìn)行測試。將訓(xùn)練數(shù)據(jù)的比例設(shè)置為10%~90%,步長為10%,所得的識別精度如圖8所示。從圖中可以看出,在訓(xùn)練數(shù)據(jù)的比例為60%之前,識別精度增長非常迅速;而訓(xùn)練數(shù)據(jù)的比例在60%~90%之間時(shí),識別精度的增長變得緩慢;尤其當(dāng)訓(xùn)練數(shù)據(jù)的比例在70%~90%之間時(shí),識別精度幾乎不變。
圖8 在不同大小測試集下的識別精度
當(dāng)訓(xùn)練數(shù)據(jù)占70%時(shí),分類結(jié)果的混淆矩陣如表2所示。從表中可以看出,本文所提方法能準(zhǔn)確地識別出彈手指和打響指,因?yàn)閮烧叩臅r(shí)頻譜差異較大,進(jìn)而造成它們之間的HOG特征互不相同,故分類器識別的精度較高;而對抬手和招手的識別會發(fā)生一些混淆,因?yàn)樵趦烧叩臅r(shí)頻譜中瞬時(shí)頻率都隨時(shí)間連續(xù)變化,且多普勒頻移都是由負(fù)到正,進(jìn)而造成它們之間的HOG特征比較相似,所以導(dǎo)致分類器產(chǎn)生了錯(cuò)誤分類。
表2 本文所提方法的混淆矩陣
為更好地說明本文所提算法的優(yōu)越性,將其與PCA+SVM[6]和DCNN[8]進(jìn)行對比實(shí)驗(yàn)。PCA+SVM的輸入數(shù)據(jù)類型為從時(shí)頻譜圖中提取的微多普勒特征向量,其維度大小為650,而DCNN的輸入數(shù)據(jù)類型為時(shí)頻譜圖,其尺寸大小為147×147。
從數(shù)據(jù)集中隨機(jī)選取70%的數(shù)據(jù)用于訓(xùn)練,余下30%的數(shù)據(jù)用于測試,得到4種手勢動(dòng)作的識別精度如表3所示。從表中看出,本文所提方法在所有手勢動(dòng)作中都獲得了最高的識別精度,這說明該方法優(yōu)于基于PCA+SVM的方法和基于DCNN的方法。利用PCA進(jìn)行特征提取,會使時(shí)頻譜中的部分有效信息丟失,進(jìn)而導(dǎo)致分類效果最差。采用DCNN的分類結(jié)果雖然要好于PCA+SVM,但仍沒有本文所提方法的識別精度高,且算法的計(jì)算復(fù)雜度還會大幅增加。
表3 不同方法的識別精度
本文所提方法采用的硬件平臺是Intel?CoreTMi5-3210M CPU @2.50 GHz,8 GB的內(nèi)存,Microsoft Windows 10系統(tǒng);軟件采用Visual Studio Code,運(yùn)行環(huán)境為Python3.7.4。由于手勢識別的模型可以提前訓(xùn)練完成,即訓(xùn)練時(shí)間可以不用考慮,所以表4中僅列出了測試時(shí)間。從表中可以看出,DCNN的測試時(shí)間最少,PCA+SVM的測試時(shí)間最多??紤]到手勢識別在應(yīng)用中是一個(gè)實(shí)時(shí)動(dòng)態(tài)的過程,所以測試時(shí)間不宜過長。本文所提方法在未優(yōu)化的前提下測試時(shí)間為0.23 s,基本可以滿足實(shí)時(shí)性的要求。未來還可以在圖形處理單元(Graphics Processing Unit,GPU)平臺上對程序進(jìn)行優(yōu)化,進(jìn)一步縮短測試時(shí)間,達(dá)到實(shí)時(shí)處理的要求。
表4 不同方法的消耗時(shí)間
本文提出了一種基于連續(xù)波雷達(dá)的手勢識別方法,提取手勢動(dòng)作時(shí)頻譜中的HOG特征,通過SVM進(jìn)行分類識別?;趯?shí)測數(shù)據(jù)的實(shí)驗(yàn)結(jié)果表明,本文所提方法的識別精度高達(dá)95%以上,優(yōu)于基于PCA+SVM的方法和基于DCNN的方法。在下一階段的工作中,將增加對其他種類手勢動(dòng)作的分類研究,使該方法具有更廣闊的應(yīng)用前景。