陳國良,岳正偉
(武漢理工大學(xué) 機電工程學(xué)院,湖北 武漢 430070)
手勢識別是眾多新型交互方式之一,手勢交互有著通用性強,操作直觀簡單等優(yōu)點。近年來,基于計算機視覺方法的非接觸式手勢識別方法得到了迅速發(fā)展,其通過攝像裝置拍攝手勢,然后在計算機上運用圖像處理等相關(guān)技術(shù)來分割和識別手勢。Raheja[1]和Panwar[2]提取手勢幾何特征作為參考,對手勢進行識別,取得較高的識別率。王凱等[3]基于AdaBoost算法和光流模板匹配的方法進行手勢識別,采用光流矢量統(tǒng)計和模板匹配相結(jié)合的方法來識別動態(tài)手勢。高輝光[4]提出基于Hu不變矩和支持向量機的靜態(tài)手勢識別算法,并在OpenCV的開發(fā)平臺進行手勢識別的實驗仿真。李思敏[5]對手勢進行HOG(histogram of oriented gradient)特征提取,通過SVM(support vector machine)訓(xùn)練出對應(yīng)不同手勢的分類器,取得了較高識別率。同時,研究人員也嘗試使用卷積神經(jīng)網(wǎng)絡(luò)對不同手勢進行識別,并取得了91%以上的正確率[6-7]。上述方法都可以在某單一方面滿足手勢識別的要求,但是鑒于手勢識別的實時性,魯棒性及其識別環(huán)境的復(fù)雜性,同時需要滿足實用性,需要提出更好的方案。
筆者旨在通過建立兩種手勢識別模型,將特征點的分布作為模型選擇依據(jù),針對性的對手勢進行識別。首先對手勢集中的手勢進行HOG特征提取,利用SVM分類算法進行手勢分類,并統(tǒng)計手勢識別率。之后將Hu矩思想引入到手勢識別方法中,分別對4種基礎(chǔ)手勢(手掌張開,食指伸直,五指彎曲成爪狀,拳頭握緊)提取Hu矩,將提取的Hu矩與4類聚類中心點進行標(biāo)準(zhǔn)化歐式距離計算,引入FCM(fuzzyc-means)算法對各類手勢進行識別,并統(tǒng)計此模型的識別率。對兩模型統(tǒng)計的手勢識別率進行歸一化,作為模型評分的加權(quán)值,將兩模型對待測手勢的打分乘以對應(yīng)權(quán)值即為手勢的加權(quán)分?jǐn)?shù),最高得分者即為識別的類型。對于識別模型的選擇是根據(jù)歐式距離分布情況,對于歐式距離位于某一手勢特征點標(biāo)準(zhǔn)差圓內(nèi)的點,引入Hu+FCM分類模型,而位于圓外的特征點,采用加權(quán)識別模型進行手勢識別,最后在保證基礎(chǔ)手勢識別率的基礎(chǔ)上對變形手勢(手掌旋轉(zhuǎn),手勢爪上下左右移動)進行識別。加權(quán)識別機制流程圖如圖1所示。
圖1 加權(quán)識別機制流程圖
操作者在注視屏幕操作過程中,因為手勢具有多樣性和靈活性以及操作場景的復(fù)雜性,需要定義一套專門的手勢,來滿足操作者對機器人的控制。為滿足工程實際應(yīng)用和人體生理習(xí)慣,文中主要研究兩類手勢,一種為動作手勢,另一種為指令手勢。動作手勢是對機器人空間動作控制的指令,而指令手勢則是針對機器人執(zhí)行末端的控制指令。動作手勢的基礎(chǔ)手勢為五指張開(hand)和食指伸直(index),而指令手勢分別為五指彎曲呈爪狀(claw)和拳頭握緊(fist)。為了能夠?qū)崿F(xiàn)手勢識別向著工程實際應(yīng)用方向,對4種基本手勢進行變形,并賦予實際應(yīng)用指令。食指的上下指向表明機器人在單自由度方向上進行移動;而手掌的旋轉(zhuǎn),空間移動對應(yīng)為機器人在三維空間上的自由動作(旋轉(zhuǎn),移動)。手勢claw映射為機器人的抓取,釋放動作,而手勢fist則為中止作業(yè)命令。各手勢與映射命令如圖2所示。
圖2 手勢命令映射圖
為滿足手勢識別訓(xùn)練要求,提高手勢識別算法魯棒性,對于每種手勢,采用深度攝像頭Leap-Motion,在不同的光照強度和不同拍攝角度條件下,采集每種手勢正樣本700張,圖3為部分用Leap-Motion攝像頭提取的正樣本手勢圖。負(fù)樣本則是在網(wǎng)上下載的10 000張圖片,圖片中都不含手勢部分,且都是在可能出現(xiàn)手勢的場所采集的。
圖3 4種基礎(chǔ)手勢圖
筆者采用的是Leap-Motion體感攝像頭,它可以提取圖像中的深度信息,即圖像中各物體與攝像頭的距離數(shù)據(jù)。首先對提取的圖像進行均衡化處理,以減小光照影響,同時進行高斯濾波,然后利用人臉Harr特征和AdaBoost算法對人臉區(qū)域進行剔除。同時利用圖像深度信息和手部的面積和周長,對背景與膚色相近的干擾雜質(zhì)部分進行剔除,最后采用開閉形態(tài)學(xué)操作進一步對手部進行精提取,如此可以有效地提取出手勢部分。圖4為手勢分割的流程圖,圖5為利用Leap-Motion得到的手勢分割圖。
圖4 手勢分割流程圖
在手勢識別過程中,因為手勢參與者的不同,光照不同,甚至同一參與者對同一手勢的擺放也不盡相同,所以需要對手勢識別具有很強的魯棒性。HOG特征對環(huán)境有著強適應(yīng)能力,對圖像的光線變化和小幅度旋轉(zhuǎn)方面有較強的魯棒性[8-9],同時HOG特征可以檢測圖像中邊緣信息并描述邊緣內(nèi)部灰度級的分布狀態(tài)。手勢識別特征的提取正需要手勢部分邊緣特征的提取,同時手勢識別過程中,特征提取過程中需要對于環(huán)境(光照,角度等)有一定的適應(yīng)性,以保證識別特征的準(zhǔn)確提取,而SVM模型的訓(xùn)練不需要非常龐大的樣本支撐,少量樣本就可以獲得較好的分類效果[10]。文獻[5]利用HOG特征和SVM的特性對手勢識別進行了研究。筆者借鑒其手勢識別方法,并對提取的手勢HOG特征進行PCA(principal component analysis)降維處理,以保證算法的實時性。文中將85%的手勢樣本特征導(dǎo)入到SVM模型中進行訓(xùn)練,將15%的手勢集作為測試集導(dǎo)入到訓(xùn)練好的SVM模型中進行測試,統(tǒng)計其分類準(zhǔn)確率如表1所示。
表1 HOG+SVM手勢識別準(zhǔn)確率統(tǒng)計表
通過統(tǒng)計SVM+HOG模型識別準(zhǔn)確率,其準(zhǔn)確率無法達(dá)到90%,不能滿足實際應(yīng)用要求。從統(tǒng)計數(shù)據(jù)發(fā)現(xiàn),hand與fist手勢的識別率較高,約為82.5%左右,同時claw與index手勢的識別率也剛接近80%左右,不能很好實現(xiàn)準(zhǔn)確地識別手勢類型。為提高手勢識別率,需要對手勢識別的算法進行進一步優(yōu)化。
Hu矩即幾何不變矩,是不隨圖像平移、旋轉(zhuǎn)、縮放而變化的特征量,因此,該特征可以很好地反映物體形狀信息,可用于對圖像特征進行分類識別[11]。Hu矩有7個不變矩(h1,h2,h3,h4,h5,h6,h7),它是由x方向上二階中心矩h1;y方向上二階中心矩h2;xy混合二階中心矩h3;x方向上三階中心矩h4;y方向上三階中心矩h5;xy混合三階中心矩h6,h7的線性組合構(gòu)成。為了驗證Hu矩特征能夠反映不同手勢具有不同特征,分別選擇二階矩h1,h2和三階矩h4來直觀地表現(xiàn)各手勢Hu矩在二維和三維空間的分布,如圖6所示。
圖6 手勢Hu矩二維、三維數(shù)據(jù)分布圖
從圖6可知,在二維空間中4種手勢的二階矩數(shù)據(jù)相交部分較多,而在三維空間中,4種手勢相交部分明顯減少,因此當(dāng)把七維數(shù)據(jù)映射到高維空間中時,可以很好地將4種手勢區(qū)分開來。
FCM算法是一種基于目標(biāo)函數(shù)的模糊聚類算法,主要用于數(shù)據(jù)的聚類分析[12]。FCM在分類過程中,會對樣本點進行距離計算,不斷迭代更新隸屬度,直到類型中心點到各樣本之間的隸屬度不變。整個分類過程見式(1)~式(4),其中式(1)為價值函數(shù),是考量手勢特征向量與聚類點c的歐幾里德距離指標(biāo);式(2)為約束條件,為滿足價值函數(shù)最小化;式(3)為聚類中心點求解方程;式(4)為某一待測手勢特征向量j與某一聚類點i間的隸屬度函數(shù)。式中計算類型隸屬度時充分利用了中心點到各類型樣本點的距離實時更新隸屬度。
(1)
(2)
(3)
(4)
式中:m為一個可以控制聚類結(jié)果的模糊程度的常數(shù);uij為每個樣本j屬于某一類i的隸屬度;xj分別為待測手勢特征向量;ci,ck分別為第i,k個中心點。圖7為FCM算法中手勢中心點的更新過程示意圖。如圖7中手勢中心點c1的坐標(biāo)更新計算為:
圖7 手勢中心點更新示意圖
式中:X1,X1,…,Xn為同種手勢集中對應(yīng)的手勢中心點坐標(biāo)。
對所有標(biāo)準(zhǔn)化手勢Hu矩利用FCM聚類成4類,鑒于聚類對于初始值有一定的敏感性,因此開始設(shè)定4種手勢隸屬度為1/4。在迭代結(jié)束,隸屬度不再發(fā)生改變,得到4種手勢的Hu矩中心特征點后,分別計算每一中心點距離所有手勢特征點的歐式距離。
對于一個未知樣本,利用歐式距離思想和FCM模糊分類算法對其進行分類識別。根據(jù)計算的歐式距離的大小對手勢進行隸屬度評估,進而確定手勢類型,分?jǐn)?shù)最高者對應(yīng)的聚類點類型即為相應(yīng)的手勢類型。由Hu+FCM模型方法進行手勢識別的準(zhǔn)確率如表2所示。
表2 Hu+FCM手勢識別率統(tǒng)計表
由表2可知,利用Hu矩歐式距離和FCM分類算法的手勢識別方法對index和claw識別率較高,可達(dá)到83%,而hand與fist的識別率相對較低。通過實現(xiàn)證明,通過Hu矩+FCM識別方法也可以一定程度上實現(xiàn)手勢的識別分類,但要在工程實際上運用,還需要有更高的識別率。
圖8 加權(quán)識別算法流程圖
為了更明確各手勢Hu矩分布情況,將hand手勢的中心點作為4種手勢的參考點,虛線圓表示hand與其他3種手勢的中心點距離,實心圓分別對應(yīng)各手勢Hu矩點的分布,半徑為各手勢的標(biāo)準(zhǔn)差,各圓圓心之間的距離為各種手勢中心點的距離。各手勢Hu矩分布關(guān)系圖如圖9所示。
圖9 各手勢Hu矩點分布示意圖
圖9中反映了各手勢特征點的大體分布情況,各手勢之間均有部分交集,為提高手勢識別率,需對交集部分進行算法的優(yōu)化,引入加權(quán)識別機制。加權(quán)模型中,對于待測手勢點位于某一手勢的特征點標(biāo)準(zhǔn)差圓內(nèi)的點,采用Hu+FCM模型進行分類,而對于在標(biāo)準(zhǔn)差圓外的特征點或位于標(biāo)準(zhǔn)差圓重疊部分的特征點,則引入加權(quán)識別模型對手勢進行打分識別。手勢識別的整個手勢的識別思想為:Ai,Aj(i,j=1,2,3,4)分別對應(yīng)手勢hand,fist,claw,index標(biāo)準(zhǔn)差圓區(qū)域;
ifx∈Aiandx?Ajandi≠j
FCM+Hu;
elseAi∩Aj≠? andi≠j
加權(quán)識別模型。
將先前采集好的各手勢的20%總樣本分別導(dǎo)入到先前訓(xùn)練好的SVM模型中,結(jié)合前面統(tǒng)計的各手勢識別準(zhǔn)確率,對樣本手勢進行加權(quán)評分,得分最高者即為對應(yīng)的類別。統(tǒng)計測試樣本識別準(zhǔn)確率如圖10所示。
圖10 手勢識別算法準(zhǔn)確率統(tǒng)計
3.4.1 手勢識別驗證
為驗證算法的可行性,將手勢集中的測試集分別導(dǎo)入本文優(yōu)化算法和文獻[3]~文獻[5]中的手勢識別方法中,統(tǒng)計各方法對于手勢集的識別率,結(jié)果如表3所示。由表3可知,本文算法在手勢識別中識別率接近89%,比起單獨特征提取方法的識別率更高。
表3 手勢識別算法識別率
3.4.2 實時性驗證
為驗證算法的實時性,將手勢集中85%手勢作為測試集,分別導(dǎo)入本文優(yōu)化算法和文獻[3]~文獻[5]中的手勢識別方法中,統(tǒng)計各方法單個手勢識別的平均耗費時間。文中對分類模糊的手勢進行特征提取時,利用多線程處理,以提高手勢識別的實時性。表4為本文算法與其他分類算法手勢識別所需時間的對比。
表4 手勢識別算法實時性對比
由表4可知,文中算法在保證識別率高于其他方法的同時,還能實現(xiàn)較短的耗費時間。通過對文中識別方法準(zhǔn)確性和實時性的實驗驗證可知,該識別方法對手勢識別有著比較好的識別效果。同時,在手勢識別中需要一定時間進行手勢識別處理,因此在實際應(yīng)用中對手勢視頻進行間隔幀識別處理。
為實現(xiàn)手勢識別實際應(yīng)用,對4種基礎(chǔ)手勢進行了部分改進,以更適應(yīng)工程實際應(yīng)用和人體操作習(xí)慣。對于index動作手勢識別,考慮其二值圖像的特點是上下長度不同來區(qū)分手指指向,而對于hand則通過計算二值圖面積來確定翻轉(zhuǎn)手勢,同時需要保證翻轉(zhuǎn)手勢在一定幀數(shù)范圍內(nèi)進行識別,文中設(shè)置為60幀,即為2 s左右動作實施時間。圖11為index識別過程圖,圖11表明index手勢輪廓圖平均長度,通過遍尋二值圖,找出最小長度,與平均長度位置比較判斷手指指向,圖11中直線段表示的是手勢的平均長度。圖12為統(tǒng)計15名志愿者翻轉(zhuǎn)動作中,手勢hand在旋轉(zhuǎn)過程平均面積變化圖。
圖11 index識別圖
圖12 hand面積變化圖
由實驗可知,index指向手勢演變于index手勢,在手勢集中可以比較準(zhǔn)確地尋找到手勢的平均長度位置,根據(jù)遍歷index手勢最短距離可以明確手勢的指向。而對于翻轉(zhuǎn)動作,在統(tǒng)計手勢輪廓面積時有著明顯的下降趨勢,并且手勢在終止時刻點的面積是初始時hand面積的2/5~2/3之間。通過實驗統(tǒng)計,在保證可以準(zhǔn)確識別基礎(chǔ)手勢的基礎(chǔ)上,動作手勢的識別率可以達(dá)到84%以上,結(jié)果如表5所示。
表5 動作手勢識別率統(tǒng)計
為實現(xiàn)手勢識別的較高準(zhǔn)確率,在實現(xiàn)對HOG+SVM算法優(yōu)化的基礎(chǔ)上,引入與形狀有關(guān)的特征量Hu矩,實現(xiàn)了手勢識別準(zhǔn)確率的進一步提高。本文主要的工作與成果如下:
(1)在HOG+SVM手勢識別算法基礎(chǔ)上,引入Hu矩對手勢特征點進行初步判斷,選擇合適的模型進行手勢識別。
(2)對手勢特征點與中心點距離在單個標(biāo)準(zhǔn)差圓內(nèi)的特征點,引入FCM算法對待測手勢進行分類。
(3)對分類模糊的手勢,采用FCM+Hu模型和HOG+SVM模型的加權(quán)模型進行加權(quán)打分,提高手勢的識別率。
(4)在保證基礎(chǔ)手勢識別率的基礎(chǔ)上,對基礎(chǔ)手勢進行改進,以更適用于工程實際,根據(jù)基礎(chǔ)手勢的幾何特征對改進手勢進行識別。