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

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

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

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

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

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

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

0引言

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

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

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

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

1系統(tǒng)介紹

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

001.jpg

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

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

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

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

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

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

2Kinect介紹

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

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

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

002.jpg

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

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

  3.2懸浮按鈕

003.jpg

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

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

004.jpg

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

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

005.jpg

  3.4文物選擇與控制

007.jpg

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

 

006.jpg

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

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

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

008.jpg

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

5結(jié)束語

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

參考文獻(xiàn)

 ?。?] 劉鵬飛 虛擬博物館系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長春:吉林大學(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/.

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


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