国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2013-06-23 09:36:42陳艷艷陳正鳴周小芹
電子設(shè)計工程 2013年10期
關(guān)鍵詞:管理器手心插件

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

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

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

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

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

目前,OpenNI支持的手勢過于簡單,不能完全滿足裝配需求,因此本文開發(fā)了針對裝配操作所需的幾種手勢,可以有效實現(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)的形變和運動;再次,根據(jù)手勢特征進行分析,生成模型參數(shù),根據(jù)模型參數(shù)對手勢進行分類并按需要定義交互語義;最后,系統(tǒng)根據(jù)交互語義去驅(qū)動手勢裝配物體。

1.1 手勢圖像的采集與分割

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

1.2 指尖檢測與跟蹤

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

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

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

1.3 Kalman濾波

由于手在運動過程中會有一些變化,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ù)測指尖點為中心,大小為80×80的窗口。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 Kinect管理器設(shè)計

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

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

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

2.3 Kinect BB設(shè)計

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

如圖5所示,在輸出參數(shù)引腳中,手心位置:(ScreenX,ScreenY,ScreenZ),Depth指示其世界坐標(biāo)的Z值;三個指尖位置:(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)用實例

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

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

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

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

3.2 實例應(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è)計并完成了手勢操控相關(guān)BB的編輯,結(jié)合Virtools自帶的BB,成功實現(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 手勢操控虛擬裝配過程實例Fig.7 Example of gesture control virtual assembly process

4 結(jié)束語

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

猜你喜歡
管理器手心插件
橘 子
應(yīng)急狀態(tài)啟動磁盤管理器
自編插件完善App Inventor與樂高機器人通信
電子制作(2019年22期)2020-01-14 03:16:34
Windows文件緩沖處理技術(shù)概述
手心拍腳心 健康益處多
海峽姐妹(2017年11期)2018-01-30 08:57:44
晨起搓手強心肺
MapWindowGIS插件機制及應(yīng)用
基于Revit MEP的插件制作探討
高集成度2.5A備份電源管理器簡化鋰離子電池備份系統(tǒng)
快速導(dǎo)出QQ群消息
電腦迷(2014年2期)2014-04-29 19:21:13
清苑县| 怀仁县| 集贤县| 江阴市| 沙雅县| 郧西县| 藁城市| 南江县| 尤溪县| 宝兴县| 承德市| 靖安县| 宜州市| 鹤庆县| 陆良县| 营山县| 油尖旺区| 新民市| 吉林市| 横山县| 江川县| 湖北省| 云和县| 虎林市| 尼玛县| 汶上县| 漠河县| 化州市| 贡山| 增城市| 龙泉市| 蕉岭县| 阿克苏市| 枣阳市| 板桥市| 正镶白旗| 嘉鱼县| 乐业县| 江陵县| 景谷| 尖扎县|