付天豪,于力革
(江南大學(xué) 輕工過程先進控制教育部重點實驗室,無錫 214122)
人機交互的方式有很多種,如鼠標(biāo)鍵盤交互、觸摸屏交互、語音交互、體感交互等.手勢交互作為一種新型的人機交互方式,目前已經(jīng)成為人機交互的重要方式之一.人手作為身體上最靈活的器官,將它作為人機交互的方式,可以使交互更加便利、通用性能更強.
非接觸式的動態(tài)手勢交互已經(jīng)被應(yīng)用到體感游戲、輔助駕駛以及手語識別等領(lǐng)域,為人們帶來了簡潔方便的用戶體驗.但是因為手勢具有時間和空間上的多樣性和不確定性,而且人手本身也是復(fù)雜的可變形體,所以目前這種人機交互方式還處于實驗階段,理論不是很成熟,能夠識別的范圍比較小.因此,對動態(tài)手勢的識別技術(shù)研究具有重要意義.常用的動態(tài)手勢識別方法有:基于模板匹配的動態(tài)時間規(guī)整(Dynamic Time Warping,DTW)方法[1,2]和基于模式識別的隱馬爾科夫模型方法[3,4].其中,采用DTW 方法在解決大數(shù)據(jù)量、復(fù)雜手勢、組合手勢識別等問題比較其他方法處于劣勢[5];采用隱馬爾科夫模型識別手勢,該方法復(fù)雜、需要大量的訓(xùn)練數(shù)據(jù)[2]并且識別總類少.由于深度學(xué)習(xí)模型具有強大的非線性建模能力,能夠表達更高層次、更加抽象的內(nèi)部特征等特點,近年來深度學(xué)習(xí)被用于動態(tài)手勢識別[6,7].文獻[6]結(jié)合EgoHands 手勢數(shù)據(jù)集,改進深度卷積網(wǎng)絡(luò)模型中的參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu),對深度卷積網(wǎng)絡(luò)模型進行訓(xùn)練,得到高識別率動態(tài)手勢識別模型,識別準(zhǔn)確率能夠達到85.9%,識別速度每秒鐘可達到16.8 幀.文獻[7]利用改進的多維卷積神經(jīng)網(wǎng)絡(luò)提取手勢的時空特征,融合多傳感器信息并通過支持向量機實現(xiàn)微動手勢識別,針對多類動態(tài)手勢數(shù)據(jù)集能達到87%以上的識別準(zhǔn)確率,并且對手勢的背景和光照都具有較好的魯棒性.目前動態(tài)手勢識別仍存在以下問題:復(fù)雜背景干擾、指尖特征點識別和定位困難、光照環(huán)境的變化[8],這些問題導(dǎo)致了動態(tài)手勢識別識別率低.
針對以上存在問題,提出的動態(tài)手勢軌跡特征提取方法能夠有效排除復(fù)雜背景的干擾、指尖特征點獲取和定位困難;提出的聯(lián)合CNN-Softmax-SVM 的手勢識別算法能夠?qū)討B(tài)手勢進行有效識別,從而大大提高了動態(tài)手勢識別率.本文中的動態(tài)手勢識別系統(tǒng)主要流程如圖1所示.
圖1 動態(tài)手勢識別系統(tǒng)流程
首先在HSV 顏色空間下提取指尖貼紙坐標(biāo)獲取動態(tài)指尖重心坐標(biāo),通過膚色分割和射線法排除膚色輪廓外復(fù)雜背景的干擾,得到待識別的二值化軌跡圖片;其次采用CNN-Softmax 和CNN-SVM 對手寫軌跡樣本訓(xùn)練分別得到軌跡樣本訓(xùn)練模型,最后利用訓(xùn)練好的軌跡樣本分類模型對動態(tài)手勢識別.
為了在復(fù)雜背景下很好地對動態(tài)手勢指尖順序軌跡點進行采集,在指尖貼上便攜式貼紙,通過檢測每幀貼紙輪廓的質(zhì)心坐標(biāo)來定位指尖中心點,其中貼紙要被指尖完全覆蓋.先把每幀圖像從RGB (Red,Green,Blue)顏色空間轉(zhuǎn)換到HSV (Hue,Saturation,Value)顏色空間:
式中,H為色調(diào),S為飽和度,V為明亮度.利用式(1),將RGB 顏色空間的圖像(圖2(a))轉(zhuǎn)換成HSV 顏色空間(圖2(b)).本文所選指尖貼紙為藍(lán)色,設(shè)置圖2(c)的HSV各個分量的閾值范圍為H∈[100°,124°]、S∈[0.169,1]、V∈[0.180,1]得到圖2(c)所示的指尖貼紙二值化圖.
圖2 指尖貼紙預(yù)處理
對圖2(c)采用輪廓檢測獲得指尖貼紙輪廓在每一幀圖上的坐標(biāo),通過輪廓的矩計算輪廓的質(zhì)心并作為指尖中心點坐標(biāo).
當(dāng)復(fù)雜背景中存在類貼片顏色干擾時,仍然會被誤判為指尖中心點,因此通過判斷指尖中心點是否在膚色輪廓內(nèi)部,來排除類貼片顏色的背景干擾.在RGB空間里人的膚色受亮度影響較大,把RGB 轉(zhuǎn)為YCbCr顏色空間提取膚色分量Cr、Cb信息,在一定范圍內(nèi)可以忽略亮度分量Y的影響.
利用式(2)提取圖2(a)的Cr、Cb分量在Cr∈[127,176] 和Cb∈[85,129]范圍內(nèi)的值,如圖3(a)和圖3(b)所示.利用大津法(Otsu)對圖3(a)和圖3(b)進行自適應(yīng)閾值分割,得到相應(yīng)的二值化圖.然后將Cr和Cb分量的二值圖與操作,則得到二值化的膚色圖.最后采用輪廓檢測獲取二值化膚色圖的連通域輪廓坐標(biāo)集合.
圖3 膚色分割
通過射線法判斷指尖中心點是否在膚色輪廓坐標(biāo)連通域內(nèi).以待判斷點的坐標(biāo)點開始,沿橫坐標(biāo)水平向右作射線,判斷射線與膚色輪廓交點的個數(shù),若為奇數(shù)則為指尖中心點如圖4(a)所示,若為偶數(shù)則為異常干擾點如圖4(b)所示.
圖4 射線法剔除異常指尖軌跡點
首先獲取每一幀圖像的膚色輪廓和指尖中心點;其次剔除背景異常點之后將每幀指尖中心點按順序保存至數(shù)組中;最后以第一個指尖中心點坐標(biāo)為手勢起始狀態(tài),以最后一個檢測的指尖中心坐標(biāo)為手勢結(jié)束狀態(tài),將每一個指尖中心點按數(shù)組順序相連,即可構(gòu)成表示該手勢的運動軌跡.如圖5所示為獲取數(shù)字字符“2”的動態(tài)手勢,其中圖5(b)的字符軌跡包含150 幀的指尖中心順序相連,待用于手勢識別輸入.
圖5 獲取動態(tài)手勢
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種深度前饋人工神經(jīng)網(wǎng)絡(luò),廣泛應(yīng)用于圖像分類等計算機視覺問題.CNN 模型主要包括卷積層、降采樣層、全連接層[9].卷積層由濾波器組成,用于“滑動”輸入圖像的寬度和高度,并計算輸入?yún)^(qū)域的點積和權(quán)值學(xué)習(xí)參數(shù),提取圖像的紋理特征,實現(xiàn)圖像特征的增強.第m層特征圖第j個神經(jīng)元的輸入為[10]:
當(dāng)輸入經(jīng)過卷積層時,若得到的特征圖仍然較大,可以通過下采樣層來對每一個特征圖進行降維操作.下采樣層公式為[10]:
式中,β是下采樣層的權(quán)重系數(shù);是下采樣層的偏置項;符號down(·)表示下采樣函數(shù),它通過對輸入特征圖通過滑動窗口方法劃分為多個不重疊的n×n圖像塊,然后對每個圖像塊內(nèi)的像素求和、求均值或最大值.
提取的特征向量首先通過全連接層,然后再通過Softmax 層得到分類權(quán)重,Softmax 層的函數(shù)為:
式中,aj表示通過全連接層之后的向量里的第j個值,由于aj沒有范圍大小,通過Softmax 函數(shù)之后得到的Pj為類別的概率,范圍在0-1 之間;n為待輸出總類數(shù);e為歐拉常數(shù).
支持向量機(Support Vector Machine,SVM)[11]是一種機器學(xué)習(xí)算法,通過將輸入向量映射到一個高維的特征空間,在這個空間中構(gòu)造最優(yōu)分類面,從而達到兩類或者多類的樣本劃分,在多數(shù)情況下,SVM 比CNN全連接層的線性分類泛化能力好[12].
設(shè)樣本集為 (ui,vi),i=1,2,···,n,ui∈Rd,vi∈{1,-1},其中vi是類別標(biāo)簽;設(shè)M為分類間距:過各類樣本中離分類平面最近且平行于分類面的平面之間距離;設(shè)所求最優(yōu)超平面方程為:
式中,w為超平面法向量,決定了超平面的方向,s為位移量,決定了超平面與原點的距離.對式(7)進行歸一化處理使得滿足式(8):
若使M最大,即求||w||2最小.以式(9)為約束條件求 ||w||2最小是一個二次規(guī)劃問題,可以轉(zhuǎn)為對偶問題求解.
以式(9)為約束條件,對ai求解式(10)的最大值:
其中,ai為所求問題的Lagrange 乘子.則最優(yōu)超平面分類問題可表示為:
由于基于RBF 核函數(shù)的支持向量機識別精度高,穩(wěn)定性強[13].因此文中采用基于RBF 核函數(shù)K(u,v)=exp的支持向量機,即令K(ui,uj)=ui·uj,則式(10)的分類函數(shù)可表示為:
若支持向量機需要識別k類,采用1-v-r 算法使用k個支持向量機獨立訓(xùn)練,每個分類器表示1 個類別[14].若k個分類的預(yù)測結(jié)果中存在多個二分類的正樣本類,將精確率作為分類的置信度,精確率定義如下:
其中,TP是測試的樣本預(yù)測為正樣本,并且測試的樣本實際也為正樣本的樣本數(shù);FP是測試的樣本預(yù)測為正樣本,并且測試的樣本實際為負(fù)樣本的樣本數(shù).最后將置信度最大的正樣本類作為最終的預(yù)測類別:
其中,PCi是第i類的精確率.
聯(lián)合CNN-Softmax-SVM 算法是同時采用在原CNN 模型的基礎(chǔ)上添加了SVM 分類過程和權(quán)重判定層,其算法結(jié)構(gòu)如圖6所示.
圖6 算法模型結(jié)構(gòu)
將待識別軌跡特征輸入卷積層、降采樣層、全連接層得到一維形式的特征向量之后,分別通過CNN 網(wǎng)絡(luò)的全連接層的Softmax 層和用SVM 分類函數(shù)代替CNN 網(wǎng)絡(luò)的全連接層的分類函數(shù),得到兩種預(yù)分類結(jié)果,將兩種預(yù)分類結(jié)果輸入權(quán)重判定層,通過權(quán)重判定決定最終輸出.聯(lián)合CNN-Softmax-SVM 算法的實現(xiàn)步驟如算法1.
算法1.聯(lián)合CNN-Softmax-SVM 算法輸入:1) 待識別手勢軌跡圖 ;ˉM 2) 采用CNN-SVM 訓(xùn)練樣本后的每種類別識別正確率的平均值集合,其中 是采用C N NSVM 訓(xùn)練測試集的第i 類,是采用CNN-SVM 訓(xùn)練樣本后的第i 類平均測試正確率;PCNN-SVM={p1(ˉx1),p1(ˉx2),p1(ˉx3),···,p1(ˉxn)} ˉxi p1(ˉxi)3) 采用CNN-Softmax 訓(xùn)練樣本后的每種類別識別正確率的平均值集合,其中 是采用CNNSoftmax 訓(xùn)練測試集的第i 類;是采用CNN-Softmax 訓(xùn)練樣本后的第i 類平均測試正確率;Class_x PCNN-Softmax={p2(ˉy1),p2(ˉy2),p2(ˉy3),···,p2(ˉyn)} ˉyi p2(ˉyi)輸出:識別類別ˉM→m 1 經(jīng)過卷積層、降采樣層、全連接層得到一維特征向量 .2 根據(jù)式(6)獲取 的類別yCNN-Softmax;根據(jù)式(14)獲取 的類別xCNN-SVM.ˉPCNN-SVM=→m→m n∑i=1 p1(ˉxi)3 獲取CNN-SVM 測試樣本識別正確率的平均值 ;獲取CNN-Softmax 測試樣本識別正確率的平均值yCNN-Softmax xCNN-SVM n∑nˉPCNN-Softmax=i=1p2(ˉyi)n 4 if=then
5=6 elseˉPCNN-SVM≥ˉPCNN-Softmax 7 if then p1(xCNN-SVM)≥p2(yCNN-Softmax)Class_x yCNN-Softmax 8 if Class_x xCNN-SVM 9=10 else Class_x yCNN-Softmax 11=12 end if 13 else p1(xCNN-SVM)≤p2(yCNN-Softmax)14 if Class_x=yCNN-Softmax 15 16 else Class_x=xCNN-SVM 17 18 end if 19 end if 20 end if
實驗環(huán)境的硬件:intel(R) Core(TM) i5-9400 CPU@ 2.90 Hz 2.90 GHz;內(nèi)存:8.00 GB;系統(tǒng)類型:64 位操作系統(tǒng),基于x64 的處理器;便攜式手貼紙:貼紙形狀為圓形,貼紙直徑為1 cm,貼紙顏色采用藍(lán)色(在HSV顏色空間下貼紙顏色范圍:1 00 ≤H≤124,4 3 ≤S≤255,46 ≤V≤255);攝像頭:羅技(Logitech) C270i IPTV 高清網(wǎng)絡(luò)攝像頭720P.
實驗從NIST 數(shù)據(jù)集[15]中整理出0-9 數(shù)字字符樣本圖片各2000 張用于改進卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練和測試,實驗樣本數(shù)據(jù)的訓(xùn)練和預(yù)測都是僅在CPU 下運行.訓(xùn)練相關(guān)參數(shù)如表1.
表1 參數(shù)分配表
CNN 中所有網(wǎng)絡(luò)各層的參數(shù)設(shè)置如表2所示,其中F、S、P分別表示卷積池化窗的大小、窗口滑動的步長、圖像的邊界填充,Kf表示在當(dāng)前網(wǎng)絡(luò)層中卷積池化窗的個數(shù),Df表示當(dāng)前網(wǎng)絡(luò)層輸出特征的維度.
表2 CNN 各層參數(shù)設(shè)置
CNN-Softmax 和CNN-SVM 在訓(xùn)練過程中的誤差下降散點圖如圖7所示,訓(xùn)練過程的精度折線圖如圖8所示.其中CNN-Softmax 的測試平均精確度為98.23%.另一方面,CNN-SVM 的測試平均精確度為98.04%.
圖7 訓(xùn)練誤差下降散點圖
圖8 訓(xùn)練精度折線圖
實驗邀請8 名長期使用臺式電腦的志愿者進行簡單的互動,每位志愿者每個數(shù)字字符累計實驗15 次.其中手與攝像頭距離閾值設(shè)置在0~60 cm 范圍內(nèi);手指與攝像頭中心之間角度閾值設(shè)置在0~18.3°范圍內(nèi).采用聯(lián)合CNN-Softmax-SVM 算法對動態(tài)手勢進行識別,識別結(jié)果如圖9手勢識別混淆矩陣所示,識別混淆矩陣中第一橫軸為識別出的結(jié)果,第一縱軸為識別的類別.
由圖9混淆矩陣可知,本文方法對于動態(tài)手勢軌跡具有較高的識別準(zhǔn)確率.在識別大部分?jǐn)?shù)字字符上準(zhǔn)確率可達到95%以上.
由于數(shù)字“0”和“6”、“2”和“3”、“4”和“6”、“5”和“6”、“5”和“8”在基于單目視覺下書寫軌跡具有一定的相似性,容易存在一定程度誤判的情形.單獨采用CNN-Softmax 算法在書寫并識別“5”和“6”時識別率小于93%;單獨采用CNN-SVM 算法在識別數(shù)字字符軌跡“2”、“3”、“4”時識別率小于93%;采用本文提出的聯(lián)合CNN-Softmax-SVM 算法對0~9 數(shù)字字符識別平均準(zhǔn)確率能達到95%以上,提高了相似字符識別的準(zhǔn)確率.
圖9 志愿者字符手勢識別混淆矩陣
表3給出了本文所提出的聯(lián)合CNN-Softmax-SVM 算法和單獨采用CNN-Softmax 和CNN-SVM 算法的對比結(jié)果.由表3可知,盡管本文算法的平均識別時間略長,但還是能滿足實時性;另外,采用本文方法在識別率上相比其他幾種方法有了較明顯的提升.
表3 不同動態(tài)手勢識別方法的對比
基于單目視覺的特征軌跡提取方法,有效地解決了復(fù)雜背景的干擾,增強了手勢數(shù)據(jù)的有效性并且能夠適應(yīng)大部分動態(tài)手勢變換.聯(lián)合CNN-Softmax-SVM動態(tài)手勢識別算法能夠有效提取動態(tài)手勢的軌跡特征,在識別率上也有一定的提高.但由于部分?jǐn)?shù)字字符在基于單目視覺下書寫軌跡具有相似性,容易存在一定程度誤判的情形.在今后研究中應(yīng)該進一步提高相似字符軌跡的識別率和識別時間.除此之外,本文研究是針對數(shù)字字符軌跡分類的手勢識別,也可以嘗試對字母字符軌跡的手勢識別進行實驗研究,以便更好地滿足人機交互的需求.