王俊 李明建 鄒揚慶 羅紅霞
摘要針對傳統(tǒng)GIS應用信息顯示直觀性不強的缺點,在GIS應用中引入增強現(xiàn)實技術(shù),研究了地理要素實現(xiàn)增強現(xiàn)實顯示的關(guān)鍵技術(shù)及方法,并以Windows Phone開發(fā)平臺為例,實現(xiàn)了具有地理坐標信息的地理要素的增強現(xiàn)實顯示系統(tǒng)。結(jié)果證明,增強現(xiàn)實技術(shù)與GIS的結(jié)合能夠很好的將真實環(huán)境與虛擬地理要素信息融合起來,使得地理要素的識別更具直觀性。
關(guān)鍵詞 增強現(xiàn)實;GIS;地理要素;虛實融合
中圖分類號S127文獻標識碼A文章編號0517-6611(2014)09-02783-03
作者簡介王?。?988- ),男,河南信陽人,碩士研究生,研究方向:遙感與GIS開發(fā)及其應用。*通訊作者,副教授,博士,從事生態(tài)、環(huán)境與遙感GIS應用。
GIS系統(tǒng)中最常用的一項功能就是基于地理位置的搜索,然而傳統(tǒng)的GIS搜索主要是在二維平面地圖上進行,搜出的結(jié)果也被標注在二維平面地圖上,需要人為的參與標識物的辨別,由于直觀性不強,對于地理知識較弱的人們在識別上有一定的困難,甚至專業(yè)人員在復雜的環(huán)境下識別也會有一定的難度。近些年來,隨著三維GIS的發(fā)展,通過建立真實環(huán)境的三維虛擬模型代替二維地圖[1],在標識物辨別的直觀性上取得較大進步。雖然三維GIS在GIS可視化研究上取得了一定的進展,但是三維虛擬模型的創(chuàng)建在人力、物力上耗費巨大,同時對承載GIS系統(tǒng)的硬件要求也較高,以及同真實環(huán)境相比在顏色、光澤、材質(zhì)等特性上有一定的差異,無法滿足人們直接與真實環(huán)境交互的愿望。其實真實環(huán)境本身就是一個復雜的“三維空間地圖”,如果把真實環(huán)境作為GIS操作的窗口,將虛擬信息標注在真實環(huán)境上,將會大大提高地理要素辨別的直觀性。
這種假設(shè)可以通過引入增強現(xiàn)實(Augmented Reality,簡稱AR)技術(shù)實現(xiàn),增強現(xiàn)實技術(shù)是一種通過將計算機產(chǎn)生的圖形、文字注釋等虛擬信息有機地融合到使用者所看到的真實世界景象中,對人的視覺系統(tǒng)進行景象增強或擴張的技術(shù)[2]。通俗地講,就是當使用者打開增強現(xiàn)實應用后,就會看到攝像頭所拍攝的真實世界視頻流,同時在視頻流里面還可以看見相關(guān)虛擬圖形和文字信息疊加在相關(guān)物體上,從而使真實世界更加豐富和多樣化。增強現(xiàn)實技術(shù)的發(fā)展經(jīng)歷了從早期在室內(nèi)研究、采用設(shè)備昂貴、不靈動以及特定用途領(lǐng)域如軍事、醫(yī)療[3]等向室外研究、采用設(shè)備便宜便攜的移動端以及大眾化應用方向發(fā)展。增強現(xiàn)實技術(shù)的大眾化應用得益于移動終端設(shè)備的發(fā)展和普及,尤其是以智能手機終端為代表的移動設(shè)備的發(fā)展和普及,其強大的傳感器、GPS和指南針等功能的終端完全滿足了增強現(xiàn)實技術(shù)的硬件要求[4]。
由于增強現(xiàn)實技術(shù)直接把真實環(huán)境作為視圖背景,省去了復雜三維模型創(chuàng)建,提高了人與真實環(huán)境之間的互動,同時移動終端如智能手機的發(fā)展為在其上創(chuàng)建增強現(xiàn)實應用提供了條件?;诖?,筆者針對目前傳統(tǒng)GIS信息顯示直觀性不強等缺點,在GIS系統(tǒng)中引入增強現(xiàn)實技術(shù),研究了如何實現(xiàn)GIS系統(tǒng)中地理要素的增強現(xiàn)實實現(xiàn)關(guān)鍵技術(shù)與方法,同時以Windows Phone開發(fā)平臺為例,實現(xiàn)了具有地理坐標屬性的地理要素的增強現(xiàn)實顯示系統(tǒng)。
1關(guān)鍵技術(shù)研究
實現(xiàn)GIS系統(tǒng)地理要素的增強現(xiàn)實顯示,其關(guān)鍵技術(shù)是如何實現(xiàn)把計算機產(chǎn)生的圖形、文字等虛擬信息疊加到真實環(huán)境中,即虛實融合技術(shù)。目前,實現(xiàn)虛實融合技術(shù)的方法主要有基于硬件跟蹤器的注冊方式、基于視覺的圖像注冊方式、混合注冊方式3種。該研究考慮到移動GIS地理要素離不開地理位置的支持,而智能移動手機終端配有加速計、陀螺儀等傳感器可以完美地支持AR技術(shù)等特性,將采用基于硬件跟蹤器的圖像注冊方式完成虛實融合?;谟布櫟膱D像注冊方式撇開了復雜的圖像匹配算法計算,根據(jù)攝像頭的位置和姿態(tài)數(shù)據(jù)能夠快速確定虛擬物體在真實環(huán)境中的位置,降低系統(tǒng)的延遲性,能夠很好地適應智能手機終端配置要求[5]。
完成虛實融合需要涉及到世界坐標系、攝像機坐標系(視圖坐標系)、虛擬物體空間坐標系、投影平面坐標系、屏幕二維平面坐標系5個坐標系之間的變換。如圖1所示,x、y、z表示世界坐標系;ε、η、δ表示虛擬物體空間坐標系,該坐標系用來對所添加的虛擬物體進行幾何描述;x′、y′、z′(左手坐標系)表示攝像機坐標系,此坐標系的o′、z′軸與觀察者視線方向重合;u、v 是一個二維平面坐標系,表示投影平面坐標系并且和屏幕坐標系處于同一平面,垂直于o′、z′軸投影面,即為觀察者看到的畫平面[6-7]。
2增強現(xiàn)實在GIS系統(tǒng)中的實現(xiàn)
在GIS系統(tǒng)中,增強現(xiàn)實的實現(xiàn)需要經(jīng)過這樣的一系列流程,如圖2所示。首先作為GIS應用的窗口,必須要有與真實世界交互的窗口,因此獲取攝像頭應用權(quán)限,獲取視頻源顯得尤為重要;其次,需要提供設(shè)備準確的地理位置和姿態(tài)數(shù)據(jù),以便正確地疊加虛擬物體,這兩項數(shù)據(jù)可以通過設(shè)備的GPS和電子羅盤數(shù)據(jù)獲??;接著根據(jù)攝像機視角建立相機坐標系下的取景范圍,并判斷虛擬物體是否在取景范圍內(nèi)。如果在取景范圍內(nèi)則對虛擬物體進行渲染,然后輸出圖像并顯示;如果不在取景范圍內(nèi),則虛擬物體不顯示并實時根據(jù)設(shè)備的位置和姿態(tài)再次進行判斷。
2.1相機取景范圍的建立攝像機的取景范圍,簡單來說就是攝像機能夠捕獲的真實世界范圍,可以通過定義兩種矩陣實現(xiàn),分別為視圖矩陣和投影矩陣。視圖矩陣也稱作攝像機矩陣,主要是描述攝像機的位置、攝像機朝向的目標位置、向上的方向信息,主要功能相當于把攝像機固定下來;投影矩陣用于描述攝像機的視角、成像的長寬比、投影參數(shù)這3個屬性,相當于把鏡頭和像紙信息固定下來。
在計算機編程中,可以使用XNA類庫中Matrix類來創(chuàng)建這兩種矩陣,Matrix類提供了一組以Create開頭的靜態(tài)方法用于創(chuàng)建所需要的矩陣類型,視圖矩陣可以使用Matrix類中的CreateLookAt()方法創(chuàng)建,方法原型為:public static MatrixCreateLookAt(Vector3 cameraPosition,Vector3 cameraTarget,Vector3 cameraUpVector)。該方法中定義的3個參數(shù)分別對應前述的攝像機位置、朝向的目標位置、向上的方向3種信息。
同樣,投影矩陣也可以通過Matrix類提供的CreatePerspectiveFieldOfView()方法來創(chuàng)建,方法原型為:public static MatrixCreatePerspectiveFieldOfView(float fieldOfView,float aspectRatio,float nearPlaneDistance,float farPlaneDistance)。該方法定義了4個參數(shù),參數(shù)fieldOfView為視角,也就是可視范圍,以弧度制來表現(xiàn),通常設(shè)為π/4;參數(shù)aspectRatio為成像的長寬比,一般通過獲取視頻源區(qū)域view的長寬比來設(shè)定,這里并不是屏幕的長寬比;參數(shù)nearPlaneDistance為攝像機能夠觀察到的最近距離,可以通過查看攝像機參數(shù)信息獲??;參數(shù)farPlaneDistance為攝像機鏡頭能夠觀察到的最遠距離,同樣通過查看攝像機參數(shù)信息獲取。
2.2判斷虛擬物體是否在取景范圍內(nèi)視圖矩陣和投影矩陣的定義確定了攝像機的取景范圍,在判定虛擬物體是否在取景范圍之前,還需要引入世界矩陣。世界矩陣的主要作用是確定虛擬物體在世界空間坐標系里面的相對位置,在XNA中世界矩陣使用Matrix類中CreateWorld()方法創(chuàng)建,方法原型為:public static MatrixCreateWorld(Vector3 position,Vector3 forward,Vector3 up)。該方法中定義了3個Vector3參數(shù),其中第1個參數(shù)position表示虛擬物體在世界中所處的三維坐標,一般設(shè)置為系統(tǒng)默認的(0,0,0),也就是坐標原點;第2個參數(shù)forward表示虛擬物體的朝向向量,一般根據(jù)虛擬物體的朝向確定;第3個參數(shù)up表示哪個方向是虛擬物體的向上方向,一般設(shè)置為(0,0,1),也就是Y軸正方向。
定義好世界矩陣后,結(jié)合前面定義的視圖矩陣和投影矩陣一起將虛擬物體進行投影變換,變換方法采用Viewport的Project()方法,原型為:public static ViewportProject(Vector3 source,Matix projection,Matrix view,Matrix world)。該方法中參數(shù)source為虛擬物體在世界中所處的三維坐標,參數(shù)projection、view與前面定義的投影矩陣和視圖矩陣相同,而參數(shù)world與所定義的世界矩陣并不相同,而是世界矩陣與姿態(tài)矩陣相乘后的矩陣,這是因為在晃動或者翻轉(zhuǎn)手機的時候空間在不斷的變換。世界矩陣在和前面獲取的姿態(tài)矩陣做乘積運算時先要對姿態(tài)矩陣進行繞X軸90°的旋轉(zhuǎn)變換,目的是讓姿態(tài)矩陣坐標系同XNA右手坐標系相同,從而達到正確坐標轉(zhuǎn)換。該方法返回一個Vetctor3對象,其中X、Y為已經(jīng)投影到Viewport上的點坐標,Z值表示該點的深度,如果該值<0或者>1,則該點位于相機“后面”,將無法觀測到;如果該值≥0且≤1,則該點位于相機“前面”,也就是處在視野范圍內(nèi)。通過上述方法可對可視的虛擬物體進行正確的疊加處理。
疊加出虛擬物體正確的位置后,為了使虛擬物體與真實的環(huán)境更加融合,還需要對虛擬物體進行相關(guān)的渲染,在XNA中可以利用BasicEffect類來對疊加的虛擬物體的顏色、光線等特效進行渲染控制。最后把渲染好的虛擬物體正確地輸出顯示,便完成了系統(tǒng)的增強現(xiàn)實顯示功能。
3增強現(xiàn)實在移動GIS系統(tǒng)中應用實例
以Windows Phone開發(fā)平臺為例,實現(xiàn)了基于位置圖像注冊的增強現(xiàn)實GIS系統(tǒng)測試版,測試版系統(tǒng)的主要功能為獲取用戶周圍具有地理坐標位置的要素(在此以查詢周圍餐飲要素為例),分別以二維地圖方式和增強現(xiàn)實方式顯示,系統(tǒng)的地圖服務采用微軟的必應中國地圖服務,測試機采用Windows Phone操作系統(tǒng)的三星S7530E,地點位于重慶市沙坪壩上橋新街。
首先,在Windows Phone虛擬機上運行程序,通過Bing Map的Search WebService獲取用戶周圍100 m范圍內(nèi)的餐飲店,分別在二維地圖和真實環(huán)境中顯示。如圖3所示,屏幕中間的黑色點為當前所在的位置,紅色標注為查詢出來的餐飲店名稱以及位置,屏幕上方為增強現(xiàn)實顯示模塊;由于虛擬機無法進行攝像頭的模擬,所以增強現(xiàn)實模塊顯示在屏幕上方,二維地圖顯示,可以根據(jù)屏幕下方的button按鈕進行控制,屏幕右上方的圓形為手機當前相對于地圖位置的朝向,有了它就可以很快辨別出在真實環(huán)境中運動的方向。
4結(jié)論
增強現(xiàn)實技術(shù)與移動GIS的結(jié)合,使得地理要素的識別更具直觀性,提高了人與真實環(huán)境的互動性。由于兩者的結(jié)合受到GPS定位精度與網(wǎng)絡(luò)信號穩(wěn)定的限制,在實際使用中虛擬物體的顯示會有一定的誤差,同時受到智能手機硬件的限制,地圖的刷新和虛擬物體的顯示會有一定的延遲。此外,該研究僅實現(xiàn)了基于地理位置點狀要素的增強,缺少三維物體的增強顯示,在接下來的研究中,將研究三維物體在增強現(xiàn)實GIS系統(tǒng)中的實現(xiàn)。