孫 翼,朱麗娟,韓 龍
(海軍大連艦艇學(xué)院 a.研究生一隊;b.通信系,遼寧 大連 116018)
隨著信息技術(shù)的不斷進(jìn)步,傳統(tǒng)的鼠標(biāo)、鍵盤等人機(jī)接口已經(jīng)不能適應(yīng)新技術(shù)的發(fā)展,虛擬與現(xiàn)實技術(shù)開始廣泛的應(yīng)用,自然化、智能化是今后人機(jī)交互技術(shù)的重要研究領(lǐng)域和發(fā)展方向。以手勢作為人與計算機(jī)交流方式,將具有很強(qiáng)的視覺沖擊和效果,富含大量的交互信息,可以用于人機(jī)自然交流的新途徑。
現(xiàn)階段手勢特征識別大體有兩種方式:一種是由美國麻省理工學(xué)院最先研發(fā)的機(jī)械手套為代表,該手套裝有多個傳感器,捕獲手指每個關(guān)節(jié)的動作并傳輸給計算機(jī)處理,得到相應(yīng)的控制信號;另一種以微軟的OpenCV技術(shù)為基礎(chǔ)用攝像頭撲捉人手動作,并提取相應(yīng)的特征值,經(jīng)過計算機(jī)計算,通過特征值比對實現(xiàn)人機(jī)交互的目的。兩種方式相比較,雖然前一種方式識別精度高,但是設(shè)備成本也比較高,使用局限性大,不利于推廣。而基于圖像處理技術(shù)的手部特征識別系統(tǒng)開發(fā)成本低,受環(huán)境約束較小,更加符合人與人的交流方式,具有很好的應(yīng)用前景。
但是由于手指本身具有非剛性、旋轉(zhuǎn)特性、運(yùn)動時的自由度非常大、背景固有的復(fù)雜性、光照的不穩(wěn)定性等特點,要穩(wěn)定地跟蹤和獲取手部的特征非常困難,因此如何提取手部特征是一個特征識別算法的核心。
手勢識別分為動態(tài)識別和靜態(tài)識別。動態(tài)識別是將手看作一個質(zhì)點,連續(xù)記錄其運(yùn)動軌跡,并與數(shù)據(jù)庫中的軌跡進(jìn)行比對,例如:文獻(xiàn)[8]使用三維的加速度傳感器獲取手勢加速度信號,利用DTW和近鄰傳播聚類算法對訓(xùn)練集中的每一個手勢創(chuàng)建一個樣本,然后用隨機(jī)投影算法對數(shù)據(jù)進(jìn)行降維,再與數(shù)據(jù)庫進(jìn)行比對。該方法克服了傳統(tǒng)算法中運(yùn)算量隨著特征向量的個數(shù)以及維數(shù)的增加而增加的缺陷,但該算法只能進(jìn)行軌跡識別,并且需要輔助設(shè)備,使用限制較多。在靜態(tài)識別方面,文獻(xiàn)[9]提出基于視覺的多特征手勢識別算法,該算法首先提取手部圖像并用手勢輪廓及手勢凸缺陷檢測指尖,結(jié)合指尖手勢指尖的相對位置進(jìn)行識別,對手勢識別精度較高,但該算法識別的手勢不多,凸缺檢測運(yùn)算不穩(wěn)定;文獻(xiàn)[10]使用Kinect傳感器捕獲手勢RGB-D數(shù)據(jù),利用深度數(shù)據(jù)進(jìn)行手勢分割,將手勢的外形輪廓的RGB數(shù)據(jù)進(jìn)行編碼,采用Smith-Waterman算法和最小平均距離法與數(shù)據(jù)庫模板進(jìn)行匹配達(dá)到手勢識別目的,但Kinect傳感器成本較高,識別前訓(xùn)練需要佩戴彩色手套,對旋轉(zhuǎn)的魯棒性不好。
本文以圖像處理技術(shù)為基礎(chǔ),提出全新的手部識別復(fù)合算法,由于使用指尖識別、手勢結(jié)構(gòu)、手指相對角度和絕對角度等方法,該算法具有較高的識別率和旋轉(zhuǎn)不變性等優(yōu)點,可以在計算機(jī)輔助決策人機(jī)交互方面進(jìn)一步拓展和應(yīng)用。
根據(jù)一定的圖像處理運(yùn)算法則,每一個手勢經(jīng)過運(yùn)算都會產(chǎn)生一個或一組特征值,該特征值就是在計算機(jī)中表示該手勢的符號。而尋求一個穩(wěn)定高效的運(yùn)算法則成為手勢特征檢測最重要的環(huán)節(jié)。
由于手部的自由度非常高,如何建立一個簡單高效的手部特征檢測模型始終是手勢識別技術(shù)的一個核心環(huán)節(jié)。手部加上腕關(guān)節(jié)手部共有15個關(guān)節(jié),大部分關(guān)節(jié)的活動范圍都在180°左右,個別關(guān)節(jié)具有360°活動范圍,因此提取每一個關(guān)節(jié)的角度特征是非常困難的。此外由于腕關(guān)節(jié)的自由度非常大,難以確定測量的基礎(chǔ)點和建立一個穩(wěn)定的坐標(biāo)系去測量每一根手指的角度,這給手部識別帶來困難。因此,在設(shè)計模型時提出以下兩個原則:
1)為減少關(guān)節(jié)角度計算量,提高識別速度,待識別的手勢中,當(dāng)需要彎曲手指時,彎曲度盡可能的大,而且要正對攝像頭。
2)待識別手勢之間應(yīng)具有較大的差異性,相似手型將被識別為同一手勢,比如,一根伸展手指的手勢和兩根并攏伸展手指的手勢,將被識別為同一手勢。
雖然手部的自由度非常高,但是各手指之間分開的角度基本是在一個范圍內(nèi)。鑒于此,本文提出建立如圖1所示的手部特征檢測模型,該檢測模型主要通過兩個方法來精確識別手勢:第一,進(jìn)行手部指尖檢測,通過檢測到的指尖數(shù)量來初步對手勢進(jìn)行分類(二叉樹);第二,進(jìn)行精確手勢識別,通過一系列處理得到手部中心和手勢簡化模型,再計算該簡化模型手指的絕對角度與相對角度,并作為手勢樣本庫存入手勢特征結(jié)構(gòu)體。該模型能夠很好地適合手勢的特點,能夠檢測手部的旋轉(zhuǎn)、彎曲等運(yùn)動,具有較高的檢測正確率。
根據(jù)手部的特征,結(jié)合參考文獻(xiàn)中的大量實驗,總結(jié)出較為科學(xué)的手勢特征存儲結(jié)構(gòu),利用VC++程序建立手勢特征的結(jié)構(gòu)體:
structGestureStruct//定義一個手勢結(jié)構(gòu)
{
intfingerNum;
//檢測到的指尖數(shù)目
intringNum[5];
//每一個檢測圓與指尖到重心連線的交點數(shù)
floatring1Value[9];
//第一層檢測到的角度,包括絕對角度和相對角度
floatring2Value[9];
//第二層檢測到的角度
floatring3Value[9];
//第三層檢測到的角度
floatring4Value[9];
//第四層檢測到的角度
floatring5Value[9];
//第五層檢測到的角度
CStringGestureName;
//手勢名字
};
手勢特征樣本庫對于后續(xù)的手勢識別起到至關(guān)重要的作用。本文首先根據(jù)手勢檢測模型建立樣本庫,如圖1所示。
圖1 手勢檢測模型
該手勢檢測模型由5個同心檢測圓組成,同心圓的中心與手勢圖像的重心o重合,重心與各指尖的最大距離為r,以o為原點、r為半徑建立極坐標(biāo)系。在和r之間等距建立5個以o為原點、為半徑的同心圓Rn。
特征檢測方程為
通過指尖檢測算法計算手部指尖頂點的個數(shù),此模型模擬5個手指全部伸出則會得到5個頂點。設(shè)檢測到的指尖頂點坐標(biāo)為(xn,yn),以逆時針順序建立每個指尖到圖像重心的連線L1,L2,L3,L4,L5。
指尖到手勢重心連線方程Ln為
根據(jù)式(1)、式(2),可求出線段交點為
通過上式算出每一層的交點個數(shù),并以該交點個數(shù)為基礎(chǔ)建立特征值樣本庫
式中:θnn為手部結(jié)構(gòu)每個指尖的絕對角度;θ˙nn為手部結(jié)構(gòu)兩個指尖的相對角度。
首先進(jìn)行模型特征錄入,該模型通過5個同心圓分別對待錄入手勢的輪廓模型進(jìn)行檢測,存儲每一層檢測圓與手部結(jié)構(gòu)圖的交點個數(shù)、手部結(jié)構(gòu)圖的絕對角度以及相對角度。手勢特征結(jié)構(gòu)體記錄每一層檢測圓與手部結(jié)構(gòu)圖的交點個數(shù)、手部結(jié)構(gòu)圖的絕對角度以及相對角度。然后以檢測到的指尖個數(shù)、分層的交點個數(shù)、絕對角度以及相對角度作為該手勢的特征結(jié)構(gòu)體存儲在計算機(jī)內(nèi),最后,在應(yīng)用時根據(jù)大量實驗設(shè)定一個合適的閾值,以攝像頭輸入為圖像源,對每一幀圖像進(jìn)行以上的圖像處理,得到該圖像的特征結(jié)構(gòu)體,再與所存儲的特征結(jié)構(gòu)體進(jìn)行比對,當(dāng)比對的結(jié)果小于設(shè)定的閾值時,判定為該特征手勢。
以攝像頭拍攝的視頻或錄制好的視頻作為視頻輸入源,視頻源的每一幀圖像都會經(jīng)過圖像預(yù)處理和圖像特征檢測兩個部分。圖像預(yù)處理部分包括載入圖像、圖像顏色標(biāo)準(zhǔn)化、計算圖像直方圖、圖像高斯模糊、圖像顏色空間轉(zhuǎn)換、膚色檢測、輪廓提取等步驟。
特征檢測算法部分包括指尖檢測、計算手勢特征模型、分層提取、特征比對等步驟。視頻經(jīng)過預(yù)處理得到手勢特征輪廓的二值化圖像,利用手勢特征檢測模型對圖像進(jìn)行分層特征提取獲得特征值,與樣本庫的特征值進(jìn)行相減并取絕對值α,根據(jù)大量試驗設(shè)定一個經(jīng)驗閾值δ,對圖像進(jìn)行特征檢測時,對對象進(jìn)行檢測時實時計算α,當(dāng)α小于δ時判定與樣本特征吻合,輸出結(jié)果,否則重新進(jìn)入循環(huán)載入下一幀圖像繼續(xù)進(jìn)行檢測,利用計算機(jī)的快速運(yùn)算達(dá)到實時手勢檢測的目的。
如圖2所示,該部分流程圖為手勢識別的圖像預(yù)處理,共有8個環(huán)節(jié),視頻圖像經(jīng)過預(yù)處理之后就會得出手勢的二元圖像。
圖2 圖像預(yù)處理
如圖3所示,該部分是圖像手勢識別,共有8個環(huán)節(jié),其中圖像在指尖提取和特征比對兩個部分分別進(jìn)行指尖初步分類和手勢精確識別。
圖3 圖像識別部分
為了驗證本文方法的可靠性與穩(wěn)定性,待檢測手勢選取手指指向不同、環(huán)境干擾不同的視頻圖像進(jìn)行指尖定位和特征檢測實驗。手勢圖像像素大小為320×240。
通過本文提出的特征提取和檢測算法,結(jié)果證明指尖定位準(zhǔn)確率達(dá)到90%以上。為了更好地實現(xiàn)徒手人機(jī)交互,本文設(shè)計了3個手勢,分別代表單擊鼠標(biāo)右鍵、雙擊鼠標(biāo)左鍵、單擊鼠標(biāo)左鍵,以實現(xiàn)對計算機(jī)控制信號的輸入。在實時檢測過程中,檢測程序?qū)γ恳粠瑘D像進(jìn)行識別處理,如果正確檢測識別出手勢就會相應(yīng)地給計算機(jī)發(fā)出指令,通過大量實驗,該檢測模型對手勢的檢測識別正確率很高,能夠達(dá)到徒手人機(jī)交互的要求。部分實驗結(jié)果圖如圖4~圖6所示。
圖4 單擊鼠標(biāo)右鍵手勢識別和檢測模型圖像
圖5 單擊鼠標(biāo)左鍵手勢識別和檢測模型圖像
圖6 雙擊鼠標(biāo)左鍵手勢識別和檢測模型圖像
本文提出了一種全新的手勢特征識別算法,該算法主要通過兩次判別手勢特征,第一次是進(jìn)行指尖數(shù)目的篩選,第二次當(dāng)指尖數(shù)目匹配時,進(jìn)行分層檢測進(jìn)行比對,該模型具有特征檢測精度高、模型構(gòu)建簡潔、運(yùn)算速度快等優(yōu)點。通過大量的試驗,證明該算法可以快速準(zhǔn)確地檢測手勢特征,具有較高的識別率,并且由于引入了相對角度的特征,使計算模型針對手部特征具有良好的旋轉(zhuǎn)不變性。
手勢識別的應(yīng)用前景非常廣泛,在手語理解、機(jī)器人控制、虛擬現(xiàn)實、智能家居等領(lǐng)域都有十分重要的意義。此外,隨著軍事科技的不斷進(jìn)步,面向?qū)崿F(xiàn)戰(zhàn)場三維實時動態(tài)展示是未來指控系統(tǒng)發(fā)展的重要方向,本文為實現(xiàn)全新的指揮決策,以人機(jī)交互的方式提供了技術(shù)支持,可以在今后的軍事裝備中得到更好的應(yīng)用。尤其是在指控系統(tǒng)方面,全息3D戰(zhàn)場態(tài)勢顯示與徒手計算機(jī)交互將有效減少指揮流程,提高指揮決策的效率。
[1] MITOLA J.Cognitive radio for flexible mobile multimedia communications[C]//Proc.Sixth International Workshop on Mobile Multimedia Communications MoMuC’99.San Diego,CA,USA:[s.n.],1999:3-10.
[2] HAYKIN S.Cognitive radio:brain-empowered wireless communications[J].IEEE Journal on Selected Areas in Communications,2005,23(2):201-220.
[3]BENKO J,CHANG SY,CHEONG Y,et al.Draft PHY/MAC specification for IEEE 802.22[EB/OL].[2015-01-03].http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1665193&queryText=Draf t+PHY%2FMAC+specification+for+IEEE+802.22&matchBoolean=true&newsearch=true&searchField=Search_All.
[4]BENKO J,CHEONG Y,CORDEIRO C,et al.A PHY/MAC proposal for IEEE 802.22 WRAN systems[EB/OL].[2015-01-03].http://www.doc88.com/p-0897235416538.htm l.
[5] 王守磊,朱民耀,陸小鋒,等.一種基于方向直方圖的嵌入式手勢識別系統(tǒng)[J].電視技術(shù),2012,36(15):133-137.
[6] 張良國,吳江琴,高文,等.基于Hausdorff距離的手勢識別[J].中國圖象圖形學(xué)報:A版,2002,7(11):1144-1150.
[7] 郭興偉,葛元,王林泉.基于形狀特征的字母手勢的分類及識別算法[J].計算機(jī)工程,2004,30(18):130-132.
[8] 劉紅,劉蓉,李書玲.基于隨機(jī)投影的加速度手勢識別[J].計算機(jī)應(yīng)用,2015,35(1):189-193.
[9] 翁漢良,戰(zhàn)蔭偉.基于視覺的多特征手勢識別[J].計算機(jī)工程與科學(xué),2012,34(2):123-127.
[10] 姚遠(yuǎn),張林劍,喬文.RGB-D圖像中手部樣本標(biāo)記與手勢識別[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2013,25(12):1810-1817.
[11] 羅元,何超,王艷,等.基于深度預(yù)分割結(jié)合camshift跟蹤算法的動態(tài)手勢識別方法[EB/OL].[2015-01-03].http://d.wanfangdata.com.cn/Periodical_bdtgd201501036.aspx.