999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Kinect的手勢識別及在虛擬裝配技術(shù)中的應(yīng)用

2013-06-23 09:36:42陳艷艷陳正鳴周小芹
電子設(shè)計(jì)工程 2013年10期

陳艷艷,陳正鳴,2,周小芹,2

(1.河海大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 常州 213022;2.江蘇省輸配電裝備技術(shù)重點(diǎn)實(shí)驗(yàn)室 江蘇 常州 213022)

基于視覺的手勢識別,是通過視頻圖像信息獲取人的手勢姿態(tài),對其進(jìn)行分類識別的一種人機(jī)交互技術(shù)。它作為一門新興的技術(shù),近年來受到了眾多國內(nèi)外學(xué)者的關(guān)注。Kinect是微軟公司推出的XBox 360的外接體感設(shè)備,以其深度數(shù)據(jù)的獲取特點(diǎn),成為手勢輸入設(shè)備的重點(diǎn)研究對象[1]。開源軟件OpenNI(開放式自然交互)能夠方便的訪問和使用Kinect設(shè)備,但它只提供了基于手點(diǎn)的4種手勢,微軟的開發(fā)包中還沒有集成手勢引擎,這就需要根據(jù)實(shí)際需要開發(fā)手勢識別引擎。

以人手的自然行為觸發(fā)三維交互的相關(guān)研究在虛擬現(xiàn)實(shí)領(lǐng)域有著重要的理論價(jià)值和應(yīng)用價(jià)值[2]。基于虛擬現(xiàn)實(shí)技術(shù)的虛擬裝配系統(tǒng)是一個(gè)沉浸式或半沉浸式的虛擬環(huán)境,為解決產(chǎn)品的裝配問題提供了一個(gè)低成本的快速手段[3]。目前,對于裝配手段多采取數(shù)據(jù)手套[4]方式,但數(shù)據(jù)手套價(jià)格比較昂貴,設(shè)備繁重。而Kinect相對低廉,人手在操作時(shí)也更加自然方便。文中由此提出了基于Kinect的手勢識別方法,用多個(gè)指尖的相對運(yùn)動代替整只手,來完成虛擬裝配過程。針對虛擬裝配系統(tǒng),設(shè)計(jì)了選取、移動、旋轉(zhuǎn)和縮放等手勢,以滿足裝配過程中的基本操作,并對Virtools裝配環(huán)境中的關(guān)鍵問題作了說明。

1 手勢識別系統(tǒng)

目前,OpenNI支持的手勢過于簡單,不能完全滿足裝配需求,因此本文開發(fā)了針對裝配操作所需的幾種手勢,可以有效實(shí)現(xiàn)裝配過程中的基本操作。手勢識別系統(tǒng)框架如圖1所示。

圖1 手勢識別系統(tǒng)框架圖Fig.1 Structure diagram of the gesture regnization system

首先,通過Kinect獲取深度圖像的數(shù)據(jù)流,系統(tǒng)根據(jù)手勢的深度位置分割出手勢,得到手勢的二值圖像;其次,根據(jù)指尖特征,分割出指尖并有效跟蹤目標(biāo)的形變和運(yùn)動;再次,根據(jù)手勢特征進(jìn)行分析,生成模型參數(shù),根據(jù)模型參數(shù)對手勢進(jìn)行分類并按需要定義交互語義;最后,系統(tǒng)根據(jù)交互語義去驅(qū)動手勢裝配物體。

1.1 手勢圖像的采集與分割

Kinect采集到的深度信息保存在一個(gè)二維數(shù)組中,數(shù)組中的每一個(gè)元素表示該位置的深度像素點(diǎn)對應(yīng)的實(shí)際物體的點(diǎn)到Kinect的距離,單位為mm。利用深度信息,將人手所在深度范圍的圖像提取出來。首先獲得Kinect的深度圖,利用Nite[5]模塊跟蹤手點(diǎn)位置,如圖2(a)所示。在跟蹤到手點(diǎn)位置后,根據(jù)手點(diǎn)的深度值做閾值截取,分割出到手的深度圖。為了顯示效果,對深度圖中的手勢區(qū)域與背景區(qū)域作二值化處理,利用輪廓檢測,提取手勢的最外層輪廓,實(shí)現(xiàn)手勢分割。其次,考慮到手的擺放角度不一定正對攝像頭,手臂就可能顯示出來,因此利用以手點(diǎn)為中心的包圍盒,來截取手區(qū)域部分。如圖2(b)所示。

1.2 指尖檢測與跟蹤

想要滿足裝配操作的需求,僅僅一個(gè)手點(diǎn)顯然不夠,而指尖是手勢識別中最為常用的特征點(diǎn)。目前,指尖檢測算法中,模板匹配和輪廓曲率分析兩種方法應(yīng)用較為普遍。但模版匹配方法必須遍歷圖像而導(dǎo)致實(shí)時(shí)效率不高,曲率分析對精度要求較高而使檢測指尖效果不理想[6]。從Kinect手勢分割結(jié)果來看,發(fā)現(xiàn)與手掌區(qū)域相比,手指比較細(xì)長,考慮基于形狀的方法比較合適,并且在形態(tài)學(xué)操作下,手指區(qū)域較易剔除,因此本文利用此特征對指尖進(jìn)行檢測。

首先,記錄根據(jù)分割算法得到的手區(qū)域Hand;其次,對手圖像進(jìn)行膨脹 (dilate)操作后對其做連續(xù)十次的腐蝕(erode)操作;再次,根據(jù)手掌面積不小于50來確定dilate次數(shù),分割出手掌區(qū)域Palm,如圖2(c)。手指部分Finger由公式Finger=Hand-Palm得到,指尖位置則利用指尖距離手心點(diǎn)較遠(yuǎn)的這一特征進(jìn)行提取,如圖2(d)所示。

圖2 指尖特征提取過程圖Fig.2 Diagrams of fingertip festure extraction process

1.3 Kalman濾波

由于手在運(yùn)動過程中會有一些變化,Kinect攝像頭也會產(chǎn)生噪聲,使得對指尖的三維位置不能穩(wěn)定地跟蹤。通過Kalman濾波,用前幀指尖位置預(yù)測下幀的指尖位置,根據(jù)預(yù)測位置將指尖區(qū)域設(shè)置為圖像的感興趣區(qū)域(ROI,Region of interest),有效提高分割速度。跟蹤過程為:

1)利用Kalman濾波器預(yù)測當(dāng)前幀的指尖位置,設(shè)置ROI區(qū)域是以預(yù)測指尖點(diǎn)為中心,大小為80×80的窗口。

2)目標(biāo)匹配。在連續(xù)兩幀中,指尖運(yùn)動假定為勻速,則Kalman濾波器的狀態(tài)向量為

式中X(t),Y(t),Z(t)是指尖在 三維中的坐標(biāo)位 置,Vx(t),Vy(t),Vz(t)是指在每一幀中指尖點(diǎn)的速度,則狀態(tài)方程和觀測方程分別為

根據(jù)鉆孔抽水試驗(yàn)資料,含煤地層地下水位整體呈北部高,最南部高,中間低的趨勢(圖5),含煤地層地下水主要從北部自東西兩側(cè)向中間匯集再流向南部,同時(shí)最南部水位也較高,地下水自最南部流向水位最低處。地下水徑流特征有利于煤層氣自東西向中部聚集,自南北向中部富集,與井田煤層氣的分布特征基本吻合。鉆孔單位涌水量0.003 2~28.070 0 mL/(s·m),富水性極弱,起到水力封閉和封堵的作用,是8號煤層在整個(gè)井田煤層含氣量均較高,平均達(dá)到18.6m3/t的重要原因。

其中,wt是過程噪聲,具有高斯分布;vk是測量誤差,F(xiàn)為狀態(tài)轉(zhuǎn)化矩陣,H為觀測矩陣。

由此,通過指尖在t幀之前的位置來預(yù)測它在t幀時(shí)刻的位置。但Kinect本身存在局限性,有時(shí)會出現(xiàn)很大誤差,導(dǎo)致指尖出現(xiàn)抖動。為防止預(yù)測與指尖的實(shí)際位置相差太大,利用Nite手點(diǎn)與指尖深度相差不大的先驗(yàn)知識,可設(shè)定指尖深度在直徑為手長的手點(diǎn)深度范圍內(nèi)。

3)更新Kalman濾波狀態(tài),用匹配好的指尖位置作為下一幀的預(yù)測值來更新Kalman濾波狀態(tài),達(dá)到穩(wěn)定跟蹤的目的。

1.4 手勢分析與交互語義的描述

手勢的表觀特征包括手指數(shù)、手指的指尖點(diǎn)、指根點(diǎn)以及指間的夾角等具有標(biāo)志性的信息,通過指尖檢測得到多個(gè)指尖。利用指尖個(gè)數(shù)狀態(tài)、指尖向量和手指相對運(yùn)動軌跡來劃分手勢類型,并根據(jù)不同場景中的具體應(yīng)用進(jìn)行交互語義的描述。虛擬裝配過程中的物體操縱主要包括對物體的選取、移動、旋轉(zhuǎn)、放縮和釋放等操作。

1)選取(Select):當(dāng)手心點(diǎn)在物體的包圍盒內(nèi)時(shí),定義一個(gè)手指狀態(tài)為選取操作,選中的物體就可以做旋轉(zhuǎn)或縮放動作了。

2)旋轉(zhuǎn)(Rotate):當(dāng)物體為選取狀態(tài)時(shí),再將大拇指伸出,此時(shí)識別出兩指尖與手心3個(gè)手點(diǎn)位置,將三點(diǎn)所構(gòu)平面近似為手掌平面。定義手掌旋轉(zhuǎn)手勢為旋轉(zhuǎn)動作,旋轉(zhuǎn)軸為兩指尖點(diǎn)間的向量V,旋轉(zhuǎn)角度為旋轉(zhuǎn)過程中的平面法向Vt與初始平面法向V的角度Angle。

3)放縮(Scale):當(dāng)物體為選取狀態(tài)時(shí),指尖個(gè)數(shù)為3~5,當(dāng)至少兩個(gè)指尖點(diǎn)與手點(diǎn)的距離都減小/增大時(shí),取每個(gè)指尖點(diǎn)與手點(diǎn)放縮距離的平均值為放縮程度,即定義手握拳與張開動作為放縮動作。

4)移動(Move):當(dāng)手心點(diǎn)在物體包圍盒內(nèi)并且含大拇指在內(nèi)的兩只手指的指尖距離在70之內(nèi)時(shí),定義此手勢為抓取移動狀態(tài),抓取到的物體隨手的移動而移動。

2 手勢在Virtools虛擬裝配平臺下的應(yīng)用

Virtools是一套具備豐富的互動行為模塊的實(shí)時(shí)三維環(huán)境虛擬實(shí)境編輯軟件,引入插件式模塊化的開發(fā)技術(shù),所有功能以功能塊(Building Block,BB)的形式存在,每個(gè)BB實(shí)現(xiàn)一個(gè)特定的功能,多種BB組合完成各種功能。本文通過開發(fā)面向Kinect設(shè)備的插件,封裝手勢BB,在Virtools下完成手勢操控。

2.1 Kinect插件結(jié)構(gòu)設(shè)計(jì)

Virtools的架構(gòu)中,CK2是最核心的部分,定義了所有行為準(zhǔn)則,用來組織和管理其他模塊。為了在Virtools中獲取Kinect的數(shù)據(jù)和手勢信息設(shè)計(jì)了手勢插件。該插件中包括手勢封裝,Kinect管理器和Kinect BB,如圖3所示。其中,手勢封裝模塊是將手勢識別中所有方法封裝在一起;Kinect管理器用來獲取使用Kinect設(shè)備的能力;Kinect BB模塊實(shí)現(xiàn)插件的功能。

圖3 手勢插件結(jié)構(gòu)圖Fig.3 Diagram of gesture plug structure

2.2 Kinect管理器設(shè)計(jì)

管理器是Virtools中除BB外最重要的模塊,用來封裝所有的使用方法。設(shè)計(jì)Kinect管理器封裝相關(guān)的手勢偵測和跟蹤算法,并進(jìn)行管理器注冊,得到處理Kinect的能力,從而讀取Kinect設(shè)備提供的手勢信息,實(shí)現(xiàn)手勢跟蹤及偵測功能。虛擬裝配交互流程框圖如圖4所示。

圖4 虛擬裝配手勢交互流程框圖Fig.4 Flow chart the virtual assembly of gesture interaction design

在Kinect管理器中創(chuàng)建手心節(jié)點(diǎn)和指尖節(jié)點(diǎn)完成事件的驅(qū)動。當(dāng)用戶舉起手,系統(tǒng)識別出RaiseHand手勢后,開始跟蹤手點(diǎn)和手指位置。用戶伸出一只手指,將手平移至所需物體上進(jìn)行Select操作,若手心點(diǎn)在物體包圍盒內(nèi)時(shí),物體為選中狀態(tài),與手固定為一體;若沒選中,則繼續(xù)Select操作。用戶通過展示不同手勢,觸發(fā)對虛擬物體相應(yīng)的操作,并更新相應(yīng)的狀態(tài)信息。管理器只是定義抽象的操作,具體情況要在BB中完成。

2.3 Kinect BB設(shè)計(jì)

手勢與場景交互需要多個(gè)BB協(xié)同工作,Kinect BB是最核心的部分。它提供給其他相關(guān)BB實(shí)時(shí)更新的手心和指尖位置信息,手的狀態(tài)信息,自定義手勢及手勢相關(guān)參數(shù)。

如圖5所示,在輸出參數(shù)引腳中,手心位置:(ScreenX,ScreenY,ScreenZ),Depth指示其世界坐標(biāo)的Z值;三個(gè)指尖位置:(f1 X,f1 Y,f1 Z),(f2 X,f2 Y,f2 Z),(f3 X,f3 Y,f3 Z);HandCreate、HandUpdate和HandDestroy指示手的狀態(tài);Raxis和Rangle指示旋轉(zhuǎn)軸和旋轉(zhuǎn)角度;Distance指示放縮程度;其余引腳指示不同手勢。

圖5 Kinect BBFig.5 Kinect BB design

3 Kinect插件的應(yīng)用實(shí)例

3.1 手勢與場景交互的流程設(shè)計(jì)

本系統(tǒng)所設(shè)計(jì)的手勢運(yùn)用于整個(gè)場景中,因此手勢與場景的交互操作在Level層中設(shè)計(jì)完成。圖6所示即為實(shí)時(shí)交互設(shè)計(jì)的BB程序圖。

圖6 手勢與場景交互BB圖Fig.6 The BBs of Gesture and scene interaction design

其中,Hand State BB用來指示手的狀態(tài),Handpoint3D BB用來指示手心點(diǎn)的坐標(biāo),F(xiàn)inger1、Finger2、Finger3 BB指示指尖位置信息,Move、Rotate、Scale BB將實(shí)現(xiàn)具體的裝配操作,而Kinect BB將所有參數(shù)以輸出引腳形式傳入各個(gè)相關(guān)BB。當(dāng)Kinect在Virtools中被激活后,首先傳入手心與指尖位 置 坐 標(biāo) 于Handpoint3D、Finger1、Finger2和Finger3 BB,Hand State BB更改手狀態(tài),然后用Select觸發(fā)Select 3D BB進(jìn)行選取并保持激活狀態(tài),最后用不同手勢激發(fā)相應(yīng)BB,根據(jù)BB中傳入的參數(shù),物體進(jìn)行相應(yīng)的操作。

3.2 實(shí)例應(yīng)用

本系統(tǒng)以Virtools為三維空間顯示平臺,利用Virtools SDK,VSL,OpenNI及中間件Nite的程序開發(fā)包以及OpenCV的圖像處理函數(shù)庫,在Windows XP環(huán)境下采用面向?qū)ο蠹夹g(shù)以Microsoft Visual Studio 2010為開發(fā)工具,設(shè)計(jì)并完成了手勢操控相關(guān)BB的編輯,結(jié)合Virtools自帶的BB,成功實(shí)現(xiàn)了手勢在虛擬裝配中的交互控制。

圖7描述了不同手勢交替工作,共同完成虛擬裝配的過程。首先,將3DS Max中創(chuàng)建的模型、貼圖等轉(zhuǎn)化為Virtools的場景文件,導(dǎo)入到Virtools中。然后,用戶通過舉手動作觸發(fā)RaiseHand手勢。若觸發(fā)成功,找到手位置,用中間的小黃手表示。Select手勢用于選取所需零件,Move、Rotate及Scale手勢則分別完成零件的平移、旋轉(zhuǎn)和放縮操作,如圖7(a)、(b)、(c)、(d)所示。

圖7 手勢操控虛擬裝配過程實(shí)例Fig.7 Example of gesture control virtual assembly process

4 結(jié)束語

本文在Kinect只有一個(gè)手點(diǎn)的基礎(chǔ)上,利用數(shù)學(xué)形態(tài)學(xué)方法檢測出多個(gè)指尖,并用Kalman濾波器進(jìn)行穩(wěn)定跟蹤,滿足交互過程中的實(shí)時(shí)性要求。根據(jù)裝配需求,基于多指尖特征設(shè)計(jì)了多種手勢并定義了有效的交互語義,有效提高了裝配的精確性。以Virtools為虛擬裝配開發(fā)平臺,將Kinect中的手勢及位置參數(shù)信息封裝成一個(gè)插件,實(shí)現(xiàn)了Virtools與Kinect的實(shí)時(shí)通信。實(shí)驗(yàn)證明,基于Kinect的三維手勢在虛擬裝配技術(shù)中,具有良好的識別效果,能夠滿足復(fù)雜裝配環(huán)境的要求。Virtools與Kinect的結(jié)合也對虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用具有重要的推廣作用。

[1]BISWAS K K.Gesture recognition using microsoft kinect[J].Proceedings of the 5th International Conference on Automation,Robotics and Applications,2011:100-103.

[2]郭康德,張明敏.基于視覺技術(shù)的三維指尖跟蹤算法[J].計(jì)算機(jī)研究與發(fā)展,2010,47(6):1013-1019.GUO Kang-de,ZHANG Ming-min.3D fingertip tracking algorithm based on computer vision[J].Journal of Computer Research and Development,2010,47(6):1013-1019.

[3]劉江省,姚英學(xué).虛擬裝配中基于數(shù)據(jù)手套的虛擬操作研究[J].系統(tǒng)仿真學(xué)報(bào),2004,16(8):1744-1747.LIU Jiang-sheng,YAO Ying-xue.Virtual manipulation based on data glove in virtual assembly[J].Journal of System Simulation,2004,16(8):1744-1747.

[4]朱英杰,李淳芃.沉浸式虛擬裝配中物體交互特征建模方法研究[J].計(jì)算機(jī)研究與發(fā)展,2011,48(7):1298-1306.ZHU Ying-jie,LI Chun-peng.Interaction feature modeling of virtual object in immersive virtual assembly[J].Journal of Computer Research and Development,2011,48(7):1298-1306.

[5]Prime Sensor NITE 1.3 Algorithms notes[EB/LO].[2010-09-08].http://www.primesense.com/nite.

[6]湯勇,顧宏斌.交互系統(tǒng)中實(shí)時(shí)手勢分割及指尖檢測方法[J].光電工程,2010,37(7):145-149.TANG Yong,GU Hong-bin.Real-time hand segmentation and fingertip detection for interaction[J].Opto-Electronic Engineering,2010,37(7):145-149.

主站蜘蛛池模板: 欧美日韩午夜| 日韩二区三区| 免费毛片视频| 成人免费网站久久久| 免费无码又爽又刺激高| 日韩av手机在线| 女人18毛片久久| 麻豆精品在线播放| 亚洲国产欧美自拍| 色综合狠狠操| 欧美精品在线免费| 亚洲人成网站在线观看播放不卡| 国产黄色免费看| 国产综合色在线视频播放线视| 欧美成人区| 成人福利在线看| 午夜国产大片免费观看| 亚洲成人免费看| 99青青青精品视频在线| 日韩少妇激情一区二区| 精品99在线观看| 久久狠狠色噜噜狠狠狠狠97视色 | 国产亚洲精品自在久久不卡| 大香伊人久久| 亚洲色图狠狠干| 中文天堂在线视频| 无遮挡国产高潮视频免费观看| 中文字幕人成人乱码亚洲电影| 亚洲第一中文字幕| 亚洲二三区| 欧美在线免费| 国产色婷婷| 国产农村妇女精品一二区| 色婷婷电影网| 69av免费视频| 91成人在线观看| www.99在线观看| 国产色爱av资源综合区| 亚洲精品成人7777在线观看| 成人久久精品一区二区三区| 国产91视频观看| 国产精品第| 99视频在线看| 人人艹人人爽| 丁香五月婷婷激情基地| 热这里只有精品国产热门精品| 国产一区二区免费播放| 欧美不卡二区| 日韩成人在线一区二区| 欧美精品v日韩精品v国产精品| 日本91在线| 久久美女精品| 一本色道久久88亚洲综合| 欧美一级在线| 国产精品亚欧美一区二区三区| 欧美a在线看| 日本黄色不卡视频| 91毛片网| 又黄又湿又爽的视频| 亚洲 欧美 日韩综合一区| 国产成人综合在线观看| 久久这里只有精品66| 黄片一区二区三区| 伊人狠狠丁香婷婷综合色| 色综合激情网| 五月激激激综合网色播免费| 精品国产电影久久九九| 91精品国产91久久久久久三级| 国产婬乱a一级毛片多女| 搞黄网站免费观看| 亚洲无码在线午夜电影| 亚洲欧美日韩成人高清在线一区| 免费va国产在线观看| 国产精品lululu在线观看 | 亚卅精品无码久久毛片乌克兰 | 伊人久久大香线蕉影院| 久久综合九九亚洲一区| 日韩资源站| 欧美亚洲国产精品第一页| 国产91无码福利在线| 国产成人亚洲精品色欲AV| 久草视频精品|