陈 真,蔡 浩,张 飞
(汕头大学工学院,广东 汕头 515063)
随着科技的发展,多媒体可包含的信息种类越发丰富,表现的效果也更加多元化.近年来出现的全景漫游显示以其真实、全面、直观的表现特点,成为了多媒体显示的趋势.全景漫游显示包括全景图像生成和全景漫游两部分:全景图像生成是指通过全景相机对图像进行获取、拼接而生成的全视角图像;全景漫游是指在全视角图像里进行场景切换,模拟浏览不同的场景.
目前,全景漫游显示在众多领域取得了丰硕成果[1]:在旅游领域,与互联网结合可以使用户足不出户观天下;在军事领域,同地理信息的结合可以模拟仿真作战;在房地产领域,可以使用户获得真实性的感官体验.随着虚拟显示技术的大众化以及虚拟现实技术的兴起,全景漫游显示技术与人们的社会生活将会联系的愈加紧密.
全景漫游[2]是以静态图像为基础,生成水平方向360°环视、垂直方向180°俯仰的立体环境,平且能够通过互联网进行浏览、新型可交互的媒体技术.在普通图像中,由于图像的角度和拍摄位置被拍摄者控制,不由观看者的意志而改变,因此观看者并不能很好的沉浸在拍摄者所拍摄的场景当中,缺乏身临其境的感受.
全景漫游系统采用图像拼接技术,将多张有重叠部分的图像拼接成一幅比原来每张图像信息量都要多的图像.目前国内外基于图像的全景漫游技术主要是运行三维实景技术实现,也就是使用相机对相隔一定距离的实际场景进行多角度的环视拍摄,每个场景都拼接生成360°影像,并按照实际情况关联每个场景,让观看者可以在每个场景之间进行切换浏览.在全景图像的生成拼接上,目前拼接模型有基于球体、圆柱体等,拼接流程上也有半自动标注匹配点进行拼接、全自动图像拼接、比较成熟的全景拼接软件有微软的Photosynth,AutoSticth和诺基亚的Panorama.
在全景漫游上,谷歌推出的谷歌街景就是在原有的谷歌地图基础之上加入了全景功能.其原理就是在一辆车的车顶上摆放一组全景图像采集工具,车辆在路面上行驶,按照一定的密度对街道图像进行采集,并且生成的全景图像在浏览器中可以360°观看并可以通过鼠标点击浏览器中的前后左右的箭头来进行场景切换浏览.随着虚拟现实技术的发展,可以使用虚拟现实头盔,通过双目视差原理,带给观看者身临其境的体验.
本文采用GoPro omni相机采集全景图像信息,PTGui进行全景图片集成,Pano2VR构建全景系统,DevalVR player用于全景图像的浏览.
GoPro omni相机前、后、左、右、上、下共六个方向各安装一台Hero4运动相机,通过内建系统将6个相机构成一个整体,使各个角度拍摄到的照相信息处于同一个视点,并且能够实现像素级同步.
PTGui是一款图像拼接工具,可以实现全景图像集成,通过手动添加控制点以及优化器优化,最后经过平滑融合处理,获得高质量的全景图像.
Pano2VR是一款全景图像转换和编辑软件,补丁功能可以有效对全景图片中的局部“黑洞”进行提取和插入修补,消除三脚架、拍摄人员等影响.
DevalVR player是一款3D图片显示软件,将具有全景视图效果的二维图片展示出三维立体全景效果,还可以实现手动旋转、细节观察等功能.
构建全景漫游系统首先要获得各个场景的全景图片[3],生成全景图片的基本步骤如图1所示,具体包括图像的采集,图像的投影变换,图像的拼接优化和输出4个步骤.
图1 全景图像系统生成流程
采集全景图像[4]指的是使用相机获取图像的过程,常用的方式有两种.一种是用普通相机以一个视点为圆心进行水平方向360°以及天空和地面的拍摄,然后进行图片信息处理.这种方法对拍摄要求较高:拍摄时要求尽可能小的改变相机的视点,并且由于拍摄时间较长可能引发场景的细微变动,使后期的图像拼接难度加大,产生明显拼接痕迹,使得真实感下降.第二种是用专业全景摄影器材进行场景信息采集.这种方式可以减少获取信息时产生的时差,操作方便简洁,但相机价格较高.本文的图像采用第二种方式,使用具有6镜头的GoPro omni相机来进行全景图像的采集,采集到的全景图片如图2所示.
图2 零散全景信息图片
图像投影变换指的是对图像信息进行投影模型,初步生成全景图投影模型.投影的实质是将实际场景的图像坐标系映射到一个圆柱体坐标系.具体思路是首先将以视点为中心的全景图像坐标系平移和旋转到圆柱体坐标系,然后计算平面图像与圆柱面图像的函数映射表达式,最后求解平面图像与柱体模型的对应关系.
3.2.1 图像投影
本文采用柱面投影模型[5].柱面投影模型是将拍摄到的图像投影到一个圆柱面上,即把场景信息存储在一个圆柱面上.柱面投影模型如图3所示.
图3 柱面投影模型
平面图像与圆柱面的对应关系如公式(1)所示:
b表示实际场景图像的宽,h表示实际场景图像的高,f是获取全景信息相机设备的焦距,(x′,y′)是柱面上任意点,(x,y)是平面图像上相对应的点.
3.2.2 控制点匹配
经过投影变换,初步生成了全景图像模型.虽然这个模型能够浏览全景图像,但在图像接缝部位存在着畸变,例如不完整的房屋、有裂痕的行人等缺陷,造成全景图像真实感和沉浸感的下降.为了保持全景图像中的场景信息同实际场景一致,需要对图像进行控制点匹配处理,修正图像拼接中的畸变.
控制点匹配[6]就是对图像拼接部位的重叠部分进行匹配计算的过程,通常分为两种方式.第一种方式基于像素点进行匹配:根据投影模型的参数,计算拼接区域重叠部分点的平均误差和方差,再根据参数比较平均误差和方差的变化率,迭代计算使误差变化率最小的初始参数,确定匹配区域进行图像的拼接.这种方式计算量大,实现简单,适用性强,但图像匹配效果可靠性不够.第二种方式基于图像的特征匹配:首先提取图像重叠区域的特征信息,比如特殊的点、突出的线段、物体边缘或顶角等,根据特征点之间的对应关系计算重叠区域的对应关系,建立全景图像的匹配映射.
相比于像素点的匹配,基于特征的匹配算法[7]主要有以下优点:
(1)对位置变化敏感,对应关系和匹配更准确,得到的全景图像真实性更高;
(2)计算量更小,需要的匹配拼接特征点比像素点要少的多;
(3)图像噪声小,更好的适应图像灰度变化,匹配完成后失真更少.
但是基于特征的匹配也存在着一些缺点,例如处理草原、天空等重叠区域特征不明显的图像,特征点的提取会变得困难,相应出现较大的误差,最后造成匹配后的全景图像失真.因此在实际处理过程中,为减小误差,手动选取特征点进行匹配,可以获取更好的效果.图4为自动配和手动匹配的对比.
图4 自动匹配与手动对比图
3.2.3 图像的融合
图像融合是指对图像在像素级进行融合,减少图像重叠区域的拼接痕迹,提高图像的真实性,常用以下两种方式:
(1)渐入渐出图像融合法:对重叠区域的像素值加权平均,减小重叠区域的像素值差异.加权平均公式(2)如下:
其中I1(x)、I2(x)为相邻两幅图像的灰度函数,W1(x)、W2(x)为两幅图像的加权值,x为图像I1、I2的重叠区域.如图5所示,在迭代计算过程中,W1(x)的值从0渐变到1,相对应的W2(x)的值从1渐变到0,实现图像的平滑过度,消除拼接痕迹.
(2)带阈值的渐入渐出图像融合法:在基于渐入渐出图像融合法上加入一个阈值K,将平滑前的灰度值与加权后的平均值作差,若差值小于K,则取加权后的灰度值为该点的灰度值;若大于K,则取加权之前的灰度值为该点的灰度值,减小重叠区域的像素值变化,使图像融合平滑,如图6所示.
图5 渐入渐出图像融合法过程
图6 带阈值的渐入渐出图像融合法
加权后重叠区域的像素值为:
I(x)为重叠区域的灰度值,图像L1、L3在重叠区域L2中对应的灰度值分别为I1(x)、I2(x).
将重叠区域分为A、B、C三部分,计算各个区域的像素值并与加权后平均值作差,与阀值对比,选取融合后的像素I(x).三部分的像素值计算公式(3)如下:
本文采用带阈值的渐入渐出图像融合法处理图像,虽然通过基本的渐入渐出法可以有效消除拼接痕迹,但同时在重叠区域可能产生重影,使图像变得模糊不清,因此通过采用带阈值的渐入渐出图像融合法可以进一步提高图像清晰度,消除拼接边界的色彩差.如图7所示是融合前后的全景图像对比图.
图7 融合前后对比图
为得到更加平滑的融合图,需要对控制点进行匹配优化[8].根据控制点平均距离可以从以下3个方面对整体的控制点进行优化匹配处理:
(1)位移优化:分为水平位移和垂直位移,通过对投影后图像的控制点水平方向和垂直方向分析对比,选取出平均控制点距离最小的对应组,对控制点进行微调,使其对应关系更精确;
(2)镜头畸变优化:针对相机拍摄时可能存在的不同时、不同步、镜头焦距不同的情况,进行对比优化处理,减少控制点受平移和旋转的影响;
(3)视点优化:相机拍摄时难以保证各个方向的视点精确在同一位置,需要对匹配好的控制点进行视点分析优化,使各方向的视点同主方向尽可能保持一致,减少由于视点引起的对应点匹配度差的情况.
优化处理前后的全景图像对比结果如图8所示.
采集的全景图像中,可能存在不需要的信息,例如拍摄人员、遮蔽物等;还存在着一些需要突出显示的信息,例如关键地理位置、明显标记物等,这时候就需要蒙版处理.所谓蒙版处理就是将全景图像中无用的信息去除,重要的信息突出的过程[2].
全景图像生成后在相机所处位置下会出现三角支架,如果采用蒙版处理遮挡住三角支架,会在全景图像的底部出现“黑洞”现象,这种存在与全景图像整体环境不协调的漏洞区域的现象简称为“黑洞”.本文采用Pano2VR对全景图像中的“黑洞”区域进行补丁提取,Adobe Photoshop CS6对“黑洞”区域进行处理,使“黑洞”区域同周围环境相适应,最后使用Pano2VR将修补处理后的补丁图片插入到全景图像中,从而消除掉出现的“黑洞”区域.
图8 优化器优化前后全景图局部对比
根据图像投影的类型,全景图像的集成与输出[10]可以分为以下3种模型.
(1)球面投影图:将图像的位置点坐标同球面的球面坐标对应起来形成的全景图片.
(2)柱形投影图:球面投影的一种简化形势,它是将拍摄到的全景信息形成的图像投影在一个圆柱面上,相当于把场景信息存储在一个圆柱面上.
(3)立方体投影图:把全景图全部图像信息直接分解为前后上下左右6个面,全景浏览时就是把6个面结合起来形成一个封闭立方体来实现全视角[10]浏览.
基于图像的全景系统以全景图像为显示界面,通过鼠标和界面功能键实现场景切换.本文采用Pano2VR构建基于图像的全景系统.
基于图像的全景系统有两种显示方式:一种是基于视频播放器的flash文件显示格式;第二种是基于网页的HTML文件显示格式.两种显示格式都包含五个模块:全视角浏览模块、局部区域缩放浏览模块、文字音频介绍模块、全景场景切换模块以及校园地图导航模块.
(1)全视角浏览模块、局部区域缩放浏览模块、文字音频介绍模块:在单个全景图像场景中,利用Pano2VR的皮肤编辑器添加特殊功能键实现任意视角浏览、区域缩放、背景介绍等功能.
(2)全景场景切换模块:利用热点链接[11],实现相邻全景场景的切换,全景场景的切换结合地图导航模块实现.
(3)地图导航模块:在各个全景场景中添加地图之后,利用地图同全景场景的位置对应关系实现地图导航以及任意场景切换.
系统总体设计如图9所示.
随着计算机图形图像技术、网络传输技术的发展,基于全景图像的漫游技术将会变得日益普及.本文构建了基于图像的全景漫游系统,具有“逼真、自然、交互性强”的特点,使得观看者能够沉浸在全景系统中,按照自己的视角来观察整个环境的细节,在教育、旅游、博物馆展示等方面具有较强的实用性.
图9 全景漫游系统总体框架
但是基于目前的技术限制,本文所构建的基于图像的全景漫游系统,是由多副全景图像构成的漫游结点构成,而漫游结点[12]是由拍摄者所选定,观察者并不能完全按照自己的意愿浏览整个环境.除此之外,本系统是基于互联网的浏览器构建,观察者使用电脑终端来观看.虽然构成系统的图像均为360°全景图像,但是由于观察是在二维平面上观察,所以造成了沉浸感的大大降低.
随着技术的日益成熟,全景漫游将在人们的社会生活中越来越常见.并且随着VR、AR、MR技术的进步,全景展示的方式也将变得更加丰富,展示的终端也将由电脑终端、手机屏幕等二维场景过渡至VR头盔和MR头盔等方式,大大增强观察者的沉浸式体验感.并在交互的方式上,也将由目前的鼠标键盘转换为手势识别等更加自然、人性化的交互方式.
通过上述研究,本文构建了基于图像的全景漫游系统,实现全景浏览、场景漫游、路线规划、地图导航等功能,给浏览者以真实性、沉浸式的全景浏览体验,具有一定的科研价值和实用价值.