APP下载

基于全景图的虚拟现实校园展示系统的研究与实现

2017-06-05陈百韬贺东光

软件 2017年4期
关键词:全景图高斯顶点

陈百韬,贺东光,朱 毅,王 驰



基于全景图的虚拟现实校园展示系统的研究与实现

陈百韬,贺东光,朱 毅,王 驰

(哈尔滨理工大学计算机与科学技术学院,黑龙江哈尔滨 150080)

虚拟校园近年来发展迅速,并在校园宣传、校园建设、甚至辅助教学方面起着越来越重要的作用。本文采用全景图拼接技术,利用Unity3D构建虚拟场景,采用Sift算法进行特征点匹配和Dijkstra算法实现最短路径查询,实现了哈尔滨理工大学的虚拟校园的建设项目,并对当前技术条件下,如何经济快捷地进行虚拟校园建设进行了研究。

Sift算法;Dijkstra算法;虚拟校园

0 引言

虚拟校园漫游系统是基于虚拟现实技术,构造的逼真的视觉、听觉、触觉为一体的虚拟校园环境,用户通过某种方式在虚拟环境中进行校园漫游。全景摄像是通过摄像机在同一视点拍摄的若干方位不同的视野景象,从而记录全方位场景信息的方法。基于全景图技术的虚拟校园系统是将校园风景图片以特殊的手段制作成360度全景影像,获取视景的全方位图象,能进行任意角度交互漫游、旋转以及放缩观察,使得观察者产生沉浸的感觉。

通过虚拟校园可实现对校园三维景观和教学环境的数字化和虚拟化,可以为学校树立良好的形象,让来访者足不出户就可以身历其境的感受到真实的校园实景和有关介绍信息,还可以作为校园规划的辅助工具,提高校园管理的现代化水平。

1 实景全景图优点及常用制作方法

1.1 实景全景图的优点

如今,各种三维虚拟开发方式应接不暇,开发效率和开发效果也各不相同。如何选择开发方式,用快捷,经济的方法开发出逼真的虚拟现实校园漫游系统极为重要。传统的三维虚拟校园采用实体建模技术,再用高清贴图在模型表面渲染,最后完成漫游系统。整个项目建模过程工程量极大,耗时甚多,高清贴图也需耗费大量人力时间完成,最后实现的模型比较复杂,渲染占用机器资源大,不适用于网络在线浏览。而实景虚拟则是基于三维全景图像的真实场景虚拟成图片的技术。其利用相机拍摄环360度的一组图片,进行拼接成一副全景图片。再通过计算机技术,实现真实图片构成的虚拟全景,可供用户以360度全方位方式观看。

实景全景图片的虚拟现实与三维建模虚拟现实相比有以下优点。

(1)采用图像图片,文件小,适合网络在线浏览。

(2)全景图由真实场景拍摄制作而成,真实感和沉浸感更强烈。

(3)比平面图由更高的自由度,展示更多更真实的信息,任意控制,交互性好。

(4)拍摄方便,制作成本低,制作流程短

1.2 实景全景图的常用制作方法

全景图,由空间六个方位平面投影图像组成,常用制作全景图的方法有以下三种:

(1)通过使用相关软件生成无缝拼接于正方体六个面上的贴图。

(2)使用特殊的拍摄装置及拍摄方法,自己获取制作全景图的 6 张素材照片,并加以处理拼接。

(3)使用鱼眼镜头进行拍摄,选择180°镜头拍摄到两张半球状的照片,经过相关处理,使这两张照片均变成长宽比为 2:1 的矩形照片,再经过进一步处理,将其转化为球面全景图。

2 全景图制作步骤及关键技术

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 哈尔滨理工校园全景浏览系统的具体实现

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)组成ListvertexsList列表,字段成员vertexNumber表示全景图节点总个数。

(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 全文总结

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

猜你喜欢

全景图高斯顶点
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
天才数学家——高斯
嫦娥四号月背之旅全景图
关于顶点染色的一个猜想
有限域上高斯正规基的一个注记
奇妙岛全景图
奇妙岛全景图