陳百韜,賀東光,朱 毅,王 馳
?
基于全景圖的虛擬現(xiàn)實校園展示系統(tǒng)的研究與實現(xiàn)
陳百韜,賀東光,朱 毅,王 馳
(哈爾濱理工大學計算機與科學技術學院,黑龍江哈爾濱 150080)
虛擬校園近年來發(fā)展迅速,并在校園宣傳、校園建設、甚至輔助教學方面起著越來越重要的作用。本文采用全景圖拼接技術,利用Unity3D構建虛擬場景,采用Sift算法進行特征點匹配和Dijkstra算法實現(xiàn)最短路徑查詢,實現(xiàn)了哈爾濱理工大學的虛擬校園的建設項目,并對當前技術條件下,如何經(jīng)濟快捷地進行虛擬校園建設進行了研究。
Sift算法;Dijkstra算法;虛擬校園
虛擬校園漫游系統(tǒng)是基于虛擬現(xiàn)實技術,構造的逼真的視覺、聽覺、觸覺為一體的虛擬校園環(huán)境,用戶通過某種方式在虛擬環(huán)境中進行校園漫游。全景攝像是通過攝像機在同一視點拍攝的若干方位不同的視野景象,從而記錄全方位場景信息的方法。基于全景圖技術的虛擬校園系統(tǒng)是將校園風景圖片以特殊的手段制作成360度全景影像,獲取視景的全方位圖象,能進行任意角度交互漫游、旋轉以及放縮觀察,使得觀察者產(chǎn)生沉浸的感覺。
通過虛擬校園可實現(xiàn)對校園三維景觀和教學環(huán)境的數(shù)字化和虛擬化,可以為學校樹立良好的形象,讓來訪者足不出戶就可以身歷其境的感受到真實的校園實景和有關介紹信息,還可以作為校園規(guī)劃的輔助工具,提高校園管理的現(xiàn)代化水平。
1.1 實景全景圖的優(yōu)點
如今,各種三維虛擬開發(fā)方式應接不暇,開發(fā)效率和開發(fā)效果也各不相同。如何選擇開發(fā)方式,用快捷,經(jīng)濟的方法開發(fā)出逼真的虛擬現(xiàn)實校園漫游系統(tǒng)極為重要。傳統(tǒng)的三維虛擬校園采用實體建模技術,再用高清貼圖在模型表面渲染,最后完成漫游系統(tǒng)。整個項目建模過程工程量極大,耗時甚多,高清貼圖也需耗費大量人力時間完成,最后實現(xiàn)的模型比較復雜,渲染占用機器資源大,不適用于網(wǎng)絡在線瀏覽。而實景虛擬則是基于三維全景圖像的真實場景虛擬成圖片的技術。其利用相機拍攝環(huán)360度的一組圖片,進行拼接成一副全景圖片。再通過計算機技術,實現(xiàn)真實圖片構成的虛擬全景,可供用戶以360度全方位方式觀看。
實景全景圖片的虛擬現(xiàn)實與三維建模虛擬現(xiàn)實相比有以下優(yōu)點。
(1)采用圖像圖片,文件小,適合網(wǎng)絡在線瀏覽。
(2)全景圖由真實場景拍攝制作而成,真實感和沉浸感更強烈。
(3)比平面圖由更高的自由度,展示更多更真實的信息,任意控制,交互性好。
(4)拍攝方便,制作成本低,制作流程短
1.2 實景全景圖的常用制作方法
全景圖,由空間六個方位平面投影圖像組成,常用制作全景圖的方法有以下三種:
(1)通過使用相關軟件生成無縫拼接于正方體六個面上的貼圖。
(2)使用特殊的拍攝裝置及拍攝方法,自己獲取制作全景圖的 6 張素材照片,并加以處理拼接。
(3)使用魚眼鏡頭進行拍攝,選擇180°鏡頭拍攝到兩張半球狀的照片,經(jīng)過相關處理,使這兩張照片均變成長寬比為 2:1 的矩形照片,再經(jīng)過進一步處理,將其轉化為球面全景圖。
2.1 獲取素材片
2.1.1 拍攝器材選用
(1)為方便全景圖拼接,拍攝圖片面積應該盡可能大,所以選用廣角或魚眼鏡頭
(2)為保證拍攝時相機位置穩(wěn)定不便,且數(shù)碼相機時刻處于水平,應采用云臺固定相機。
2.1.2 拍攝步驟
(1)確定拍攝地點,調試拍攝設備,鏡頭中心點為云臺軸心點,拍攝過程必須保持鏡頭中心點不變。
(2)調試相機,預拍攝幾張圖片,確定合適的光圈值和曝光值。設置為手動調焦模式和手動曝光模式,以保證同一個拍攝地點的圖片曝光值與焦距相同。
(3)拍攝照片方式,相機水平放置與云臺上,水平旋轉一周,每過大約50-60°拍攝一張照片,一圈拍攝完成后,相機鏡頭旋轉朝向天空和大地,各拍攝一張,用于縫合全景圖的天空和地面。
2.2 全景圖拼接技術
圖像拼接技術是將有重疊部分的圖像,拼接縫合成一幅無縫的高分辨率大體積圖片。圖像經(jīng)過采集,特征點處理,圖像匹配,圖像融合等過程,最終合成完整的全景圖片。
2.2.1 基于點特征的圖像拼接算法
幾種比較常見的特征點提取算法:
(1)Harris算法是C. Harris和M. J. Stephens在1988年提出的一種點特征提取算法。Harris算法只用到了灰度的一階差分,計算比較簡單,但是它提取角點的個數(shù)是和圖像的紋理信息的多少成正比的,即在紋理信息豐富的區(qū)域,能夠提取出比較多的特 征點,在紋理信息少的區(qū)域,提取的特征點就比較的少。
(2)LoG邊緣檢測算子是David Courtnay Marr和Ellen Hildreth(1980)共同提出的。LOG算子首先用高斯函數(shù)對圖像做平滑濾波處理,然后使用Laplacian算子檢測,因此克服了Laplacian算子抗噪聲能力比較差的缺點。但是在抑制噪聲的同時,也可能將原有的比較尖銳的邊緣也平滑掉,造成這些尖銳邊緣無法被檢測到。
(3)SUSAN算子在提取特征中較適合提取圖像邊緣上的拐點,由于它不需對圖像求導數(shù),所以也有較強的搞噪聲能力。但其缺點是在弱邊緣上不容易檢測出正確的角點,閾值不易設定,增加了不穩(wěn)定因素。
DavidG.Lowe在2004年提出的一種基于尺度空間的、對圖像縮放、旋轉甚至仿射變換保持不變性的特征描述算法SIFT。SIFT算法提取出的特征點具有尺度不變的特性,穩(wěn)定性強,本文即采取SIFT算法對圖像進行處理。
SIFT(Scale-invariant feature transform,尺度不變特征轉換)算法是一種電腦視覺的算法用來偵測與描述影像中的局部性特征,它在空間尺度中尋找極值點,并提取出其位置、尺度、旋轉不變量,此算法由 David Lowe在1999年所發(fā)表,2004年完善總結[1]。其基本思想是在尺度空間尋找極值點,以提取位置、尺度、旋轉不變量。它主要包括兩個階段:首先是 SIFT 特征的生成階段,該階段實現(xiàn)了從多幅圖像中提取出與尺度縮放、旋轉、亮度等因素變化無關的特征向量;第二階段是對 SIFT 檢測到的特征向量進行匹配[2]。
圖1 Sift算法圖像特征點匹配流程
該算法的思想如下:首先,對相鄰兩幅準備拼接的圖像進行特征點計算提取,接著對提取到的特征點做匹配,其次將匹配到的特征點進行坐標變換,使得兩幅圖像融合為一幅,以達到圖像拼接的目的。
Sift算法相對于其他圖像拼接算法,優(yōu)點在于精度高、適應性好,匹配效果較好;其缺點在于特征點檢測耗時較長。本文項目著重于提高校園全景圖的拼接效果,故選取Sift算法進行拼接。
Sift算法利用高斯函數(shù)計算圖像空間尺寸中的極值點。在一些合理的假設之下,高斯函數(shù)是得到圖像尺度空間唯一可用的核函數(shù)。一幅二維圖像的尺寸空間可定義為:
L(x, y, σ) = G(x, y, σ) *I(x, y)
其中*為卷積操作,G(x, y, σ)是尺寸可變高斯核,I(x, y)是圖像卷積,σ是尺度因子,尺寸因子越大則圖像被平滑的越大,尺寸也越大。大尺度的平滑用于圖片總體特征,小尺度平滑對應圖像的細節(jié)特征。為了在尺度空間中高效的檢測穩(wěn)定關鍵點的位置,在高斯差分函數(shù)與圖像卷積得到的空間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 構造金字塔,計算高斯圖像的差分
金字塔自下而上分為多層。在第一層中,對原始圖像不斷用高斯函數(shù)卷積,得到一系列逐漸平滑的圖像。在這一層中,相鄰的高斯圖像差分得到高斯差分圖像。在s個尺度中尋找極值點,則每層要有 s+3幅圖像,生成 s+2 幅高斯差分圖像。
圖3 圖像金字塔
圖4 生成的高斯差分圖像
2.2.3 全景圖拼接的實現(xiàn)
自適應流型拼接把拍攝好的圖像之間的空間關系定義為一個自適應的流。由Sift算法確定每幅圖像固定的錨,根據(jù)錨點從各幅圖像中計算出切片,然后通過切片進行拼接成柱面全景圖。
圖5 拼接示意圖
2.3 基于Unity3D引擎實現(xiàn)虛擬現(xiàn)實校園效果
Unity3D代碼腳本是校園全景瀏覽系統(tǒng)開發(fā)的關鍵,場景GameObject中的任何功能邏輯,函數(shù)實現(xiàn)都需要代碼來完成。Unity3D可以使用3種編程語言來編寫代碼,分為C#語言,Boo語言和Javascrip語言,并且可以通過自帶的MonoDevelop代碼IDE進行編輯開發(fā)[4]。微軟公司的C#語言功能最為全面,本文項目選用C#進行開發(fā),通過ShaderLab進行圖片渲染開發(fā)。
根據(jù)對虛擬校園瀏覽的需求分析,設計如下圖所示的系統(tǒng)總體結果。
(1)景點信息查詢,用戶可以通過該功能了解景點的功能概要,空間位置,宣傳簡介等。
圖7 哈爾濱理工大學柱面全景圖
(2)最短路徑查詢,用戶可以查詢校園內(nèi)任意兩點的通過路徑。
(3)景點全景圖瀏覽,用戶可通過該功能,觀看校園各景點,使得來訪者對校園有直觀的視覺體驗。
(4)系統(tǒng)設置模塊,用戶可控制是否播放背景音樂,景點介紹字幕是否開啟等。
圖8 校園系統(tǒng)功能圖
圖9 哈爾濱理工大學虛擬現(xiàn)實校園系統(tǒng)地圖功能
3.1 全景圖導入unity
在Assets目錄下創(chuàng)建Resources文件夾,將拍攝拼接好的全景圖導入Resources文件夾。為了節(jié)省圖片渲染所耗費的內(nèi)容,再將圖片類型設置為TEXTURE格式。為了使圖片清晰顯示,將MAX SIZE最大格式設置為8192。
圖10 雙屏VR模式
3.2 全景圖片在球型模型上渲染
(1)為了使全景圖清晰顯示,我們在3DMax軟件下,創(chuàng)建一個1000面的高片面數(shù)球模型。
(2)將全景圖片貼至球模型上,unity軟件會自動將2:1的矩形全景圖鋪至三維的球模型上。
(3)現(xiàn)在全景圖在球模型上是外部渲染,為了VR視角觀看,需將其改為內(nèi)部渲染,并將攝像機坐標放置球模型中央[5]。
圖11 哈爾濱理工大學柱面全景圖
圖12 哈爾濱理工大學球面全景圖
(4)Unity3D配有強大的渲染編程語言ShaderLab。編寫ShaderLab代碼,使模型遮擋剔除表面,直接渲染球模型內(nèi)側。取消光照對模型渲染的影響,取消陰影。
3.3 實現(xiàn)數(shù)據(jù)存儲
采用XML儲存信息,將全景圖信息,全景圖的ID序號,全景圖的名稱,全景圖的介紹,全景圖的服務器地址,全景圖的本地文件路徑地址,全景圖的臨接景點全景圖等數(shù)據(jù),儲存于一個XML文檔中,用于Unity3D引擎讀取。
3.4 實現(xiàn)全景圖信息查詢功能
創(chuàng)建全景圖節(jié)點數(shù)據(jù)類(VertexsInfo)
(1)用C#編寫代碼,設計一個全景圖節(jié)點類VertexsInfo。字段成員包括,全景圖節(jié)點ID(VertexID),全景圖節(jié)點名稱(VertexName),全景圖文件路徑(WWWVertex),相鄰全景圖節(jié)點(VertexsInfo[] MyAdjacencyVertex)等。
(2)成員函數(shù)包括,臨近全景圖ID名稱函數(shù)public void myAdjVertexID (string Vertexs )
3.5 實現(xiàn)全景圖瀏覽功能
創(chuàng)建全景圖節(jié)點集合圖類(Graph)
(1)以多個節(jié)點數(shù)據(jù)類(VertexsInfo)組成List
(2)成員函數(shù)查找,用來遍歷列表,返回需要查找的全景圖,實現(xiàn)查詢功能。
3.6 實現(xiàn)兩景點路徑搜索查詢功能
此功能中,利用Dijkstra算法實現(xiàn)最短路徑查詢。
(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的距離(經(jīng)過頂點k)比原來距離(不經(jīng)過頂點k)短,則修改頂點u的距離值,修改后的距離值的頂點k的距離加上邊上的權。
d. 重復步驟b和c直到所有頂點都包含在S中。
4.1 總結
本文項目實現(xiàn)了學?,F(xiàn)實場景的虛擬校園方案,并且使之具備一定程度上的交互功能,用戶可以通過電腦或其他移動設備來進行校園任意場景的漫游。本文針對全景圖技術制作虛擬現(xiàn)實漫游系統(tǒng)過程中的關鍵技術,制定出一套經(jīng)濟快捷的實現(xiàn)策略。改策略減少了傳統(tǒng)漫游系統(tǒng)建模所耗費的大量時間,減少了人力物力的投入,精簡至只需要相機和一臺電腦便可以制作具有沉浸感的虛擬現(xiàn)實作品。
4.2 研究工作展望
虛擬現(xiàn)實技術在不斷發(fā)展,在開發(fā)上述功能的過程中,本文項目設計的虛擬現(xiàn)實校園系統(tǒng)預留了許多擴展接口,可隨著虛擬現(xiàn)實硬件技術的不斷升級加入新的功能,比如使用體感硬件設備,加入用戶之間的更復雜更具現(xiàn)實感的互動等。并且可以在虛擬校園的基礎之上,引入虛擬實驗平臺,搭建虛擬教學平臺[7-11],增加生生互動師生互動機制,使虛擬校園成為教學系統(tǒng)的一個重要組成部分[12-13]。
[1] 廖斌. 基于特征點的圖像配準技術研究[D]. 湖南: 國防科學技術大學, 2008: 6-8.
[2] 嚴磊. 基于特征匹配的全自動圖像拼接算法研究[D]. 中國科學技術大學, 2009.
[3] 劉冬梅. 圖像拼接算法研究[D]. 西安電子科技大學, 2008.
[4] 歐陽攀, 李強, 盧秀慧.基于Unity3D 虛擬校園開發(fā)研究與實現(xiàn)[J]. 現(xiàn)代電子技術, 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] 文琪琪, 文福安. 虛擬實驗指導系統(tǒng)的交互設計研究[J]. 軟件, 2013, 34(8): 20-23.
[8] 彭聰. 基于三層C/S模式的虛擬實驗室平臺設計[J]. 軟件, 2013, 34(11): 98-99.
[9] 張菊. 虛擬現(xiàn)實技術輔助教學研究[J]. 軟件, 2014, 35(2): 160-161.
[10] 陸元婷. 計算機虛擬實驗教學現(xiàn)狀及應用前景[J]. 軟件, 2014, 35(2): 162-164.
[11] 楊海瑞. 計算機硬件組裝虛擬實驗系統(tǒng)研究探討[J]. 軟件, 2014. 35(3): 208.
[12] 陳靜. 構建高職學生虛擬學習社區(qū)的自組織算法研究[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
黑龍江省大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目(201510214045)
陳百韜(1994-),本科,哈爾濱理工大學學生,研究方向為虛擬現(xiàn)實技術;朱毅(1995-),男,本科,學生,哈爾濱理工大學,研究方向虛擬現(xiàn)實技術;王馳,1996,男,本科,學生,哈爾濱理工大學,研究方向虛擬現(xiàn)實技術。
賀東光(1974-),碩士,講師,研究方向為網(wǎng)絡教學。
本文著錄格式:陳百韜,賀東光,朱毅,等. 基于全景圖的虛擬現(xiàn)實校園展示系統(tǒng)的研究與實現(xiàn)[J]. 軟件,2017,38(4):52-57