• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于手勢交互的三維電子沙盤系統(tǒng)設計與實現(xiàn)

    2016-05-04 08:48:15張玉軍孟曉軍
    指揮控制與仿真 2016年2期
    關(guān)鍵詞:虛擬現(xiàn)實

    張玉軍,孟曉軍,王 剛

    (1.解放軍69079部隊,新疆烏魯木齊 830013;2.解放軍69240部隊,新疆烏魯木齊 830011)

    ?

    基于手勢交互的三維電子沙盤系統(tǒng)設計與實現(xiàn)

    張玉軍1,孟曉軍1,王剛2

    (1.解放軍69079部隊,新疆烏魯木齊830013;2.解放軍69240部隊,新疆烏魯木齊830011)

    摘要:基于手勢的人機交互方式可大大提高人對計算機系統(tǒng)的控制能力,實現(xiàn)人機自然融合。首先,簡要分析了Leap Motion設備進行手勢識別的特點,詳細闡述了利用Unity3D構(gòu)建三維電子沙盤的方法和流程,在此基礎上提出了基于手勢交互的三維電子沙盤系統(tǒng)集成技術(shù)框架;然后,設計了基于Leap Motion的手勢識別方案和控制腳本的基本流程,最后搭建系統(tǒng)實例并進行測試。測試結(jié)果表明,通過Leap Motion可實現(xiàn)人手對沙盤系統(tǒng)的預定操作,為這種新型手勢識別技術(shù)的應用提供了一定借鑒。

    關(guān)鍵詞:Leap Motion;手勢控制;Unity3D;虛擬現(xiàn)實;電子沙盤

    三維電子沙盤是利用虛擬現(xiàn)實、地理信息等技術(shù)構(gòu)建的三維地理信息系統(tǒng),具有真實、立體、快速、簡便、精確、動態(tài)等特點,在城市規(guī)劃、特種作戰(zhàn)、反恐處突、消防搶險等任務的指揮決策中,具有很高的應用價值。目前,這種系統(tǒng)多以鼠標、鍵盤或觸摸屏等方式進行交互。隨著虛擬現(xiàn)實技術(shù)的發(fā)展,用戶可通過手勢直接與計算機系統(tǒng)進行交互。這種手勢交互的方式與觸摸屏不同,它不需要直接接觸設備,應用范圍更加廣泛,無論是個人PC、投影,還是電視墻,都可以直接通過手勢控制。

    手勢是人手或者手和手臂結(jié)合所產(chǎn)生的各種姿勢和動作,對手勢進行檢測與識別是手勢交互能否實際應用的關(guān)鍵技術(shù)[1]。近年來,隨著計算機軟、硬件技術(shù)的發(fā)展,虛擬現(xiàn)實產(chǎn)業(yè)界推出了Kinect、Leap Motion 等幾款手部信息捕獲設備,這幾款產(chǎn)品成本低廉,非常適合作為普通虛擬現(xiàn)實系統(tǒng)應用中的人機交互設備。其中,Kinect主要追蹤的是中遠距(0.5m~4m)的全身運動,對于手部的動作,細節(jié)信息不夠,需要手臂配合表達[2]。Leap Motion是一個檢測手勢運動的傳感器,可識別每根手指的位置、姿態(tài)、速度等參數(shù),動作跟蹤精度達0.01mm,體積小、成本低、擴展性強,可用于專業(yè)的手勢交互系統(tǒng)。

    本文利用Leap Motion在小范圍內(nèi)精確的手勢識別能力,構(gòu)建基于手勢交互的三維電子沙盤,探索這種新技術(shù)的應用方式。

    1系統(tǒng)開發(fā)技術(shù)方案

    1.1Leap Motion手勢識別特點分析

    Leap Motion采用紅外成像原理,通過內(nèi)置的兩個攝像頭捕捉傳感器上方25mm~600mm之間,大致呈倒立金字塔范圍內(nèi)的信息,它舍棄傳統(tǒng)傳感器單獨處理每一個像素的方式,而是一次性采集所有的像素, 對這些像素進行后續(xù)處理,通過大量數(shù)據(jù)計算和檢測基礎實現(xiàn)對設備功能的穩(wěn)定控制[1]。Leap Motion采用右手笛卡爾坐標系,原點坐標在Leap Motion控制器的中心,X軸和Z軸在設備的水平面,X軸和設備的長邊平行,指向屏幕右方,Y軸垂直向上,只有正半軸[3]。如圖1所示。

    圖1 Leap Motion的右手坐標系

    在使用過程中,Leap Motion控制器會以大約115fps的幀速度發(fā)送關(guān)于手的運動信息,每一幀包含的主要信息有:手掌對象列表及信息;手指對象列表及信息;手持工具對象列表及信息;指點對象列表及信息。

    對于每只手,可以檢測到如下信息:手掌的中心位置、移動速度、姿態(tài)變化;手掌的法向量、指向方向;手掌彎曲形成的虛擬球體;左右手判定、手掌伸展度、拇指與其它四指捏取力度。如圖2、3所示。

    圖2 手掌法向量

    圖3 手掌彎曲形成的虛擬球

    對于每只手指,可以檢測到如下信息:手指的中心位置、移動速度、姿態(tài)變化;指尖的位置以及速度;手指類型判定;手指伸展判定。

    此外,Leap Motion預置了4種手勢判定類型:手指畫圈(CIRCLE)、手指下敲(KEY-TAP)、手指前敲(SCREEN-TAP)、手掌刷掃(SWIPE)。

    Leap Motion會給每一幀及這些對象分配一個唯一的標識ID,ID在持續(xù)跟蹤時段內(nèi)保持不變。根據(jù)這些ID,用戶可以查詢特定幀內(nèi)特定對象的運動信息,而后進行手勢的識別[4]。

    1.2基于Unity3D的三維電子沙盤構(gòu)建

    三維電子沙盤主要包括地形、地貌、植被、氣象、建筑、裝備等模型數(shù)據(jù),若利用程序設計語言(如OpenGL)從基本的代碼編程實現(xiàn),不僅開發(fā)難度大,而且開發(fā)效率低。應用商業(yè)三維建模軟件可有效提高開發(fā)效率,如SolidWorks、Terra Vista、Vega Prime、Skyline、Unity3D等。考慮到系統(tǒng)開發(fā)的高效、靈活性和跨平臺的需要,選中Unity3D虛擬現(xiàn)實引擎作為支撐平臺,開發(fā)的系統(tǒng)可發(fā)布于Windows、Web、Andriod、IOS等多種平臺[5]。

    基于Unity3D創(chuàng)建三維電子沙盤的主要工作和流程包括:數(shù)據(jù)收集與處理、地形建模、實體建模、場景集成與優(yōu)化等,如圖4所示。

    圖4 基于Unity3D的三維電子沙盤構(gòu)建流程

    1)數(shù)據(jù)采集

    需要采集的數(shù)據(jù)包括:地形高程數(shù)據(jù)、地形紋理數(shù)據(jù)、地理環(huán)境特征數(shù)據(jù)、實體幾何和紋理數(shù)據(jù)[6]。其中:高程數(shù)據(jù)是地形建模的基礎,目前主要的數(shù)據(jù)格式有DEM、GeoTIFF、HGT、ArcAscii等;地理環(huán)境特征數(shù)據(jù)主要指河流、湖泊、道路、深林、草地等地物的相關(guān)數(shù)據(jù);實體幾何數(shù)據(jù)主要指建筑、車輛、裝備等實體的結(jié)構(gòu)和尺寸數(shù)據(jù)。上述數(shù)據(jù)可通過衛(wèi)星影像、航空照片、實物拍攝、查閱資料等方式獲取。

    2)數(shù)據(jù)預處理

    由于數(shù)據(jù)存在誤差、格式等方面的問題,在利用采集到的數(shù)據(jù)進行建模前,需要進行預處理。包括高程數(shù)據(jù)校對與格式轉(zhuǎn)化,紋理數(shù)據(jù)色彩與尺寸處理、地理環(huán)境數(shù)據(jù)的采樣比對等。例如,可利用Global Mapper等地理信息軟件修正誤差較大的高程數(shù)據(jù),并將其轉(zhuǎn)化為raw文件,利用Photoshop軟件處理紋理數(shù)據(jù)。

    3)地形建模

    Unity3D使用Terrain對象進行地形建模,通過Import Raw Heightmap工具將地形高程數(shù)據(jù)導入后,利用Raise/Lower Terrain、Paint Height、Smooth Height等工具對地形進行局部調(diào)整,使用Paint Texture為地圖添加紋理。通過Place Trees、Paint Detail為地形添加樹林、草地,道路的制作可使用EasyRoad3D和RoadPathTool等插件工具,河流、湖泊可采用紋理表現(xiàn),也可以使用專業(yè)的預設資源和插件,如RiverTool等。

    4)實體建模

    利用3DMAX的多邊形建模方法,按照實體尺寸數(shù)據(jù)進行實體建模,為實體添加UV修改器,添加紋理。模型完成后,利用3DMAX自帶的FBX插件導出模型。導出時為了符合Unity3D引擎的應用標準,需要設置以下三個參數(shù):在高級選項中將單位設置為米,軸轉(zhuǎn)化為Y軸向上,勾選“嵌入的媒體”。生成文件包括Materials文件夾,.fbm文件夾和.FBX文件。

    5)場景模型集成與優(yōu)化

    將模型導入到Unity3D工程資源Assets文件夾下,根據(jù)需要在場景中添加實體對象,設置光照、霧、天空盒等參數(shù),最后,運行場景進行瀏覽、調(diào)試。

    1.3系統(tǒng)集成技術(shù)框架

    Leap Motion為開發(fā)者提供了可進行二次開發(fā)的SDK,支持C++、Object-C、C#、Java、Python等多種編程語言進行應用程序開發(fā),同時,為Unity3D、Unreal等虛擬現(xiàn)實引擎提供了開發(fā)資源包[7]。將Leap Motion集成到應用程序中的本質(zhì)是調(diào)用其提供的動態(tài)鏈接庫Leap.dll,C++、Object-C可將動態(tài)庫直接引用到工程中,其它語言需通過特定的庫包引用,例如C#語言需要通過引用LeapCSharp.NET.dll調(diào)用Leap.dll。

    在Unity3D中集成Leap Motion有兩種方法:1)導入CoreAssets.unitypackage資源包;2)將含有Leap.dll和LeapCSharp.NET.dll的插件包Plugins復制到Unity3D工程的資源下。系統(tǒng)集成技術(shù)框架如圖5所示。

    圖5 系統(tǒng)集成技術(shù)框架

    各模塊功能如下:

    1) Leap.dll服務通過USB從Leap Motion控制器獲取數(shù)據(jù),將信息進行處理并發(fā)送到應用程序,默認只發(fā)送跟蹤數(shù)據(jù)。

    2) Leap Motion設置面板運行時獨立于Leap.dll服務,允許用戶對Leap.dll相關(guān)服務進行設置。

    3) 手勢判定應用根據(jù)收到的幀數(shù)據(jù),對用戶手勢進行判定,并生成相應的場景控制信息,驅(qū)動Unity3D場景進行更新顯示。由于Leap Motion與Unity3D坐標系不同,需要對Leap數(shù)據(jù)進行轉(zhuǎn)換,成為Unity3D標準數(shù)據(jù)。

    4) 系統(tǒng)通過Application.LoadLevel方法切換不同的三維電子沙盤場景在Unity3D中顯示。

    2基于Leap motion的手勢識別

    2.1手勢識別方案設計

    對三維電子沙盤進行瀏覽操作,主要包括移動、旋轉(zhuǎn)、拉近/推遠場景等動作,為了體現(xiàn)出手勢操作的優(yōu)勢,本文利用單手設計上述動作的操作手勢,既方便、靈活,又減少雙手可能帶來的干擾、遮蔽影響。手勢設計應遵循以下原則:

    1) 手勢簡單,易學易記;

    2) 表達直觀,容易建立起手勢與預進行操作的聯(lián)系;

    3) 可靠有效,操作的錯誤率在可接受的范圍內(nèi);

    4) 不同手勢之間過渡平滑,有明顯的開關(guān)動作。

    為了提高系統(tǒng)的可用性,減少操作的錯誤率,設計了不同操作動作對應的提示圖標,使用戶了解目前的手勢狀態(tài)。主要的手勢設計如圖6所示,含義如下:

    旋轉(zhuǎn):單手自然伸展,置于Leap Motion上方,根據(jù)需要旋轉(zhuǎn)的方向,向左、右、上、下進行刷掃,實現(xiàn)場景的順、逆時針旋轉(zhuǎn),視點的俯仰角度的變化?;赟WIPE手勢判定。

    移動:單手自然平伸,置于Leap Motion上方,拇指彎曲后,出現(xiàn)移動標識,場景根據(jù)手部的運動進行平移(前后左右上下),平移的方向與手部運動速度方向一致,拇指展開后,功能取消?;谑种傅腡YPE-THUMB和IsExtended屬性判定。

    推拉:當手成握拳姿態(tài)后,出現(xiàn)推拉標識,場景可根據(jù)拳頭的運動對視角進行拉近或推遠,當手松開后,功能取消。基于手掌的GrabStrength屬性判定。

    重置:在任何時刻,只要是食指進行畫圈動作,場景則回到初始位置?;贑IRCLE手勢判定。

    圖6 手勢設計與標識

    2.2手勢識別基本流程

    因為Unity3D自帶實時更新方法,不需要回調(diào)Leap::Listener的OnFrame方法,只需在Update方法中實時處理Leap Motion數(shù)據(jù),進行手勢判定。采用C#腳本控制Unity3D場景的基本流程為:

    1)在Start方法中,創(chuàng)建Controller類的實例,通過方法EnableGesture將畫圈(TYPE-CIRCLE)和刷掃(TYPE-SWIPE)兩種手勢識別設為可用,并設置相關(guān)參數(shù)。

    2)在Update方法中,實時獲取Leap Motion的幀數(shù)據(jù)Frame,而后通過Frame.Fingers、Frame.Pointables、Frame.Hands,獲取手掌、手指和指點的各種參數(shù),判斷手勢,通過Unity3D的Transform類控制場景變化。其中,通過Hand.GrabStrength、Finger.Type、Finger.IsExtended進行手勢切換判斷。

    3)在Quitting方法中,釋放Controller類的實例。如圖7所示。

    圖7 手勢識別的基本流程

    3系統(tǒng)實現(xiàn)與測試

    在上述分析的基礎上,搭建系統(tǒng)實例并進行測試。三維仿真引擎采用Unity3D 5.2版本,Leap Motion SDK為LeapSDK 2.3.1,C#語言腳本編譯環(huán)境為VS2010,三維電子沙盤為某小型山地。將Leap Motion指示燈面向用戶,通過單手實現(xiàn)對沙盤的瀏覽操作,如圖8所示。

    圖8 實驗測試

    通過測試發(fā)現(xiàn):

    1)基于Leap motion單手手勢可實現(xiàn)沙盤的旋轉(zhuǎn)、平移、推拉等操作;

    2)由于人體動作的隨機性,會導致某些手勢丟失,不能百分之百實現(xiàn)預定目標,手掌法向方向在30°以內(nèi)時跟蹤狀態(tài)較好;

    3)Leap motion檢測范圍有限,容易在不經(jīng)意間超出范圍,特別是Z軸方向;

    4)手勢操作時需要手懸空于Leap motion上方,容易造成手臂酸痛。

    4結(jié)束語

    本文將Leap Motion集成于Unity3D引擎,搭建了基于手勢控制的三維電子沙盤,實現(xiàn)了以人類自然的方式進行人機交互的初步應用。下一步,將開發(fā)更加簡潔的交互手勢,提高控制的精度。Leap Motion作為首個商業(yè)化的手勢識別產(chǎn)品,應用方便,必將在虛擬現(xiàn)實、遠程控制、計算機等領(lǐng)域得到應用。本文希望拋磚引玉,為Leap Motion的深度應用和后續(xù)發(fā)展提供有益參考和方向。

    參考文獻:

    [1]黃俊,景紅.基于 Leap Motion的手勢控制技術(shù)初探[J].計算機系統(tǒng)應用,2015,24(10):259-263.

    [2]潘佳佳,徐昆.基于Leap Motion的三維自由手勢操作[J].中國科技論文,2015,10(2):207-212.

    [3]胡宏,晁建剛,林萬洪,等.Leap Motion虛擬手構(gòu)建方法及其在航天訓練中的應用[J].載人航天, 2015,21(3):257-262.

    [4]Mischa Spiegelmock. Leap Motion Development Essentials [M]. Birmingham, UK: Packt Publishing, 2013,10:47-61.

    [5]曾林森.基于Unity3D的跨平臺虛擬駕駛視景仿真研究[D].長沙:中南大學,2013:22-32.

    [6]鐘文武,周新力,金慧琴,等.基于Vega Prime的飛行視景仿真研究與應用[J].指揮控制與仿真,2015,37(6):90-94.

    [7]Leap Motion. Leap Motion SDK and Plugin Documentation[EB/OL].(2015-10-15). https:∥developer.leapmotion.com/documentation.

    Design and Implementation of 3D Electronic Sand Table SystemBased on Gesture Interaction

    ZHANG Yu-jun1, MENG Xiao-jun1, WANG Gang2

    (1.the Unit 69079 of PLA, Urumqi 830013; 2.the Unit 69240 of PLA, Urumqi 830011, China)

    Abstract:The human-computer interaction based on gestures will improve people’s ability to control the computer system, and achieve human-computer fusion. The characteristics of using Leap Motion to recognize gesture is analyzed. The method and process of using Unity3D to construct 3D electronic sand table is discussed. System integration technology of 3D electronic sand table based on gestures interaction is put forward. Gesture recognition scheme based on leap motion and main process of script is designed. At last, an example system is build and tested. Test results show that using Leap Motion can realize hand operation to electronic sand table, and provide some reference for the application of gesture recognizing technology.

    Key words:Leap Motion; gesture control; Unity3D; virtual reality; electronic sand table

    中圖分類號:TP311.52

    文獻標志碼:A

    DOI:10.3969/j.issn.1673-3819.2016.02.023

    作者簡介:張玉軍(1982-),男,吉林白山人,博士,工程師,研究方向為虛擬現(xiàn)實與模擬訓練。孟曉軍(1975-),男,高級工程師。

    收稿日期:2016-01-29

    文章編號:1673-3819(2016)02-0110-05

    修回日期: 2016-02-01

    王剛(1980-),男,工程師。

    猜你喜歡
    虛擬現(xiàn)實
    虛擬現(xiàn)實技術(shù)在中學校園中的應用
    甘肅教育(2020年4期)2020-09-11 07:41:22
    國外虛擬現(xiàn)實(VR)教育研究與啟示
    論虛擬現(xiàn)實藝術(shù)的“沉浸”
    REALITY BITES
    REALITY BITES
    漢語世界(2017年3期)2017-06-05 15:01:42
    虛擬現(xiàn)實產(chǎn)業(yè)進入高速發(fā)展期
    自動化博覽(2017年2期)2017-06-05 11:40:39
    風口上的虛擬現(xiàn)實
    商周刊(2017年24期)2017-02-02 01:42:55
    虛擬現(xiàn)實技術(shù)向科幻小說借靈感
    海外星云(2016年7期)2016-12-01 04:18:00
    虛擬現(xiàn)實:另一個真實世界
    HTC斥資千萬美元入股虛擬現(xiàn)實設備商WEVR
    IT時代周刊(2015年8期)2015-11-11 05:50:37
    永清县| 林周县| 阿克陶县| 长泰县| 永嘉县| 宿松县| 博湖县| 兰州市| 元朗区| 扎赉特旗| 呼图壁县| 馆陶县| 伊川县| 林甸县| 班戈县| 葵青区| 东乡族自治县| 涡阳县| 青冈县| 涞源县| 共和县| 镇雄县| 济南市| 揭东县| 金乡县| 清原| 晴隆县| 凌云县| 南澳县| 永济市| 汽车| 定远县| 宁夏| 宜君县| 收藏| 靖西县| 常州市| 墨玉县| 河南省| 阿尔山市| 长兴县|