李石磊,杜明義,劉艷巍,于曉坡
(北京建筑工程學(xué)院“現(xiàn)代城市測繪”國家測繪地理信息局重點(diǎn)實(shí)驗(yàn)室,北京 100044)
目前GIS技術(shù)發(fā)展迅速,已經(jīng)在社會生活中的各個領(lǐng)域得到了廣泛應(yīng)用。但傳統(tǒng)二維地圖只對處于三維空間中的各種地理對象全部進(jìn)行向二維平面投影的簡化處理,導(dǎo)致第三維方向(即垂直方向)上的幾何位置信息、空間拓?fù)湫畔⒑筒糠终Z義信息的損失,不能完整地反映客觀世界,同時(shí)二維地圖的抽象多義性,給我們認(rèn)識空間信息帶來了一定的困難[1]。而傳統(tǒng)的三維地圖一般采用對空間實(shí)體進(jìn)行構(gòu)建三維模型達(dá)到三維的效果。但建立三維模型工作量大、建設(shè)周期長、制作成本高、不利于在網(wǎng)絡(luò)上傳輸。
而使用全景圖像構(gòu)建出的三維場景具有真實(shí)性強(qiáng)、對播放設(shè)備要求低、開發(fā)周期短、交互性強(qiáng)、畫面質(zhì)量高等特征,并且它以占98%網(wǎng)絡(luò)播放市場的Flash播放器為載體,對真實(shí)場景拍攝捕捉,可以觀看整個場景空間的所有圖像信息,無視覺死角,用戶可通過鼠標(biāo)任意放大縮小、隨意拖動,以多角度、全方位和動態(tài)的形式體現(xiàn)在地圖上,使人們在查詢GIS空間信息的同時(shí)提供圖文并茂的空間位置上地理實(shí)體的信息。本文以北京市西城區(qū)城市運(yùn)行管理系統(tǒng)影像管理平臺開發(fā)為例,全面闡述全景影像與GIS的集成的實(shí)現(xiàn)方法。
全景圖像是一種全新的圖像組織模式,指視點(diǎn)固定,視線向任意方向運(yùn)動時(shí)所觀察到的圖像,它記錄了虛擬相機(jī)運(yùn)動時(shí)從各個方向上所能獲得的圖像,可描述完整的周圍環(huán)境信息[2]。
根據(jù)全景圖像分辨率的不同,可以把全景圖像分為單分辨率全景圖像和多分辨率全景圖像。利用數(shù)碼相機(jī)單次采集的圖像就是單分辨率全景圖像;而通過改變焦距多次采集的圖像是多分辨率全景圖像,多分辨率圖像比單分辨圖像具有更好的不同尺度的分辨率。而根據(jù)圖像投影方式的不同,全景圖像可以分為柱面、球面和多面體全景圖像三大類,這三類圖像分別把視點(diǎn)空間看做是圓柱體、球體和多面體[3-4]。
(1)柱面全景圖像
該全景圖像在水平方向的視角是360°,但由于沒有上端和下端兩部分場景,用戶不能在垂直方向進(jìn)行觀看,所以柱面全景圖像垂直視角小于180°。
(2)球面全景圖像
把普通照相機(jī)拍攝到的圖像經(jīng)過拼接形成一個球體的形狀,即是球面全景圖像,其視角是全視角(即360*180)。
(3)立方體全景圖像
以景物中心作為固定點(diǎn)來觀察整個地理空間中的實(shí)體場景,并將周圍場景的圖像信息記錄在以該點(diǎn)為中心的立方體上,即是立方體全景圖像。立方體全景圖像是由6幅廣角為90°的圖像組成。
因柱面全景圖像垂直方向視角受到限制,雖然立方體全景圖像在構(gòu)建虛擬環(huán)境時(shí)速度和質(zhì)量都較高,但是其圖像的獲取較為困難,鑒于以上原因本文以球面全景圖像為例,結(jié)合現(xiàn)有項(xiàng)目的開發(fā)來闡述與GIS的集成。
球面全景圖的投影是將魚眼照片上的點(diǎn)映射到球面模型上(如圖1所示),所有的投影線都是與球面垂直的,所以沒有如傳統(tǒng)平面圖像中的光軸[5],球面視圖中每個可見的空間點(diǎn),在球面投影中都能被展現(xiàn)出來。
圖1 球面投影
如圖1所示,球的半徑為f,假設(shè)相機(jī)位于球體中心,相機(jī)投影的方向由極角θ(如圖1,相機(jī)視線與Z軸的夾角)和方位角φ(如圖1,相機(jī)視線在XY平面內(nèi)的投影與X軸的夾角)來決定。在球面投影中,球面坐標(biāo)系與相機(jī)坐標(biāo)系是一樣的。如果P在世界坐標(biāo)系中的坐標(biāo)為:
由此,我們可以通過該公式算出全景圖像上任意點(diǎn)在該球面中的投影點(diǎn)p的坐標(biāo)。
全景圖像的制作過程主要有三步:首先拍攝所需要的全景圖像,其次將圖像按照一定的投影方式進(jìn)行投影,最后拼接成全景圖像。全景圖像的制作流程如圖2所示。
(1)全景圖像的拍攝
普通相機(jī)拍攝球面全景圖像時(shí),首先把相機(jī)固定在三腳架上,以相機(jī)的鏡頭為旋轉(zhuǎn)中心,分別以世界坐標(biāo)系中的X軸和Y軸為旋轉(zhuǎn)軸,旋轉(zhuǎn)相機(jī)進(jìn)行拍攝。具體可以采用如下:首先將相機(jī)向上仰起60°,平轉(zhuǎn)相機(jī)一周進(jìn)行拍攝;然后平放相機(jī),再平轉(zhuǎn)相機(jī)一周進(jìn)行拍攝;最后將相機(jī)向下傾斜60°,平轉(zhuǎn)相機(jī)一周進(jìn)行拍攝。通過上述方法就可以完整地采樣視點(diǎn)空間中的所有景物信息。也可以利用專業(yè)的全景照相機(jī)進(jìn)行拍攝[7]。處理好的全景圖像如圖3所示。
圖2 全景圖像制作流程
圖3 全景圖像
(2)全景圖像生成
如果是普通設(shè)備采集到的圖像,需要經(jīng)過全景拼接和圖像融合才能得到全景圖像。全景圖像拼接首先對拍攝到的照片進(jìn)行投影,使它們按照一定的投影方式投影到統(tǒng)一的參考系中,參考系有立方體、圓柱形、球形等,這樣投影過的照片就有了統(tǒng)一的空間參考;其次,提取和匹配重疊區(qū)域的特征點(diǎn),通過重疊的特征點(diǎn)對圖像重疊區(qū)域進(jìn)行融合;最后,如果拍攝過程中有噪聲點(diǎn)以及光線強(qiáng)弱不均勻等原因造成的圖像丟失,還要通過圖像處理軟件(例如Photoshop)對圖像缺失部分進(jìn)行修復(fù)等。如果開發(fā)中需要對全景圖像進(jìn)行切片,還應(yīng)執(zhí)行對圖片的切片操作以及處理圖片間的過渡效果等。
如果是專用設(shè)備采集到的全景圖像,需要制定適用于全景圖像、空間定位數(shù)據(jù)以及GIS地圖數(shù)據(jù)一體化處理的流程與規(guī)范,例如空間定位數(shù)據(jù)與道路數(shù)據(jù)的容錯尺度規(guī)定與擬合算法、GPS點(diǎn)的抽稀和內(nèi)插、每個GPS點(diǎn)的視線角度計(jì)算、道路交叉口的多方向全景數(shù)據(jù)調(diào)度、根據(jù)時(shí)間匹配原則對GPS數(shù)據(jù)與全景數(shù)據(jù)進(jìn)行選取等[8]。
全景圖像與GIS集成前,我們需要對全景圖像數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,全景圖像預(yù)處理是指對全景圖像的空間數(shù)據(jù)和屬性數(shù)據(jù)進(jìn)行分類、編輯、存儲以及建立全景圖像數(shù)據(jù)庫的過程。全景圖像數(shù)據(jù)主要包括空間數(shù)據(jù)和非空間數(shù)據(jù),空間數(shù)據(jù)主要包括全景圖像空間位置信息,非空間信息主要包括全景圖像的編號、采集時(shí)間、采集地點(diǎn)以及各種文檔和報(bào)表等。全景圖像數(shù)據(jù)結(jié)構(gòu)表設(shè)計(jì)如表1所示。
全景圖像數(shù)據(jù)表結(jié)構(gòu) 表1
由于本文研究的全景圖像具有GIS空間地理位置信息,全景圖像數(shù)據(jù)存儲采用SQL Server 2005對數(shù)據(jù)進(jìn)行分類管理,即將全景圖像的屬性文件與時(shí)空數(shù)據(jù)分開存儲,用中間鍵進(jìn)行關(guān)聯(lián)。全景圖像數(shù)據(jù)存儲結(jié)構(gòu)如圖4所示。
圖4 全景圖像數(shù)據(jù)庫數(shù)據(jù)存儲結(jié)構(gòu)
此外,在對全景圖像數(shù)據(jù)進(jìn)行分類、編輯時(shí),要選擇合適的存儲數(shù)據(jù)類型來組織數(shù)據(jù)。常用的數(shù)據(jù)存儲文件類型有二進(jìn)制文件、文本文件、XML文件等。由于XML文件是一種嚴(yán)格的標(biāo)記文件,層次性強(qiáng)、表現(xiàn)直觀,本文采用XML文件組織全景圖像數(shù)據(jù),以Flex為開發(fā)平臺,來實(shí)現(xiàn)基于球面三維場景的實(shí)現(xiàn)。
本文以Eclipse作為開發(fā)環(huán)境,使用Flex和Papervision3D技術(shù)來完成球面全景圖像三維場景的顯示。Papervision3D是基于ActionScript的開源項(xiàng)目,目的在于實(shí)現(xiàn)絢麗美觀、功能強(qiáng)大的Flash3DWeb應(yīng)用程序,是著名的Flash3D免費(fèi)開源引擎。同時(shí),Tween-Lite類也是ActionScript開源項(xiàng)目中的一個類庫,它是一個快速的、高效的緩動引擎,實(shí)現(xiàn)對象隨時(shí)間推移模糊、漸變、旋轉(zhuǎn)等多個屬性的功能,用它對全景圖像播放時(shí)進(jìn)行美化。
Papervision3D成像主要元素是3D對象(Display-Object3D),攝像機(jī)(Camera),材質(zhì)(Material),場景(Scene),視點(diǎn)(Viewport),渲染引擎(Render)等。Papervision3D成像示意圖如圖5所示。
圖5 Papervision3D成像示意圖
實(shí)現(xiàn)基于Papervision3D全景圖像的展示,首先要對全景圖像進(jìn)行動態(tài)渲染,即將全景圖像作為紋理應(yīng)用于Papervision3D創(chuàng)建的球面對象(Sphere)上,Papervision3D創(chuàng)建的球面是一個虛擬的場景,在此虛擬場景里可以定義視點(diǎn)的位置,場景的大小,瀏覽的方式以及加載的順序等,具體過程如圖6:創(chuàng)建一個球Sphere對象;將全景圖像作為Sphere對象的紋理給球體添加紋理材質(zhì),即創(chuàng)建了一個有紋理的立體球;在球體中心放置鏡頭,設(shè)置鼠標(biāo)與虛擬場景的交互動作,用鼠標(biāo)來控制鏡頭的視角,即可實(shí)現(xiàn)全景圖像與用戶的漫游式交互。
圖6 基于papervision3D的全景圖像渲染過程
全景圖像通過papervision3D渲染展示后,我們在開發(fā)過程就可以以全景圖像名稱組成的XML文件作為參數(shù)將全景圖像與GIS二維地圖關(guān)聯(lián)起來。
本文結(jié)合現(xiàn)有項(xiàng)目,以北京市西城區(qū)ArcGIS數(shù)據(jù)作為底圖數(shù)據(jù),以 ArcGIS9.3、ArcGIS Server9.3、IIS6.0、SQL Server2005、Tomcat6.0、Ladybug3、Adobe Flash Builder 4 為技術(shù)手段來闡述全景圖像與GIS集成的關(guān)鍵技術(shù)。
首先,Ladybug3全景相機(jī)采集的全景圖片是由圖片和屬性文件組成。其全景圖片的命名方式也具有一定的特點(diǎn),形如“20120726-X-39.123-Y-116.452-1236001.jpg”,其中名稱中“20120726”是相機(jī)采集的時(shí)間,“X-39.123-Y-116.452”為相機(jī)采集地理空間實(shí)體的地理坐標(biāo),“1236001”為采集圖片的流水編號;除此以外,還有一個屬性文件,此文件詳細(xì)記錄了相機(jī)采集的時(shí)間、坐標(biāo)、流水號、采集的距離、相機(jī)的設(shè)置參數(shù)等。
其次,將全集相機(jī)采集的全景圖片的屬性信息和空間信息存入到數(shù)據(jù)庫SQL Server2005。由于SQL Server2005是關(guān)系型數(shù)據(jù)庫,不能滿足存儲GIS空間拓?fù)潢P(guān)系的需要,這里我們采用分別存儲,即將全景圖片的屬性信息和空間信息分開存儲,然后用中間鍵進(jìn)行關(guān)聯(lián)。
再次,處理地圖底圖數(shù)據(jù),發(fā)布基于ArcGIS Server9.3 for Flex的地圖服務(wù)。這里我們將北京市西城區(qū)的底圖數(shù)據(jù)用ArcGIS9.3處理后,如圖7所示。
圖7 處理后的GIS底圖
圖7中,我們可以看到全景線(可以選擇性顯示),即圖中每個點(diǎn)便對應(yīng)一張全景圖像。之后將其保存成.mxd格式文檔,用ArcGIS Server9.3將處理好的地圖發(fā)布成Mapping地圖服務(wù),這樣我們就可以將地圖在B/S架構(gòu)的環(huán)境中進(jìn)行調(diào)用。發(fā)布后的地圖服務(wù)包括地圖底圖服務(wù)(如圖8)和單圖層服務(wù)(如圖9)。
圖8 地圖底圖服務(wù)
圖9 單圖層服務(wù)
最后,我們將Ladybug3全景相機(jī)中的屬性文件組織成XML文件,本XML文件包含圖片名稱、圖片采集地理坐標(biāo)、圖片采集時(shí)間、圖片流水號,將其發(fā)布在IIS6.0下面,以提供WebService服務(wù)。此時(shí),以Adobe Flash Builder 4作為開發(fā)平臺,分別調(diào)用已發(fā)布好的地圖服務(wù)和屬性文件,準(zhǔn)備將GIS與全景圖像結(jié)合。
全景圖像與GIS結(jié)合,分成單點(diǎn)全景影像與GIS的結(jié)合和連續(xù)全景與GIS的結(jié)合。無論單點(diǎn)全景影像還是連續(xù)全景影像,與GIS結(jié)合的方式有兩種:一是利用地理坐標(biāo)與GIS結(jié)合,二是利用全景圖像拍攝的時(shí)間作為時(shí)間軸與GIS結(jié)合。全景圖像、papervision3D、GIS三者的關(guān)系如圖10所示。
圖10 全景圖像、papersion3D、GIS三者的結(jié)合的關(guān)系
在基于全景圖的三維場景做好的基礎(chǔ)上,確定三維場景所在的地理位置,然后在GIS提供的二維地圖上根據(jù)場景的地理坐標(biāo)添加三維實(shí)景場景,這樣全景圖像就與GIS二維地圖對應(yīng)了起來,就實(shí)現(xiàn)了定位到地圖上的某一點(diǎn)直接查看該點(diǎn)的全景圖像,如圖11所示。
圖11 全景圖像與GIS二維地圖關(guān)聯(lián)
另外,在全景圖像與GIS結(jié)合過程中,由于全景點(diǎn)在拓?fù)涞缆飞喜⒉皇沁B續(xù)的點(diǎn)(如圖12),而是一個個相鄰的單獨(dú)點(diǎn),為了保障全景圖像的連續(xù)性播放,需要讓按照一定距離進(jìn)行采集全景圖像的相鄰路段在拍攝全景圖像時(shí)具有一定的重合度,并以此種方式在路段上連續(xù)推進(jìn)采集。例如線段1~2間顯示全景1的數(shù)據(jù),從點(diǎn)2到點(diǎn)3顯示點(diǎn)2的數(shù)據(jù),這樣在播放中便能使全景圖像連續(xù)。
圖12 拓?fù)涞缆飞系娜包c(diǎn)
如果以全景圖像的拍攝時(shí)間作為時(shí)間軸來連續(xù)播放全景圖像,我們可以將全景圖像的拍攝時(shí)間作為GIS與papervision3D展示的橋梁,以這種方式來展示在GIS項(xiàng)目開發(fā)和應(yīng)用中重點(diǎn)關(guān)注的對象。但此種方法不容易與GIS空間信息相關(guān)聯(lián),如果要與GIS二維地圖位置信息相關(guān)聯(lián),得將全景圖像相應(yīng)的位置建立時(shí)間與位置的屬性表,實(shí)現(xiàn)以拍攝時(shí)間和定位位置信息相關(guān)聯(lián)。按照時(shí)間播放全景圖像如圖13所示。
圖13 以時(shí)間順序播放全景圖像
本文以全景圖像在北京市西城區(qū)城市運(yùn)行管理系統(tǒng)影像管理平臺中的開發(fā)為例,闡述了全景影像的制作、全景影像的展示、與GIS的集成以及全景影像在GIS中的應(yīng)用,文章最后展示了利用此技術(shù)將北京市街景(它也是球面全景圖像)應(yīng)用到已開發(fā)系統(tǒng)中的實(shí)例,實(shí)現(xiàn)了北京市西城區(qū)主要道路和著名景點(diǎn)的全景圖像全覆蓋。全景圖像與GIS的集成解決了傳統(tǒng)二維地圖中可視化的缺陷,更利于以B/S模式在網(wǎng)絡(luò)上傳輸,提供給人們身臨其境的三維效果,豐富了GIS應(yīng)用查詢方式。
[1]黃健熙,郭利華,龍毅等.二維地圖與三維虛擬場景的互響應(yīng)設(shè)計(jì)與實(shí)現(xiàn)[J].測繪信息與工程,2003,28(1):33~34.
[2]張茉.基于計(jì)算機(jī)的數(shù)字重構(gòu)全景成像技術(shù)研究[D].長春:長春理工大學(xué),2009:8~20.
[3]董雪琴,劉士華.用全景圖來構(gòu)建虛擬現(xiàn)實(shí)系統(tǒng)[J].涼山大學(xué)學(xué)報(bào),2001,3(4):17 ~19.
[4]吳霞.廣域網(wǎng)監(jiān)視系統(tǒng)中的全景圖生成技術(shù)研究[D].南京:南京理工大學(xué),2008:20~22.
[5]Shigang Li,F(xiàn)ukumori K.Spherical Stereo for the Construction of Immersive VR Environment[C].IEEE Virtual Reality 2005 Conference.Bonn,Germany:IEEE Computer Society Visualization and Graphics Technical Committee,2005:217 ~222.
[6]楊燕,王雪瑞,戴青等.球面全景圖像生成技術(shù)的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2007,24(10):164~165.
[7]馮海波.虛擬全景空間生成技術(shù)研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2007:10~40.
[8]李海亭,張淼,彭清山.城市地理信息系統(tǒng)中的全景地圖技術(shù)研究[J].城市勘測,2011(3):40~41.