• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Leap Motion體感控制器及其在飛機(jī)結(jié)構(gòu)展示系統(tǒng)中的應(yīng)用

      2016-05-09 07:07:40李秋雨
      計算機(jī)應(yīng)用與軟件 2016年4期
      關(guān)鍵詞:體感手勢手指

      劉 春 李秋雨

      Leap Motion體感控制器及其在飛機(jī)結(jié)構(gòu)展示系統(tǒng)中的應(yīng)用

      劉 春 李秋雨

      (沈陽航空航天大學(xué)航空制造工藝數(shù)字化國防重點(diǎn)學(xué)科實驗室 遼寧 沈陽 110136)

      由于現(xiàn)有的展示系統(tǒng)主要是依靠傳統(tǒng)的鼠標(biāo)和鍵盤實現(xiàn)控制,在人機(jī)交互和效率上存在很大的問題。針對這種情況,提出采用Leap Motion體感控制器代替?zhèn)鹘y(tǒng)鼠標(biāo)鍵盤的程序控制方法。采用Leap公司的Leap Motion作為傳感器,建立不依賴于傳統(tǒng)手持設(shè)備的手勢交互飛機(jī)結(jié)構(gòu)展示系統(tǒng)。通過手勢變換和手勢識別實現(xiàn)飛機(jī)結(jié)構(gòu)的放大、縮小、平移和旋轉(zhuǎn)等基本功能。應(yīng)用實例表明,Leap Motion體感控制器是一種非常直觀、自然、有效的人機(jī)交互設(shè)備,可以廣泛應(yīng)用于人機(jī)交互領(lǐng)域。

      Leap Motion體感控制器 手勢識別 飛機(jī)結(jié)構(gòu) 手勢變換 展示系統(tǒng)

      ShenyangAerospaceUniversity,Shenyang110136,Liaoning,China)

      0 引 言

      本文介紹了美國Leap公司的Leap Motion體感控制器及其應(yīng)用。Leap Motion體感控制器是面向PC以及Mac計算機(jī)的體感控制器制造公司Leap旗下的體感控制產(chǎn)品,于2013年2月27日發(fā)布[1]。傳統(tǒng)的鼠標(biāo)和鍵盤經(jīng)常受到連接線和硬件設(shè)備的約束,在使用中不直觀,比較麻煩。通常情況下,鼠標(biāo)和鍵盤對二維對象操作還可以,但對于三維對象的操作就比較復(fù)雜[2]。而Leap Motion體感控制器的特點(diǎn)是允許用自然手勢控制電腦程序,可以擺脫傳統(tǒng)鼠標(biāo)和鍵盤的控制方式。它利用富有表現(xiàn)力的手勢,使人從硬件設(shè)備的束縛中解脫出來,通過采集用戶手勢在空間運(yùn)動數(shù)據(jù),利用我們熟悉的手勢動作,可以自然地操作三維對象。Leap Motion體感控制器在精度、效率和可移植性方面也有重大突破。如Leap Motion體感控制器可達(dá)到Kinect等其他體感產(chǎn)品精度的200倍,甚至能捕捉到每個手指在0.01 mm之內(nèi)的運(yùn)動,而延時僅為5~10 ms,使用體驗非常流暢[3];其可以同時追蹤多個目標(biāo),并且一般只需占用CPU的2%性能,不會影響智能設(shè)備性能;其通過USB接口能夠和傳統(tǒng)的電子設(shè)備完美交融,非常易于嵌入到臺式電腦、筆記本、超級本,以及智能電視等電子產(chǎn)品中[4]。其在教育、醫(yī)學(xué)以及游戲等很多需要人機(jī)交互的領(lǐng)域開始應(yīng)用,取得非常直觀的人機(jī)交互效果。例如,谷歌地圖開始支持Leap Motion體感控制器,用戶不需要鼠標(biāo)和觸屏,運(yùn)用各種手勢來操作和控制3D地圖、實現(xiàn)導(dǎo)航功能[5]。Leap Motion體感控制器支持Windows 7、Windows 8以及Mac OS X 10.7及10.8。

      本文介紹Leap Motion體感控制器的工作原理與功能,研究Leap Motion體感控制器的應(yīng)用。通過飛機(jī)結(jié)構(gòu)三維展示系統(tǒng)實例,將展示利用Leap Motion體感控制器采集簡單手勢并控制應(yīng)用程序的方法及步驟,使用戶擺脫常規(guī)的鼠標(biāo)和鍵盤程序控制方式而更加直觀、自然地控制應(yīng)用程序。

      1 Leap Motion體感控制器原理及功能

      Leap Motion體感控制器外部由一個殼體和一個指示燈構(gòu)成。內(nèi)部是由兩片窄帶濾光片、兩個中低像素的攝像頭、3個紅外LED燈,以及USB高速芯片組成,如圖1所示[6]。

      圖1 Leap Motion體感控制器組成圖

      Leap Motion體感控制器的主要工作原理是通過兩個攝像頭模擬人眼捕捉經(jīng)過紅外LED 燈照亮的手部影像,利用雙攝像頭畫面建立手的三維模型并分析手勢的變化。當(dāng)手進(jìn)入設(shè)備的視野識別區(qū)時,內(nèi)置的兩個攝像頭就開始同時捕捉目標(biāo),實時地計算捕捉到的目標(biāo)的視差,這樣就可以獲得目標(biāo)的空間信息。這里所說的目標(biāo)特指已經(jīng)過濾后,如掌心、指尖這樣的目標(biāo)信息。通過LED燈的照明,加強(qiáng)了目標(biāo)與背景的亮度對比,可以更加方便地識別目標(biāo)。但是,在室外或者是紅外光較強(qiáng)的地方,控制器則不能正常使用。機(jī)體內(nèi)內(nèi)置的通信芯片采用標(biāo)準(zhǔn)USB 傳輸技術(shù),將采集的圖像信息數(shù)字化,轉(zhuǎn)化的數(shù)據(jù)傳輸?shù)诫娔X內(nèi),電腦經(jīng)過圖像識別和運(yùn)算還原手勢變化并將手部動作反饋至桌面應(yīng)用程序?qū)崿F(xiàn)手勢的直接控制[7]。Leap Motion體感控制器的優(yōu)點(diǎn)在于可以對目標(biāo)實現(xiàn)更精確的跟蹤。圖2為計算機(jī)手勢識別處理圖。

      圖2 計算機(jī)手勢識別處理

      與Leap Motion體感控制器連接的計算機(jī)內(nèi)部的后置處理軟件可以捕捉分析設(shè)備可視范圍內(nèi)的手勢,可以識別手及手指個數(shù)、指尖的位置、指尖的方向、手和手指的運(yùn)動趨勢[7]。手勢的識別還包括:如畫圈,揮動,屏幕點(diǎn)擊,鍵盤點(diǎn)擊,以及手掌平面及四指方向的識別等。圖3為Leap Motion體感控制器能夠識別的常用手勢。該設(shè)備具有高精度和高跟蹤幀率,可工作范圍大約在設(shè)備前方的從25到600毫米。Leap Motion體感控制器系統(tǒng)采用右手笛卡爾坐標(biāo)系,返回的數(shù)值以毫米為單位。使用Leap Motion體感控制器時首先要進(jìn)行Windows系統(tǒng)或Mac的環(huán)境變量的配置,然后將設(shè)備用數(shù)據(jù)線與電腦相連,將其擺放在電腦屏幕的正前方,指示燈朝外。當(dāng)Leap Motion體感控制器SDK應(yīng)用程序運(yùn)行時,它會在Windows的任務(wù)欄或者M(jìn)ac的搜索欄中顯示一個圖標(biāo)提示。當(dāng)設(shè)備插入并且成功運(yùn)行后,圖標(biāo)變成綠色。軟件初始化時會閃黃光,而在錯誤發(fā)生時會變成紅色[8]。

      圖3 Leap Motion對手勢的識別

      2 Leap Motion體感控制器開發(fā)包介紹

      安裝完Leap Motion體感控制器的SDK后,將生成編程所必須的文件,包括兩個頭文件:leap.h 和leapMath.h,一個動態(tài)鏈接庫leap.dll和一個leap.lib庫文件[5]。對于不同的編程語言,提供了相應(yīng)的幫助文檔和例子程序供用戶使用。在Leap Motion體感控制器應(yīng)用程序開發(fā)時,需要把上述文件關(guān)聯(lián)到項目中。下面介紹Leap Motion體感控制器SDK開發(fā)包的使用[9]。

      在Leap Motion體感控制器應(yīng)用程序中需要創(chuàng)建監(jiān)聽器和控制器對象,并采集手勢數(shù)據(jù)供應(yīng)用程序使用。下面介紹控制器的Controller類和監(jiān)聽器Listener類以及一些輔助類,包括Frame類、HandList類、Hand類和FingerList類[10]。

      Controller類是控制器類,在Leap Motion體感控制器和應(yīng)用程序之間提供了主要的接口。Controller類圖如圖4所示。

      圖4 Controller類圖

      addListener函數(shù)用于把監(jiān)聽器對象與控制器對象相關(guān)聯(lián),并把該監(jiān)聽器對象加入到監(jiān)聽器對象列表里??刂破鲗ο鬄榕c其關(guān)聯(lián)的監(jiān)聽器對象分配Leap Motion體感控制器事件。監(jiān)聽器的回調(diào)函數(shù)是按任意順序調(diào)用的。

      enableGesture函數(shù)用來開啟或禁止特定的手勢,默認(rèn)情況下所有的手勢都是被禁止的,只有當(dāng)控制器對象調(diào)用enableGesture函數(shù)將某個特定的手勢開啟時,這個手勢才能在應(yīng)用中使用。

      frame函數(shù)用于返回Leap Motion體感控制器軟件獲得的追蹤數(shù)據(jù)幀。使用可選的歷史參數(shù)指定要檢索的幀。如通過frame(0)或frame()獲取當(dāng)前幀,frame(1)獲取前一幀等。

      removeListener函數(shù)用于從監(jiān)聽器列表里移除一個接收Leap Motion體感控制器事件的監(jiān)聽器。當(dāng)監(jiān)聽器的生存周期結(jié)束時,必須調(diào)用此函數(shù)移除監(jiān)聽器。

      Listener類是監(jiān)聽器類,定義了一系列回調(diào)函數(shù),用來響應(yīng)Controller對象分配的事件。為了處理Leap Motion體感控制器事件,創(chuàng)建一個Listener類對象,并與Controller類對象相關(guān)聯(lián)。當(dāng)一個事件發(fā)生時,控制器通過傳遞自身的引用調(diào)用監(jiān)聽器相關(guān)回調(diào)函數(shù)處理Leap Motion體感控制器事件。Listener類圖如圖5所示。

      圖5 Listener類圖

      onInit函數(shù)用于控制器對象與監(jiān)聽器對象關(guān)聯(lián)完成后,初始化控制器對象。onConnect函數(shù)用于連接控制器與Leap Motion體感控制器軟件。onDisconnect函數(shù)用于使控制器與Leap Motion體感控制器軟件斷開連接。onExit函數(shù)用于使監(jiān)聽器與控制器分離。onFrame函數(shù)用于獲取最新的運(yùn)動跟蹤幀數(shù)據(jù),在onFrame函數(shù)里可以通過調(diào)用函數(shù)Controller::frame()來獲得對應(yīng)的數(shù)據(jù),其中函數(shù)的返回值就是最新的Frame對象(Controller對象的引用被作為參數(shù)傳給了回調(diào)函數(shù))。

      Frame類代表了在一幀中檢測到的一組手和手指的追蹤數(shù)據(jù)。該類中有一個返回值為HandList的hands函數(shù),該函數(shù)返回了手的對象列表,該列表包含了在當(dāng)前幀中檢測到的所有手對象。

      HandList類代表了手的對象列表。里面包含兩個重要函數(shù):Hand leftmost()const和Hand rightmost()const。這兩個函數(shù)可以獲得左右手。Hand類反映了識別的手的物理特性。在Hand類里可以調(diào)用fingers函數(shù)返回一個手指列表,該列表包含了識別到的這只手的所有手指對象。利用count()函數(shù)獲得手指個數(shù)。

      3 Leap Motion體感控制器在飛機(jī)結(jié)構(gòu)展示系統(tǒng)中的應(yīng)用

      本文利用Leap Motion體感控制器實現(xiàn)了一個飛機(jī)結(jié)構(gòu)展示系統(tǒng)程序的控制,通過手勢動作可以實現(xiàn)飛機(jī)結(jié)構(gòu)模型的平移、旋轉(zhuǎn)、放大和縮小。

      3.1 飛機(jī)結(jié)構(gòu)展示系統(tǒng)的組成及工作流程

      基于現(xiàn)有的飛機(jī)結(jié)構(gòu)整體模型,結(jié)合Leap Motion體感控制器開發(fā)了一套投影展示系統(tǒng)。系統(tǒng)硬件主要包括Leap Motion體感控制器、PC機(jī)、投影儀、投影幕。Leap Motion體感控制器作為用戶的交互界面,獲取用戶的手勢信息,計算機(jī)識別用戶的輸入,并且對數(shù)據(jù)進(jìn)行處理,最終飛機(jī)結(jié)構(gòu)的視頻信號輸出到投影儀設(shè)備。

      飛機(jī)結(jié)構(gòu)展示系統(tǒng)運(yùn)行后,首先對系統(tǒng)初始化,接著Leap Motion體感設(shè)備開始采集手勢,電腦程序處理采集到的手勢,并把結(jié)果交由顯示程序。工作流程如圖6所示。

      圖6 飛機(jī)結(jié)構(gòu)展示系統(tǒng)工作流程圖

      3.2 飛機(jī)結(jié)構(gòu)展示程序及控制方法

      本文的飛機(jī)結(jié)構(gòu)展示系統(tǒng)是在Visual Studio 2010的環(huán)境下開發(fā)的。飛機(jī)模型通過catia創(chuàng)建,然后通過3dmax存為fbx文件導(dǎo)入到OSG中。程序中創(chuàng)建了飛機(jī)類Aircraft,通過其方法界面Display(int)實現(xiàn)了飛機(jī)3D模型的渲染。Aircraft類圖如圖7所示。

      圖7 Aircraft類

      Init函數(shù)用于初始化變量,設(shè)置必要的參數(shù),如屏幕大小等,實例化圖形設(shè)備對象。LoadModel函數(shù)用于加載程序需要的所有圖形或其他內(nèi)容的地方,包括圖像、模型、聲音等。Display函數(shù)是顯示函數(shù),用于顯示3D模型,包括對模型放大、縮小、平移、旋轉(zhuǎn)等操作。Close函數(shù)用于退出程序。

      本文的飛機(jī)結(jié)構(gòu)系統(tǒng)的控制部分以單手控制模式實現(xiàn)。通過對右手手勢的識別判定實現(xiàn)展示飛機(jī)結(jié)構(gòu)的功能。具體手勢控制功能如下:

      (1) 程序開始:Leap Motion體感控制器檢測到一只握拳的手,如圖3(a)。接著,展示系統(tǒng)開始激活。

      (2) 平移:Leap Motion體感控制器檢測到一個手指時,如圖3(b)。手指上下左右平移,飛機(jī)模型隨著做相應(yīng)的平移運(yùn)動,如圖8(a)所示。

      (3) 放大:Leap Motion體感控制器檢測到兩個手指,如圖3(c)。同時手指朝著屏幕的方向移動,模型放大,如圖8(b)所示。

      (4) 縮?。篖eap Motion體感控制器檢測到兩個手指,如圖3(c)。同時手指背離屏幕方向運(yùn)動,模型縮小,如圖8(c)所示。

      (5) 旋轉(zhuǎn):Leap Motion體感控制器檢測到五個手指,如圖3(f)。手繞x、y、z三個軸轉(zhuǎn)動時,模型實現(xiàn)相應(yīng)的旋轉(zhuǎn),如圖8(d)、(e)、(f)所示。

      (6) 程序結(jié)束:Leap Motion體感控制器檢測到三個手指時,如圖3(d)所示,程序結(jié)束。

      圖8 手勢控制的飛機(jī)結(jié)構(gòu)展示系統(tǒng)

      4 結(jié) 語

      本文實現(xiàn)了Leap Motion體感控制器在飛機(jī)結(jié)構(gòu)展示系統(tǒng)中的應(yīng)用。通過Leap Motion體感控制器對手勢的識別,實現(xiàn)了飛機(jī)3D模型的平移、旋轉(zhuǎn)、放大,以及縮小等演示操作,從而擺脫了傳統(tǒng)的鼠標(biāo)和鍵盤控制方式,降低了人機(jī)交互操作的復(fù)雜程度,使人機(jī)交互更自然和高效,增強(qiáng)了沉浸感。應(yīng)用實例表明,Leap Motion體感控制器是一種非常直觀、有效的人機(jī)交互技術(shù),可以廣泛應(yīng)用于人機(jī)交互領(lǐng)域。

      [1] Frank Weichert,Daniel Bachmann,Bartholom?us Rudak,et al.Analysis of the accuracy and robustness of the Leap Motion Controller[J].Sensors,2013(13):6380-6393.

      [2] 鮑峰,盧稼奇,黎楚秦.基于Kinect的人機(jī)交互演示系統(tǒng)[J].計算機(jī)與現(xiàn)代化,2013(10):46-50.

      [3] 胡穎群.基于kinect體感識別技術(shù)的研究與實現(xiàn)[J].信息技術(shù),2013,42(7):18-20.

      [4] 廖宏建,曲哲.基于Kinect體感交互技術(shù)的虛擬裝配實驗系統(tǒng)開發(fā)[J].實驗技術(shù)與管理,2013,30(7):98-102.

      [5] Khoshelham K,Elberink S O.Accuracy and resolution of kinect depth data for indoor mapping applications[J].Sensors,2012(12):1437-1454.

      [6] 陳靜.基于kinect的手勢識別技術(shù)及其在教學(xué)中的應(yīng)用[D].上海:上海交通大學(xué),2013.

      [7] Sturman M M,Vaillancourt D E,Corcos D.Effects of aging on the regularity of physiological tremor[J].Neurophysiol,2005,93(6):3064-3074.

      [8] 羅元,謝彧,張毅.基于kinect傳感器的智能輪椅手勢控制系統(tǒng)的設(shè)計與實現(xiàn)[J].機(jī)器人,2012,34(1):110-119.

      [9] 蕭鳴.Leap Motion開發(fā)系列—win32應(yīng)用的環(huán)境配置[EB/OL].(2013-11-2).[2014-3-10].http://blog.csdn.net/guoming0000/article/details/10197267.

      [10] leap motion. Hello World[EB/OL].[2014-3-25].https://developer.leapmotion.com/documentation/cpp/devguide/Sample_Tutorial.html.

      LEAP MOTION SOMATOSENSORY CONTROLLER AND ITS APPLICATION IN AIRCRAFT STRUCTURE DISPLAY SYSTEM

      Liu Chun Li Qiuyu

      (KeyLaboratoryFundamentalScienceforNationalDefenceofAeronauticalDigitalManufacturingProcess,

      Existing display system is mainly relying on conventional mouse and keyboard to achieve control, so there are quite big problems in human-computer interaction and efficiency. In view of this situation, we put forward a program control method which uses Leap Motion somatosensory controller to replace traditional method of program control with mouse and keyboard. By using Leap Motion innovated by Leap as the sensor, we established the gesture interactive aircraft structure display system without depending on traditional handheld device. Through gestures transform and gesture recognition the method achieves the basic functions including zooming, rotation and translation of aircraft structure. Application examples show that Leap Motion somatosensory controller is a very intuitive, natural and effective human-computer interaction device, it can be widely used in the field of human computer interaction.

      Leap Motion somatosensory controller Gesture recognition Aircraft structure Gesture transform Display system

      2014-08-24。遼寧省自然科學(xué)基金項目(2010276)。劉春,教授,主研領(lǐng)域:數(shù)字化制造,虛擬現(xiàn)實仿真,面向?qū)ο缶幊?。李秋雨,碩士生。

      TP3

      A

      10.3969/j.issn.1000-386x.2016.04.053

      猜你喜歡
      體感手勢手指
      手指背側(cè)復(fù)合組織塊離斷再植
      體感交互技術(shù)在腦卒中康復(fù)中的應(yīng)用
      手指操
      人體體感感知機(jī)械手設(shè)計與實現(xiàn)
      電子制作(2019年13期)2020-01-14 03:15:20
      挑戰(zhàn)!神秘手勢
      V字手勢的由來
      非觸控式的體感機(jī)械臂交互控制系統(tǒng)研究
      電子制作(2017年13期)2017-12-15 09:00:05
      勝利的手勢
      體感語境下的交互行為設(shè)計
      筆穿手指
      确山县| 东辽县| 依兰县| 安阳县| 独山县| 沐川县| 河南省| 柳州市| 岳阳市| 邵阳县| 阿坝| 儋州市| 邵东县| 宜兴市| 桐城市| 宣化县| 精河县| 广东省| 石楼县| 都安| 密山市| 安龙县| 平和县| 万全县| 诸城市| 云林县| 义乌市| 平塘县| 屏山县| 舟曲县| 土默特右旗| 翼城县| 青海省| 东兰县| 游戏| 南京市| 望谟县| 年辖:市辖区| 棋牌| 衡阳县| 邯郸县|