董春俠++司占軍++高祥
摘要:該文對(duì)Intel Realsense的感知和交互技術(shù)進(jìn)行了研究和實(shí)現(xiàn)。通過3Ds Max制作所需的3D模型,利用Unity3D創(chuàng)建感知展示系統(tǒng)的基本場(chǎng)景,并在Unity3D中將3D模型和場(chǎng)景進(jìn)行融合,借助Unity3D提供的GUI界面元素進(jìn)行系統(tǒng)的交互性UI制作,最后通過Intel Realsense SDK完成Unity下感知設(shè)備的數(shù)據(jù)接入,實(shí)現(xiàn)Intel Realsense 3D Camera 感知手勢(shì)動(dòng)作或面部表情,進(jìn)而和場(chǎng)景發(fā)生交互行為。
關(guān)鍵詞:感知計(jì)算;Intel Realsense技術(shù);人機(jī)交互;展示系統(tǒng)
中圖分類號(hào):TP399 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)07-0207-02
The Design and Development of Perception Demonstration Syrtem Based on Intel Realsystem Technology
DONG Chun-xia, SI Zhan-jun, GAO Xiang
(College of Packaging Printing Engineering,Tianjin University of Science Technology, Tianjin 300222, China)
Abstract: In this paper, the Intel Realsense perception and interaction technology were studied and implemented.Required 3D model were made by 3Ds Max,the basic scene of this perceptual display system were created by Unity3D.And in Unity3D,the 3D model and basic scene were mix together.With the Unity3D provides GUI interface elements,we made the systems interactive UI.At last we imported the Realsense Unity SDK in Unity project to realize Intel Realsense 3D Camera could Perceiving our gestures or facial expressions,in order to interact with the scene.
Key words: Perceptual Computing; Intel Realsense technology ;human-computer interaction; display system
隨著便攜式智能設(shè)備的爆發(fā)式增長(zhǎng),人們已經(jīng)不再滿足于繁瑣的人機(jī)交互輸入方式。人機(jī)交互的方式由傳統(tǒng)的圖形用戶界面、鍵盤鼠標(biāo)等輸入輸出設(shè)備的交互形式,逐漸發(fā)展到屏幕觸摸、語音識(shí)別控制、姿勢(shì)追蹤、生物及動(dòng)作的識(shí)別等更加直觀、人性化的交互形式。Intel Realsense技術(shù)的出現(xiàn),大大縮短了人與電腦間的距離,讓用戶對(duì)人機(jī)互動(dòng)的渴望得到滿足[1-2]。
本設(shè)計(jì)基于Intel Realsense技術(shù)開發(fā)出一款太空感知展示系統(tǒng),該感知展示系統(tǒng)主要展示了太陽系及其所處的宇宙空間場(chǎng)景,通過該系統(tǒng)可以直觀的展示宇宙天體的運(yùn)行,實(shí)現(xiàn)鏡頭的拉近拉遠(yuǎn)、視角切換等功能。利用Intel Realsense技術(shù)實(shí)現(xiàn)太空?qǐng)鲇螝v場(chǎng)景,該場(chǎng)景的視角聚焦在飛行器上,視角隨著飛行器的移動(dòng)而變化,其效果如同人親自在太空中漫游一樣。
1 Intel Realsense技術(shù)介紹
感知功能需要借助感知計(jì)算技術(shù)來實(shí)現(xiàn),感知計(jì)算就是計(jì)算機(jī)通過不同的傳感器,感知用戶的動(dòng)作行為或者生物性的特征,通過將這些數(shù)據(jù)數(shù)字化并進(jìn)行計(jì)算,得出計(jì)算的結(jié)果并做出相應(yīng)的響應(yīng)。Intel Realsense技術(shù)就是感知計(jì)算的集大成者,它包含了Intel Realsense 3D攝像頭、Intel Realscence SDK以及基于此構(gòu)建的弓箭生態(tài)系統(tǒng)和應(yīng)用[2]。Intel公司通過開發(fā)加入紅外傳感組件以及實(shí)感圖像處理芯片等搭載其它傳感器的智能設(shè)備實(shí)現(xiàn)精確識(shí)別人的手勢(shì)動(dòng)作、面部特征、前景和背景等功能,讓智能設(shè)備理解人的動(dòng)作和情感進(jìn)而實(shí)現(xiàn)人機(jī)的完美交互[3]。
Unity中感知控制模塊是基于Intel Realscence SDK實(shí)現(xiàn)的,是一系列行為和觸發(fā)器、規(guī)則的設(shè)定,其中所有的行為是作用于MonoBehavior類下的游戲執(zhí)行對(duì)象。Realsense Unity Toolkit菜單命令下主要有以下內(nèi)容:1)Actions,包括Tracking Action、Translation Action、Rotation Action等,每個(gè)操作定義一個(gè)游戲物體上的某種行為,并且每個(gè)操作都有一整套的觸發(fā)器,當(dāng)其觸發(fā)器之一被觸發(fā),將執(zhí)行該操作。2)Triggers and Rules它定義了一系列可以實(shí)現(xiàn)在幾個(gè)方面的交互作用。每個(gè)交互組件作為一條規(guī)則來實(shí)現(xiàn),因此每個(gè)觸發(fā)器具有其自己的規(guī)則集,只有觸發(fā)了某個(gè)規(guī)則,行為才會(huì)發(fā)生。比如檢測(cè)到了你的雙手或者面部行為就可以啟動(dòng)了,失去了雙手和面部這個(gè)事件就停止了,雙手的移動(dòng)或者手掌的張開和閉合會(huì)實(shí)現(xiàn)行為的控制。
2感知展示系統(tǒng)的設(shè)計(jì)思路與整體框架
構(gòu)建本展示系統(tǒng)首先利用3DsMax構(gòu)建基本天體即八大行星的3D模型和太空游歷所需要的飛行器;再利用Unity3D創(chuàng)建展示系統(tǒng)的基本場(chǎng)景即天體運(yùn)行時(shí)所處的場(chǎng)景、飛行器游歷所在的場(chǎng)景。然后把天體和飛行器的3D模型導(dǎo)入到相應(yīng)的場(chǎng)景中,實(shí)現(xiàn)天體的自轉(zhuǎn)和公轉(zhuǎn)以及飛行器能夠在場(chǎng)景中飛行。接下來利用Unity3D自帶的GUI進(jìn)行展示系統(tǒng)UI的設(shè)計(jì)與制作,實(shí)現(xiàn)各個(gè)場(chǎng)景的自由切換和音視頻的播放。最后接入Intel Realsense SDK進(jìn)行后續(xù)的開發(fā),實(shí)現(xiàn)感知交互。感知展示系統(tǒng)的結(jié)構(gòu)框架如圖1所示。
3基礎(chǔ)開發(fā)環(huán)境概述
3.1硬件及系統(tǒng)需求
硬件需求:配備第四代(或以上)智能英特爾酷睿處理器的計(jì)算機(jī),USB 3.0 接口,Intel Realsense 3D Camera (F200)。
系統(tǒng)需求:Windows 8.1 with Update x64 Pro、 Microsoft.NET 4.0 或更高的統(tǒng)一游戲開發(fā)處理框架。
3.2軟件要求
本設(shè)計(jì)主要用到了三維動(dòng)畫渲染和制作軟件3DsMax、用于創(chuàng)建多平臺(tái)游戲和互動(dòng)體驗(yàn)的開發(fā)平臺(tái)Unity3D以及Intel RealSense SDK。其中Intel RealSense SDK 是一個(gè)通過標(biāo)準(zhǔn)化的公開接口實(shí)現(xiàn)庫(kù)的模式檢測(cè)與識(shí)別算法。庫(kù)的目的是降低使用這些算法和應(yīng)用程序的開發(fā)人員的開發(fā)難度,編碼算法細(xì)節(jié)到可以掃除開發(fā)者常見的障礙[4]。SDK core,I/O module和Capability modules是組成整個(gè)SDK堆棧的基礎(chǔ)。兩者同時(shí)組織并管理管線的執(zhí)行。I/O module捕獲設(shè)備的輸入數(shù)據(jù),而后發(fā)送數(shù)據(jù)到輸出設(shè)備或Capability modules。Capability modules主要包括各種模式檢測(cè)和識(shí)別算法(面部跟蹤和檢測(cè)、手部跟蹤、手勢(shì)識(shí)別、語音識(shí)別及合成等)。
4感知展示系統(tǒng)的制作
4.1構(gòu)建系統(tǒng)所需內(nèi)容的3D模型
4.1.1行星主體建模
啟動(dòng)3DMax新建一個(gè)工程,選擇真實(shí)視圖放大,在放大后的視圖中對(duì)所需內(nèi)容進(jìn)行建模的操作。在命令板的基本標(biāo)準(zhǔn)體中選擇球體輸入相對(duì)參數(shù),選擇事先處理好的圖片賦予球體的材質(zhì),調(diào)節(jié)好貼圖的自發(fā)光,光澤度等光學(xué)屬性。帶有光環(huán)(暈)的星體需要再制作它的光環(huán)(暈),其貼圖需要用到UVW貼圖命令,光環(huán)(暈)制作完成之后把它和球體放在一起調(diào)節(jié)它們的相對(duì)位置即可。全部制作完畢之后分別導(dǎo)出,并將它們放在同一個(gè)文件夾下。
4.1.2飛行器的建模
啟動(dòng)3DsMax2013新建一個(gè)工程,選擇真實(shí)視圖放大,在命令板的基本標(biāo)準(zhǔn)體中選擇所需的基本幾何體,把他們堆砌成一個(gè)大概的機(jī)身模樣,運(yùn)用命令板的修改器列表,選擇需要的命令,比如擠壓、拉伸、平滑、曲面變形、UVW展開等,使機(jī)身曲線更加平滑優(yōu)美,棱角分明,富有美感。最后對(duì)飛行器模型進(jìn)行分區(qū)域貼圖。
4.2創(chuàng)建基本場(chǎng)景
4.2.1創(chuàng)建太陽系場(chǎng)景
啟動(dòng)Unity3D,新建Scene,利用多邊形和紋理定義了場(chǎng)景的外表;然后添加腳本定義星星的數(shù)量和大小,來自動(dòng)計(jì)算生成大小不同、亮度不同的星空粒子。另外還要給場(chǎng)景加上燈光來定義了場(chǎng)景的顏色和基調(diào)。場(chǎng)景制作完畢后,還要通過腳本控制Main Camera來實(shí)現(xiàn)的鼠標(biāo)滾輪放大縮小場(chǎng)景、長(zhǎng)按鼠標(biāo)左鍵移動(dòng)鼠標(biāo)實(shí)現(xiàn)場(chǎng)景視角的改變,這里要將腳本拖到Main Camera上才可以運(yùn)行。
4.2.2創(chuàng)建太空游歷場(chǎng)景
太空游歷場(chǎng)景的制作中需要使用Space for Unity插件。在Unity3D中導(dǎo)入插件后,新建Scene。在Main Camera面板中,把 Clear Flags 的屬性Skybox 換成 Depth Only,修改Culling Mask參數(shù),把Far Clipping Plane 的數(shù)量控制在1000 到50000范圍內(nèi),數(shù)量的多少由后期的效果決定。在場(chǎng)景中實(shí)現(xiàn)鼠標(biāo)滾輪放大縮小、長(zhǎng)按鼠標(biāo)左鍵實(shí)現(xiàn)場(chǎng)景視角改變的效果與上述太陽系相同。
4.3實(shí)現(xiàn)內(nèi)容和場(chǎng)景的融合
4.3.1太陽系場(chǎng)景與行星融合
感知展示系統(tǒng)的主體場(chǎng)景實(shí)現(xiàn)之后,還要把事先制作好的3D模型導(dǎo)入到場(chǎng)景中。在Unity3D中打開新建的場(chǎng)景,在項(xiàng)目視圖的Project中選擇Import New Asset,找到模型文件存在的路徑,導(dǎo)入到Project中。然后把模型文件直接拖到相應(yīng)的場(chǎng)景中即可。接下來要通過編碼實(shí)現(xiàn)星體圍繞太陽的公轉(zhuǎn)和星體自身的自轉(zhuǎn)。在形體公轉(zhuǎn)中給星體添加Trail Renderer屬性,用來顯示物體的移動(dòng)軌跡。
4.3.2太空游歷場(chǎng)景與飛行器融合
太空游歷場(chǎng)景與內(nèi)容的融合,主要用到了第一人稱視角,Camera始終跟隨主角,無論主角發(fā)生怎樣的變化,我們看到的視角始終在主角上,只是相應(yīng)的場(chǎng)景發(fā)生了改變而已。
4.4交互性UI的制作
系統(tǒng)的界面包含四個(gè)部分:系統(tǒng)介紹、視頻、太陽系場(chǎng)景和太空游歷場(chǎng)景。在Unity3D中創(chuàng)建Canvas,Canvas就是本系統(tǒng)的UI的主界面,UI的主要設(shè)計(jì)和功能都是要在其上實(shí)現(xiàn)的。每個(gè)部分都是通過Button實(shí)現(xiàn)場(chǎng)景的切換的。UI的最終效果如圖2所示。
4.5接入Intel Realsense SDK實(shí)現(xiàn)交互
感知展示系統(tǒng)的制作已經(jīng)完成,通過鍵盤鼠標(biāo)可以實(shí)現(xiàn)完美的控制,接下來就是接入Intel Realsense 3D Camera,其過程如下:
1)把Intel Realsense SDK安裝到電腦上,把Intel Realsense 3D Camera接入到USB3.0的接口上;
2)檢查Intel Realsense SDK和Intel Realsense 3D Camera是否可以協(xié)同工作。
3)導(dǎo)入Realsense Unity SDK,找到ProgramFiles(x86)\Intel\RSSDK\framework\Unity路徑下的Unity.PCStandalone.unitypackage和RSUnityToolkit.unitypackage并分別導(dǎo)入。
4)點(diǎn)擊Unity3D菜單欄上的Realsense Unity Toolkit菜單命令,選擇Add Action下的Translate行為把它賦給需要的物體,編輯它的Start Event、Translation Trigger、Stop Event屬性。
5)點(diǎn)擊Unity3D菜單欄上的Realsense Unity Toolkit菜單命令,選擇Add To Scene下的Scene AR Object命令,這樣播放場(chǎng)景就會(huì)發(fā)現(xiàn)攝像頭拍攝的內(nèi)容就在場(chǎng)景中呈現(xiàn)了。
感知展示系統(tǒng)接入Intel Realsense SDK實(shí)現(xiàn)交互后需要打包發(fā)布,輸出的EXE文件即為本設(shè)計(jì)的感知系統(tǒng)。
5結(jié)束語
Intel Realsense技術(shù)是感知計(jì)算的集成者,新技術(shù)的推廣和轉(zhuǎn)化成生產(chǎn)力的過程是十分漫長(zhǎng)而復(fù)雜的,這一過程中需要付出很大的財(cái)力物力,不僅僅需要IT廠商的自我推廣,還需要的是引起開發(fā)者的興趣。本設(shè)計(jì)是利用Intel Realsense 3D攝像頭對(duì)太陽系星空進(jìn)行感知操作,希望給讀者帶來啟發(fā)。
參考文獻(xiàn):
[1] 英特爾發(fā)布內(nèi)置3D攝像頭,引領(lǐng)感知計(jì)算發(fā)展[J]. 個(gè)人電腦,2013(12):97.
[2] 王韌. 讓計(jì)算機(jī)也能感知世界英特爾RealSense 3D交互技術(shù)點(diǎn)評(píng)[J]. 電腦迷,2014(8):32-33.
[3] 本刊編輯.CES2014英特爾感知虛擬實(shí)鏡[J].計(jì)算機(jī)與網(wǎng)絡(luò),2014(1):29.
[4] 韓旭. 應(yīng)用Kinect的人體行為識(shí)別方法研究與系統(tǒng)設(shè)計(jì)[D].濟(jì)南: 山東大學(xué),2013.