李永亮,王山東,朱周華,燕 兵
(1.河海大學 地球科學與工程學院,江蘇 南京 210098;2.江蘇省測繪地理信息局, 江蘇 南京 210098;3.華北水利水電大學,河南 鄭州 450045)
基于圖像繪制技術的全景漫游系統(tǒng)構建
李永亮1,王山東1,朱周華2,燕 兵3
(1.河海大學 地球科學與工程學院,江蘇 南京 210098;2.江蘇省測繪地理信息局, 江蘇 南京 210098;3.華北水利水電大學,河南 鄭州 450045)
首先闡述了基于圖像繪制技術構建全景漫游系統(tǒng)過程中所涉及到的關鍵技術,然后以作者所在單位河海大學為例詳細展示了全景漫游系統(tǒng)設計與實現(xiàn)的全過程。
圖像繪制技術;全景漫游系統(tǒng);虛擬現(xiàn)實;虛擬城市
當前,隨著計算機圖形學及虛擬現(xiàn)實技術的快速發(fā)展,基于圖像的繪制技術(image based rendering,IBR)成為計算機圖像處理學界比較熱門的研究課題[1]。全景漫游技術將繞固定視點采集到的圖像序列進行投影變換、圖像匹配、圖像融合、全景映射等處理,生成無縫的全景圖像,最后在全景顯示引擎中形成三維虛擬仿真空間,供終端用戶瀏覽體驗。這種方法不僅效果逼真,而且構建方便,與場景的復雜程度無關,已被廣泛應用于房地產(chǎn)、旅游業(yè)、虛擬城市、智慧城市等領域[2]。本文借助全景云臺、單反相機、魚眼鏡頭等硬件設備及Adobe Photoshop CS5、PTGuiPro、Krpano、Notepad Plus等軟件工具,以河海大學校園全景漫游系統(tǒng)為例,詳細介紹基于圖像繪制技術構建全景漫游系統(tǒng)的制作過程與涉及的關鍵技術。
1.1 球面投影變換
由于圖像是在不同視角上采集的,所以它們的投影面存在一定夾角[3],為維持現(xiàn)實場景中的空間約束關系,必須在拼接前把它們統(tǒng)一投影到一個曲面上,圖像信息以曲面的形式保存在計算機上;投影完成后,去掉旋轉關系,保留平移關系,為圖像拼接做好準備[4]。
根據(jù)投影曲面的不同,可以將當前常用的全景投影方式分為柱面投影變換、球面投影變換和立方體投影變換,其中球面投影變換應用最為廣泛,也是本文采用的投影方式。
由于圖像采集通過固定視點環(huán)繞拍攝的方式進行,所以局部圖像均勻分布在以視點為球心、焦距為半徑的球切面上。如圖1,假設相機坐標系與世界坐標系分別為o-xyz、O-XYZ,圖像采集的方向為(α,β),局部圖像上某像素點P在相機坐標系中的坐標為(x,y,f),則其在世界坐標系下的坐標應為:
圖1 球面投影變換
根據(jù)實景像素點P與球面投影點P′之間的對應關系,建立直線的參數(shù)方程:
則球面方程為:
其中f可利用Levenberg-Marquar算法計算[5],也可采用等距離匹配算法估算[6]。
1.2 圖像無縫拼接
圖像拼接的實質是根據(jù)相鄰圖像的公共控制點,將圖像盡可能對齊拼合在一起,涉及的匹配算法有Harris檢測算法、基于Harr小波系數(shù)索引的K-鄰近查找算法、相關圖像之間魯棒性變換參數(shù)的估計等[7]。為保證拼接質量,一般要求相鄰圖像有30% ~50%的重疊區(qū)域。
圖像融合的目的就是把匹配后的兩幅圖像根據(jù)對準的位置合并為一幅圖像,并消除圖像亮度或灰度的不連續(xù)性,使拼接結果達到無縫的要求[8]。圖像融合的方法有平均值法、加權平均值法、多分辨率樣條法和重疊區(qū)域線性過渡法等,其中最常用的是加權平均值法。假設相鄰圖像I1、I2的重疊區(qū)域為[x1,x2],加權函數(shù)分別為f1(x)、f2(x),則融合后圖像的像素值為 I(x,y)=f1(x)I1(x,y)+f2(x)I2(x,y)[9],其中f1(x)、f2(x)的取值范圍為[0,1]且f1(x)+f2(x)=1。圖像融合處理前后對比效果如圖2所示。
圖2 圖像融合處理前后對比圖
1.3 球面全景映射
隨著球形全景瀏覽技術的發(fā)展,360°×180°球形全景圖像已經(jīng)成為全景行業(yè)的一種標準。為了得到球面全景的二維圖像,我們還需要將拼接好的全景圖像按照經(jīng)緯度映射到一個矩形紋理圖像上,這一過程就是球面全景映射。其中,經(jīng)度映射為矩形的水平坐標,緯度映射為矩形的垂直坐標[10],原理如圖3所示,二維圖像如圖4所示。
圖3 球面全景映射原理
顯然,除赤道線和垂直線仍是直線外,其余線都發(fā)生了不同程度的彎曲。從赤道到兩極,橫向拉伸不斷加劇,尤其是兩個極點被拉伸為扁平的網(wǎng)格,分布在圖像的整個上、下部邊緣。
圖4 球面全景的二維圖像
1.4 全景瀏覽引擎
德國的Krpano Panorama Viewer全景瀏覽引擎采用的是基于Flash和HTML5的三維全景顯示技術,不僅支持Windows、Mac、Linux等桌面瀏覽,而且在iPhone、iPad、Android等移動設備上也可以瀏覽,是當前較為流行的互動三維全景瀏覽引擎。
Krpano的顯示效果和場景配置是分開處理的,前者采用Adobe公司完全面向對象的編程語言Action Script編寫,語法類似JavaScript;后者采用可擴展的標記語言XML進行描述,用戶只需改變XML文件即可實現(xiàn)場景中的數(shù)據(jù)綁定和動畫控制。XML是一種通用標準,由其組織的全景空間也可被外部平臺使用,具有良好的可擴展性,使得組建大規(guī)模全景空間成為可能[11]。
全景漫游系統(tǒng)的制作涉及圖片無縫拼接、立方體轉換、全景圖瀏覽、場景編輯、網(wǎng)上發(fā)布等諸多技術,需要依賴一定的硬件設備和軟件來實現(xiàn),如圖5所示。
圖5 全景漫游系統(tǒng)實現(xiàn)過程
2.1 圖像采集
圖像采集主要涉及攝影器材的選取和組裝、參數(shù)的調整和設置、場景圖像的拍攝等工作,其中全景云臺節(jié)點的調節(jié)以及場景圖像拍攝方案的選擇是重點。作者采用佳能EOS600D單反相機+8 mm Walimex魚眼鏡頭+美達斯V-POD全景云臺進行圖像的采集。
2.1.1 全景云臺節(jié)點的調節(jié)
全景云臺節(jié)點(即相機的光學中心)的調節(jié)是保證拍攝效果的重要手段,目的是使相機鏡頭的節(jié)點永遠處于云臺的旋轉軸上,從而有效消減因節(jié)點變動導致的誤差。根據(jù)經(jīng)驗,作者總結出兩種快速實用的調節(jié)云臺節(jié)點的方法。
1)精確量測法。首先,測量相機快裝板到鏡頭軸線的距離,取下相機置于水平桌面,測量鏡頭軸線到桌面的距離,精確到0.5 mm;然后,在云臺上安裝快裝板,調節(jié)云臺水平臂的長度,使快裝板底面到云臺旋轉軸的距離等于上一步中的測量結果;最后,在鏡頭前面隔一定距離豎起兩根線,固定相機以正中重疊兩垂線取景,左右旋轉相機,讓物體停留到取景器的左邊和右邊,仔細觀察物體的重疊情況,調整前后臂至旋轉相機后無論物體在取景器的左側或右側都重疊時,節(jié)點位置就找到了,如圖6所示。
圖6 全景云臺節(jié)點位置調節(jié)
2)目測實驗法。首先,將相機固定在云臺上,站在相機前方正對云臺和相機目視觀察,調整云臺水平臂和前后臂,使相機中軸線與云臺的旋轉軸處于同一鉛錘面;然后,將相機旋轉至鏡頭朝下,從取景器中觀察云臺中軸,調整云臺使旋轉軸位于相機取景器正中央;最后,同量測法。
2.1.2 圖像拍攝方案的選擇
作者采用單反相機配以全景云臺及魚眼鏡頭進行圖像拍攝工作。魚眼鏡頭是一種特殊的超廣角鏡頭,焦距極短且視角接近180°。為了達到180°的超大視角,魚眼鏡頭的設計者不得不允許桶形畸變的合理存在[12]。綜合考慮魚眼鏡頭的超廣視角、成像質量和速度以及后期瀏覽效果,作者結合實際經(jīng)驗在傳統(tǒng)4種方案的基礎上提出了第5種方案,即將鏡頭仰角調整為5°左右,水平方向每60°取一張照片,共拍6張,既保證了成圖質量和視覺效果,又加快了拍攝速度。需要說明的是,當仰角為5°左右時天空剛好沒有盲區(qū)(黑洞),且地面盲區(qū)面積適中,故能很大程度上減少后期圖像處理的工作量,提高效率。
2.2 圖像處理
圖像處理主要涉及圖像預處理、圖像拼接、圖像優(yōu)化、立方體轉換、圖像后期處理等工作。推薦使用專業(yè)的全景拼圖軟件PTGuiPro 完成上述工作,而圖像的后期處理則選用Adobe Photoshop CS5來完成。
這里以河海大學南門為例闡明圖像處理的基本流程:①圖像加載。打開PTGuiPro軟件,加載6張圖像。②控制點生成及處理。利用控制點生成工具生成控制點,刪除誤差較大的控制點。③圖像預處理。使用蒙版工具,去除圖像中不必要的內容,如人影、三腳架等。④圖像優(yōu)化。優(yōu)化曝光和色彩,以消除曝光不平衡造成的色差。⑤創(chuàng)建全景圖像。設置尺寸、品質、格式等參數(shù),創(chuàng)建全景圖像。⑥立方體轉換。為去除圖像中的噪聲以及配合后期全景瀏覽網(wǎng)頁的制作,使用立方體轉換工具將全景圖像轉換到6個立方體表面,如圖7所示。⑦圖像后處理。使用Adobe Photoshop CS5修補立方體表面的盲區(qū)和噪聲。
圖7 立方體表面
2.3 漫游構建
漫游是在建立場景之后,實現(xiàn)多個場景間的交互和跳轉[13]。漫游系統(tǒng)的構建主要涉及Web網(wǎng)頁的制作與發(fā)布等工作。
Web網(wǎng)頁制作主要涉及圖像切片處理、場景視角設置、魚眼變形調整、多場景間跳轉、Logo、地圖、縮略圖等插件添加以及圖片、聲音、視頻、Flash等熱點布置。其中一部分可借助kmakemultires.exe工具及kmakemultires.config配置文件來完成,
( )另一部分則是通過kapanoViewer自身提供的接口以及ActionScript、Javascript、Html、Xml
等編程實現(xiàn)。本地瀏覽效果如圖8所示。
圖8 河海大學校園全景漫游系統(tǒng)主界面
[1] 胡小強.虛擬現(xiàn)實技術與應用[M].北京:高等教育出版社,2004
[2] 劉思鳳.基于FLASH的湛江虛擬旅游全景漫游與導航系統(tǒng)[J].廣東海洋大學學報,2009,29(3):68-72
[3] 錢芬.虛擬現(xiàn)實技術在數(shù)字化校園中的應用研究[D].成都:電子科技大學,2007
[4] 李云偉.全景圖技術的研宄[D].武漢:華中科技大學,2007
[5] Richard S,Shum H Y. Creating Full View Panoramic Image Mosaics and Environment Maps[C].24th Annual Conference on Computer Graphics and Interactive Techniques,New York,1997
[6] Jang K H,Jung S K,Lee M H.Constructing Cylindrical Panoramic Image Using Equidistant Matching[J].IEE Electronics Letters,1999,35(20):1 715-1 716
[7] 譚磊.圖像拼合及寬視角全景圖生成算法研究[D].天津:天津理工大學,2007
[8] 王紅春.圖像拼接技術的研究及在虛擬現(xiàn)實中的應用[D].成都:西華大學,2010
[9] 游磊.圖像拼接的核心算法研究[D].重慶:重慶大學,2009
[10] 羅立宏,譚夏梅.球形全景圖像的自動拼接[J].計算機應用與軟件,2008,25(6):228-230
[11] 朱國情,李東亮,程剛.基于Krpano的全景編輯系統(tǒng)設計與實現(xiàn)[R].三亞:第14屆中國系統(tǒng)仿真技術及其應用學術年會,2012
[12] 陳宇先.基于Flash ActionScript3的虛擬校園全景漫游[D].廣州:中山大學,2010
[13] 馮建平,吳麗華.基于全景圖像的三維全景漫游系統(tǒng)的構建[J].計算機與數(shù)字工程,2013,41(1):115-117
P237.3
B
1672-4623(2014)04-0150-03
10.11709/j.issn.1672-4623.2014.04.053
李永亮,碩士,主要從事全景漫游、WebGIS與手機GIS研究。
2013-09-13。
項目來源:江蘇省測繪科研基金資助項目(JSCHKY201319)。