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