江 荔
(福州職業(yè)技術(shù)學(xué)院 福建 福州 350108)
隨著新一代信息技術(shù)(特別是5G、人工智能、大數(shù)據(jù)、虛擬現(xiàn)實(shí)技術(shù))的發(fā)展,以及智能手機(jī)和可穿戴設(shè)備的普及,增強(qiáng)現(xiàn)實(shí)(Augmented Reality,AR)技術(shù)也逐漸進(jìn)入大眾的視野。如今,AR技術(shù)已被廣泛應(yīng)用到醫(yī)療、教育、影視、娛樂等領(lǐng)域中,趣味性非常豐富,廣受歡迎,各種各樣的移動AR應(yīng)用程序也帶給人們超乎想象的應(yīng)用體驗(yàn)?;贏R的理論和技術(shù)研究也越來越多,即時(shí)定位與地圖構(gòu)建技術(shù)(Simultaneous Localization and Mapping,SLAM),是其中應(yīng)用最多的技術(shù)之一,SLAM為AR的場景提供準(zhǔn)確豐富的三維信息的同時(shí),能重新快速定位相機(jī)的實(shí)時(shí)位置,從而實(shí)現(xiàn)3D場景的實(shí)時(shí)重建,這對構(gòu)建一個(gè)穩(wěn)定的AR展示系統(tǒng)具有非常重要的研究意義。
最早出現(xiàn)增強(qiáng)現(xiàn)實(shí)AR這個(gè)詞是在1992年,文獻(xiàn)中定義AR技術(shù)是將計(jì)算機(jī)生成的虛擬信息融合至真實(shí)環(huán)境世界的一種科學(xué)技術(shù),是一種實(shí)時(shí)地計(jì)算攝影機(jī)影像的位置及角度并加上相應(yīng)圖像的技術(shù),是一種全新的人機(jī)交互技術(shù)[1]。進(jìn)入2021年,AR技術(shù)在城市規(guī)劃、醫(yī)學(xué)教育、教育培訓(xùn)、房地產(chǎn)宣傳、娛樂游戲、工業(yè)設(shè)計(jì)、工程訓(xùn)練、虛擬培訓(xùn)、軍事航天等領(lǐng)域都得到了廣泛的應(yīng)用,因此被認(rèn)為是未來能影響人們生活的重要新興技術(shù)之一。近年來,蘋果、谷歌、阿里巴巴、騰訊等多家互聯(lián)網(wǎng)巨頭都相繼推出了增強(qiáng)現(xiàn)實(shí)開放平臺,并投入了大量的資金進(jìn)行AR理論和應(yīng)用研究。特別是2020年新冠狀肺炎爆發(fā)以來,虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)以及混合現(xiàn)實(shí)這些新興技術(shù)帶給人們不一樣的展示體驗(yàn),AR技術(shù)的商業(yè)前景也越來越廣闊,AR展示系統(tǒng)的研究和實(shí)現(xiàn)也進(jìn)入一個(gè)全新的階段。
AR增強(qiáng)現(xiàn)實(shí)的三大技術(shù)包括標(biāo)定技術(shù)、跟蹤技術(shù)以及交互技術(shù)。其中SLAM主要解決跟蹤技術(shù),是AR系統(tǒng)中最關(guān)鍵的技術(shù),也是本文研究的重要內(nèi)容之一。
SLAM是近年新興的即時(shí)定位追蹤技術(shù),它是指運(yùn)動物體根據(jù)傳感器的信息,在計(jì)算自身位置的同時(shí)構(gòu)建地圖的過程,是移動物體在解決未知環(huán)境中的探索、偵查、導(dǎo)航等問題的基礎(chǔ)和關(guān)鍵[1]。
這里所說的SLAM,可以分為激光SLAM與視覺SLAM兩大類,這是根據(jù)傳感器種類不同來劃分的。激光SLAM主要用于室內(nèi)機(jī)器人和無人駕駛領(lǐng)域,生活中常見的家庭掃地機(jī)器人及商用場景中的服務(wù)型機(jī)器人大多采用激光SLAM,激光SLAM主要被應(yīng)用在室內(nèi),擺脫了對環(huán)境光照的限制,避免了對光的依賴,可以在昏暗環(huán)境工作。視覺SLAM主要應(yīng)用于增強(qiáng)現(xiàn)實(shí)(AR)、虛擬現(xiàn)實(shí)(VR)、機(jī)器人、自動駕駛等領(lǐng)域,視覺SLAM的在應(yīng)用場景上范圍更廣,雖然室內(nèi)室外均可部署,但是如果室內(nèi)光照比較暗的情況下,視覺SLAM則工作效率較低,出錯(cuò)率高,對光的依賴度較高。
一般來說視覺SLAM的傳感器主要是攝像機(jī)或者智能手機(jī),現(xiàn)行研究的視覺SLAM可以分為基于單個(gè)攝像頭、兩個(gè)或多個(gè)攝像頭、RGB-D攝像頭以及它們的組合方案[2]。近年來,由于5G智能手機(jī)的普及以及計(jì)算能力的提升,單目SLAM應(yīng)用越來越廣泛,且成本比較低廉,可以在小范圍內(nèi)實(shí)現(xiàn)較高的定位精度,基本滿足AR的應(yīng)用要求。但是因?yàn)榄h(huán)境往往是動態(tài)變化的,容易造成視覺特征匹配困難,優(yōu)化計(jì)算也不穩(wěn)定,這樣視覺SLAM的精度和穩(wěn)定性難以保障。另外,在大規(guī)模場景下,SLAM計(jì)算復(fù)雜度高,實(shí)時(shí)計(jì)算量大,一般的計(jì)算機(jī)計(jì)算能力有限,視覺SLAM在實(shí)時(shí)性方面也面臨一定的挑戰(zhàn)。SLAM的研究就是針對這些問題進(jìn)行優(yōu)化,算法也在不斷改進(jìn)。
傳統(tǒng)的SLAM系統(tǒng)主要包括傳感器數(shù)據(jù)、前端視覺里程計(jì)、后端非線性優(yōu)化、建圖以及回環(huán)檢測5個(gè)模塊[3],如圖1所示。其中最重要的是前端視覺里程計(jì)、后端非線性優(yōu)化、回環(huán)檢測3個(gè)模塊,本文也主要介紹這3個(gè)模塊。傳感器數(shù)據(jù)模塊通常采用慣性測量單元(Inertial Measurement Unit,IMU)傳感器,主要用來檢測和測量加速度與旋轉(zhuǎn)運(yùn)動的傳感器,這也是目前常用的傳感器模塊。
圖1 傳統(tǒng)SLAM系統(tǒng)流程
前端視覺里程計(jì)通過處理圖像序列并進(jìn)行一定的運(yùn)算得到視覺傳感器的位置[4],是視覺SLAM系統(tǒng)中最重要的模塊。解決前端視覺里程計(jì)最常用的方法是特征點(diǎn)提取。相機(jī)在運(yùn)動過程中圖像信息變化很快,這就需要提取少量特征點(diǎn)來計(jì)算圖像位置,這樣可以忽略除特征點(diǎn)外的其他大量像素信息,從而減少圖像匹配運(yùn)算過程的時(shí)間消耗,也減少CPU占用率。2011年,由Rublee提出一種高效并且魯棒的算法——ORB算法,研究表明,ORB算法的提取速度遠(yuǎn)比SIFT算法和SURF算法快,且ORB算法的穩(wěn)健性也足夠強(qiáng)[3]。特征點(diǎn)是計(jì)算機(jī)中圖像信息的重要表達(dá)方式,是SLAM系統(tǒng)的輸入信息,特征點(diǎn)獲取的速度對SLAM整體性能影響巨大,圖像信息表達(dá)不清晰會使SLAM系統(tǒng)產(chǎn)生很大的誤差,基于以上考慮,本文選擇ORB算法作為SLAM算法中的特征提取和匹配,這是一種單目視覺里程計(jì)算法,算法的優(yōu)點(diǎn)是傳感器的硬件結(jié)構(gòu)簡單,也比較容易標(biāo)定單目相機(jī)的過程,但缺點(diǎn)在于初始化較為困難[5]。
前端視覺里程計(jì)模塊在獲取圖像的過程中,位置的計(jì)算和圖像的累計(jì),會產(chǎn)生位置漂移的累積誤差,同時(shí)相機(jī)的非勻速運(yùn)動和環(huán)境特征噪聲的影響也會帶來測量誤差。為了提高SLAM系統(tǒng)建立的三維地圖的質(zhì)量,減小各種測量誤差導(dǎo)致的位置估計(jì)誤差或三維點(diǎn)的坐標(biāo)計(jì)算誤差,消除視覺里程計(jì)模塊產(chǎn)生的漂移累積誤差,后端主要采用的算法是濾波法與非線性優(yōu)化[3]。研究表明,濾波法的速度快且占用內(nèi)存很小,但是隨著攝像時(shí)間的增加,緩沖隊(duì)列也會有很大負(fù)擔(dān),系統(tǒng)累計(jì)的誤差也會越來越大,偏離值越來越高。非線性優(yōu)化算法能最大可能地減少重投影誤差,最大限度地降低系統(tǒng)偏離值,鑒于此,本系統(tǒng)采用的是非線性優(yōu)化算法,分析表明此算法誤差值相對較小。
系統(tǒng)在拍攝過程中不可避免會出現(xiàn)重復(fù)場景,回環(huán)檢測的目的就是檢驗(yàn)出現(xiàn)的重復(fù)場景,減小運(yùn)動軌跡漂移累積誤差,當(dāng)前端視覺里程計(jì)位置跟蹤失敗時(shí),回環(huán)檢測則使用重定位識別重復(fù)場景。目前回環(huán)檢測主要的方法有3種:通過對任意兩個(gè)關(guān)鍵幀進(jìn)行特征匹配進(jìn)行回環(huán)檢測的方法、基于前端視覺里程計(jì)進(jìn)行回環(huán)檢測的方法以及基于圖像外觀特征進(jìn)行回環(huán)檢測的方法[3]。本系統(tǒng)使采用第3種方法消除產(chǎn)生的漂移累積誤差,分析表明誤差相對較小。
本文設(shè)計(jì)了基于視覺SLAM算法的AR展示系統(tǒng)框架,首先將從前端模塊獲取的視頻流圖像幀通過傳感器輸入SLAM系統(tǒng),使用ORB-SLAM算法在SLAM系統(tǒng)中將得到圖像幀以及當(dāng)前圖像幀的位置信息進(jìn)行打包,打包后的數(shù)據(jù)會存入指定的結(jié)構(gòu)體,結(jié)構(gòu)體數(shù)據(jù)根據(jù)時(shí)間序列進(jìn)入緩沖隊(duì)列,最后AR模塊從中取用數(shù)據(jù)。以上就是AR展示系統(tǒng)框架的工作流程,如下圖2所示。
圖2 基于單目視覺SLAM算法的AR系統(tǒng)框架
本文以高清攝像頭采集實(shí)時(shí)圖像為測試,PC采用主流的VR開發(fā)工作站,CPUi7-10700,顯卡RTX3070,內(nèi)存16G RECC,操作系統(tǒng)使用Windows10,建模軟件使用3DMAX,軟件對虛擬場景建模并導(dǎo)入三維引擎,在Unity2018三維引擎設(shè)計(jì)與實(shí)現(xiàn)了AR模塊。正常情況下,此SLAM系統(tǒng)很大程度上提升了處理一張圖像幀和獲取該圖形幀位置信息的平均時(shí)間。由于在室內(nèi)測試,需要對室內(nèi)光照非常充足,系統(tǒng)穩(wěn)定性稍顯不足。本文構(gòu)建了一個(gè)基于單目視覺SLAM的AR展示系統(tǒng)框架,前端視覺里程計(jì)采用ORB算法采集圖像,后端采用非線性優(yōu)化算法消除誤差,回環(huán)檢測方法采用基于外觀的檢測方法,對SLAM系統(tǒng)的顯示效果進(jìn)行提升,可以達(dá)到實(shí)時(shí)處理高清圖像的效果,使SLAM系統(tǒng)在一般情況下都可以對高清圖像達(dá)到實(shí)時(shí)處理,研究分析了此系統(tǒng)可行性。
SLAM技術(shù)的應(yīng)用不僅只局限于增強(qiáng)現(xiàn)實(shí),同時(shí)也為計(jì)算機(jī)提供“眼睛”,使得AR能夠通過視覺輸入來展示周圍的一切。SLAM技術(shù)是AR展示系統(tǒng)領(lǐng)域最核心的技術(shù)之一,本文在比較分析了不同模塊的SLAM算法,選取了單目視覺SLAM系統(tǒng)中最優(yōu)算法,設(shè)計(jì)了一個(gè)AR框架系統(tǒng),同時(shí)由于SLAM可移植性強(qiáng),場景適應(yīng)性強(qiáng),可達(dá)到實(shí)時(shí)處理高清圖像的效果,提高AR整體跟蹤效果的同時(shí),也使得容錯(cuò)率等大大降低。隨著5G+AR技術(shù)的發(fā)展,未來突破VR、AR、MR技術(shù)的瓶頸除了SLAM算法的不斷改進(jìn),設(shè)計(jì)框架也需要重構(gòu),在突破技術(shù)的同時(shí),不斷開發(fā)新的創(chuàng)意,帶給用戶不同的體驗(yàn)感受,AR展示系統(tǒng)的研究具有重要意義。