樊景超 周國民
摘要嘗試引入微軟公司的一款體感周邊外設Kinect設備,首先根據設備提供的人體運動檢測提取復雜背景下的人體信息,結合自定義的背景圖像信息制作虛擬演播室;利用手勢功能完成對虛擬演播室背景圖像的切換控制,以達到虛擬教學的目的。通過驗證基于Kinect的前景提取和手勢識別控制背景信息能力,證明該設計可以用于農業虛擬教學研究,有一定的借鑒意義。
關鍵詞農業;虛擬;Kinect
中圖分類號S-01文獻標識碼A文章編號0517-6611(2014)12-03706-03
基金項目基于模型的果園與油菜作物生產數字化管理平臺(2013AA102505)。
作者簡介樊景超(1980-),男,遼寧沈陽人,博士,助理研究員,從事農業信息技術研究。*通訊作者,博士,研究員,博士生導師,從事農業信息技術研究。
多媒體技術、網絡技術在教育領域的普及和發展已經得到了廣泛的認可和好評。基于計算機仿真技術的“虛擬現實”教學形式是一種新的教學模式,具有廣闊的發展前景,代表了教育的未來和發展方向[1]。微軟公司推出的Kinect體感技術具備了多種硬件條件和技術功能,如動態范圍捕捉、影像識別、麥克風輸入、語音指令、體感控制等,還具備了多種實現虛擬現實技術的硬件指標,在實際教學中具有很高的應用價值[2]。呂開陽[3]在動物外科手術的實驗實踐教學中引入Kinect這一新穎的輸入方式,為教學實際活動提供了新思路。在不適合徒手操作電腦的情況下,教師可以用Kinect作為個人電腦的輸入工具,以手勢、身體姿勢及語言作為輸入元素,控制電腦查閱相關知識,得到及時反饋。黃康全[4]在視頻會議系統中使用Kinect對PPT播放控制、與會人員舉手發言的自動識別,利用深度傳感器進行實時3D捕捉與顯示。
該研究的目的旨在給農業培訓中運用Kinect進行虛擬教學的可行性進行一定的初步探討,希望給同行提供參考。
1 Kinect簡介及工作原理
1.1Kinect簡介 Kinect是微軟在2010年6月14日對XBOX360體感周邊外設正式發布的名字,其設備如圖1所示。Kinect一共有3個攝像頭,中間一個是RGB攝像頭,用來獲取640×480的彩色圖像,每秒鐘最多獲取30幀圖像;兩邊的是深度傳感器,左側的是紅外線發射器,右側的是紅外線接收器,用來檢測玩家的相對位置。Kinect的兩側是一組四元麥克風陣列,用于聲源定位和語音識別;下方還有一個內置馬達的底座,可以調整俯仰角[5]。
圖1Kinect設備1.2Kinect工作原理(前景摳圖) Kinect采集三維圖像的光學部分主要包括兩個部件:紅外線發射器和紅外線/VGA攝像頭組。其工作原理[6]是,紅外線發射器發出紅外線覆蓋整個Kinect的可視范圍,攝像頭組接收反射回光線來識別玩家的距離和特征。紅外攝像頭可以識別到的是物體的“深度場”(Depth Field),其中每一像素的顏色代表了那一點物體到攝像頭的距離。比如離攝像頭近的身體呈亮紅色、綠色等,而離攝像頭遠的物體則呈暗灰色。
這是一種不同于傳統的TOF或者結構光測量技術的光編碼(light coding)技術,使用的是連續的照明(而非脈沖),也不需要特制的感光芯片,只需要普通的CMOS感光芯片,這也大大降低了Kinect的成本[7]。光編碼[8]是用光源照明給需要測量的空間編上碼的一種結構光技術。但與傳統的結構光方法不同,它投射出去的光源并不是一副周期性變化的二維的圖像編碼,而是一個具有三維縱深的“體編碼”,這種光源叫做激光散斑(laser speckle)。當激光照射到粗糙物體或穿透毛玻璃后會形成隨機衍射斑點,這些散斑具有高度的隨機性,而且會隨著距離的不同變換圖案,所以空間中任意兩處的散斑圖案都是不同的。通過這種激光散斑可以對整個空間進行標識,然后根據物體上的散斑圖案就可以推測計算出物體的深度位。在進行物體散斑識別前要對整個空間的散斑圖案進行記錄和標定。
深度數據的有效范圍[9]是0.80~3.84 m,如果在該范圍以外,數值為0。標定的方法是:每隔一段距離,取一個參考平面,把參考平面上的散斑圖案記錄下來。假設用戶活動空間是距離攝像頭1~4 m的范圍,每隔10 cm取一個參考平面,共保存30幅散斑圖像。進行測量的時候,拍攝一幅待測場景的散斑圖像,將這幅圖像和保存下來的30幅參考圖像依次做互相關運算,這樣會得到30幅相關度圖像。空間中有物體存在的位置,在相關度圖像上就會顯示出峰值。把這些峰值一層層疊在一起,再經過一些插值,就可以得到整個場景的三維結構信息。
2系統方案設計
2.1軟件方案設計農業課件虛擬教學系統的軟件部分如圖 所示,主要包括用戶管理,Kinect外設管理模塊、手勢管理模塊、虛擬演播廳管理、課件制作模塊(圖2)。用戶管理主要進行用戶的注冊、登錄管理,用戶信息的完善,虛擬課件直接導入用戶信息作為課件屬性信息。Kinect外設管理模塊主要負責對Kinect設備進行初始化、設備關閉和設備狀態檢測管理,該模塊將模塊的狀態返還給主程序作為系統運行的基本模塊。手勢管理模塊主要是考慮不同用戶的習慣,允許用戶定義自己的手勢用于控制播放。系統默認的前進手勢是右手手臂平行于胸前,手掌與身體平行指尖向左;系統默認的后退手勢是左手手臂平行于胸前,手掌與身體平行指尖向右。本系統的演播室是一個由圖片序列組成的背景墻,用戶在課件制作的過程中用自己的身體手勢控制背景圖片的切換。課件制作模塊主要用于將錄播時獲取的實時圖像按照時間序列制作成可以播放的視頻文件,并將用戶錄入的課件信息、用戶身份信息整合到課件中完成課件制作。
2.2軟件工作流程 系統的軟件流程如圖3所示,用戶進行登錄后,首先進行外設的初始化,然后檢測Kinect設備是否工作正常,如果外設狀態錯誤則系統提示后退出。用戶進入系統后首先要定義課件最常用的前進、后退手勢或接受默認的手勢。接下來要進行演播廳管理,用戶按照播放序列導入課件需要的背景圖片。系統根據用戶手勢來切換背景圖片,達到課件播放的效果。在完成錄播后系統退出。
3系統功能驗證
3.1虛擬演播室Kinect傳感器核心只是發射紅外線,并探測紅外光反射,從而可以計算出視場范圍內每一個像素的深度值。從深度數據中最先提取出來的是物體主體和形狀,以及每一個像素點的人體索引信息,然后用這些形狀信息來匹配人體的各個部分,最后計算匹配出來的各個關節在人體中的位置。Kinect產生的景深數據作用有限,要利用Kinect創建真正意義上交互、有趣和難忘的應用,還需要除了深度數據之外的其他數據,這就是骨骼追蹤技術的初衷:通過人體骨骼的關節點來控制人體運動[10]。
骨骼追蹤技術通過處理景深數據來建立人體各個關節的坐標。骨骼追蹤能夠確定人體的各個部分,如哪部分是手、頭部、身體。骨骼追蹤產生X、Y、Z數據來確定這些骨骼點,其主要步驟如下[11]:①前景分割。利用數字圖像處理技術可以完成這部分工作。Kinect會依據距離關系由近及遠分析每個像素,以找到最有可能是人體的區域,通過邊緣檢測技術確定區域邊緣,最終提取出人體在深度圖像中的完整輪廓。②人體部位識別。該部分的任務就是識別人體輪廓區域內的各個身體部位,如頭部、軀干、四肢等。Kinect使用數以TB計的數據進行訓練,得到用于分類人體部位的識別模型,目前Kinect可以識別32個人體部位。③人體關節點識別。關節點是連接人體各個部位的紐帶,考慮到人體部位會出現重疊,Kinect會從正面、側面等多個角度去分析每一個可能的像素來確定關節點坐標。目前Kinect可以識別24個關節點,但是對外提供15個可供使用的關節點坐標值。
圖5和圖6是筆者在實驗室內利用Kinect設備實現的虛擬演播室的實驗截圖。筆者嘗試在辦公室背景下實現類似無幕布的摳圖效果,并替換農業教學所需圖片背景,達到虛擬演播廳的目的。從測試的結果看,系統對人體的幾何信息提取比較完整,精確度可以滿足農業虛擬教學的需求。
圖4含背景信息的圖像信息圖5提取前景人體后的虛擬演播廳3.2手勢識別手勢識別是整個虛擬課件制作重要的組成部分。通過定義好的手勢,對演播廳的背景墻進行切換,達到虛擬演播的目的。人手勢識別[12]是通過計算機設備對人的手勢進行精確解釋。早期的手勢識別主要使用數據手套等傳感器設備采集手部關節數據的方法進行手勢提取,一起構成復雜、成本高昂而且需要專用的信息采集系統,雖然經典,但已經不適合當下對自然交互方式的要求。微軟Kinect傳感器的目標是將注意力集中在自然手上,通過感應紅外激光散斑獲取深度信息,不受環境的光照變化和復雜背景的影響。
要使用手勢識別功能,Kinect SDK版本應該至少是1.5,最新版本為1.8。Kinect SDK 和 Kinect Developer Toolkit要一起安裝,安裝Kinect Developer Toolkit會安裝Kinect Studio、一些C#/VB.Net/C++的應用程序示例、源碼以及兩個用于面部追蹤的類庫FaceTrackData.dll,FaceTrackLib.dll包括32位和64位版本[13]。
圖6和圖7是筆者在實驗室內利用Kinect SDK對自身手勢在運動狀態下進行前進和后退手勢的測試截圖。從測試結果看,系統可以有效跟蹤到肢體關節的空間位置,可以滿足手勢識別的需求。
圖6前進手勢識別圖7后退手勢識別4結論
研究設計了一種基于Kinect的農業課件虛擬制作系統,并對部分系統功能進行了驗證。該系統以Kinect空間深度數據進行人體前景提取為工作核心,結合手勢識別功能實現用戶對虛擬演播廳背景圖片的操作控制,它是一種新穎的虛擬課件制作系統,使得用戶能夠結合自己的農業知識實現農業課件虛擬制作,同時該系統不受場地限制,不需要昂貴的攝像設備。該系統的硬件成本低廉,適用于農業類用戶的接受范圍。該系統的最大特點就是使用戶能夠操作簡單、易懂、靈活;且安裝方便、智能性高。隨著現代農業用戶對知識獲取意識的增強以及科學技術的快速發展,相信該研究必將在更廣闊的領域得到更深層次的應用。
安徽農業科學2014年參考文獻
[1] 宋宏泉.虛擬現實技術在現代醫學教育中的應用[J].齊齊哈爾醫學院學報,2006,27(8):984-985.
[2] 陳晨,王亞平,劉小鴻,等.基于Kinect體感系統的虛擬現實技術在醫學教育中的可行性初探[J].中國醫學教育技術,2012,26(6):667-670.
[3] 呂開陽.kinect體感技術在動物外科實驗教學中的應用及展望[J].中國醫學教育技術,2012,26(2):171-173.
[4] 黃康泉,陳壁金,鄭博,等.kinect在視頻會議系統中的應用[J].廣西大學學報:自然科學版,2011,36(S1):308-314.
[5] 吳國斌.Kinect人機交互開發實踐[M].北京:人民郵電出版社,2013:4-5.
[6] 余濤.kinect應用開發實踐[M].北京:機械工業出版社,2012:41-45.
[7] 韓旭.應用kinect的人體行為識別方法研究與系統設計[D].濟南:山東大學,2013:21-22.
[8] 鄧小園.基于Kinect運動捕捉的高爾夫揮桿分析與輔助訓練系統的研制[D].北京:北京郵電大學,2013:7-9.
[9] 楊林.基于Kinect的人體目標檢測與跟蹤[D].大連:大連海事大學,2013:8-15.
[10] 馬慶.基于Kinect的實時人體動畫合成及重定向技術研究[D].杭州:浙江工業大學,2012:11-15.