康金蘭,晁建剛,林萬(wàn)洪,熊 穎,楊 進(jìn)
(1.中國(guó)航天員科研訓(xùn)練中心,北京100194;2.人因工程重點(diǎn)實(shí)驗(yàn)室,北京100194)
手勢(shì)識(shí)別是一種人機(jī)交互技術(shù),以人手部的動(dòng)作直接控制計(jì)算機(jī)的輸入。隨著技術(shù)的發(fā)展,使用攝像頭捕捉手勢(shì)的計(jì)算機(jī)視覺(jué)技術(shù)成為了手勢(shì)識(shí)別的主流方式[1]。手勢(shì)無(wú)論是靜態(tài)或動(dòng)態(tài),首先需通過(guò)視頻采集設(shè)備獲取圖像,并通過(guò)圖像處理進(jìn)行手的檢測(cè)和分割,之后對(duì)手勢(shì)圖像加以分析,提取圖像特征,再根據(jù)特征將已分離的手勢(shì)按照一定的方法識(shí)別出來(lái),最后將識(shí)別結(jié)果轉(zhuǎn)化為驅(qū)動(dòng)計(jì)算機(jī)運(yùn)行的交互語(yǔ)義[2]。
近年來(lái)手勢(shì)識(shí)別技術(shù)的發(fā)展迅猛,在許多領(lǐng)域有著廣泛的應(yīng)用前景。在我國(guó)未來(lái)空間站任務(wù)階段將開(kāi)展長(zhǎng)期有人照料的空間科學(xué)實(shí)驗(yàn)任務(wù),隨著需求的不斷增強(qiáng),飛行任務(wù)越來(lái)越繁重,為提高航天員執(zhí)行任務(wù)的效率及成功率,地面訓(xùn)練需要適應(yīng)空間站內(nèi)部空間大、設(shè)備多,操作復(fù)雜等特點(diǎn),考慮艙外設(shè)備的維護(hù)維修、艙內(nèi)設(shè)備組裝等工作,因此將引入基于虛擬現(xiàn)實(shí)的訓(xùn)練系統(tǒng),視覺(jué)手勢(shì)識(shí)別技術(shù)正是其中的關(guān)鍵環(huán)節(jié)之一。
目前國(guó)內(nèi)動(dòng)態(tài)手勢(shì)識(shí)別以研究手的運(yùn)動(dòng)軌跡識(shí)別為主[3],這在很大程度上難以滿足航天員訓(xùn)練需要。本文針對(duì)我國(guó)載人航天任務(wù)日益增長(zhǎng)的訓(xùn)練需求,以航天員在軌組裝艙內(nèi)某醫(yī)學(xué)防護(hù)鍛煉設(shè)備為研究對(duì)象,進(jìn)行視覺(jué)手勢(shì)識(shí)別技術(shù)研究,著力解決在航天員虛擬訓(xùn)練背景下,典型動(dòng)態(tài)手勢(shì)的識(shí)別及交互設(shè)計(jì)等內(nèi)容。以組裝過(guò)程中的抓取、(抓取后的)拖動(dòng)、釋放為例,分析了航天虛擬組裝訓(xùn)練的典型手勢(shì),研究了基于Kinect的手勢(shì)識(shí)別方法,建立了航天虛擬組裝訓(xùn)練三維場(chǎng)景,首次設(shè)計(jì)并實(shí)現(xiàn)了基于視覺(jué)手勢(shì)識(shí)別的航天虛擬訓(xùn)練系統(tǒng),最后,設(shè)計(jì)了仿真實(shí)驗(yàn),對(duì)手勢(shì)識(shí)別方法的有效性進(jìn)行了驗(yàn)證。
本文以當(dāng)前的主流工具——光場(chǎng)攝像機(jī)(Kinect)為視頻采集設(shè)備,OpenNI和Nite為主要視覺(jué)識(shí)別軟件,OpenCV輔助進(jìn)行識(shí)別算法計(jì)算,以irrlicht圖形引擎建立虛擬三維交互場(chǎng)景,在VC2010環(huán)境下實(shí)現(xiàn)編碼。研究平臺(tái)體系結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)體系結(jié)構(gòu)圖Fig.1 System architecture
視覺(jué)計(jì)算平臺(tái)負(fù)責(zé)手勢(shì)圖像的采集及底層處理,視覺(jué)手勢(shì)識(shí)別系統(tǒng)負(fù)責(zé)運(yùn)動(dòng)手勢(shì)的關(guān)鍵算法實(shí)現(xiàn),交互規(guī)范/規(guī)則負(fù)責(zé)手勢(shì)交互語(yǔ)義的定義;場(chǎng)景部分負(fù)責(zé)建立虛擬的三維設(shè)備場(chǎng)景,并根據(jù)動(dòng)態(tài)手勢(shì)驅(qū)動(dòng)設(shè)備部件組裝;管理界面負(fù)責(zé)頂層界面管理。
建立的視覺(jué)手勢(shì)人機(jī)交互系統(tǒng)框圖如圖2所示。
圖2 手勢(shì)識(shí)別人機(jī)交互系統(tǒng)Fig.2 Man-machine interactive system based on gesture recognition
首先,通過(guò)Kinect獲取深度圖像的數(shù)據(jù)流,系統(tǒng)根據(jù)手勢(shì)的深度位置分割出手勢(shì),得到手勢(shì)的二值圖像;其次,根據(jù)指尖特征,分割出指尖并有效跟蹤目標(biāo)和運(yùn)動(dòng);再次,根據(jù)手勢(shì)特征進(jìn)行分析,生成模型參數(shù),根據(jù)模型參數(shù)對(duì)手勢(shì)進(jìn)行分類并按需要定義交互語(yǔ)義;最后,系統(tǒng)根據(jù)交互語(yǔ)義去驅(qū)動(dòng)手勢(shì)裝配物體。
準(zhǔn)確、合理地分離手勢(shì)與背景是提高識(shí)別效率和準(zhǔn)確率的一個(gè)重要前提[4]。Kinect除了能夠提供RGB顏色信息外,還能利用紅外線提供深度信息,這就為手勢(shì)的檢測(cè)提供了極大的便利,因?yàn)榧t外深度信息與背景的區(qū)分度遠(yuǎn)大于顏色信息與運(yùn)動(dòng)信息,使得手勢(shì)檢測(cè)的大部分工作能夠由硬件直接完成[3]。本文在手勢(shì)檢測(cè)和分割部分充分利用Kinect提供的深度圖像信息進(jìn)行處理,不僅可以解決因使用場(chǎng)合的不同和光照環(huán)境等的變化造成的手勢(shì)區(qū)域檢測(cè)不準(zhǔn)的問(wèn)題,而且能夠較好的去除類膚色區(qū)域。
本文假定人手離攝像機(jī)最近,且距離在1 m范圍內(nèi)。利用Openni手部分析模塊很容易跟蹤檢測(cè)到手的質(zhì)心,根據(jù)手心坐標(biāo),選取感興趣區(qū)域作為手勢(shì)分割的目標(biāo)。通過(guò)分析在軌組裝的幾種特定手勢(shì),我們?nèi)∩疃葓D像中原像素點(diǎn)的深度值在手質(zhì)心深度值d±8 cm范圍內(nèi)的點(diǎn)的集合作為分割出來(lái)的手勢(shì)圖像,并將其進(jìn)行二值化處理,分割前后的圖像如圖3(a)和(b)所示。
圖3 手勢(shì)分割Fig.3 Gesture segmentation
想要滿足組裝操作的需求,僅僅一個(gè)手的質(zhì)心點(diǎn)顯然不夠,而指尖是手勢(shì)識(shí)別中最為常用的特征點(diǎn)[5]。目前,指尖檢測(cè)算法中,常用的是模板匹配和輪廓曲率分析兩種方法[6]。但模版匹配方法必須遍歷整個(gè)手勢(shì)圖像而導(dǎo)致實(shí)時(shí)效率不高[7],因此本文采用手勢(shì)圖像輪廓曲率分析的方法,通過(guò)對(duì)手輪廓圖像進(jìn)行分析來(lái)檢測(cè)指尖,進(jìn)而檢測(cè)出拇指并實(shí)時(shí)跟蹤。
首先將圖像輪廓上的點(diǎn)依次存入數(shù)組中,利用K-curvature算法計(jì)算任意一點(diǎn)的近似曲率。如圖4a所示,對(duì)圖中的點(diǎn)P1,計(jì)算P1和P2之間的向量與P1和P3之間向量的夾角是否在一定范圍內(nèi),從而判斷它是否為指尖。經(jīng)過(guò)多次測(cè)試驗(yàn)證,取P2、P3與P1間隔20個(gè)像素點(diǎn),且向量夾角角度取0~55度,識(shí)別結(jié)果比較理想。向量夾角不在該范圍內(nèi)的認(rèn)為是非指尖,例如圖4(a)中的T1點(diǎn)。圖4(b)是通過(guò)該方法識(shí)別出來(lái)的結(jié)果,橙色圓圈標(biāo)識(shí)的是手指尖。
圖4 指尖檢測(cè)Fig.4 Fingertips Detection
根據(jù)在所有相鄰指尖點(diǎn)的距離中,拇指和食指指尖距離最遠(yuǎn)的特點(diǎn),很容易檢測(cè)到拇指,如圖4b所示。
由于手在運(yùn)動(dòng)過(guò)程中會(huì)有一些變化,Kinect攝像頭也會(huì)產(chǎn)生噪聲,使得對(duì)指尖的三維位置不能穩(wěn)定地跟蹤。通過(guò)Kalman濾波,用前幀指尖位置預(yù)測(cè)下幀指尖位置,根據(jù)預(yù)測(cè)位置將指尖區(qū)域設(shè)置為圖像的感興趣區(qū)域(ROI,Region ofinterest),有效提高分割速度[8]。跟蹤過(guò)程為:
1)利用Kalman濾波器預(yù)測(cè)當(dāng)前幀的指尖位置,設(shè)置ROI區(qū)域是以預(yù)測(cè)指尖點(diǎn)為中心,大小為80×80的窗口。
2)目標(biāo)匹配。在連續(xù)兩幀中,指尖運(yùn)動(dòng)假定為勻速,則Kalman濾波器的狀態(tài)向量如式(1)。
式中X(t),Y(t),Z(t)是指尖在三維中的坐標(biāo)位置,Vx(t),Vy(t),Vz(t)指在每一幀中指尖點(diǎn)的速度,則狀態(tài)方程和觀測(cè)方程分別為:
其中,wt是過(guò)程噪聲,具有高斯分布;vt是測(cè)量誤差,F(xiàn)為狀態(tài)轉(zhuǎn)化矩陣,H為觀測(cè)矩陣。
由此,通過(guò)指尖在t幀之前的位置來(lái)預(yù)測(cè)它在t幀時(shí)刻的位置。但Kinect本身存在局限性,有時(shí)會(huì)出現(xiàn)很大誤差,導(dǎo)致指尖出現(xiàn)抖動(dòng)。為防止預(yù)測(cè)與指尖的實(shí)際位置相差太大,利用手質(zhì)心點(diǎn)與指尖深度相差不大的先驗(yàn)知識(shí),可設(shè)定指尖深度在手質(zhì)心點(diǎn)深度±8 cm范圍內(nèi)。
3)更新Kalman濾波狀態(tài),用匹配好的指尖位置作為下一幀的預(yù)測(cè)值來(lái)更新Kalman濾波狀態(tài),達(dá)到穩(wěn)定跟蹤指尖的目的。
手勢(shì)的表觀特征[5]包括手指數(shù)、手指的指尖點(diǎn)、指根點(diǎn)以及指間的夾角等具有標(biāo)志性的信息。通過(guò)指尖檢測(cè)得到多個(gè)指尖,利用指尖個(gè)數(shù)狀態(tài)、指尖向量和手指相對(duì)運(yùn)動(dòng)軌跡來(lái)劃分手勢(shì)類型,并根據(jù)不同場(chǎng)景中的具體應(yīng)用進(jìn)行交互語(yǔ)義的描述。虛擬組裝過(guò)程中的物體操作主要包括對(duì)物體的抓取、移動(dòng)、釋放等操作,具體定義如下:
1)抓取(Grasp)。當(dāng)手的拇指指尖點(diǎn)與食指指尖點(diǎn)接觸(距離小于5個(gè)像素點(diǎn)),且接觸點(diǎn)在物體的包圍盒內(nèi)時(shí),定義為抓取操作。
2)移動(dòng)(Move)。當(dāng)物體處于抓取狀態(tài),且手質(zhì)心位置發(fā)生變化時(shí),定義此手勢(shì)為抓取移動(dòng)狀態(tài),抓取到的物體隨手的移動(dòng)而移動(dòng)。
3)釋放(Free)。當(dāng)手拇指指尖與食指指尖不接觸時(shí)(距離大于5個(gè)像素點(diǎn)),定義為釋放動(dòng)作,物體被放開(kāi)。
利用本文描述的指尖檢測(cè)與跟蹤方法,首先從手勢(shì)特征圖像中識(shí)別出指尖,并判斷出拇指和食指,之后進(jìn)行穩(wěn)定地跟蹤,然后根據(jù)兩手指的位置關(guān)系以及是否接觸到操作的部件來(lái)識(shí)別當(dāng)前手勢(shì)的含義。
采用本文描述的手勢(shì)檢測(cè)及識(shí)別方法,進(jìn)行在軌組裝設(shè)備虛擬操作訓(xùn)練實(shí)驗(yàn)。首先將三維虛擬設(shè)備各部件放置在固定位置上,虛擬手模型隨識(shí)別的手的質(zhì)心位置變化,當(dāng)手移動(dòng)到虛擬部件的包圍盒內(nèi)時(shí),該虛擬部件變色,以表明手接觸到該部件;當(dāng)進(jìn)行抓取操作時(shí),輸出聲音表明識(shí)別到抓取操作;當(dāng)手處于抓取操作狀態(tài)并移動(dòng)時(shí),虛擬部件跟隨移動(dòng);程序中通過(guò)在相應(yīng)的位置上顯示已抓取部件的線框圖,并以閃爍的綠色提醒訓(xùn)練對(duì)象將該部件移動(dòng)到該位置進(jìn)行組裝,移動(dòng)到正確組裝位置后,該部件線框圖變成紅色,表示位置正確可以釋放,釋放后即完成了這一步的正確組裝。仿真結(jié)果如圖5所示。
圖5 組裝實(shí)驗(yàn)演示圖Fig.5 Sketch map of assembly experiment
圖6 識(shí)別出的手勢(shì)圖像Fig.6 Gesture image recognized
圖6 (a)和(b)是采用本文描述的手勢(shì)識(shí)別方法識(shí)別出來(lái)的兩種特定操作手勢(shì)。實(shí)驗(yàn)過(guò)程中選取5個(gè)人在不同的光照條件和復(fù)雜背景下進(jìn)行在軌組裝操作訓(xùn)練,組裝過(guò)程中每個(gè)特定動(dòng)作重復(fù)10遍,得到的實(shí)驗(yàn)結(jié)果如表1所示。從表中的數(shù)據(jù)可以看出,采用本文的方法進(jìn)行特定手勢(shì)識(shí)別,識(shí)別效率較高,且具有較強(qiáng)的魯棒性,可以達(dá)到組裝訓(xùn)練的目的。
表1 組裝手勢(shì)識(shí)別率Table 1 Recognition rate of assembly gestures
說(shuō)明:本文將實(shí)際組裝操作過(guò)程中的手勢(shì)簡(jiǎn)化為特定的三種手勢(shì),用于組裝操作流程上的訓(xùn)練;文本描述的手勢(shì)識(shí)別方法適用于基于這三種特定手勢(shì)的虛擬組裝訓(xùn)練,但對(duì)于實(shí)際操作中可能涉及到的旋擰、插拔等復(fù)雜操作不太適用,針對(duì)一些復(fù)雜組裝手勢(shì)的識(shí)別將在后續(xù)的工作中繼續(xù)研究。
本文在分析未來(lái)空間站階段航天員地面模擬訓(xùn)練需求的基礎(chǔ)上,研究了基于Kinect的視覺(jué)手勢(shì)識(shí)別技術(shù)在載人航天失重防護(hù)設(shè)備組裝訓(xùn)練上的應(yīng)用。首先利用OpenNI和Nite檢測(cè)到動(dòng)態(tài)手勢(shì),再利用Kinect深度信息有效地分割手勢(shì),并采用手勢(shì)圖像輪廓曲率分析方法識(shí)別出手指尖,結(jié)合Kalman濾波進(jìn)行穩(wěn)定跟蹤。根據(jù)識(shí)別的拇指與食指的位置關(guān)系以及手勢(shì)的定義識(shí)別出組裝的特定手勢(shì)。實(shí)驗(yàn)結(jié)果表明,本文描述的方法對(duì)組裝訓(xùn)練的特定手勢(shì)有較高的識(shí)別率,在不同光照和復(fù)雜背景下魯棒性強(qiáng);該方法可應(yīng)用于載人航天在軌設(shè)備虛擬組裝訓(xùn)練中。
[1]鄧瑞,周玲玲,應(yīng)忍冬.基于Kinect深度信息的手勢(shì)提取與識(shí)別研究[J].計(jì)算機(jī)應(yīng)用研究,2013,30(4):1263-1265.
[2]任潔.基于立體視覺(jué)的手勢(shì)跟蹤識(shí)別及人機(jī)交互應(yīng)用[D].南京:南京大學(xué),2013.
[3]陶麗君,李翠華等.基于Kinect傳感器深度信息的動(dòng)態(tài)手勢(shì)識(shí)別[J].廈門大學(xué)學(xué)報(bào),2013,52(4):493-497.
[4]王艷,張奇志.基于Kinect深度信息的手勢(shì)識(shí)別[J].北京科技大學(xué)學(xué)報(bào),2013,28(1):22-26.
[5]陳艷艷,陳正鳴,周小芹.基于Kinect的手勢(shì)識(shí)別及在虛擬裝配技術(shù)中的應(yīng)用[J].電子設(shè)計(jì)工程,2013,21(10):4-7.
[6]Shuai Yang,PrashanPremaratne,Peter Vial.Hand Gesture Recognition[C]//Proceedings of 2013 5th IEEE International Conference on Broadband Network&Multimedia Technology.Guilin,China:IEEE,2013:23-27.
[7]Li Y.Hand gesture recognition on using Kinect[C]//Software Engineering and Service Science(ICSESS),2012 IEEE 3rd International Conference on.Beijing,China:IEEE,2012:196-199.
[8]Jagdish L Raheja,Ankit Chaudhary,KunalSingal.Tracking of Fingertips and Centers of Palm using Kinect[C]//Proceeding on Third International Conference on Computational Intelligence,Modelling& Simulation.2011:248-252.