邊根慶 田飛騰
摘要:文章借助安卓手機(jī)傳感器、位置服務(wù)、圖像識(shí)別和OpenGL ES等技術(shù),設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于安卓平臺(tái)的增強(qiáng)現(xiàn)實(shí)導(dǎo)航系統(tǒng),通過增強(qiáng)現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)虛擬導(dǎo)航信息渲染,通過圖片識(shí)別技術(shù)實(shí)現(xiàn)建筑物識(shí)別,改善用戶交互體驗(yàn)。
關(guān)鍵詞:增強(qiáng)現(xiàn)實(shí);手機(jī)導(dǎo)航;OpenGL ES; ORB算法;圖像識(shí)別
隨著社會(huì)的不斷進(jìn)步,人們對(duì)導(dǎo)航的需求越來越強(qiáng)烈。目前大多數(shù)智能手機(jī)上的導(dǎo)航軟件都是以2D或3D形式提供導(dǎo)航服務(wù),但這些都是通過矢量數(shù)據(jù)來提供地圖導(dǎo)航,沒有充分發(fā)揮智能手機(jī)上多傳感器等特性,用戶體驗(yàn)性差。所有信息都是以屏幕為中心進(jìn)行展示,沒有與真實(shí)世界更好地融合。用戶需要首先判斷手機(jī)相對(duì)于大地坐標(biāo)系的方位朝向,然后觀察手機(jī)的導(dǎo)航信息,按照手機(jī)提示的信息進(jìn)行導(dǎo)航。這種傳統(tǒng)的方式已經(jīng)不能滿足用戶需求,尤其是被稱為“路癡”的那些用戶。因此,本系統(tǒng)將在手機(jī)導(dǎo)航系統(tǒng)中添加更多的路徑參考元素,讓使用的人在行走的同時(shí)可以看到增強(qiáng)現(xiàn)實(shí)的場景就在眼前,讓原本陌生的街道在打開本系統(tǒng)的時(shí)候變得熟悉。
同時(shí),增強(qiáng)現(xiàn)實(shí)技術(shù)的發(fā)展越來越火熱,在很多領(lǐng)域嶄露頭角。增強(qiáng)現(xiàn)實(shí)技術(shù)具有很廣闊的適用性,在軍事、旅游、娛樂、醫(yī)療等領(lǐng)域都有很多的應(yīng)用軟件。隨著移動(dòng)互聯(lián)網(wǎng)的普及,移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù)也有了長足的發(fā)展。
因此,本文結(jié)合智能手機(jī)內(nèi)置傳感器,基于現(xiàn)有的位置服務(wù)、增強(qiáng)現(xiàn)實(shí)技術(shù)、圖像識(shí)別技術(shù),改善現(xiàn)有的導(dǎo)航系統(tǒng),設(shè)計(jì)和實(shí)現(xiàn)了一款基于安卓平臺(tái)的增強(qiáng)現(xiàn)實(shí)導(dǎo)航系統(tǒng),提供了更好的導(dǎo)航體驗(yàn)。
1 核心技術(shù)研究
本章主要是對(duì)增強(qiáng)現(xiàn)實(shí)導(dǎo)航系統(tǒng)的兩個(gè)核心技術(shù)進(jìn)行研究。針對(duì)改善現(xiàn)有導(dǎo)航體驗(yàn),提出一種基于傳感器移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù)的POI展示方法;為實(shí)現(xiàn)對(duì)建筑物圖像的識(shí)別,提出一種基于ORB 算法(Oriented FAST and Rotated Brief)和位置信息的建筑物識(shí)別方法。
1.1 一種基于傳感器移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù)的POI展示方法
本論文研究并提出了一種基于傳感器移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)的POI展示方法,將通過百度地圖API獲取的周邊POI信息,將POI信息以標(biāo)簽的形式按照相應(yīng)的空間位置,渲染到通過手機(jī)攝像頭獲取的視頻流上。具體如圖1所示。
該方法解決的是如何實(shí)時(shí)地計(jì)算增強(qiáng)現(xiàn)實(shí)圖形在屏幕View坐標(biāo)系上的位置。具體分為4步:(1)獲取標(biāo)簽的x軸坐標(biāo)初始值。(2)獲取標(biāo)簽的y軸坐標(biāo)的初始值。(3)根據(jù)手機(jī)傾斜角度調(diào)整標(biāo)簽在兩個(gè)坐標(biāo)軸上的坐標(biāo)。(4)根據(jù)POI標(biāo)簽位置優(yōu)化方法確定坐標(biāo)的最終值。
最終根據(jù)前面的映射關(guān)系將POI標(biāo)簽渲染到通過手機(jī)攝像頭獲取的視頻流上,實(shí)現(xiàn)虛實(shí)融合。當(dāng)手機(jī)傳感器信息發(fā)生變化時(shí),重新計(jì)算映射關(guān)系,進(jìn)而重新對(duì)標(biāo)簽進(jìn)行渲染。
1.2 —種基于ORB算法和位置服務(wù)的建筑物識(shí)別方法
本文提出建筑物識(shí)別是基于特征的圖像識(shí)別算法,由于在對(duì)建筑物識(shí)別的過程中,存在很大的外界干擾,包括視角變化、遮擋以及光照等。而且本文系統(tǒng)是應(yīng)用在智能手機(jī)平臺(tái)上,在硬件性能方面有一定的限制,本文最終選取ORB算法作為特征點(diǎn)檢測匹配算法。
由于實(shí)際情況下建筑物都是在固定位置擁有位置信息這個(gè)屬性,因此可以先獲取用戶的位置信息,并通過位置信息篩選出用戶附近的建筑物,縮小匹配范圍,提高建筑物識(shí)別效率。
如圖2所示,建筑物識(shí)別方法的步驟如下:
(1)首先通過手機(jī)攝像頭獲取到建筑物的圖像,通過OpenCV庫用ORB算法進(jìn)行特征點(diǎn)提取,獲取目標(biāo)建筑特征點(diǎn)。
(2)通過手機(jī)獲得經(jīng)緯度信息,就據(jù)經(jīng)緯度信息篩選出周圍50 m范圍內(nèi)的建筑物信息,具體思路如圖3所示,首先以經(jīng)緯度信息0(lat,lng)為圓心,以^的半徑計(jì)算出一個(gè)圓,然后計(jì)算出該圓形的正切正方形4個(gè)頂點(diǎn)(A,B,C,D)。最后以正方形的4個(gè)頂點(diǎn)為篩選條件從數(shù)據(jù)庫中選出符合條件的建筑物。
其正切正方形詳細(xì)計(jì)算步驟如下:
(3)根據(jù)前面選出符合條件的建筑物,在特征集庫中選出相應(yīng)特征集,將這些特征集與步驟(1)中獲取的特征點(diǎn)通過漢明距離進(jìn)行匹配,然后通過RANSAC算法提純,最終選出識(shí)別成功的建筑物,并從資源庫中提取相關(guān)說明信息。
2 增強(qiáng)顯示導(dǎo)航系統(tǒng)設(shè)計(jì)
本系統(tǒng)包括3個(gè)模塊:POI展示模塊、導(dǎo)航模塊和建筑物識(shí)別模塊。下面將分模塊對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),并在最后給出系統(tǒng)的運(yùn)行效果圖。
2.1 POI展示模塊設(shè)計(jì)
本模塊包括POI標(biāo)簽顯示、POI搜索篩選和雷達(dá)圖顯示。本模塊的核心是POI標(biāo)簽顯示,為用戶展示周圍的POI信息,包括距離、方位、名稱、POI類型等信息,POI標(biāo)簽根據(jù)手機(jī)朝向和位置信息發(fā)生改變時(shí)而改變,以達(dá)到增強(qiáng)現(xiàn)實(shí)的效果。
2.2 導(dǎo)航模塊設(shè)計(jì)
本模塊的核心設(shè)計(jì)是導(dǎo)航路徑數(shù)據(jù)在OpenGL ES的3D坐標(biāo)系上的映射方法。它給用戶提供了直觀的到達(dá)POI的導(dǎo)航路徑圖形,包括實(shí)時(shí)調(diào)整當(dāng)前位置與前方路口的距離以及用圖形展示出轉(zhuǎn)彎指示信息。其存在問題是如何直觀地展示導(dǎo)航路徑信息,與POI展示模塊不同,由于本模塊不存在密集和遮擋的問題,因此可以更直觀地展示。
本模塊解決的是如何實(shí)時(shí)地計(jì)算增強(qiáng)現(xiàn)實(shí)圖形在OpenGL ES的坐標(biāo)系上的位置,從而渲染到手機(jī)屏幕上的相應(yīng)位置。通過百度地圖API獲取相應(yīng)的導(dǎo)航數(shù)據(jù),根據(jù)導(dǎo)航信息生成相應(yīng)3D指示箭頭,并通過視點(diǎn)變換實(shí)時(shí)調(diào)整圖形的位置,就能保證較好的增強(qiáng)現(xiàn)實(shí)效果。
另外,由于隨著用戶行走過程中位置的不斷變化,手機(jī)屏幕上的導(dǎo)航信息也要跟著實(shí)時(shí)刷新,從而更新導(dǎo)航路徑數(shù)據(jù)在OpenGL ES 3D坐標(biāo)系上的位置。
2.3 建筑物識(shí)別模塊設(shè)計(jì)
本模塊的核心設(shè)計(jì)是通過圖像識(shí)別技術(shù)識(shí)別出建筑物,通過手機(jī)攝像頭獲取建筑物的圖片,并與數(shù)據(jù)庫中的建筑物特征點(diǎn)集進(jìn)行匹配,成功后返回相關(guān)信息。
本模塊解決的是如何高效準(zhǔn)確地識(shí)別建筑物。為此,通過手機(jī)獲取用戶位置信息進(jìn)行篩選,建筑物識(shí)別時(shí)只匹配用戶周邊的建筑物,縮小了匹配范圍,極大地提高識(shí)別效率和準(zhǔn)確度。
2.4 增強(qiáng)顯示導(dǎo)航系統(tǒng)展示
打開導(dǎo)航系統(tǒng),首先,進(jìn)入POI展示界面如圖4(a)所示。點(diǎn)擊底部菜單欄上的導(dǎo)航按鈕即可進(jìn)入導(dǎo)航模塊界面,圖4(b)為實(shí)景導(dǎo)航效果圖。點(diǎn)擊菜單欄上的建筑物識(shí)別按鈕,即可進(jìn)入建筑物識(shí)別模塊如圖4(c)所示,點(diǎn)擊識(shí)別按鈕即可進(jìn)行建筑物識(shí)別。
3 結(jié)語
伴隨著社會(huì)的發(fā)展,人們對(duì)導(dǎo)航的需求越來越強(qiáng)烈。本文設(shè)計(jì)一種增強(qiáng)現(xiàn)實(shí)導(dǎo)航系統(tǒng),該系統(tǒng)采用基于傳感器的增強(qiáng)現(xiàn)實(shí)技術(shù),借助手機(jī)的方向傳感器和磁力計(jì)、百度定位和導(dǎo)航SDK提供的位置信息,并在OpenGL ES 3D渲染技術(shù)和圖像識(shí)別技術(shù)的基礎(chǔ)上實(shí)現(xiàn)了增強(qiáng)現(xiàn)實(shí)導(dǎo)航的效果,并加入了建筑物識(shí)別模塊,在Android手機(jī)上實(shí)現(xiàn)了更直觀的導(dǎo)航表現(xiàn)。
[參考文獻(xiàn)]
[1]鄭菲菲,宋麗紅,董靜.基于增強(qiáng)現(xiàn)實(shí)技術(shù)的導(dǎo)航系統(tǒng)研究[J].軟件導(dǎo)刊,2016(9):57-59.
[2]EIVIND G.Augmented reality and object tracking for mobile devices[D].Norway:Norwegian University, 2012.
[3]雷正龍.基于Android的增強(qiáng)現(xiàn)實(shí)技術(shù)在旅游體驗(yàn)中的應(yīng)用研究[D].北京:北京工業(yè)大學(xué),2015.
[4]KAHARI M, MURPHY D J.Mara:sensor based augmented reality system for mobile imaging device[C].Nantes:The 5th IEEE andACM International Symposyum on Mixed and Augmented Reality, 2006.
[5]RUBLEE E, RABAUD V, KONOLIGE K, et al.ORB:an efficient alternative to SIFT orSURF[C].Washington:IEEE InternationalConference on Computer Version(ICCV), 2011:2564-2571.
[6]GOODSTEIN L.Location based service:analysis of carrier spending, subscribers, devices and applications for handset-based andtelematics services[J].ABI Research, 2004(5):15-19.
[7]舒麗霞,周成平,彭曉明,等.基于Hausdorff距離圖象配準(zhǔn)方法研究[J].中國圖象圖形學(xué)報(bào),2005(12):1412-1417.
[8]VIOLA P, WELLS III W MAlignment by maximization of mutual information[J].International Journal of Computer Vision, 1997(2):137-154.
[9]王亞美,魯田.基于OpenGLES的二三維地圖可視化客戶端設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013(9):77-80.