• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于增強(qiáng)現(xiàn)實技術(shù)的導(dǎo)航系統(tǒng)研究

      2016-11-07 18:09:28鄭菲菲宋麗紅董靜
      軟件導(dǎo)刊 2016年9期
      關(guān)鍵詞:Android系統(tǒng)增強(qiáng)現(xiàn)實技術(shù)

      鄭菲菲++宋麗紅++董靜

      摘要:采用基于GPS和傳感器的增強(qiáng)現(xiàn)實技術(shù)以及高德地圖接口,設(shè)計和開發(fā)了導(dǎo)航系統(tǒng)。利用增強(qiáng)現(xiàn)實技術(shù)將路線指引和路況合成渲染,并利用手機(jī)傳感器使指引箭頭根據(jù)手機(jī)姿態(tài)的變化而旋轉(zhuǎn),實時指向正確的前進(jìn)方向,給予用戶更加直觀的導(dǎo)航體驗。

      關(guān)鍵詞:增強(qiáng)現(xiàn)實技術(shù);方向傳感器;Android系統(tǒng)

      DOIDOI:10.11907/rjdk.161565

      中圖分類號:TP319

      文獻(xiàn)標(biāo)識碼:A文章編號文章編號:16727800(2016)009005703

      基金項目基金項目:2015年地方高校國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201510070010)

      作者簡介作者簡介:宋麗紅(1975-),女,天津人,博士,天津財經(jīng)大學(xué)理工學(xué)院副教授,研究方向為軟件工程、智能信息系統(tǒng);董靜(1975-),女,天津人,博士,天津財經(jīng)大學(xué)理工學(xué)院講師,研究方向為軟件工程。

      0引言

      增強(qiáng)現(xiàn)實(Augmented Reality,簡稱AR)是一種將虛擬物體和真實環(huán)境“無縫”疊加在一起的技術(shù),將在現(xiàn)實世界一定時間空間范圍內(nèi)很難體驗到的實體信息,如視覺信息、聲音、味道、觸覺等,通過電腦等技術(shù)模擬仿真后再疊加,將虛擬的信息應(yīng)用到真實世界,被人類感官所感知,從而獲得超越現(xiàn)實的感官體驗[1]。相比于虛擬現(xiàn)實技術(shù)(Virtual Reality,簡稱VR),增強(qiáng)現(xiàn)實技術(shù)增強(qiáng)了人對真實環(huán)境的感知與交互,它具有以下3個特征:①虛實結(jié)合:將虛擬物體和現(xiàn)實世界結(jié)合在一起,實現(xiàn)感官上的統(tǒng)一;②三維注冊:增強(qiáng)現(xiàn)實技術(shù)與混合媒體(Mixed Media)的區(qū)分點,虛擬物體必須準(zhǔn)確地注冊到真實世界中,與真實世界完美融合,要求虛擬物體的注冊位置是三維的[2];③實時交互:實時感知用戶操作并互動。

      增強(qiáng)現(xiàn)實技術(shù)由于具有對真實環(huán)境進(jìn)行增強(qiáng)顯示輸出的特性,在醫(yī)療研究、精密儀器維修、古跡復(fù)原、娛樂與藝術(shù)等領(lǐng)域具有明顯的優(yōu)勢[3]。

      目前大多數(shù)智能手機(jī)的導(dǎo)航軟件都以2D或3D形式提供導(dǎo)航服務(wù),但這些都是通過矢量數(shù)據(jù)來提供地圖導(dǎo)航,滿足不了用戶獲取實時交通路況的需求,用戶體驗較差。本文提出一種通過手機(jī)攝像頭獲取實時路況,通過高德地圖接口獲取導(dǎo)航信息,并利用增強(qiáng)現(xiàn)實技術(shù)將路線指引和路況合成渲染,以提供更加直觀的導(dǎo)航系統(tǒng)。

      1關(guān)鍵技術(shù)

      1.1增強(qiáng)現(xiàn)實技術(shù)

      增強(qiáng)現(xiàn)實技術(shù)在智能手機(jī)客戶端有兩種實現(xiàn)方式:

      (1)基于視覺的增強(qiáng)現(xiàn)實技術(shù)。它的識別方式分為基于標(biāo)志(Marker Based)和非基于標(biāo)志(Markerless)兩種。其中,基于標(biāo)志的識別又分為固定模板類和自定義模板類。

      基于標(biāo)志的主要代表是ARToolKit,其為采用C/C++ 語言編寫的庫。主要原理是預(yù)先將標(biāo)志(Marker)圖像信息保存,通過圖像識別技術(shù)將當(dāng)前圖像中的標(biāo)志圖像識別出來,然后在標(biāo)識圖像上疊加信息[4]。效果如圖1和圖2所示。

      圖1標(biāo)志圖像圖2疊加的立方體

      目前,增強(qiáng)現(xiàn)實瀏覽器魔眼(Junaio)和Trading Card游戲等都采用了這種技術(shù)。但這種模板匹配方式的誤識別率較高,一旦標(biāo)志被遮擋將導(dǎo)致跟蹤失敗,所以不適合運用于戶外導(dǎo)航。

      非基于標(biāo)志的主要代表是PTAM(Parallel Tracking and Mapping),其主要原理是從攝影圖像上捕捉特征點,檢測出平面,在上面建立虛擬的3D坐標(biāo),然后合成攝影圖像和動畫。其特點在于立體平面的檢測和圖像的合成采用并行處理方式[5]。

      (2)基于智能手機(jī)上的GPS和傳感器的增強(qiáng)現(xiàn)實技術(shù)。通過GPS獲取當(dāng)前位置的經(jīng)緯度和高度,通過方向傳感(Orientation Sensor)獲取面向的方向和傾斜的角度,然后根據(jù)這些位置信息疊加相關(guān)信息[4]。目前荷蘭SPRXmobile公司研發(fā)設(shè)計的增強(qiáng)現(xiàn)實手機(jī)瀏覽器Layar、Wikitude公司開發(fā)的Wikitude drive與Wikitude World Browser等都基于這種技術(shù)。

      本文采用基于智能手機(jī)的GPS和傳感器的增強(qiáng)現(xiàn)實技術(shù)來實現(xiàn)戶外導(dǎo)航系統(tǒng)功能。

      1.2Android手機(jī)傳感器原理

      目前大多數(shù)Android智能手機(jī)都配備有測量運動、方向和環(huán)境的傳感器。包括:加速度傳感器、磁力傳感器、方向傳感器、陀螺儀傳感器、溫度傳感器等[6]。

      本系統(tǒng)主要采用方向傳感器。當(dāng)設(shè)備保持默認(rèn)方向時(見圖3),X軸指向屏幕面板的外部,Y軸水平向右,Z軸垂直向上。在方向傳感器SensorEvent類中的Values的3個值分別對應(yīng)3個坐標(biāo)軸的角度數(shù)據(jù),含義如下[7]:

      Values[0]:方向角的大小,也就是手機(jī)繞著X軸旋轉(zhuǎn)的角度。Values[0]的取值范圍為0~360。0或360表示手機(jī)朝向正北;90表示手機(jī)朝向正東;180表示手機(jī)朝向正南;270表示手機(jī)朝向正西。

      Values[1]:傾斜角的大小,也就是手機(jī)繞著Y軸旋轉(zhuǎn)的角度。Values[1]的取值范圍為-180~180。當(dāng)手機(jī)屏幕朝上水平放置時,Values[1]的值為0;將手機(jī)頭部抬起,繞Y軸旋轉(zhuǎn),當(dāng)手機(jī)屏幕朝下水平放置時,Values[1]的值為180;將手機(jī)尾部抬起,繞Y軸旋轉(zhuǎn),當(dāng)手機(jī)屏幕朝下水平放置時,Values[1]的值為-180[6]。

      Values[2]:側(cè)翻角大小,也就是手機(jī)繞Z軸旋轉(zhuǎn)的角度。Values[2]的取值范圍為-90~90。當(dāng)手機(jī)水平放置時,Values[2]的值為0;當(dāng)手機(jī)屏幕面向左側(cè)時,Values[2]的值為-90;當(dāng)手機(jī)屏幕面向右側(cè)時,Values[2]的值為90。

      1.3Android定位原理

      本系統(tǒng)使用Android手機(jī)自帶的GPS進(jìn)行粗略定位,同時也使用高德地圖提供的定位SDK進(jìn)行精確定位。定位的基本原理:當(dāng)應(yīng)用程序向定位SDK發(fā)起定位請求時, 定位SDK會根據(jù)當(dāng)前的GPS、WiFi信息生成相對應(yīng)的定位依據(jù)。如果需要, 定位SDK也會向定位服務(wù)器發(fā)送網(wǎng)絡(luò)請求,然后根據(jù)請求的定位依據(jù)推算出對應(yīng)的坐標(biāo)位置,生成定位結(jié)果后返回給定位SDK[8]。

      2系統(tǒng)實現(xiàn)

      2.1系統(tǒng)總體框架

      系統(tǒng)流程如圖4所示。

      2.2地圖定位

      在MainActivity中調(diào)用高德地圖的地圖SDK和定位SDK。首先進(jìn)行地圖初始化,加載地圖,通過LocationManagerProxy每隔固定時間發(fā)起一次定位請求。再通過OnLocationChangedListener中onLocationChanged()方法使用aMapLocation.getLatitude()和aMapLocation.getLongitude()獲得經(jīng)緯度;AMapLocation.getExtras() 方法獲取位置的描述信息,包括省、市、區(qū)以及街道信息,并以空格分隔。最后將地圖中心定位到該位置。地圖可進(jìn)行縮放。運行效果如圖5所示。

      2.3路線規(guī)劃

      點擊圖5中的出發(fā)按鈕,跳轉(zhuǎn)到RouteActivity進(jìn)行路線規(guī)劃。路線規(guī)劃有3種模式可以選擇,分別為公交模式、駕車模式、步行模式。為了便于測試,我們只選擇步行模式??梢赃x擇輸入起點和終點或者在地圖上點擊起點和終點。為了提高精確度,對起點和終點附近的興趣點進(jìn)行搜索,并顯示在ListView上讓用戶點擊確認(rèn)。界面如圖6所示。以起點為例,點擊確認(rèn)后,通過RouteSearchPoiDialog獲得startpoiItem,再通過startpoiItem.getLatLonPoint()方法轉(zhuǎn)換成起點的經(jīng)緯度。獲得起點和終點的經(jīng)緯度,用searchRouteResult(LatLonPoint startPoint,LatLonPoint endPoint)方法進(jìn)行路徑規(guī)劃。再通過回調(diào)方法onWalkRouteSearched()獲取路徑WalkPath,并將路徑的節(jié)點WalkRouteOverlay覆蓋在地圖上,運行效果如圖7所示。

      2.4增強(qiáng)現(xiàn)實導(dǎo)航

      通過路徑規(guī)劃獲取路徑WalkPath,路徑節(jié)點列表由walkPath.getSteps() 獲得。通過Intent將其傳遞到NaviActivity中。

      在NaviActivity中先開啟攝像頭,創(chuàng)建一個相機(jī)預(yù)覽的類cameraPreview,繼承SurfaceView類,并實現(xiàn)SurfaceHolder接口。SurfaceHolder.Callback()方法進(jìn)行預(yù)覽。然后根據(jù)Intent傳遞過來的stepList,通過stepList.get(i).getAction()可獲取一個節(jié)點的導(dǎo)航信息。根據(jù)其判斷加載直行箭頭、左轉(zhuǎn)箭頭或者右轉(zhuǎn)箭頭(箭頭通過Android的Graphics類繪制而成)。本次測試中獲取的第一個節(jié)點導(dǎo)航信息是左轉(zhuǎn),所以加載左轉(zhuǎn)箭頭,并用TextView將詳細(xì)的導(dǎo)航信息顯示出來,效果如圖8所示。

      2.5傳感器實時導(dǎo)航

      從圖8可以看出預(yù)先設(shè)定的預(yù)覽屏幕是橫屏,但是用戶在導(dǎo)航過程中不可能將手機(jī)姿態(tài)一直保持水平狀態(tài),所以需要利用手機(jī)的傳感器數(shù)據(jù),使箭頭根據(jù)手機(jī)姿態(tài)的變化而旋轉(zhuǎn),實時指向正確的前進(jìn)方向。首先要注冊和監(jiān)聽方向傳感器,當(dāng)傳感器變化時,在SensorEventListener中獲取傳感器變化的參數(shù)數(shù)組。調(diào)用SensorManager.getRotationMatrix方法獲取旋轉(zhuǎn)矩陣,然后調(diào)用 SensorManager.getOrientation方法獲取有手機(jī)方位信息的參數(shù)數(shù)組。將數(shù)組轉(zhuǎn)為角度信息,對應(yīng)圖3的X、Y、Z軸信息。把數(shù)組回調(diào)給繪制箭頭的類ArrowView,控制箭頭的旋轉(zhuǎn)。手機(jī)橫屏旋轉(zhuǎn)后的效果如圖9和圖10所示。

      最后當(dāng)用戶接近路徑的下一個節(jié)點時,用Android定時器對導(dǎo)航信息和箭頭進(jìn)行刷新。

      3結(jié)語

      本系統(tǒng)在Android平臺下,采用高德地圖接口實現(xiàn)地圖定位和路線規(guī)劃功能,并采用基于GPS和方向傳感器的增強(qiáng)現(xiàn)實技術(shù)將指引箭頭和路況合成渲染,給予用戶更直觀的導(dǎo)航體驗。

      圖9手機(jī)旋轉(zhuǎn)45度圖10手機(jī)旋轉(zhuǎn)90度

      本系統(tǒng)還可擴(kuò)展到大型場所的室內(nèi)導(dǎo)航,也可以把景點作為興趣點應(yīng)用于旅游景區(qū)導(dǎo)航。

      參考文獻(xiàn)參考文獻(xiàn):

      [1]增強(qiáng)現(xiàn)實[EB/OL].http://wenku.baidu.com/view/c1ce3cb271fe 910ef12df8d2.html.

      [2]張振穎.增強(qiáng)現(xiàn)實技術(shù)在產(chǎn)品服務(wù)系統(tǒng)設(shè)計中的應(yīng)用與研究[D].長沙:湖南大學(xué),2012.

      [3]白慧東.嵌入式增強(qiáng)現(xiàn)實系統(tǒng)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2010.

      [4]曾浩.基于Android平臺的增強(qiáng)現(xiàn)實導(dǎo)航軟件的設(shè)計與實現(xiàn)[D].長沙:湖南大學(xué),2012.

      [5]孫俊.虛擬物體與視頻圖像融合算法在交通事故再現(xiàn)中的研究[D].南京:東南大學(xué),2013.

      [6]江亞炬.基于移動增強(qiáng)現(xiàn)實的導(dǎo)航系統(tǒng)的設(shè)計與實現(xiàn)[D].青島:中國海洋大學(xué),2014.

      [7]RAGHAVSOOD.Pro Android Augmented Reality[M].America,Apress,2012.

      [8]烏錚.基于Android平臺的手游社交應(yīng)用客戶端的設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2014.

      責(zé)任編輯(責(zé)任編輯:杜能鋼)

      猜你喜歡
      Android系統(tǒng)增強(qiáng)現(xiàn)實技術(shù)
      基于信息技術(shù)下的增強(qiáng)現(xiàn)實技術(shù)探究
      增強(qiáng)現(xiàn)實技術(shù)在幼兒立體書研發(fā)中的應(yīng)用
      基于污點傳播動態(tài)分析的Android安全系統(tǒng)研究
      Android系統(tǒng)上的移動互聯(lián)網(wǎng)集成平臺開發(fā)機(jī)制
      Android系統(tǒng)核心管理工具設(shè)計與實現(xiàn)
      Android下的機(jī)械式電表數(shù)字識別技術(shù)研究
      媒體融合背景下增強(qiáng)現(xiàn)實技術(shù)對高校學(xué)報轉(zhuǎn)型發(fā)展的創(chuàng)新推動
      基于Android系統(tǒng)的掌上班級課表與學(xué)生考勤管理系統(tǒng)
      基于GPS和iBeacon的智能校園信息發(fā)布平臺設(shè)計與實現(xiàn)
      增強(qiáng)現(xiàn)實技術(shù)在移動學(xué)習(xí)中的應(yīng)用芻議
      洛南县| 涟水县| 樟树市| 额济纳旗| 固阳县| 高安市| 来宾市| 甘谷县| 仪陇县| 阿勒泰市| 辛集市| 鄂托克旗| 西贡区| 区。| 南木林县| 礼泉县| 太湖县| 丁青县| 尉氏县| 聂拉木县| 乃东县| 井研县| 汉中市| 微博| 赫章县| 沈丘县| 胶州市| 霸州市| 凤翔县| 资兴市| 松滋市| 太和县| 平安县| 曲阜市| 芜湖市| 定日县| 仙游县| 吴旗县| 潞城市| 泰安市| 利津县|