亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARCore的移動增強現(xiàn)實應用系統(tǒng)設計

        2022-08-02 01:44:34宋燕燕
        計算機技術與發(fā)展 2022年7期
        關鍵詞:現(xiàn)實特征系統(tǒng)

        宋燕燕

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

        0 引 言

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

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

        1 關鍵技術

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

        1.1 運動跟蹤

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

        圖1 地圖創(chuàng)建流程

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

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

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

        1.2 環(huán)境理解

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

        1.2.1 環(huán)境理解的關鍵點

        (1)幀(Frame)。

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

        (2)特征點云(PointCloud)。

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

        (3)二維平面(Plane)。

        ARCore中所有的內(nèi)容,都要依靠平面類進行渲染。系統(tǒng)中的虛擬物體只有在檢測到網(wǎng)格的地方才能放置。

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

        (4)平面交集(PlaneHitResult)。

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

        (5)錨點(Anchor)。

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

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

        (6)空間位置(Pose)。

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

        1.2.2 網(wǎng)格化與環(huán)境

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

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

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

        圖2 網(wǎng)格化算法過程

        1.3 光線估計

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

        2 ARCore原理

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

        2.1 架構原理

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

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

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

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

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

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

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

        2.2 ARCore核心方法

        ARCore核心方法如下:

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

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

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

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

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

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

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

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

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

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

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

        ARCore的核心算法使虛擬環(huán)境在現(xiàn)實中更加真實。

        3 系統(tǒng)設計

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

        圖3 系統(tǒng)設計方案

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

        3.1 ARCore的可視化運動跟蹤

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

        圖4 可視化核心代碼

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

        3.2 環(huán)境理解與交互

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

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

        3.3 光線方向估計

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

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

        圖5 生成網(wǎng)格化平面

        圖6 虛擬場景互動效果

        4 結(jié)束語

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

        猜你喜歡
        現(xiàn)實特征系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        我對詩與現(xiàn)實的見解
        文苑(2020年11期)2021-01-04 01:53:20
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        如何表達“特征”
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        抓住特征巧觀察
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一種基于Unity3D+Vuforia的增強現(xiàn)實交互App的開發(fā)
        現(xiàn)實的困惑
        国产精品三级国产精品高| av网站大全免费在线观看 | 国产91会所女技师在线观看| 偷拍一区二区三区四区视频| 大学生粉嫩无套流白浆| 无人视频在线观看免费播放影院| 九九热在线视频观看这里只有精品| 亚洲七七久久综合桃花| 国产亚洲欧美另类久久久| 国产伦理自拍视频在线观看| 99久久国内精品成人免费| 日本高清视频永久网站www| 无码少妇一区二区浪潮av| 中文字幕 人妻熟女| 国产精品久久久久久久久久影院| 亚洲码无人客一区二区三区 | 久久久精品亚洲人与狗| 樱桃视频影院在线播放| 国产卡一卡二卡三| 亚洲AV无码一区二区三区人| 亚洲午夜久久久久中文字幕久| 国产真实二区一区在线亚洲| 久久久精品少妇—二区| 免费在线黄色电影| 欧美精品v国产精品v日韩精品| 国产欧美精品在线一区二区三区| 亚洲视频在线视频在线视频| 精品人妻av一区二区三区四区| 国内精品免费一区二区三区| a级国产乱理伦片在线播放| 欧美性一区| 亚洲av本道一本二本三区| 一个人看的视频在线观看| 波多野结衣的av一区二区三区| 国产精品黄在线观看免费软件| 国产午夜亚洲精品不卡福利| 亚洲av毛片一区二区久久| 无人区乱码一区二区三区| 亚洲裸男gv网站| 99久久精品国产一区二区蜜芽| 夫妻一起自拍内射小视频 |