<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      AR手勢識別交互,讓應(yīng)用更加“得心應(yīng)手”

      現(xiàn)如今, AR技術(shù)不斷發(fā)展,人們不再滿足于運(yùn)用鍵盤、鼠標(biāo)等簡單器械來實(shí)現(xiàn)傳統(tǒng)的人機(jī)交互模式。隨著用戶接觸機(jī)器的多樣化,繁瑣的操作不但對一些用戶有門檻,而且還增加其學(xué)習(xí)成本;如果能用自然且符合日常生活習(xí)慣的人機(jī)交互模式,不僅更好上手,也能讓開發(fā)者們在應(yīng)用內(nèi)開發(fā)更多玩法。比如在視頻直播或者拍照過程中,一個手勢就能增加相應(yīng)的貼紙或特效,豐富交互體驗(yàn);面對智能家電等硬件設(shè)備時,通過不同的手勢可以控制對應(yīng)的功能。

      那么,應(yīng)用如何才能實(shí)現(xiàn)更自然的人機(jī)和交互呢?

      華為HMS Core AR Engine提供多種特定手勢的識別,輸出識別到的手勢類別結(jié)果并給出手掌檢測框屏幕坐標(biāo),左手和右手均可支持。當(dāng)圖像中出現(xiàn)多只手時,只反饋單手(最清晰且置信度最高)識別結(jié)果和坐標(biāo)信息。支持前后置相機(jī)切換。

      通過手勢識別能力,可將虛擬物體疊加到人的手部位置,并根據(jù)不同的手勢變化來激活某些狀態(tài)的切換,給開發(fā)者的AR應(yīng)用提供基礎(chǔ)的交互功能。

      不僅如此,AR Engine的手部跟蹤功能能識別和跟蹤21個手部關(guān)節(jié)點(diǎn)的位置和姿態(tài),形成手部骨骼模型,并可分辨左右手,同時提供單手關(guān)節(jié)點(diǎn)和骨骼識別能力,輸出手指端點(diǎn)、手部骨骼等手部高級特征。

      通過手部骨骼識別能力,開發(fā)者們可將虛擬物體疊加到更為精確的手部位置,例如手指尖、手掌心等;利用手部骨骼,能驅(qū)動虛擬手做出更為豐富和精細(xì)的動作,給開發(fā)者們的AR應(yīng)用提供增強(qiáng)的交互功能和難以置信的新奇玩法。

      集成步驟

      開發(fā)環(huán)境要求:

      JDK 1.8.211及以上。

      安裝Android Studio 3.0及以上:

      minSdkVersion 26及以上

      targetSdkVersion 29(推薦)

      compileSdkVersion 29(推薦)

      Gradle 6.1.1及以上(推薦)

      在華為終端設(shè)備上的應(yīng)用市場下載AR Engine服務(wù)端APK(需在華為應(yīng)用市場,搜索“華為AR Engine”)并安裝到終端設(shè)備。

      測試應(yīng)用的設(shè)備:參見AREngine特性軟硬件依賴表。如果同時使用多個HMS Core的服務(wù),則需要使用各個Kit對應(yīng)的最大值。

      開發(fā)準(zhǔn)備

      1. 在開發(fā)應(yīng)用前需要在華為開發(fā)者聯(lián)盟網(wǎng)站上注冊成為開發(fā)者并完成實(shí)名認(rèn)證,具體方法請參見帳號注冊認(rèn)證。

      2. 華為提供了Maven倉集成方式的AR Engine SDK包,在開始開發(fā)前,需要將AR Engine SDK集成到您的開發(fā)環(huán)境中。

      3. Android Studio的代碼庫配置在Gradle插件7.0以下版本、7.0版本和7.1及以上版本有所不同。請根據(jù)您當(dāng)前的Gradle插件版本,選擇對應(yīng)的配置過程。

      4. 以7.0為例:

      打開Android Studio項目級“build.gradle”文件,添加Maven代碼庫。

      在“buildscript > repositories”中配置HMS Core SDK的Maven倉地址。

      buildscript {
          	repositories {
              	google()
              	jcenter()
              	maven {url "https://developer.huawei.com/repo/" }
          	}
      }
      

      打開項目級“settings.gradle”文件,配置HMS Core SDK的Maven倉地址。

      dependencyResolutionManagement {
          repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
          		repositories {
             			 repositories {
                 			 	google()
                  			jcenter()
                  			maven {url "https://developer.huawei.com/repo/" }
             			 }
         			 }
      }
      
      1. 添加依賴 在“dependencies”中添加如下編譯依賴:
      dependencies {
          implementation 'com.huawei.hms:arenginesdk:{version}
      }
      

      應(yīng)用開發(fā)

      1.運(yùn)行前驗(yàn)證:檢查當(dāng)前設(shè)備是否安裝了AR Engine,若已經(jīng)安裝則正常運(yùn)行,若沒有安裝,App應(yīng)采用合適的方式提醒用戶安裝AR Engine,如主動跳轉(zhuǎn)應(yīng)用市場,請求安裝AR Engine。具體實(shí)現(xiàn)代碼如下:

      boolean isInstallArEngineApk =AREnginesApk.isAREngineApkReady(this);
      if (!isInstallArEngineApk) {
          		// ConnectAppMarketActivity.class為跳轉(zhuǎn)應(yīng)用市場的Activity。
      startActivity(new Intent(this, com.huawei.arengine.demos.common.ConnectAppMarketActivity.class));
         		isRemindInstall = true;
      }
      

      2.初始化AR場景:AREngine提供5種場景,包括運(yùn)動跟蹤(ARWorldTrackingConfig)、人臉跟蹤(ARFaceTrackingConfig)、手部識別(ARHandTrackingConfig)、人體跟蹤(ARBodyTrackingConfig)和圖像識別(ARImageTrackingConfig)。

      調(diào)用ARHandTrackingConfig接口,初始化手部識別。

      mArSession = new ARSession(context);
      ARHandTrackingConfig config = new ARHandTrackingconfig(mArSession);
      
      1. 獲取到ARhandTrackingconfig后,可以設(shè)置使用相機(jī)的前置或者后置等等一些可選的方法:
      Config.setCameraLensFacing(ARConfigBase.CameraLensFacing.FRONT);
      
      1. 你需要把你獲取到的手部識別獲取到的config配置到ArSession中,然后啟動手部識別場景:
      mArSession.configure(config);
      mArSession.resume();
      
      1. 初始化HandSkeletonLineDisplay類,此類是根據(jù)手骨架點(diǎn)的坐標(biāo)來繪制手骨架線:
      Class HandSkeletonLineDisplay implements HandRelatedDisplay{
      //此類需要幾個方法
      //初始化方法
      public void init(){
      }
      //繪制手骨架點(diǎn)的方法,這里需要傳入ARHand對象,用來獲取數(shù)據(jù)
      public void onDrawFrame(Collection<ARHand> hands,){
      
          //調(diào)用getHandskeletonArray()方法用來獲取手部關(guān)節(jié)點(diǎn)坐標(biāo)數(shù)據(jù)
              Float[] handSkeletons  =  hand.getHandskeletonArray();
      
              //把handSkeletons傳入到實(shí)時更新數(shù)據(jù)方法中
              updateHandSkeletonsData(handSkeletons);
      
      }
      //更新骨架點(diǎn)的連接數(shù)據(jù),在更新任何幀的時候調(diào)用此方法
      public void updateHandSkeletonLinesData(){
      
      //用來創(chuàng)建并初始化緩沖區(qū)對象的數(shù)據(jù)存儲
      GLES20.glBufferData(…,mVboSize,…);
      
      //用來更新緩沖區(qū)對象中的數(shù)據(jù)
      GLES20.glBufferSubData(…,mPointsNum,…);
      
      }
      }
      
      1. 初始化HandRenderManager類,此類是來渲染從HUAWEI AREngine獲取的數(shù)據(jù)。
      Public class HandRenderManager implements GLSurfaceView.Renderer{
      	
      	//設(shè)置ARSession對象,用于獲取onDrawFrame方法中的最新數(shù)據(jù)。
      	Public void setArSession(){
      	}
      }
      
      1. 在HandRenderManager類中,初始化onDrawFrame()方法:
      Public void onDrawFrame(){
      //在這個方法中調(diào)用了setCameraTextureName(),update()等方法用來更新ArEngine的計算結(jié)果
      //應(yīng)用在獲取到最新數(shù)據(jù)時來調(diào)用此接口。
      mSession.setCameraTextureName();
      ARFrame arFrame = mSession.update();
      ARCamera arCamera = arFrame.getCamera();
      //獲取人體手部跟蹤時返回的跟蹤結(jié)果 
      Collection<ARHand> hands =  mSession.getAllTrackables(ARHand.class);
           //把獲取到的hands對象循環(huán)傳入更新手勢識別信息方法中,進(jìn)行處理
           For(ARHand hand  :  hands){
               updateMessageData(hand);
      }
      }
      

      8.最后在展示效果的HandActivity頁面,給SurfaceView 設(shè)置渲染器。

      mSurfaceView.setRenderer(mHandRenderManager);
      設(shè)置渲染模式
      mSurfaceView.setRenderMode(GLEurfaceView.RENDERMODE_CONTINUOUSLY);
      

      具體實(shí)現(xiàn)可參考示例代碼

      了解更多詳情>>

      訪問華為開發(fā)者聯(lián)盟官網(wǎng)
      獲取開發(fā)指導(dǎo)文檔
      華為移動服務(wù)開源倉庫地址:GitHubGitee

      關(guān)注我們,第一時間了解 HMS Core 最新技術(shù)資訊~

      posted @ 2022-11-24 10:19  HarmonyOS_SDK  閱讀(605)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品揄拍一区二区久久| 亚洲av综合av一区| 亚洲成人资源在线观看| 18禁极品一区二区三区| 亚洲一区二区三区在线观看精品中文| 女人与牲口性恔配视频免费| 欧洲精品码一区二区三区| 久热久视频免费在线观看| 99在线精品视频观看免费| 美女一区二区三区在线观看视频 | 日本一区二区三区视频一| 欧美成人www免费全部网站| 黑人猛精品一区二区三区| 国产午夜福利在线视频| 青川县| 日韩丝袜亚洲国产欧美一区| 大伊香蕉精品一区二区| 色色97| 日韩一区二区三区精彩视频| 中文字幕av国产精品| 亚洲一区二区三区在线播放无码| 激情亚洲内射一区二区三区| 少妇被粗大的猛烈进出动视频 | 国产无码高清视频不卡| 亚洲日韩久热中文字幕| 国产白嫩护士被弄高潮| 亚洲欧美成人综合久久久| 日韩一区在线中文字幕| 井研县| 亚洲国产日韩a在线亚洲| 色窝窝免费一区二区三区| 4hu44四虎www在线影院麻豆| 国产69精品久久久久乱码免费| 中文无码vr最新无码av专区| 国产一级r片内射免费视频| 18国产午夜福利一二区| 神马视频| 久久99九九精品久久久久蜜桃 | 吴忠市| 国产成人一区二区三区在线| 搡bbbb搡bbb搡|