999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARCore的移動增強現實應用系統設計

2022-08-02 01:44:34宋燕燕
計算機技術與發展 2022年7期
關鍵詞:現實特征系統

宋燕燕

(南京傳媒學院,江蘇 南京 211172)

0 引 言

增強現實(augmented reality,AR)是一種結合虛擬化技術觀察世界的方式,它利用計算機技術 將虛擬的物體實時地疊加到一個真實畫面或空間,形成具有實時交互的三維圖像畫面,給用戶帶來更真實的體驗與感受[1]。在發展信息時代教育的過程中,現代教育技術以其先進的觀念、手段和方法發揮著重要的作用。從木制黑板到電動黑板、投影儀、平板電腦、網課教學等,教育水平和技術在不斷改善和進步。增強現實這項新興技術與教育相結合,可以更加促進教育水平的提升,在教育的進程上實現一個飛躍。

谷歌ARCore的工作原理是集成了安卓設備的加速傳感器、陀螺儀、上下文識別信息等功能[2]。首先ARCore從相機環境中甄別出一些可見的特征,并通過手勢追蹤、傳感器傳來的坐標位移等,實現現實世界與虛擬事物的一個映射功能。AR系統具有三個突出的特點:(1)真實世界和虛擬世界的信息集成;(2)具有實時交互性;(3)在三維空間中添加和定位虛擬物體。ARCore可以在移動設備移動時追蹤它們的位置,并且會逐漸利用自己的方式對現實世界進行理解[3-4]。

1 關鍵技術

將AR技術應用于移動終端,意味著系統能夠提供以下主要功能模塊:視頻獲取設備、實現高精度定位功能的跟蹤裝置、計算機視覺運算功能、3D渲染功能、人機交互功能[5]。需要綜合考慮如何實現快速高效的跟蹤定位算法、大場景范圍下的多目標標識、移動設備與用戶可見的自然交互等多方面的技術問題。

1.1 運動跟蹤

Klein等在Davison研究的基礎上提出并行的跟蹤定位與地圖創建算法[7],并應用于增強現實系統中。將SLAM系統分為跟蹤和制圖兩個流程,跟蹤定位的目的是在地圖中估計攝像機的位置,地圖創建的目的是利用跟蹤獲得的攝像機位置將圖像上的特征點三角化得到空間坐標,對地圖進行優化,最終得到空間點的最優估計。其地圖創建的流程如圖1所示。

圖1 地圖創建流程

目前使用的大部分視覺SLAM系統都是基于Klein提出的并行的跟蹤定位與地圖創建算法框架改進而來。Mur-Artal等[8]于2015年提出ORB -SLAM,是現代SLAM系統中做的非常完善的系統之一。跟蹤線程負責對每幅圖像提取ORB特征點,并與最近的關鍵幀進行比較,計算特征點的位置并估計相機位姿。

目前通過光學攝像機可實現平面矩形圖案、二維編碼、自然圖像以及立體物體的實時識別追蹤?;诠鈱W或深度攝像機的圖像實時識別追蹤會確保增強現實應用的穩定性,因此它對識別追蹤的速度、準確性、環境光的適應能力,對識別多標識同時追蹤的容錯能力有極高的要求。

提高基于圖像識別追蹤增強現實應用性能的方法有[9-10]:利用圖像分割與光流法相結合,高效與準確的運動捕捉,快速運動模糊圖像中識別標識;通過平面自然圖像特征點的離線與在線,進行實時訓練來提高自然圖像識別的速度與適應性;使用位移與旋轉運動平滑過濾器,來減少圖像識別誤差帶來的抖動影響;通過實時檢測現實環境亮度并對圖像亮度閾值進行調整來實現在不同光線條件下的自適應能力等。

1.2 環境理解

當移動AR技術被用在大范圍環境或者需要對場景中的物體進行信息增強時,系統只需識別當前場景中的目標,并將相應的虛擬信息疊加顯示在圖像中。

1.2.1 環境理解的關鍵點

(1)幀(Frame)。

即相機獲取的一幀圖像。在ARCore中,幀包含更豐富的內容,提供了某一個時刻AR的狀態[11]。這些狀態包括:當前幀的環境光線,在繪制內容的時候根據光線控制物體的顏色;當前幀中檢測到的特征點云和它的位置用來繪制點云;當前幀中包含的錨點和二維平面集合用于繪制內容和平面;設備當前的位置、幀獲取的時間點、AR跟蹤狀態等[12-13]。

(2)特征點云(PointCloud)。

系統在檢測平面的時候,顯示的白色小點就是特征點云。特征點云包含了被觀察到的三維點和中心值的集合以及被ARCore檢測到的時間。

(3)二維平面(Plane)。

ARCore中所有的內容,都要依靠平面類進行渲染。系統中的虛擬物體只有在檢測到網格的地方才能放置。

ARCore中平面可分為水平朝上、朝下和非水平平面類型。其描述了對一個真實世界二維平面的認知、平面的中心點、x和z軸方向長度以及組成平面多邊形的頂點。ARCore檢測到的平面分為三種狀態:正在跟蹤、可恢復跟蹤和永不恢復跟蹤。如果是沒有正在跟蹤的平面,包含的平面信息可能不準確。如果發生兩個或者多個平面被自動合并成一個父平面,可以通過子平面找到它的父平面。

(4)平面交集(PlaneHitResult)。

點擊平面的時候,從設備點擊開始手機朝向方向發出一條射線,看下和被檢測平面是否有交集。HitResult就是射線和真實世界幾何體的交集。如果是平面交集就是PlaneHitResult,如果是點云就是PoinCludHitResult。PlaneHitResult中可以判斷交集點是否在被檢測的集合范圍內,是否在平面的正面。

(5)錨點(Anchor)。

每個物體的位置就是Anchor。Anchor位置會隨著手機或者攝像頭的位置變化而變化,這樣才能保持“位置不變”。Anchor描述了在現實世界中的固定位置和方向。

這個位置的數值描述將會隨著ARCore對空間理解的改進而更新,使其保持在物理空間的固定位置。使用getPose( )獲取當前數值位置,這個位置每次被調用的時候都可能會改變,但不會自發地改變。

(6)空間位置(Pose)。

Pose表示從一個坐標系,到另一個坐標系的精確的轉換。在所有的ARCore APIs中,Pose總是描述從物體的局部坐標系到世界坐標系的變換,來自ARCore API的Pose被認為等同于OpenGL模型矩陣。

1.2.2 網格化與環境

網格化與環境是能夠識別對象的特征或是理解用戶環境的基礎,利用這些特征來幫助識別平面。ARCore可通過網格化技術來自動識別表面,在其跟蹤表面的過程中,需要多次執行網格化。

網格是一個顯示多邊形和構成該多邊形的頂點有序集合的嵌入圖形[14]。頂點的順序是沿逆時針方向連接,這些點的連接順序會導致表面朝向的網格亮暗不同。渲染一個場景時只會看到朝向相機的表面,而遠離相機的表面就會被去除或剔除,連接這些點的順序稱為纏繞。

網格化是指獲取特征點集合并從中構建網格的過程,然后生成的網格通常設置陰影并渲染到場景中,由ARCore生成并放置表面或平面的網格。網格化算法過程如圖2所示。

圖2 網格化算法過程

1.3 光線估計

光線估計是一種復制現實世界中的光線條件并將其應用到三維虛擬對象上的技術[15-16]。ARCore利用圖像分析技術從攝像機采集的圖像中讀取光線強度,并將其轉換成全局光強度或顏色值,以及著色器上設置的光線的值。程序處理包括漫游方式、交互功能等。以往的瞬時移動可能會讓體驗者在頻繁切換的場景中迷失方向,因此需要改善移動方式。交互功能一般情況下采用觸碰的方式。而晝夜切換是在程序中預設晝夜變換系統,通過光照來感知。

2 ARCore原理

利用移動設備攝像機來實現設備的移動跟蹤,包括陀螺儀、電子羅盤、加速度計、相機視覺信息、SLAM算法等[17],采用PL-VIO[18]等算法利用點和線特征的緊密耦合的單目視覺慣性里程計系統,利用視覺慣性測距環境理解來識別水平和垂直平面,通過光線估計估算光源的角度和強度。

2.1 架構原理

ARCore在運行時兩路通道會同時打開,運用SLAM算法來支持分析原因。在SLAM算法中,視野越大效果越好,用于SLAM運算的通道是用其中一路來進行渲染。

Session類是SDK對外接口的核心,用來封裝相機預覽到的現實世界和手機慣性傳感器信息。通過Session的核心算法,來獲取特征點、平面、光照估計等。

Ancho類描述了建模的物體在現實世界中的固定位置和方向。這個位置的數字描述信息會改變,它會隨著自身對空間更新的理解而不斷地改進。

Pose類表示從一個坐標空間到另一個坐標空間位置不變的轉換。

LightEstimate類保存真實場景中光照的估計信息。

Trackable接口類使ARCore與錨點綁定在一起并且可以進行跟蹤。

Camera類用于捕獲圖像的攝像頭信息。Camera是一個長期存活的對象,每次調用Session.update() 都會更新Camera的屬性。

2.2 ARCore核心方法

ARCore核心方法如下:

(1)public Session(Context context):通過Session獲取幀和平面。

(2)public void resume:打開相機和慣性傳感器設備獲取信息和執行核心算法。

(3)public Frame update:從Session中得到幀,包含特征點、姿態、光照、圖像等信息。

(4)public void setCameraTextureName(int textId):獲取現實世界的紋理ID。

(5)public Collection getAllAnchors:獲取所有錨點。

(6)getAllTrackables(Class trackable):獲取所有繼承的平面和點。

(7)public Anchor createAnchor(Pose var1):根據空間位置創建錨點。

(8)public List getSupported -CameraConfigs:獲取相機所有的支持項。

(9)frame.getLightEstimate(). getColor -Correction (colorCorrectionRgba,0):獲取光線。

(10)PointCloud pointCloud=frame.Acquire -PointCloud:獲取點云。

(11)backgroundRenderer.draw(frame):根據模型矩陣、光照估計、投影矩陣繪制虛擬物體。

ARCore的核心算法使虛擬環境在現實中更加真實。

3 系統設計

采用ARCore進行核心方法設計,實現移動平臺上的場景可視化與互動教學。系統設計方案如圖3所示。

圖3 系統設計方案

利用ARCore構建Android Unity和Wech平臺下的增強現實,基于Firebase的跟蹤服務能夠跟蹤用戶的運動,實現在多個應用程序跟蹤用戶,或同時跟蹤多個用戶,編寫服務器程序、建立數據庫、制定一種架構模式。在移動增強現實應用系統建模的制作過程中,前期要收集整理項目資料以及需要項目的架構圖,并且對真實環境進行數據采集。

3.1 ARCore的可視化運動跟蹤

ARCore通過實時跟蹤用戶來具體使用跟蹤服務,并在AR應用程序中建立可視化跟蹤數據。設置一個重復計時器,使之每秒調用一個匿名函數。這樣是為了跟蹤每秒的運動,也可以像在多人游戲中那樣跟蹤每一幀運動。最后在設備的瀏覽器中運行,可以讓設備四處移動。切換到數據庫終端,可觀察到數據流進入數據庫。任意擴展數據點,并查看捕獲的數據值,就可以看到采集的數據了。把這些數據在二維或三維中進行可視化,利用發送到數據庫的相同數據來繪制用戶經過的三維路徑。核心代碼如圖4所示。

圖4 可視化核心代碼

調用THREE.LineBasicMaterial創建一條基準線material,并賦予十六進制的顏色值。接下來,根據當前的pos和lastPos變量以及material創建 geometry,即line。利用每個位置上x、y和z的值構建Vector3對象來實現。最后,利用scene add(line)函數在場景中添加line。當利用設備四處運動時就會有一條可視化運動軌跡的藍色的線。ARCore中的運動跟蹤是通過識別和跟蹤用戶周圍的可識別特征來完成的,然后利用這些點以及設備的朝向和加速度傳感器保持跟蹤更新。如果沒有這些信息,就無法實現準確跟蹤。

3.2 環境理解與交互

ARCore可以提供在用戶周圍識別到的特征點和平面,并且根據這些識別點或平面,生成虛擬對象。由于ARCore可以跟蹤這些點和平面,因此在用戶移動對象時,附著在平面上的虛擬對象應保持固定不變。

通過USB或遠程將設備與開發機器相連,在設備上構建和運行應用系統。繪制點云數據需要花費一段時間,并且隨著點的個數的增加,在一個方向保持設備的時間就越長。這些點表示用于跟蹤和解釋環境的可識別特征點。放置對象用光線投射技術,光線投射技術可在兩個維度上獲取觸摸點,并向場景投射光線,然后該射線測試場景中產生碰撞的其他對象。

3.3 光線方向估計

ARCore根據來自設備的當前圖像,通過圖像分析算法確定光線強度,并作為全局光線用于三維對象。通過Shader.SetGlobalFloat(“_ GlobalLight -Estimation”, 1.0f)語句,將著色器變量設為1,也就是將光線強度設為1.0。調用Frame.LightEstimate. PixelIntensity,從相機讀取圖像確定當前像素強度,并歸一化處理。最終通過線性模型進行光線估計。光線方向的估計也是利用Frame.LightEstimate. PixelIntensity讀取相機方向的光強度,檢查該值是否小于之前的所有值,如果小于,則在相機的相反方向上旋轉光線。

在互動教學中,可以將攝像頭對準任何平面,生成網格化平面的效果如圖5所示,利用數據顯示運動軌跡,點擊平面后疊加虛擬場景,通過觸摸移動事件和表面跟蹤,在場景放置物體(如椅子)并進行位置調節等完成室內空間的布局,如圖6所示。

圖5 生成網格化平面

圖6 虛擬場景互動效果

4 結束語

現在人工智能和增強現實技術在社會中的地位穩步上升,這些領域的核心關鍵技術在逐步實現突破。SLAM跟蹤定位給增強現實在構建完整地圖提供了良好的開端,采用ARCore進行架構和核心方法設計,通過運動追蹤和定位,環境理解及光線估計計算出虛擬世界與現實世界坐標系的對應關系,進行移動增強現實應用系統設計,實現交互體驗。在這些應用系統設計中,不希望跟蹤定位等占用所有計算資源,所以對小型化和輕量化提出了強烈的需求。另一方面,利用高性能計算設備實現精密的三維重建和場景理解成為必然。未來將和深度學習技術結合,為構建準確的語義地圖打下基礎,將神經網絡方法引入到物體識別和分割,甚至位姿估計和檢測中,使增強現實系統能夠在各種干擾的條件下穩定運行。

猜你喜歡
現實特征系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
我對詩與現實的見解
文苑(2020年11期)2021-01-04 01:53:20
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
抓住特征巧觀察
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一種基于Unity3D+Vuforia的增強現實交互App的開發
現實的困惑
中國衛生(2014年12期)2014-11-12 13:12:38
主站蜘蛛池模板: 久久毛片网| 国产网站免费| 成年看免费观看视频拍拍| 91探花国产综合在线精品| 亚洲天堂视频在线观看免费| 激情国产精品一区| 国内精品久久久久久久久久影视| 精品国产电影久久九九| 亚洲人成在线免费观看| 天天视频在线91频| 亚州AV秘 一区二区三区| 色网在线视频| 一级不卡毛片| 久久99蜜桃精品久久久久小说| 污网站在线观看视频| 欧美天堂在线| 人妻丰满熟妇αv无码| 午夜激情婷婷| 欧美另类视频一区二区三区| 亚洲成a人片7777| 国产极品嫩模在线观看91| 亚洲色大成网站www国产| 日本a∨在线观看| 狠狠色噜噜狠狠狠狠奇米777| 老司机精品99在线播放| 97超碰精品成人国产| 日韩视频免费| a毛片在线免费观看| 亚洲成人福利网站| 色婷婷在线影院| 无码啪啪精品天堂浪潮av| 一本大道视频精品人妻 | 人妻丰满熟妇av五码区| 国产精品亚洲片在线va| 99尹人香蕉国产免费天天拍| 毛片免费视频| 亚洲欧美日韩动漫| 国产日韩欧美在线播放| 午夜a视频| 亚洲无码高清视频在线观看| 福利在线一区| 99久久国产综合精品女同| 免费一级毛片在线观看| 亚洲午夜福利精品无码不卡| 青青青草国产| 国产不卡国语在线| 一本二本三本不卡无码| 欧洲精品视频在线观看| 在线观看视频99| 亚洲无线一二三四区男男| 2019年国产精品自拍不卡| 亚洲va欧美ⅴa国产va影院| 国产电话自拍伊人| 久久国产精品电影| 亚洲首页在线观看| 91福利免费视频| 天堂成人av| 亚洲AV无码一二区三区在线播放| 1级黄色毛片| 欧美一道本| 亚洲天堂久久| 中文字幕欧美日韩| 99久久精品视香蕉蕉| 欧美亚洲第一页| 夜夜爽免费视频| 久久免费视频6| 在线国产91| 全部毛片免费看| 国产高清国内精品福利| 成人午夜视频网站| 日韩成人高清无码| 99久久精品国产精品亚洲| 国产高清国内精品福利| 色综合网址| 99性视频| 2021无码专区人妻系列日韩| 精品国产免费第一区二区三区日韩| 日本成人一区| 成人一级黄色毛片| 黄色网站在线观看无码| 国产亚洲欧美日韩在线观看一区二区 | 国产精品 欧美激情 在线播放|