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

基于ARKit的博物館室內(nèi)定位系統(tǒng)研究

2021-06-05 06:34:44夏延哲
關(guān)鍵詞:程序設(shè)備信息

夏延哲

(廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州510006)

0 引 言

隨著中國(guó)經(jīng)濟(jì)的快速增長(zhǎng),人們不僅僅只滿(mǎn)足于物質(zhì)上的富足,而對(duì)精神充實(shí)的追求也越來(lái)越高。從2006年起,中國(guó)文物機(jī)構(gòu)和博物館觀覽人數(shù)持續(xù)上升。博物館已經(jīng)不僅是收藏、保護(hù)、研究、展示文化遺產(chǎn)的機(jī)構(gòu),還將成為面向未來(lái)的文化服務(wù)和教育機(jī)構(gòu)。而當(dāng)游客難以找到參觀的藝術(shù)品時(shí),就會(huì)造成無(wú)序的人流流動(dòng),導(dǎo)致游客的參觀過(guò)程非常混亂。

本文提出通過(guò)ARKit技術(shù),解決傳統(tǒng)的博物館參觀中尋找目標(biāo)藝術(shù)品的途徑。針對(duì)現(xiàn)有室內(nèi)導(dǎo)航過(guò)程中存在的設(shè)備運(yùn)動(dòng)跟蹤不準(zhǔn)確、攝像頭圖像采集、圖像視覺(jué)處理、場(chǎng)景渲染等技術(shù)問(wèn)題,提出了采用ARKit結(jié)合Unity 3D平臺(tái)進(jìn)行室內(nèi)場(chǎng)景導(dǎo)航的方法;通過(guò)整合設(shè)備攝像頭圖像信息與設(shè)備運(yùn)動(dòng)傳感器(包括LiDAR)信息,在AR跟蹤穩(wěn)定性、渲染真實(shí)度、人機(jī)交互自然度上達(dá)到較好的效果。創(chuàng)建前端頁(yè)面與后端程序的交互,開(kāi)發(fā)室內(nèi)三維場(chǎng)景導(dǎo)航程序,完成定位場(chǎng)景中坐標(biāo)點(diǎn)、路徑規(guī)劃、地圖信息保存及自動(dòng)尋路等主要功能。結(jié)果證明,該方法可以實(shí)現(xiàn)室內(nèi)自動(dòng)導(dǎo)航,減少了游客尋找目標(biāo)展品的時(shí)間,提升改善了博物館的參觀游覽情況,符合現(xiàn)代化博物館建設(shè)的需求。

1 ARKit導(dǎo)航技術(shù)

2017年,蘋(píng)果公司正式推出了增強(qiáng)現(xiàn)實(shí)的開(kāi)發(fā)框架ARKit。從本質(zhì)上,AR是將2D/3D元素(文字、圖片、模型、音視頻等)放置于設(shè)備攝像頭所采集的圖像中,營(yíng)造一種虛擬元素真實(shí)存在于現(xiàn)實(shí)世界中的假象。ARKit通過(guò)移動(dòng)設(shè)備(包括手機(jī)、平板電腦等)單目攝像頭采集的圖像信息(包括LiDAR采集的信息),實(shí)現(xiàn)了平面檢測(cè)識(shí)別、場(chǎng)景幾何、環(huán)境光估計(jì)、環(huán)境光反射、圖像識(shí)別、3D物體識(shí)別等功能。但一個(gè)完備的室內(nèi)導(dǎo)航系統(tǒng)還應(yīng)該包含前端頁(yè)面的操作,用戶(hù)操作流程等。因此,本文提出了將ARKit與三維集成平臺(tái)結(jié)合,設(shè)計(jì)出相應(yīng)的前端頁(yè)面,利用ARKit的強(qiáng)大功能,通過(guò)用戶(hù)選定目標(biāo)點(diǎn),采用合適的算法進(jìn)行路徑規(guī)劃,最終實(shí)現(xiàn)導(dǎo)航的功能。創(chuàng)建一個(gè)現(xiàn)實(shí)和虛擬空間之間的對(duì)應(yīng)關(guān)系,ARKit使用的技術(shù)稱(chēng)為視覺(jué)慣性測(cè)距。這個(gè)過(guò)程結(jié)合了從iOS設(shè)備的運(yùn)動(dòng)傳感硬件與設(shè)備的攝像頭獲取到的圖像[1]。ARKit識(shí)別具有顯著特征的場(chǎng)景圖像,跟蹤視頻幀之間的特征差異的位置,將該信息與運(yùn)動(dòng)傳感數(shù)據(jù)比較,從而得到一個(gè)高精度的設(shè)備位置和運(yùn)動(dòng)模型,其中包含世界跟蹤還分析和理解場(chǎng)景的內(nèi)容。使用命中測(cè)試方法找到對(duì)應(yīng)于相機(jī)圖像中某個(gè)點(diǎn)的真實(shí)世界的表面。

ARKit官方提供了Xcode開(kāi)發(fā)包,這也提高了利用其它工具進(jìn)行開(kāi)發(fā)的學(xué)習(xí)成本。在這種情況下,Unity構(gòu)建了一個(gè)AR開(kāi)發(fā)平臺(tái)-ARFoundation,該平臺(tái)架構(gòu)于ARKit和ARCore之上,其目的是利用Unity的跨平臺(tái)能力,構(gòu)建一種與平臺(tái)無(wú)關(guān)的AR開(kāi)發(fā)環(huán)境。即,ARFoundation對(duì)ARKit與ARCore進(jìn)行了再次封裝,并按照用戶(hù)的發(fā)布平臺(tái),自動(dòng)選擇合適的底層SDK版本。ARFoundation提供了一個(gè)獨(dú)立于平臺(tái)的腳本API和MonoBehaviour。因此,開(kāi)發(fā)者可以通過(guò)ARFoundation使用ARCore和ARKit共有的核心功能構(gòu)建,同時(shí)適用于iOS和Android兩個(gè)平臺(tái)的AR應(yīng)用程序。這可以讓開(kāi)發(fā)者只需開(kāi)發(fā)一次應(yīng)用,就可以部署到兩個(gè)平臺(tái)的設(shè)備上,不必做任何改動(dòng)[2]。

2 定位系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

程序定位導(dǎo)航原理的大致流程為:首先進(jìn)行地圖信息的采集;然后對(duì)目標(biāo)特征點(diǎn)信息進(jìn)行識(shí)別和保存;選用合適的路徑規(guī)劃算法,生成導(dǎo)航路徑。

2.1 地圖信息的采集模塊

對(duì)真實(shí)環(huán)境中的掃描和測(cè)量,并且保存到后臺(tái)系統(tǒng)中是該模塊重點(diǎn)實(shí)現(xiàn)的問(wèn)題。本程序?qū)τ谌S環(huán)境動(dòng)態(tài)的實(shí)時(shí)理解,主要依賴(lài)于單目SLAM技術(shù)來(lái)實(shí)現(xiàn)。在游客移動(dòng)過(guò)程中,一方面要把攝像頭所拍到的圖像連接成地圖,另一方面將地圖的信息存儲(chǔ)到后方的數(shù)據(jù)庫(kù)中。同時(shí),針對(duì)如何識(shí)別攝像頭中的平面問(wèn)題,采取通過(guò)光學(xué)系統(tǒng)檢測(cè)到的特征計(jì)算生成。通常稱(chēng)這些點(diǎn)為“點(diǎn)云(Point cloud)”。形成稀疏點(diǎn)云之后,在少量的內(nèi)存和CPU的支持,輔以慣性系統(tǒng)的配合下可以定義成平面,即使在只有少量追蹤點(diǎn)的情況下,仍然可以有效地運(yùn)作[3]。具體操作流程如圖1所示。

2.2 藝術(shù)品位置信息的采集

此模塊的功能主要是對(duì)藝術(shù)品具體位置進(jìn)行定位,將藝術(shù)品的位置信息傳輸?shù)椒?wù)器。此時(shí)需將攝像頭中藝術(shù)品的位置創(chuàng)建三維物體對(duì)象,并且生成該對(duì)象在導(dǎo)航程序中全局坐標(biāo)系數(shù)據(jù)。只要選定設(shè)置好不同藝術(shù)品的位置,就可以實(shí)現(xiàn)相互之間的路徑生成和線(xiàn)路導(dǎo)航。三維物體在場(chǎng)景中的生成如圖2所示。

產(chǎn)生位置信息具體封裝代碼如下:

圖1 空間信息識(shí)別流程Fig.1 Spatial information identification process

圖2 位置信息采集Fig.2 Location information collection

2.3 導(dǎo)航線(xiàn)段的生成

導(dǎo)航路線(xiàn)規(guī)劃系統(tǒng)是通過(guò)兩個(gè)目標(biāo)點(diǎn)在地圖中的位置信息,來(lái)進(jìn)行規(guī)劃和確定的。如圖2所示,首先判斷兩點(diǎn)是否在同一聯(lián)通分量上。通過(guò)一次完整的dfs,可以得到一個(gè)聯(lián)通分量,只要兩點(diǎn)都被同一次dfs訪(fǎng)問(wèn)過(guò),則就存在路徑。產(chǎn)生路徑的核心算法負(fù)責(zé)從未被訪(fǎng)問(wèn)到的節(jié)點(diǎn)列表(from表)中提取節(jié)點(diǎn)的序列號(hào),從終節(jié)點(diǎn)的序列號(hào)開(kāi)始一直調(diào)用from[終節(jié)點(diǎn)]往前推,直到推出某個(gè)節(jié)點(diǎn)i的from[i]=-1,表示節(jié)點(diǎn)i沒(méi)有前節(jié)點(diǎn),即節(jié)點(diǎn)i就是起始源節(jié)點(diǎn)。雖然推出來(lái)的序列號(hào)順序是反向的路徑,但可以把這個(gè)反向的節(jié)點(diǎn)序列壓入一個(gè)棧中,然后一個(gè)一個(gè)出棧放入一個(gè)向量vec中保存,這個(gè)向量中保存的序列就是正確的順序。showPath主要調(diào)用p at h函數(shù)來(lái)準(zhǔn)備路徑數(shù)據(jù),并傳入一個(gè)向量vect o r給p at h函數(shù),用來(lái)存儲(chǔ)路徑信息。之后再控制輸出格式把節(jié)點(diǎn)一個(gè)一個(gè)輸出來(lái),就形成了一條路徑,如圖3所示。

圖3 路徑規(guī)劃示意圖Fig.3 Schematic diagram of path planning

路徑規(guī)劃中的關(guān)鍵代碼如下:

3 導(dǎo)航系統(tǒng)程序開(kāi)發(fā)與發(fā)布

3.1 開(kāi)發(fā)平臺(tái)與開(kāi)發(fā)環(huán)境

程序開(kāi)發(fā)語(yǔ)言為.NET C#,其版本為Visual Studio 2019,本程序支持在IOS平臺(tái)上進(jìn)行,兼容IOS12及以上的操作系統(tǒng)。

3.2 導(dǎo)航系統(tǒng)的開(kāi)發(fā)流程

本程序的開(kāi)發(fā)是以Unity3D為主要開(kāi)發(fā)平臺(tái),對(duì)于程序中需要使用到的腳本文件,則利用Visual Studio 2019進(jìn)行腳本的編輯與測(cè)試,在完成腳本的編寫(xiě)與ARKit的控制器成功引入之后,將程序發(fā)布到IOS設(shè)備中,并可以正常使用。其具體實(shí)現(xiàn)步驟如下:

(1)ARKit中控制器導(dǎo)入。將ARKit提供的一些關(guān)鍵的控制器導(dǎo)入到程序的工程中。ARWorldMap控制器用來(lái)添加環(huán)境掃描,用于掃描攝像頭中的空間信息,并且將當(dāng)前環(huán)境數(shù)據(jù)保存在本地。AR Session Origin為創(chuàng)建的地圖設(shè)置本地坐標(biāo)信息。

(2)場(chǎng)景內(nèi)物體生成。通過(guò)Anchor Prefab腳本,使得用戶(hù)點(diǎn)擊攝像頭中某個(gè)已經(jīng)掃描出來(lái)的錨點(diǎn)時(shí),會(huì)在本地生成一個(gè)3D物體,并且記錄其當(dāng)前的位置信息。該3D物體的形狀和外形可以自定義。

(3)導(dǎo)航路徑規(guī)劃。在場(chǎng)景中設(shè)置Path Finder腳本,實(shí)現(xiàn)各個(gè)目標(biāo)點(diǎn)之間路徑的規(guī)劃。場(chǎng)景中的任意物體,需要去添加每個(gè)節(jié)點(diǎn)的坐標(biāo),并且在Paths中設(shè)置每條線(xiàn)路的規(guī)劃。如:A->B;A->C;B->C;C->D;D->A。

(4)導(dǎo)航線(xiàn)段的生成與渲染。該部分需要搭配Unity中的LineRenderer組件來(lái)實(shí)現(xiàn)。在線(xiàn)段的材質(zhì)和貼圖方面,需要調(diào)整幾項(xiàng)參數(shù):動(dòng)態(tài)修改Tiling參數(shù)的信息。當(dāng)路程較長(zhǎng)時(shí),則X軸的信息為總路程:MyPoint+for(int i=0;i<Each Coordinate Information)。將每個(gè)坐標(biāo)的間隔距離相加,就可以得到最終的總路程信息。

(5)程序UI界面的實(shí)現(xiàn)。在UI設(shè)計(jì)中,考慮到不同設(shè)備的機(jī)型,通過(guò)微調(diào)UI面板的寬度與高度信息,來(lái)達(dá)到系統(tǒng)的自動(dòng)適配。當(dāng)設(shè)計(jì)分辨率與設(shè)備分辨率不同時(shí),需要將UI界面經(jīng)過(guò)一定縮放投射到屏幕上。

(6)程序的調(diào)試以及bug的修改。

(7)撰寫(xiě)程序的使用說(shuō)明以及開(kāi)發(fā)文檔。

3.3 程序UI及窗體設(shè)計(jì)、發(fā)布設(shè)置

一個(gè)優(yōu)秀的導(dǎo)航程序,離不開(kāi)友好、人性化的使用界面。程序的界面和窗體設(shè)計(jì)是用戶(hù)是否能快速上手使用的重要因素。本文導(dǎo)航程序使用FairyGUI來(lái)設(shè)計(jì)前端操作頁(yè)面,通過(guò)前端清晰的操作按鈕與后臺(tái)控制器的綁定,實(shí)現(xiàn)了程序操作的簡(jiǎn)化,同時(shí)提高了易用性。程序的主要功能以及定位導(dǎo)航過(guò)程示意如圖4所示。

圖4 定位導(dǎo)航過(guò)程示意圖Fig.4 Schematic diagram of positioning and navigation process

4 結(jié)束語(yǔ)

本文根據(jù)目前博物館參覽的實(shí)際情況,在對(duì)相關(guān)技術(shù)進(jìn)行選型以及研究后,采用ARKit技術(shù)來(lái)設(shè)計(jì)導(dǎo)航系統(tǒng)。針對(duì)游客在游覽時(shí)存在的尋找藝術(shù)品位置不便的問(wèn)題,提供了線(xiàn)路和路徑導(dǎo)航的解決方案。系統(tǒng)的應(yīng)用,將在很大程度上解決了館內(nèi)人流無(wú)序的問(wèn)題,更有利于維護(hù)館內(nèi)的秩序,以及更好地利用藝術(shù)品被欣賞的文化價(jià)值。

猜你喜歡
程序設(shè)備信息
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
試論我國(guó)未決羈押程序的立法完善
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
“程序猿”的生活什么樣
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
創(chuàng)衛(wèi)暗訪(fǎng)程序有待改進(jìn)
展會(huì)信息
原來(lái)他們都是可穿戴設(shè)備
主站蜘蛛池模板: 55夜色66夜色国产精品视频| 国产福利在线观看精品| 91久久国产综合精品女同我| 制服丝袜一区| 欧美日本在线播放| 色成人综合| 欧美日本二区| 国产精品香蕉在线| 久久久久国产精品免费免费不卡| 99视频有精品视频免费观看| 欧美成在线视频| 久久久久免费看成人影片 | 激情综合网激情综合| 国产成人乱码一区二区三区在线| 婷婷成人综合| 亚洲综合精品香蕉久久网| 国产喷水视频| 亚洲第一区欧美国产综合| 54pao国产成人免费视频| 伊人国产无码高清视频| 亚洲嫩模喷白浆| 天堂网亚洲系列亚洲系列| 91极品美女高潮叫床在线观看| 91在线激情在线观看| 亚洲男人天堂久久| 色哟哟国产精品| 国产经典免费播放视频| 99偷拍视频精品一区二区| 久久精品人妻中文视频| 免费一级无码在线网站| 国产成人精品一区二区三区| 国产欧美亚洲精品第3页在线| 欧美亚洲激情| 亚洲精品第一页不卡| 中文字幕1区2区| 国产精品所毛片视频| 9999在线视频| 国产流白浆视频| 东京热av无码电影一区二区| 99国产精品国产| 亚洲专区一区二区在线观看| 97青青青国产在线播放| 亚洲美女AV免费一区| 欧美国产视频| 日本免费精品| 久久精品aⅴ无码中文字幕| 亚洲动漫h| 中文无码精品A∨在线观看不卡 | 久久成人国产精品免费软件| 青青草国产免费国产| 国产va欧美va在线观看| 久久久久久久蜜桃| 不卡午夜视频| 九九热在线视频| 日韩大片免费观看视频播放| 蝌蚪国产精品视频第一页| 久久成人免费| 伊人久久精品无码麻豆精品| 丁香六月综合网| 免费网站成人亚洲| 亚洲精品在线影院| 国产欧美视频在线观看| 亚洲伊人久久精品影院| 国产区免费精品视频| 亚洲第一成人在线| 日本日韩欧美| 国产成人综合日韩精品无码不卡| 99这里只有精品6| 中文字幕久久精品波多野结| 国产午夜一级毛片| 欧美人人干| 亚洲69视频| 欧美a在线看| 最新无码专区超级碰碰碰| 2021国产精品自拍| 国产xx在线观看| 无码又爽又刺激的高潮视频| 国产网友愉拍精品| 亚洲色图欧美视频| 久久久成年黄色视频| 亚洲免费播放| 亚洲国产日韩一区|