陳百韜,賀東光,朱 毅,王 馳
?
基于全景圖的虛擬現實校園展示系統的研究與實現
陳百韜,賀東光,朱 毅,王 馳
(哈爾濱理工大學計算機與科學技術學院,黑龍江哈爾濱 150080)
虛擬校園近年來發展迅速,并在校園宣傳、校園建設、甚至輔助教學方面起著越來越重要的作用。本文采用全景圖拼接技術,利用Unity3D構建虛擬場景,采用Sift算法進行特征點匹配和Dijkstra算法實現最短路徑查詢,實現了哈爾濱理工大學的虛擬校園的建設項目,并對當前技術條件下,如何經濟快捷地進行虛擬校園建設進行了研究。
Sift算法;Dijkstra算法;虛擬校園
虛擬校園漫游系統是基于虛擬現實技術,構造的逼真的視覺、聽覺、觸覺為一體的虛擬校園環境,用戶通過某種方式在虛擬環境中進行校園漫游。全景攝像是通過攝像機在同一視點拍攝的若干方位不同的視野景象,從而記錄全方位場景信息的方法。基于全景圖技術的虛擬校園系統是將校園風景圖片以特殊的手段制作成360度全景影像,獲取視景的全方位圖象,能進行任意角度交互漫游、旋轉以及放縮觀察,使得觀察者產生沉浸的感覺。
通過虛擬校園可實現對校園三維景觀和教學環境的數字化和虛擬化,可以為學校樹立良好的形象,讓來訪者足不出戶就可以身歷其境的感受到真實的校園實景和有關介紹信息,還可以作為校園規劃的輔助工具,提高校園管理的現代化水平。
1.1 實景全景圖的優點
如今,各種三維虛擬開發方式應接不暇,開發效率和開發效果也各不相同。如何選擇開發方式,用快捷,經濟的方法開發出逼真的虛擬現實校園漫游系統極為重要。傳統的三維虛擬校園采用實體建模技術,再用高清貼圖在模型表面渲染,最后完成漫游系統。整個項目建模過程工程量極大,耗時甚多,高清貼圖也需耗費大量人力時間完成,最后實現的模型比較復雜,渲染占用機器資源大,不適用于網絡在線瀏覽。而實景虛擬則是基于三維全景圖像的真實場景虛擬成圖片的技術。其利用相機拍攝環360度的一組圖片,進行拼接成一副全景圖片。再通過計算機技術,實現真實圖片構成的虛擬全景,可供用戶以360度全方位方式觀看。
實景全景圖片的虛擬現實與三維建模虛擬現實相比有以下優點。
(1)采用圖像圖片,文件小,適合網絡在線瀏覽。
(2)全景圖由真實場景拍攝制作而成,真實感和沉浸感更強烈。
(3)比平面圖由更高的自由度,展示更多更真實的信息,任意控制,交互性好。
(4)拍攝方便,制作成本低,制作流程短
1.2 實景全景圖的常用制作方法
全景圖,由空間六個方位平面投影圖像組成,常用制作全景圖的方法有以下三種:
(1)通過使用相關軟件生成無縫拼接于正方體六個面上的貼圖。
(2)使用特殊的拍攝裝置及拍攝方法,自己獲取制作全景圖的 6 張素材照片,并加以處理拼接。
(3)使用魚眼鏡頭進行拍攝,選擇180°鏡頭拍攝到兩張半球狀的照片,經過相關處理,使這兩張照片均變成長寬比為 2:1 的矩形照片,再經過進一步處理,將其轉化為球面全景圖。
2.1 獲取素材片
2.1.1 拍攝器材選用
(1)為方便全景圖拼接,拍攝圖片面積應該盡可能大,所以選用廣角或魚眼鏡頭
(2)為保證拍攝時相機位置穩定不便,且數碼相機時刻處于水平,應采用云臺固定相機。
2.1.2 拍攝步驟
(1)確定拍攝地點,調試拍攝設備,鏡頭中心點為云臺軸心點,拍攝過程必須保持鏡頭中心點不變。
(2)調試相機,預拍攝幾張圖片,確定合適的光圈值和曝光值。設置為手動調焦模式和手動曝光模式,以保證同一個拍攝地點的圖片曝光值與焦距相同。
(3)拍攝照片方式,相機水平放置與云臺上,水平旋轉一周,每過大約50-60°拍攝一張照片,一圈拍攝完成后,相機鏡頭旋轉朝向天空和大地,各拍攝一張,用于縫合全景圖的天空和地面。
2.2 全景圖拼接技術
圖像拼接技術是將有重疊部分的圖像,拼接縫合成一幅無縫的高分辨率大體積圖片。圖像經過采集,特征點處理,圖像匹配,圖像融合等過程,最終合成完整的全景圖片。
2.2.1 基于點特征的圖像拼接算法
幾種比較常見的特征點提取算法:
(1)Harris算法是C. Harris和M. J. Stephens在1988年提出的一種點特征提取算法。Harris算法只用到了灰度的一階差分,計算比較簡單,但是它提取角點的個數是和圖像的紋理信息的多少成正比的,即在紋理信息豐富的區域,能夠提取出比較多的特 征點,在紋理信息少的區域,提取的特征點就比較的少。
(2)LoG邊緣檢測算子是David Courtnay Marr和Ellen Hildreth(1980)共同提出的。LOG算子首先用高斯函數對圖像做平滑濾波處理,然后使用Laplacian算子檢測,因此克服了Laplacian算子抗噪聲能力比較差的缺點。但是在抑制噪聲的同時,也可能將原有的比較尖銳的邊緣也平滑掉,造成這些尖銳邊緣無法被檢測到。
(3)SUSAN算子在提取特征中較適合提取圖像邊緣上的拐點,由于它不需對圖像求導數,所以也有較強的搞噪聲能力。但其缺點是在弱邊緣上不容易檢測出正確的角點,閾值不易設定,增加了不穩定因素。
DavidG.Lowe在2004年提出的一種基于尺度空間的、對圖像縮放、旋轉甚至仿射變換保持不變性的特征描述算法SIFT。SIFT算法提取出的特征點具有尺度不變的特性,穩定性強,本文即采取SIFT算法對圖像進行處理。
SIFT(Scale-invariant feature transform,尺度不變特征轉換)算法是一種電腦視覺的算法用來偵測與描述影像中的局部性特征,它在空間尺度中尋找極值點,并提取出其位置、尺度、旋轉不變量,此算法由 David Lowe在1999年所發表,2004年完善總結[1]。其基本思想是在尺度空間尋找極值點,以提取位置、尺度、旋轉不變量。它主要包括兩個階段:首先是 SIFT 特征的生成階段,該階段實現了從多幅圖像中提取出與尺度縮放、旋轉、亮度等因素變化無關的特征向量;第二階段是對 SIFT 檢測到的特征向量進行匹配[2]。

圖1 Sift算法圖像特征點匹配流程
該算法的思想如下:首先,對相鄰兩幅準備拼接的圖像進行特征點計算提取,接著對提取到的特征點做匹配,其次將匹配到的特征點進行坐標變換,使得兩幅圖像融合為一幅,以達到圖像拼接的目的。
Sift算法相對于其他圖像拼接算法,優點在于精度高、適應性好,匹配效果較好;其缺點在于特征點檢測耗時較長。本文項目著重于提高校園全景圖的拼接效果,故選取Sift算法進行拼接。
Sift算法利用高斯函數計算圖像空間尺寸中的極值點。在一些合理的假設之下,高斯函數是得到圖像尺度空間唯一可用的核函數。一幅二維圖像的尺寸空間可定義為:
L(x, y, σ) = G(x, y, σ) *I(x, y)
其中*為卷積操作,G(x, y, σ)是尺寸可變高斯核,I(x, y)是圖像卷積,σ是尺度因子,尺寸因子越大則圖像被平滑的越大,尺寸也越大。大尺度的平滑用于圖片總體特征,小尺度平滑對應圖像的細節特征。為了在尺度空間中高效的檢測穩定關鍵點的位置,在高斯差分函數與圖像卷積得到的空間D(x, y, σ)中尋找極值點。
D(x, y, σ)=(G(x, y, kσ) ?G(x, y, σ))* I(x, y)=
L(x, y, kσ) ?L(x, y, σ)
2.2.2 計算高斯差分圖像
為了求尺度無關的特征點,首先需要計算相鄰尺度圖像的差分,得到一系列圖像并在該圖像空間中求極值點[3],而采用金字塔可以高效的計算高斯差分圖像。

圖2 構造金字塔,計算高斯圖像的差分
金字塔自下而上分為多層。在第一層中,對原始圖像不斷用高斯函數卷積,得到一系列逐漸平滑的圖像。在這一層中,相鄰的高斯圖像差分得到高斯差分圖像。在s個尺度中尋找極值點,則每層要有 s+3幅圖像,生成 s+2 幅高斯差分圖像。

圖3 圖像金字塔

圖4 生成的高斯差分圖像
2.2.3 全景圖拼接的實現
自適應流型拼接把拍攝好的圖像之間的空間關系定義為一個自適應的流。由Sift算法確定每幅圖像固定的錨,根據錨點從各幅圖像中計算出切片,然后通過切片進行拼接成柱面全景圖。

圖5 拼接示意圖
2.3 基于Unity3D引擎實現虛擬現實校園效果
Unity3D代碼腳本是校園全景瀏覽系統開發的關鍵,場景GameObject中的任何功能邏輯,函數實現都需要代碼來完成。Unity3D可以使用3種編程語言來編寫代碼,分為C#語言,Boo語言和Javascrip語言,并且可以通過自帶的MonoDevelop代碼IDE進行編輯開發[4]。微軟公司的C#語言功能最為全面,本文項目選用C#進行開發,通過ShaderLab進行圖片渲染開發。
根據對虛擬校園瀏覽的需求分析,設計如下圖所示的系統總體結果。
(1)景點信息查詢,用戶可以通過該功能了解景點的功能概要,空間位置,宣傳簡介等。


圖7 哈爾濱理工大學柱面全景圖
(2)最短路徑查詢,用戶可以查詢校園內任意兩點的通過路徑。
(3)景點全景圖瀏覽,用戶可通過該功能,觀看校園各景點,使得來訪者對校園有直觀的視覺體驗。
(4)系統設置模塊,用戶可控制是否播放背景音樂,景點介紹字幕是否開啟等。

圖8 校園系統功能圖

圖9 哈爾濱理工大學虛擬現實校園系統地圖功能
3.1 全景圖導入unity
在Assets目錄下創建Resources文件夾,將拍攝拼接好的全景圖導入Resources文件夾。為了節省圖片渲染所耗費的內容,再將圖片類型設置為TEXTURE格式。為了使圖片清晰顯示,將MAX SIZE最大格式設置為8192。

圖10 雙屏VR模式
3.2 全景圖片在球型模型上渲染
(1)為了使全景圖清晰顯示,我們在3DMax軟件下,創建一個1000面的高片面數球模型。
(2)將全景圖片貼至球模型上,unity軟件會自動將2:1的矩形全景圖鋪至三維的球模型上。
(3)現在全景圖在球模型上是外部渲染,為了VR視角觀看,需將其改為內部渲染,并將攝像機坐標放置球模型中央[5]。

圖11 哈爾濱理工大學柱面全景圖

圖12 哈爾濱理工大學球面全景圖
(4)Unity3D配有強大的渲染編程語言ShaderLab。編寫ShaderLab代碼,使模型遮擋剔除表面,直接渲染球模型內側。取消光照對模型渲染的影響,取消陰影。
3.3 實現數據存儲
采用XML儲存信息,將全景圖信息,全景圖的ID序號,全景圖的名稱,全景圖的介紹,全景圖的服務器地址,全景圖的本地文件路徑地址,全景圖的臨接景點全景圖等數據,儲存于一個XML文檔中,用于Unity3D引擎讀取。
3.4 實現全景圖信息查詢功能
創建全景圖節點數據類(VertexsInfo)
(1)用C#編寫代碼,設計一個全景圖節點類VertexsInfo。字段成員包括,全景圖節點ID(VertexID),全景圖節點名稱(VertexName),全景圖文件路徑(WWWVertex),相鄰全景圖節點(VertexsInfo[] MyAdjacencyVertex)等。
(2)成員函數包括,臨近全景圖ID名稱函數public void myAdjVertexID (string Vertexs )
3.5 實現全景圖瀏覽功能
創建全景圖節點集合圖類(Graph)
(1)以多個節點數據類(VertexsInfo)組成List
(2)成員函數查找,用來遍歷列表,返回需要查找的全景圖,實現查詢功能。
3.6 實現兩景點路徑搜索查詢功能
此功能中,利用Dijkstra算法實現最短路徑查詢。
(1)算法思想:設G=(V,E)是一個帶權有向圖,把圖中頂點集合V分成兩組,第一組為已求出最短路徑的頂點集合(用S表示,初始時S中只有一個源點,以后每求得一條最短路徑,就將加入到集合S中,直到全部頂點都加入到S中,算法就結束了),第二組為其余未確定最短路徑的頂點集合(用U表示),按最短路徑長度的遞增次序依次把第二組的頂點加入S中。在加入的過程中,總保持從源點v到S中各頂點的最短路徑長度不大于從源點v到U中任何頂點的最短路徑長度。此外,每個頂點對應一個距離,S中的頂點的距離就是從v到此頂點的最短路徑長度,U中的頂點的距離,是從v到此頂點只包括S中的頂點為中間頂點的當前最短路徑長度[6]。
(2)算法步驟:
a. 初始時,S只包含源點,即S={v},v的距離為0。U包含除v外的其他頂點,即:U={其余頂點},若v與U中頂點u有邊,則正常有權值,若u不是v的出邊鄰接點,則權值為∞。
b. 從U中選取一個距離v最小的頂點k,把k,加入S中(該選定的距離就是v到k的最短路徑長度)。
c. 以k為新考慮的中間點,修改U中各頂點的距離;若從源點v到頂點u的距離(經過頂點k)比原來距離(不經過頂點k)短,則修改頂點u的距離值,修改后的距離值的頂點k的距離加上邊上的權。
d. 重復步驟b和c直到所有頂點都包含在S中。
4.1 總結
本文項目實現了學校現實場景的虛擬校園方案,并且使之具備一定程度上的交互功能,用戶可以通過電腦或其他移動設備來進行校園任意場景的漫游。本文針對全景圖技術制作虛擬現實漫游系統過程中的關鍵技術,制定出一套經濟快捷的實現策略。改策略減少了傳統漫游系統建模所耗費的大量時間,減少了人力物力的投入,精簡至只需要相機和一臺電腦便可以制作具有沉浸感的虛擬現實作品。
4.2 研究工作展望
虛擬現實技術在不斷發展,在開發上述功能的過程中,本文項目設計的虛擬現實校園系統預留了許多擴展接口,可隨著虛擬現實硬件技術的不斷升級加入新的功能,比如使用體感硬件設備,加入用戶之間的更復雜更具現實感的互動等。并且可以在虛擬校園的基礎之上,引入虛擬實驗平臺,搭建虛擬教學平臺[7-11],增加生生互動師生互動機制,使虛擬校園成為教學系統的一個重要組成部分[12-13]。
[1] 廖斌. 基于特征點的圖像配準技術研究[D]. 湖南: 國防科學技術大學, 2008: 6-8.
[2] 嚴磊. 基于特征匹配的全自動圖像拼接算法研究[D]. 中國科學技術大學, 2009.
[3] 劉冬梅. 圖像拼接算法研究[D]. 西安電子科技大學, 2008.
[4] 歐陽攀, 李強, 盧秀慧.基于Unity3D 虛擬校園開發研究與實現[J]. 現代電子技術, 2013, 36(4) : 19-22.
[5] Developing virtual reality applications with Unity. Jerald J, GiokarisP, WoodallD, et al. Virtual Reality (VR). 2014.
[6] 改進Dijkstra算法在GIS導航應用中最短路徑搜索研究[J]. 董俊, 黃傳河. 計算機科學. 2012(10).
[7] 文琪琪, 文福安. 虛擬實驗指導系統的交互設計研究[J]. 軟件, 2013, 34(8): 20-23.
[8] 彭聰. 基于三層C/S模式的虛擬實驗室平臺設計[J]. 軟件, 2013, 34(11): 98-99.
[9] 張菊. 虛擬現實技術輔助教學研究[J]. 軟件, 2014, 35(2): 160-161.
[10] 陸元婷. 計算機虛擬實驗教學現狀及應用前景[J]. 軟件, 2014, 35(2): 162-164.
[11] 楊海瑞. 計算機硬件組裝虛擬實驗系統研究探討[J]. 軟件, 2014. 35(3): 208.
[12] 陳靜. 構建高職學生虛擬學習社區的自組織算法研究[J]. 軟件, 2014, 35(2): 63-64.
[13] 黃盟, 文福安. 全景虛擬校園的情感化設計研究[J]. 軟件, 2016, 37(01): 01-03.
Research and Implementation on Virtual Campus Based on Panorama
CHEN Bai-tao, HE Dong-guang, ZHU Yi, WANG Chi
(School of Computer Science, Harbin University of Science and Technology, Harbin, 150080, China)
With the rapid development in recent years, virtual campus has played a more and more important role in many respects, such as campus publicity, campusconstruction and teaching aids. This paper realized a virtualcampus system of HUST based on mosaic technology of panoramic image and 3D virtual environment by the tool of Unity3D. Also, this paper made a research on the efficient way to realize virtual campus system.
Panorama; Sift algorithm; Dijkstra algorithm; Virtual campus
TP311
A
10.3969/j.issn.1003-6970.2017.04.010
黑龍江省大學生創新創業訓練計劃項目(201510214045)
陳百韜(1994-),本科,哈爾濱理工大學學生,研究方向為虛擬現實技術;朱毅(1995-),男,本科,學生,哈爾濱理工大學,研究方向虛擬現實技術;王馳,1996,男,本科,學生,哈爾濱理工大學,研究方向虛擬現實技術。
賀東光(1974-),碩士,講師,研究方向為網絡教學。
本文著錄格式:陳百韜,賀東光,朱毅,等. 基于全景圖的虛擬現實校園展示系統的研究與實現[J]. 軟件,2017,38(4):52-57