摘 要: 在传统的AR系统中,虚拟物体和真实场景在视觉上存在较为明显的差异,达不到虚拟物体和真实场景无缝结合的要求。将增强现实技术与NPR有机地结合起来,减小这种视觉差异,研究并实现了水彩画风格的增强现实系统。
关键词: 增强现实; 非真实感技术; Voronoi图; 水彩画风格; 着色器
增强现实AR(Augmented Reality),也被称为混合现实,是近年来国外众多知名大学和研究机构的研究热点之一。增强现实借助计算机建模技术、计算机图形技术和可视化技术,通过生成真实环境中不存在的虚拟对象并将其应用到AR系统中用于交互的真实场景,虚拟物体和真实场景实时地叠加到同一个画面或空间,两种信息相互补充、完善,使用户的体验更为真实,具有虚实结合的特征。AR技术不仅有着与虚拟现实(VR)技术相类似的应用领域,诸如尖端武器开发、数据模型的可视化、虚拟训练、娱乐与艺术等,而且由于其具有能够对真实环境进行增强显示并输出的特性,在医疗研究与解剖训练、精密仪器制造和维修、工程设计和远程机器人控制等领域,具有比VR技术更加明显的优势[1]。20世纪90年代末,这个领域的研究者开始在一些每年召开的与AR相关的国际研讨会和工作会议上聚会,例如,国际增强现实工作会议(IWAR)、国际增强现实研讨会(ISAR)和国际混合与增强现实会议(ISMAR)等,这些会议在很大程度上促进了AR的研究与发展。
AR技术已经有着广泛的应用。对于有些领域(如医学领域),AR系统需要保持虚拟信息与真实信息有着视觉上的差异以便医生进行诊断;但是,对于其他领域(如游戏领域),AR系统则需要保持两者视觉上的融合已达到用户犹如身临其境的效果[2]。
传统的AR系统中虚拟物体与真实场景之间在显示端存在着较为明显的视觉差异,这种差异大大降低了用户交互体验、操作的真实感。针对这点,本文提出了一种新的方法来改进传统的 AR系统 ,分别对摄像头采集的背景图像和计算机生成的虚拟物体进行基于非真实感的渲染NPR(Non-Photorealistic Rendering)技术的风格化处理 ,减少二者的视觉差异 ,最终输出带有水彩画效果的叠加后图像 ,从而提高虚实结合的程度,在显示端达到视觉的统一。
1 相关工作
AR系统致力于将计算机生成的虚拟物体与真实场景融为一体,通过虚拟物体的信息补充来增强用户对真实环境的理解。目前,AR系统中一些关键的技术,诸如显示技术和跟踪[3]、定位技术[4]已经具有一定的成熟度,但对虚拟物体与真实场景之间的视觉融合技术研究非常少。在实时的AR系统中,要保持虚拟物体和真实场景的完美融合,达到视觉上的统一是很困难的。为达到这个目的,一种方法是使计算机生成的虚拟物体尽可能地逼真,但这不仅需要精准的计算机模型,而且还需要过长的模型计算时间,这在实时的AR系统中是难以实现的。另一种方法是使用NPR技术,使虚拟物体和真实场景通过风格化融合以达到视觉上的统一。目前已经有卡通风格化渲染、油画风格化渲染、马赛克风格化[5]渲染等多种NPR技术在AR系统中实施。丁帆等[6]将卡通风格的NPR技术应用到了AR系统中,该方法减去了较多的真实场景的信息,融合后的视频图像比较模糊。BOUSSEAU A[7]比较系统地提出了处理二维图像和三维模型水彩风格化的方案。他将风格化分为多种可选的效果,用户根据自己的需要进行选择并可以实时地看到渲染结果。为了更加直观地模拟水彩,BOUSSEAU A的方法没有采用库伯卡-芒克模型。虽然该方法可以达到实时渲染,但是得到的渲染结果略显生硬。此外,CURTIS C J[8]提出了基于物理模型的水彩画风格渲染,但是计算代价高昂。
本文提出了采用Voronoi图来处理视频图像帧以模拟图像帧的水彩画风格效果,达到虚拟物体与真实场景的无缝结合。首先利用Voronoi图简化视频帧颜色信息,然后检测出视频帧边缘,最后将边缘线叠加到风格化渲染后的视频帧中。实验结果证明,该方法在实时的AR系统中方便、快捷,能很好地实现虚拟物体与真实场景的无缝结合,并能够保持良好的时间、视觉连贯性。
2 算法原理
将AR系统的视频图像帧利用Voronoi图来处理,以达到简化图像帧的颜色区域的目的,使得真实的场景与计算机虚拟的物体之间的视觉差异减小,从观察者的角度来达到视觉融合,减小视觉瑕疵。同时,检测图像帧中的物体(包括虚拟物体和真实场景中的物体)边缘轮廓,将检测出的边缘同区域颜色简化后的图像帧相叠加,得到最后的观察者接收到的视频图像帧。计算机虚拟物体和真实场景得到风格化的融合,处理过程如图1所示。
3 算法实现
3.1视频图像帧的颜色区域简化
给定一个同时包含了虚拟物体和真实场景的AR视频图像帧,第一个目标是对该图像帧进行水彩画效果的风格化。风格化过程分为两步:(1)生成一个与图像帧同样大小的Voronoi图,Voronoi图的结构类似于洋葱表皮细胞的排列,每个洋葱“细胞”对应了Voronoi图中一个多边形域,如图2所示;(2)用该Voronoi图中的多边形域分割图像帧,并对每个多边形域“细胞”着色,所着颜色由该“细胞”在图像帧中相应位置处像素的平均颜色决定。通过这两步将一些冗余的颜色信息去除,达到图像帧的颜色区域简化,使画面颜色更加接近水彩画效果。
3.1.2 风格化视频帧
在图形硬件中,圆锥体由凸多边形集合近似模拟,Voronoi多边形域同样是凸多边形,所以可以通过在每个Voronoi“细胞”的中心“安置”一个圆锥体近似模拟Voronoi多边形域,从而达到快速生成Voronoi图的目的。实验证明,可以用像素的深度缓存值来决定椎体的大小,使得距观察者越近的物体被渲染得更为细腻。在深度缓存开启的情况下以V(i,j)为中心栅格m×n个圆锥体。此时帧缓存被Voronoi“细胞”分割成m×n个Voronoi多边形域。图2(b)模拟了栅格化圆锥体后的帧缓存,可见此时视频帧被分割成许多不规则的Voronoi多边形域。
在栅格化的过程中,每个圆锥体被赋予单独的RGB颜色值,该值由该区域中心点V(i,j)处的RGB颜色值决定,所以每个圆锥体区域能通过检查帧缓存中该椎体区域像素颜色值来被唯一标识并且被索引。如图2(b)所示,这些多边形域组成了一个特定的Voronoi模版,通过该模版将AR视频帧渲染成水彩画风格。具体做法是:使用多边形域对应原始图片处的平均颜色值对该多边形域进行着色。图3显示了一幅初始的AR视频帧,图4显示了风格化后的视频帧。
为了更好地勾勒出物体的形状从而有着很明显的边缘轮廓线,在下一步将通过对视频帧进行边缘检测来模拟这种风格。结合Voronoi模版风格化视频帧和检测边缘线,达到了基于NPR的水彩风格的增强现实。
3.2 视频帧的边缘检测
边缘检测是NPR风格化渲染中普遍用到的技术,因为许多NPR风格图片拥有突出、鲜明的边缘轮廓线。
在本文算法中,首先对虚拟物体使用简单的卡通着色,然后对该视频帧进行边缘检测。使用简单的卡通着色代替OpenGL默认的高氏着色(Gouraud Shading)是因为卡通着色能增强区域间的颜色对比而使得检测出更为突出、明显的边缘轮廓线。
对于一个物体表面,卡通着色器通过设置强度阈值来产生3个离散的表面强度,进而用不同的颜色进行着色而不是使用连续色调进行着色。卡通着色的片段着色器的代码如下:
varying vec3 lighDir, normal;
uniform vec3 myColor;
void main( )
{
vec4 color;
vec3 n = normalize(normal);
float intensity = dot(lightDir,n);
color=vec4(myColor,1.0);
else if (intensity>0.2)
color=vec4(0.4 * myColor,1.0);
else
color=vec4(0.1 * myColor, 1.0);
gl_FragColor=color;
}
虚拟物体和真实场景被渲染并结合成为一幅纹理图片暂存于着色器中,因此边缘检测可以在片段着色器中进行,而不需要将纹理的像素数据从GUP复制到CPU,大大节省了处理所用时间。RGB颜色空间和YUV颜色空间中的像素信息将会同时用来进行边缘检测。两种颜色空间之间像素转换在着色器中完成,代码如下:
通过对基于视频的AR技术进行研究,阐述了一种新的应用Voronoi图生成水彩画风格的实时的AR技术——水彩画风格增强现实系统。将NPR的方法引入AR系统中,使得计算机虚拟出的物体和摄像机提供的真实场景间在一定程度上实现无缝结合,克服了传统AR系统中虚拟物体和真实场景的视觉上的不统一,给予用户更加真实的体验。此外,由于本文算法使用图像空间的技术实现,可以利用 GPU 进行加速计算,因此,伴随硬件技术的不断发展,该方法的运行速度还有很大的提升空间。
参考文献
[1] 张菁,张天驰,陈怀友.虚拟现实技术及应用[M]. 北京:清华大学出版社,2011.
[2] 钟慧娟,刘肖琳,吴晓莉.增强现实系统及其关键技术研究[J].计算机仿真,2008,25(1):252-255.
[3] 全红艳, 王长波, 林俊隽. 增强现实中虚实结合的新方法[J]. 机器人,2008,30(6):561-565.
[4] 陈靖,施琦,王涌天. 基于视觉增强现实系统的设计与实现[J].计算机工程与应用,2001,37(21):55-57.
[5] BATTIATO S, BLASI G, FARINELLA G, et al. Digital mosaic frameworks-an overview[J]. Computer Graphics Forum 2007,26(4):794-812.
[6] 丁帆,李利军,管涛.卡通风格增强现实系统[J].计算机与数字工程,2007,38(6):76-78.
[7] BOUSSEAU A, NEYRET F, THOLLOT J. et al. Video watercolorization using bidirectional texture advection[J].ACM Transactions on Graphics, 2007,26(3):104:1-104:7
[8] CURTIS C J, ANDERSON S E, SEIMS J E. Computergenerated watercolor[C]. Computer Graphics Proceedings, Annual Conference Series, ACM SIGGRAPH, Los Angeles,1997:421-430.