《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 顯示光電 > 設(shè)計(jì)應(yīng)用 > 基于Kinect虛擬文物互動(dòng)展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于Kinect虛擬文物互動(dòng)展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2017年微型機(jī)與應(yīng)用第2期
王向強(qiáng),黃俊,張作運(yùn)
重慶郵電大學(xué) 信號(hào)與信息處理重慶市重點(diǎn)實(shí)驗(yàn)室,,重慶 400065
摘要: 利用Kinect的局部骨骼追蹤技術(shù),,捕獲人體數(shù)據(jù)、彩色數(shù)據(jù)和深度數(shù)據(jù),,對(duì)采集到的數(shù)據(jù)進(jìn)行分析,,描繪出手的輪廓并且根據(jù)深度信息識(shí)別出手勢(shì)的意思,做邏輯處理后,,通過Kinect設(shè)備將信息發(fā)送給PC,,形成操作命令映射到虛擬文物上,虛擬文物會(huì)進(jìn)行相應(yīng)的動(dòng)作,,比如移動(dòng),、放大、旋轉(zhuǎn)等,。測(cè)試結(jié)果表明,,系統(tǒng)工作穩(wěn)定可靠,體驗(yàn)者能夠通過體感交互技術(shù)較好地對(duì)虛擬文物進(jìn)行控制,。虛擬文物互動(dòng)展示系統(tǒng)突破了傳統(tǒng)文物的展示方式,,使觀眾積極參與到展覽之中。
Abstract:
Key words :

  王向強(qiáng),,黃俊,,張作運(yùn)

  (重慶郵電大學(xué) 信號(hào)與信息處理重慶市重點(diǎn)實(shí)驗(yàn)室,,重慶 400065)

        摘要:利用Kinect的局部骨骼追蹤技術(shù),,捕獲人體數(shù)據(jù)、彩色數(shù)據(jù)和深度數(shù)據(jù),,對(duì)采集到的數(shù)據(jù)進(jìn)行分析,,描繪出手的輪廓并且根據(jù)深度信息識(shí)別出手勢(shì)的意思,做邏輯處理后,,通過Kinect設(shè)備將信息發(fā)送給PC,,形成操作命令映射到虛擬文物上,虛擬文物會(huì)進(jìn)行相應(yīng)的動(dòng)作,,比如移動(dòng),、放大、旋轉(zhuǎn)等,。測(cè)試結(jié)果表明,,系統(tǒng)工作穩(wěn)定可靠,體驗(yàn)者能夠通過體感交互技術(shù)較好地對(duì)虛擬文物進(jìn)行控制,。虛擬文物互動(dòng)展示系統(tǒng)突破了傳統(tǒng)文物的展示方式,,使觀眾積極參與到展覽之中,。

  關(guān)鍵詞:Kinect;骨骼跟蹤,;手勢(shì)識(shí)別

  中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.014

  引用格式:王向強(qiáng),,黃俊,張作運(yùn).基于Kinect虛擬文物互動(dòng)展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,,2017,36(2):41-43,,47.

0引言

  2008年,比爾蓋茨提出“自然用戶界面”的概念,,并預(yù)言人機(jī)交互在未來幾年內(nèi)會(huì)有很大的改變,,鍵盤和鼠標(biāo)將會(huì)逐步被更為自然的觸摸式、視覺性以及語音控制界面所代替,。Kinect是一個(gè)動(dòng)作捕捉設(shè)備,,Kinect和用戶的結(jié)合就形成了一套完整的控制系統(tǒng)。

  目前我國(guó)很多博物館所建立的虛擬博物館大多數(shù)是使用VRML語言進(jìn)行建模,,借助于WRL文件瀏覽器插件基于IE進(jìn)行瀏覽,,這樣用戶可以方便快捷地瀏覽。但是VRML是基于瀏覽器的一種腳本語言,,對(duì)于相應(yīng)事件的處理能力有限,,與用戶的交互能力較差,并且也無法與數(shù)據(jù)庫(kù)連接,,在構(gòu)建虛擬展館過程中需要手動(dòng)添加文物模型[1],。

  針對(duì)以上問題,本文所設(shè)計(jì)的虛擬文物互動(dòng)展示系統(tǒng)使用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)文物的詳細(xì)信息,;使用FTP服務(wù)器來存儲(chǔ)3D模型文件,,并由系統(tǒng)自行獲取,;使用Kinect手勢(shì)識(shí)別技術(shù),,讓用戶與文物模型隔空交互,從而有效地解決了交互能力差的問題,。本文還提出了KMeans算法來有效地解決手型圖標(biāo)的抖動(dòng)問題,。

  可以想象到,在一個(gè)博物館里,,觀眾只需要用手勢(shì)去觸碰虛擬的按鈕,,就可以選擇你感興趣的文物,只需要變換手勢(shì),,就可以對(duì)文物進(jìn)行移動(dòng),、放大、旋轉(zhuǎn),。虛擬文物與參觀者互動(dòng)的方式,,讓展覽更具感染力。

1系統(tǒng)介紹

  基于Kinect虛擬文物互動(dòng)展示系統(tǒng)的結(jié)構(gòu)主要由顯示模塊,、文物控制模塊,、UI交互模塊、文物存儲(chǔ)模塊以及動(dòng)作捕捉與識(shí)別模塊構(gòu)成,,各模塊之間協(xié)同合作,,構(gòu)成了具有完備功能的虛擬文物展示系統(tǒng),如圖1所示,。

001.jpg

  圖1系統(tǒng)結(jié)構(gòu)圖(1)顯示模塊:負(fù)責(zé)獲取場(chǎng)景中的用戶影像,,并將虛擬文物模型與用戶影像進(jìn)行融合并顯示。

 ?。?)文物控制模塊:負(fù)責(zé)對(duì)虛擬文物模型的位置,、大小和角度進(jìn)行調(diào)整,并且接收動(dòng)作捕捉與識(shí)別模塊發(fā)過來的控制信息,,做出相應(yīng)的變動(dòng),。

  (3)UI交互模塊:負(fù)責(zé)獲取界面控件的位置,,并且比對(duì)用戶手的位置,,進(jìn)行對(duì)應(yīng)的響應(yīng)。

 ?。?)手勢(shì)捕捉與識(shí)別模塊:負(fù)責(zé)捕捉到用戶手的關(guān)鍵點(diǎn),,并且獲取手的深度信息,然后對(duì)信息進(jìn)行處理,,識(shí)別出用戶手勢(shì)的意思,,并發(fā)送指令給文物控制模塊。

 ?。?)文物存儲(chǔ)模塊:該系統(tǒng)包括MySQL數(shù)據(jù)庫(kù)以及FTP服務(wù)器,。虛擬文物的編號(hào)、朝代以及其他詳細(xì)信息數(shù)據(jù)會(huì)存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)中,。因?yàn)樘摂M文物模型所占空間比較大,,所以把模型放在FTP服務(wù)器中,由該軟件直接調(diào)用,。

  基于Kinect的虛擬文物互動(dòng)展示系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì),,提高了系統(tǒng)的靈活性,降低了模塊之間的耦合性,,不同模塊之間通過接口進(jìn)行通信,,使得各個(gè)模塊能夠獨(dú)立高效地完成各自功能。

2Kinect介紹

  Kinect體感設(shè)備主要是由彩色攝像頭,、深度攝像頭和紅外線投影機(jī)組成,。Kinect設(shè)備與普通攝像頭的區(qū)別在于紅外線發(fā)射和紅外線接收功能,,通過這個(gè)功能,Kinect可以獲取場(chǎng)景的深度信息,。Kinect的基本原理是:紅外投影機(jī)主動(dòng)投射紅外光譜,,照射到粗糙物體,或是穿透毛玻璃后,,光譜發(fā)生扭曲,,會(huì)形成隨機(jī)的反射斑點(diǎn),也就是散斑,,進(jìn)而被紅外攝像頭讀取,。這些散斑就有高度隨機(jī)性,并且隨著距離的變化,,散斑也隨著改變,,在同一空間中不同的散斑圖案都不相同[2]。因此,,只要使用散斑對(duì)空間編碼,,當(dāng)有物體進(jìn)入空間時(shí),即可定位,。

3系統(tǒng)軟件設(shè)計(jì)

  虛擬文物互動(dòng)展示平臺(tái)軟件采用WPF進(jìn)行開發(fā),。WPF是微軟推出的Windows Vista的用戶界面框架。它提供了統(tǒng)一的編程模型,、語言和框架,,真正做到了分離界面設(shè)計(jì)人員與開發(fā)人員的工作,同時(shí)它提供了全新的多媒體交互用戶圖形界面,。WPF最重要的特色是支持3D模型,,以及支持模型的點(diǎn)擊事件。整個(gè)虛擬文物展示系統(tǒng)軟件設(shè)計(jì)運(yùn)用Kinect體感設(shè)備和WPF框架等技術(shù)手段,,包括手勢(shì)識(shí)別,、UI交互、文物展示以及文物存儲(chǔ)的智能交互展示系統(tǒng),,對(duì)虛擬文物展示實(shí)現(xiàn)了主動(dòng)選擇,、交互體驗(yàn)良好、操作方便的目標(biāo),。虛擬文物互動(dòng)展示的主要功能模塊如圖2所示,。

002.jpg

  3.1GUI設(shè)計(jì)

  在主界面上包括四個(gè)不同功能的懸浮按鈕,這四個(gè)懸浮按鈕是根據(jù)人體的合理肢體操作距離而設(shè)計(jì)的,。這四個(gè)懸浮按鈕的功能分別為虛擬文物展示,、虛擬文物詳情、博物館視頻簡(jiǎn)介以及退出。在本項(xiàng)目設(shè)計(jì)中,,最重要的是虛擬文物展示功能,。當(dāng)用戶選擇虛擬文物展示懸浮按鈕時(shí),該軟件會(huì)彈出另一個(gè)窗口,,用戶可以根據(jù)自己的興趣愛好,,選擇不同朝代的文物來進(jìn)行控制,比如根據(jù)不同的手勢(shì)來移動(dòng),、放大以及縮小和旋轉(zhuǎn)文物。

  3.2懸浮按鈕

003.jpg

  懸浮按鈕控制流程如圖3所示,。懸浮按鈕其實(shí)是一個(gè)普通的控件,,有三種狀態(tài)分別為經(jīng)過、按下和離開,,可以有效地解決不小心點(diǎn)擊的問題[3],。通過Kinect SDK首先識(shí)別出用戶舉起的是左手還是右手,再獲取左手或者右手的三維坐標(biāo)數(shù)據(jù),,然后激活界面的一張手型圖標(biāo),,通過坐標(biāo)映射的方法,把手的三維坐標(biāo)轉(zhuǎn)換成二維坐標(biāo),,轉(zhuǎn)換過的二維坐標(biāo)映射到手型圖標(biāo)上,,這樣界面上的手型圖標(biāo)會(huì)隨著用戶的手在界面上移動(dòng)。當(dāng)用戶的手型圖標(biāo)沒有接觸到該懸浮按鈕的時(shí)候,,它沒有任何變化,。當(dāng)手型圖標(biāo)移動(dòng)到按鈕區(qū)域時(shí),手型圖標(biāo)周圍會(huì)出現(xiàn)進(jìn)度條控件,,當(dāng)時(shí)間超過2 s后,,會(huì)觸發(fā)懸浮按鈕OnClick事件,當(dāng)手型圖標(biāo)不在按鈕區(qū)域時(shí),,懸浮按鈕恢復(fù)初始狀態(tài),。

  3.3解決手型圖標(biāo)抖動(dòng)問題

004.jpg

  圖4二維坐標(biāo)點(diǎn)群Kinect每秒鐘會(huì)采集30幀的深度/RGB數(shù)據(jù),每幀所獲取的骨骼的三維坐標(biāo)都是不相同的,,轉(zhuǎn)變成二維坐標(biāo)也是不相同的,,所以把二維坐標(biāo)映射到手型圖標(biāo)上,手型圖標(biāo)會(huì)出現(xiàn)抖動(dòng)的情況,。在軟件編程中,,取出30幀的二維坐標(biāo)數(shù)據(jù)如圖4所示。

  本文的設(shè)計(jì)考慮到抖動(dòng)這一問題,,提出采用KMeans算法[4]的解決方案,,其基本方法為:首先在軟件中提取出最近的6個(gè)幀的骨骼三維數(shù)據(jù),然后轉(zhuǎn)換成二維坐標(biāo)數(shù)據(jù)。再使用KMeans算法,,隨機(jī)在圖中取K個(gè)種子點(diǎn),,然后對(duì)所有點(diǎn)求出到其K個(gè)種子點(diǎn)的距離,假如點(diǎn)pi離種子點(diǎn)最近,,那么pi屬于si點(diǎn)群,。接下來,把種子點(diǎn)移動(dòng)到屬于它的點(diǎn)群中心,。然后重復(fù)上述步驟,,直到種子點(diǎn)沒有移動(dòng)。最后使用各個(gè)點(diǎn)的X/Y坐標(biāo)的平均值,,計(jì)算出點(diǎn)群中心的坐標(biāo),。把6幀二維坐標(biāo)的點(diǎn)群中心坐標(biāo)映射到手型圖標(biāo)上可以有效地解決抖動(dòng)的問題。具體算法流程如圖5所示,。

005.jpg

  3.4文物選擇與控制

007.jpg

  該系統(tǒng)首先根據(jù)客戶的需求,,對(duì)用戶的手勢(shì)行為做了規(guī)范協(xié)議[5],如表1,、表2所示,。如果用戶的手勢(shì)不是協(xié)議中所規(guī)定的,系統(tǒng)將不會(huì)做出任何響應(yīng),。

 

006.jpg

  用戶操作虛擬文物的流程如圖6所示,。用戶可以用自己的左右手來選擇查看哪個(gè)朝代的文物,只需要把手放在圖標(biāo)按鈕2 s即可,。當(dāng)用戶選擇了清朝的文物,,界面右邊會(huì)出現(xiàn)文物的二維圖片,用戶可以繼續(xù)選擇具體的文物,。當(dāng)用戶選擇了一個(gè)自己比較感興趣的文物時(shí),,界面會(huì)出現(xiàn)一個(gè)3D文物模型,用戶可以根據(jù)手勢(shì)協(xié)議來操作模型,,例如對(duì)模型旋轉(zhuǎn),、放大等。當(dāng)用戶想查看其他的文物時(shí),,只需要把當(dāng)前文物撤銷即可,。用戶想要和當(dāng)前文物模型合影時(shí),只需要把手放在照相按鈕上,,系統(tǒng)會(huì)把圖片保存到文件夾上,。

4實(shí)驗(yàn)結(jié)果

  為了驗(yàn)證系統(tǒng)的可靠性以及響應(yīng)時(shí)間,進(jìn)行了如下的現(xiàn)場(chǎng)測(cè)試,。測(cè)試環(huán)境為Win10+WPF+Kinect for Windows SDK 1.8,。測(cè)試者站在Kinect正前方,,做出不同的手勢(shì),以驗(yàn)證不同手勢(shì)識(shí)別的準(zhǔn)確性,。

008.jpg

  實(shí)驗(yàn)結(jié)果表明,,使用Kinect能夠正確判斷出用戶手勢(shì)的意思,通過相應(yīng)的算法以及手型圖標(biāo)抖動(dòng)問題的解決,,進(jìn)而實(shí)現(xiàn)了對(duì)虛擬文物的位置,、角度、姿態(tài)的控制,,充分驗(yàn)證了基于Kinect的虛擬文物互動(dòng)展示系統(tǒng)的可行性,。

5結(jié)束語

  基于Kinect的虛擬文物互動(dòng)展示系統(tǒng)是一個(gè)新穎而又充滿意義的課題。本文使用Kinect與WPF完成了一套用戶體驗(yàn)良好,、功能完備的用戶與虛擬文物互動(dòng)系統(tǒng),。該系統(tǒng)主要通過Kinect 來獲取人體骨骼坐標(biāo)數(shù)據(jù),通過對(duì)數(shù)據(jù)的分析與綜合識(shí)別出用戶的肢體語言,,然后映射到3D文物上,實(shí)現(xiàn)用戶與3D文物之間的互動(dòng),。本文還提出了使用KMeans算法來解決手型圖標(biāo)在屏幕上的抖動(dòng)問題,,使用戶具有更好的體驗(yàn)。下一步研究方向是采用手機(jī)App和Unity3D的開發(fā)方式,,如通過掃描文物圖片,,在手機(jī)屏幕上出現(xiàn)3D文物模型,用戶通過觸屏的方式與3D文物進(jìn)行互動(dòng),。這樣可以有效地解決用戶多的問題,,讓每位用戶都可以積極參與到博物館展覽之中。

參考文獻(xiàn)

 ?。?] 劉鵬飛 虛擬博物館系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),,2011.

  [2] 馬源駔.基于Kinect的內(nèi)容展示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].鄭州: 鄭州大學(xué),,2014.

 ?。?] 韓娜,陳東偉,,鐘單成,,等. 基于Kinect的虛擬試衣系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2015(7):59-61.

 ?。?] 陳皓.K均值算法[DB/OL].(2013-11-28)[2016 08 25]http://blog.jobbole.com/23157/.

 ?。?] 胡焰.基于Kinect 的虛擬試衣系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2013.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。