一种舞台增强现实系统的研究与实现
2018-02-07王毅刚吴子朝李际军
陈 曦,王毅刚,吴子朝,李际军
1.杭州电子科技大学 数字媒体与艺术设计学院,杭州 310018
2.浙江大学 计算机科学与技术学院,杭州 310027
1 引言
增强现实(AugmentedReality,AR)技术的崛起源于强大的交互能力与表现能力,其与舞台表演艺术的结合可以让观众产生前所未有的视觉体验。传统的特效交互手段是预先通过设计软件设计并制作好视频,通过投影仪或者LED显示屏进行显示,演员需要严格配合显示画面以达到协调一致的舞台效果,营造出一种人机相互配合的感觉。这种传统的手段主要存在以下两个缺陷:(1)设备的运作由幕后人员操控,舞蹈演员无法自主控制,必须通过严格的走位与踩点配合。(2)舞台剧有严格的流程,需要大量的彩排确定,但随着演出场地的改变,演员需要重新记忆位置与时间等信息,彩排时间有限,时间压力大。以上两个缺陷严重限制了交互剧情的设定与演员的临场发挥,且极易出现不同步的情况,所以一般少有实时交互性强的舞台节目。
针对上述问题,本文提出了一种基于红外摄像头的舞台增强现实系统。该系统的输入设备为一个或多个特制的红外摄像头,用于实时获取舞台现场的图像,系统从原始图像中提取出演员的轮廓数据、运动方向等,通过后台人员选择并切换艺术特效,最终由计算机实时渲染后投影到幕布上进行显示,呈现给观众一种虚实结合的AR体验。目前常用的艺术加工手段是采用粒子特效展示人物的舞蹈动作并与演员进行互动。对于艺术特效的制作,设计人员只需根据需求,在粒子系统的可视化的编辑界面中进行编辑并保存脚本到特效库中即可,设计过程快速方便。该系统合理有效地解决了原有交互方式的缺陷,舞台特效实时地根据演员动作进行交互变化,实现了真正的舞台增强现实效果,消除了演员与显示设备无法直接交互的矛盾;演员无需再通过时间点或音乐来记忆位置,只需专注在其舞蹈上,通过舞蹈充分抒发情感,节约了彩排时间,降低了演出失误风险。同时,可视化的粒子编辑系统极大地方便了艺术工作者的创作。
该系统成功应用于《遇见大运河》等舞台剧中,验证了其在现代舞台表演中的巨大优势,不仅解放了舞蹈演员的束缚,使其有更大的即兴发挥空间,而且可控的特效变化让整个舞蹈更具科技感与艺术表现力。
2 相关工作
目前,一些研究人员已经把三维渲染技术应用于舞台效果的设计上,开发具有交互式编辑、虚拟显示功能的舞台仿真系统,如文献[1]通过OGRE渲染引擎来模拟舞台灯光,达到可视化编辑的效果,文献[2]对舞台布景进行仿真,用键盘、鼠标就可完成舞台布景的设计,节约人力物力。这种仿真系统简化了设计阶段,方便了设计人,但却没有将三维渲染技术运用到真正的表演阶段。
为了驱动交互系统,需要从摄像头视频流中获取前景运动人体,目前常用的方法主要有光流法、帧差法以及背景减除法三种。其中光流法[3]计算复杂,实时性差,需采用特殊硬件装置,很难用于本系统中;帧差法[4]通过对序列中相邻两帧图像进行差值提取运动区域,其速度快、适应性强,但在运动体内易产生空洞,且无法有效检测运动速度变化较大的目标;背景减除法[5]可看做一种特殊的帧差法,通过对视频帧和背景图像进行比较来检测,但舞台演出灯光变化复杂,背景实时变化,该方法会受到较大影响。
近两年,体感摄像机Kinect[6]快速发展,已能够进行实时人体运动检测(见文献[7]),但仍然存在识别范围有限、骨骼准确性不足、自遮挡等问题,文献[8]研究了双Kinect下的骨架跟踪,改善了部分问题,但舞台表演需要严格的准确性,且多Kinect环境难以在舞台上搭建,所以目前尚没有团队将其用于舞台表演中。
3 系统设计
本系统针对单目标人物设计,不涉及演员运动识别,所以不考虑多目标所产生的前后遮挡以及误识别等问题。系统开关由后台人员控制,开状态时舞蹈演员只需站在捕获区域即可进行人体渲染,艺术特效由后台人员在特效库中进行选择与切换。
图1描述了舞台增强现实系统模块之间的相互关系。本系统总体分为4个功能模块:数据获取模块、特效系统模块、三维渲染模块、用户控制模块。数据处理模块负责从摄像头获取图像数据并实时处理;特效系统模块包括粒子系统部分与混合纹理部分,用于特效的制作,更好地表现艺术效果;三维渲染模块负责将特效渲染到计算机三维世界中,并用数据处理模块产生的数据流来驱动特效的运动与变化;用户控制模块为后台人员提供简易的配置与操作方法,预先根据舞台情况调整参数,生成配置文件,在表演时进行读取并根据节目设计的效果切换粒子特效。
图1 系统结构
4 演员运动数据获取
作为整个系统的驱动中心,数据获取模块需为后面的特效渲染提供可靠准确的数据流,以满足增强现实技术强交互的特性。考虑到渲染的高计算量以及整体系统的实时性,该模块应尽量选择复杂度较低的算法并根据实际效果进行调整优化。
4.1 图像捕获
灯光是舞台节目美术造型的手段之一,是演出空间构成的重要组成部分,能够将设计意图以丰富多彩的视觉形象再现给观众。但是动态灯光的大量运用以及LED显示屏会严重干扰到舞台图像的处理,快速高效的运动目标扣取将变得极难完成,如图2所示,背景减除法会因舞台聚光灯的移动而出现较大误差。
图2 背景减除法效果
为了更好地去除光照变化的影响,并满足系统的实时性,对摄像头进行改造是一种简单有效的手段。本系统选择在摄像头上安装红外光滤波片,使其只接受固定波段以上的红外光,并在幕布周围布置了朝向演员运动区域的红外灯进行打光。通过实验发现波段为975 nm的红外灯打光时,不会产生可见的红光效果,且滤光片获取的红外图像质量相对较高,低于此波段,图像光噪点太多,高于此波段,图像对比度过低。
由于舞台较大,舞蹈演员表演位置可能距离摄像头过近或者过远,因此使用搭配广角镜头的工业摄像头进行图像捕获,其具有可视范围大,图像质量高的优点,装置搭建如图3所示,其中摄像头、投影幕布安置的位置由表演区域大小以及节目效果而定。
图3 系统搭建示意图
鉴于开源视觉库OpenCV在读取各类摄像头所表现的不稳定性,使用DirectShow开发包进行该部分的开发,便于根据具体的舞台场景选用不同的摄像模组。DirectShow提供了一个基于COM的Windows下的视频处理框架,可以方便地从支持WDM驱动模型的采集卡上捕获数据,广泛地支持各种媒体格式。将获取的BYTE类型数据转换成OpenCV所使用的IplImage图像格式,便于使用OpenCV的算法集进行后续图像的处理。
实际测试时,使用该红外摄像头获取的图像效果理想(见图4),人眼能清晰地分辨出图像中的事物,对图像中的前景和背景、物体的轮廓、纹理等能较好地区分,极大地方便了后续数据的处理。
图4 获取的红外图像
4.2 前景人物的抽取
大多数舞台剧道具简单,表演区域干净,运动物体基本只有演员本身。舞台周围布置的红外补光灯可有效地将其打亮,所以获取的红外图像中前景人体明显,背景区域RGB值较低,阈值二值化便可扣取出演员身体轮廓。但在实际条件下发现,受舞台具体情况的限制,红外灯无法彻底将人打亮,图像人物边缘因受光面积少,对比度较低,抠图边缘颗粒感较重,且伴随演员的运动,服装褶皱会在轮廓中产生空洞,如图5所示,因此需要对其进行边缘平滑和区域填充处理。
图5 二值化图像效果
由于边缘颗粒以及区域空洞都可以看作为随机噪声,因此考虑使用图像滤波的方法进行处理。滤波的缺点是降低噪声的同时会产生模糊,尤其是图像的边缘部分。处理效果与所用的邻域半径有关,半径愈大,图像的模糊程度也越大。对于二值图,该缺点却可以有效地实现颗粒边缘的平滑和空洞区域的填充。为满足系统的实时性,选用速度最快的均值滤波器[9]进行处理。均值滤波是一种典型的线性滤波算法,它是指对目标像素给定一个模板(如图6所示),该模板包括了其周围的临近像素,用模板中全体像素的平均值来代替原像素值。
图6 3×3模板均值滤波
均值滤波的原理是基于领域平均法,采用模板计算的思想,模板操作实现了一种领域运算,即某个像素点的结果不仅与本像素有关,而且与其领域点的像素值有关,其数学表达公式为:
其中(x,y)为待处理的当前像素点,g(x,y)为处理后图像在该点上的像素值,s为模板,M为该模板中包含当前像素在内的像素总个数。
先对图像进行均值滤波,然后将获得的模糊图像再做一次二值化即可,其中阈值以及滤波器模板的大小需要根据实际效果进行设定,经现场实验表明通常情况下5×5的模板效果较好,效果如图7所示。
图7 均值滤波后二值化图像效果
4.3 人体数据提取
为了能在正确的位置渲染特效,需要从处理后的二值图像中获取有效信息,包括人物轮廓、躯体坐标点集合以及运动方向等。二值图像中,边界的灰度值和内部灰度值相同,边缘是单像素闭合连续的。为了求区域的连接关系,沿区域的边界点跟踪像素速度最快,但由于同时需要记录除轮廓点之外的躯体坐标点,遍历一次图像无可避免。因此,使用FloodFill漫水填充法的思想[10]来进行图像扫描,通过判断八领域内有无0像素来区分是否为轮廓点,经该方法处理后,舍去坐标点过少的连通域,便可获取轮廓与躯体坐标点的集合。
通过对连续帧中轴对齐轮廓包围盒的求取,计算包围盒中心的差值与缩放比率,可近似地构建演员的三维运动向量,提供给特效模块使用。
5 人物动作的特效渲染
舞台美术最早来源于戏剧,是舞台表演艺术的一个重要组成成分,包括机关布景、灯光、化妆、服装、效果、道具等。舞台美术是舞台上的“绿叶”,通过它的布置在特定的场景和环境中给人以直观的视觉效果和无限的想象空间。现代显示装置与视频制作技术有力地推动了舞台布景的发展,原先复杂耗时的背景场景搭建可用LED显示屏代替,放置在舞台后方播放视频或图片,效果真实且成本较低。投影幕布灵活方便,可以放置在任何位置,通过投影设备表现特效。近年来,随着计算机处理能力的不断提升,虚拟现实技术取得了快速发展,各类游戏引擎、开源图形引擎层出不穷,渲染的质量与效率都有了极大提高。目前,电影和游戏领域都已采用图形方式完成对自然现象和景物的仿真,而以往需要预先制作成视频的舞台特效在一定程度上已经可以实时渲染。
本系统选择使用OGRE引擎对增强现实中的虚拟部分进行渲染,OGRE是一个成熟稳定、可靠灵活、跨平台的开源图形库,对底层的DirectX和OpenGL进行了封装,使开发人员可以将更多的精力放在应用程序的细节,而不是一个3D场景的渲染过程,其功能特性以及面向对象的设计思想可参照文献[11]和[12]。OGRE强大的图形渲染能力以及优秀的粒子系统和材质系统可以出色地完成对舞台特效的模拟。
5.1 OGRE系统介绍
5.1.1 粒子系统
粒子系统的基本思想是利用大量具有纹理的微型图元来模拟物体的形状。它采用了一套完全不同于以往造型、绘制技术的方法来对云雨雪雾等进行模拟,被认为是目前模拟不规则模糊物体最为成功的一种图形算法。粒子系统的重点是要对物体的属性进行理解和分析,建立相应的物理模型,只有以此为基础,才可能真实地模拟出物体形态。OGRE的粒子系统由粒子、粒子发射器和效应器三个部分组成,如图8所示。
图8 粒子系统构成
在模拟过程中不仅要根据物体的物理模型设置粒子运动和变化的规律,还需要对每个粒子设置位置、速度、大小、生命周期、颜色等属性[13]。发射器会根据生成速度以及每个间隔更新的粒子数目,以及它的位置和生成区域对粒子进行发射。一旦粒子被发射到世界中,效应器将按照一定的规则对粒子的路径、效果和生命周期进行影响,OGRE中有线性力效果器、颜色衰减器、颜色修改器、缩放器等效应器。每一帧中,粒子系统一般都会执行如下步骤,见图9。
图9 粒子系统执行过程
OGRE粒子系统的强大之处在于其提供了脚本语言,使用者可以在脚本中设置粒子的各种属性,而不需要重新编译程序,这使得特效的编写与修改变得极为方便。一个简单的粒子脚本文件包括粒子属性、发射器属性以及效应器属性等。
5.1.2 材质系统
仅仅依靠粒子系统,还无法模拟出复杂绚丽的特效,图形学中依靠材质来定义物体表面可视属性,描述场景中对象绘制的细节,从而达到更强的渲染效果。在OGRE中,材质(Material)类封装了物体所有的材料属性,如不同的颜色反射率、组成Material的纹理层等,平时不被认为是属于材料的属性,如Culling模式和深度缓存设置等,也被包含进来,因为这些属性同样影响了物体的外观,将其放到Material类里可以集中设置。OGRE的材质系统和其粒子系统一样,不但可以通过编程来设置,也可以在引擎初始化时通过脚本来加载,脚本一般包括通道属性、纹理图片、纹理混合类型等设置。
5.2 基于OGRE粒子的演员舞台特效
虽然OGRE的粒子系统已经比较完善,但它所支持的发射器和影响器的种类仍比较有限,很多复杂的运动模型无法通过OGRE自带的影响器实现。使用脚本创建粒子系统简单方便,但无法精确控制单个粒子的实时变化。对于规律简单的舞台特效,脚本能够很好地模拟,但是对于复杂的特效变化,很难真实准确地描绘出整个过程。
基于以上考虑,本系统将整个舞台粒子特效拆分成背景互动部分和人体部分,使用脚本和程序共同控制[13-15]。对于交互简单的粒子,使用脚本控制,而对于交互复杂的粒子,根据各个艺术设计效果分别进行三维和运动建模,通过编程控制粒子的位置、运动状态等属性。
5.2.1 坐标转换
为了正确设置粒子位置,需要对从数据处理模块传出的数据进行处理,将其从OpenCV图像空间转为OGRE的三维空间当中。图像空间是以图像左上角为原点建立的以像素为单位的坐标系,像素依次排列且x、y值都为大于等于0的整数(图10(a))。OGRE的坐标系为典型的右手坐标系,相比图像坐标系多了指向屏幕外的z轴,且y轴相反(图10(b))。
图10 不同的坐标空间
为了方便地设置相机以及对粒子坐标进行控制,将图像的中心设为三维世界的坐标原点,把图像空间内的(x0,y0)转化为世界坐标(x1,y1,0),转换方程式如下所示:
其中VideoWidth和VideoHeight为图像的宽和高,TargetWidth和TargetHeight为目标大小的宽和高。
5.2.2 粒子系统构建
将从图像中获取到的坐标点映射到三维坐标系后,便可通过程序实时改变粒子发射器的位置,实现粒子跟随演员运动的效果。发射器位置可在演员的轮廓或者躯体中,由此便可形成一个由粒子组成的人形。
在OGRE中,可以通过使用不同的材质来表现不同的渲染效果,模拟不同的物体。同时,每一个粒子可以通过使用它自己的颜色属性为材质附加颜色,产生不同的变化效果。构建粒子系统,需根据舞台节目的表现要求,设置合适的纹理材质及属性。对于背景粒子,可以通过脚本生成并实时根据演员运动向量对粒子施加线性力实现粒子跟随运动的效果,而复杂的交互特效,需根据物理模型,计算运动方程式,在程序中直接控制粒子的位置实现,产生诸如螺旋上升,动作跟随等效果,图11与12为该粒子系统应用于电子艺术节开幕式的表演节目。
图11 场景粒子围绕演员旋转
图12 演员动作延迟跟随
5.2.3 Particle Universe粒子编辑器
OGRE仅是一个渲染引擎,其粒子系统没有配备图形界面,难以直观地对复杂的特效进行编写。在实际创作过程中,也不可能让艺术工作者用硬编码的形式制作想要的特效,必须有一个成熟稳定的粒子编辑器,所以本系统整合了基于OGRE的第三方粒子插件Particle Universe。
该插件包括Particle Universe Plugin和Particle Universe Editor两个部分,其中Particle Universe Plugin提供给编程人员使用,可以根据Visual Studio版本和OGRE版本编译合适的插件,也可对其进行扩展,实现更多功能;Particle Universe Editor为一套可视化编辑器,可以仅靠鼠标和键盘直观的进行特效编辑,方便艺术创作人员使用,效果如图13所示。
图13 编辑的粒子特效
Particle Universe Editor编辑好的粒子特效会被保存为一个pu脚本文件,本系统可以方便地加载需要的pu粒子,如图14所示。
图14 在系统中使用下雪特效
5.3 纹理融合
为了在不损耗实时性能的基础上实现更加丰富的视觉效果,本系统使用视频纹理融合技术,利用视频制作动态纹理来实现。由于OGRE自身没有实现视频纹理,需要自行读取视频并显示到某个物体或者区域上。具体实现步骤如下:
(1)使用OpenCV读取视频帧。
(2)创建视频帧纹理以及相应的材质文件。由于OpenCV图片数据中RGB的存储顺序默认为BGR,故在设置Ogre:TexturePtr时应该注意将buffer中的数据与BGR相对应。
(3)设置贴图区域进行纹理贴图。
(4)更新视频帧。
通过上述方式可以实现静态位置的视频播放,为了控制绘图形状,增加动态效果,可根据模板图片来限制绘图区域,控制视频像素是否写入纹理,其中模板图片可以是演员运动的二值图像,效果见图15。
图15 根据模板图片合成特效
6 用户控制模块
传统的演员配合视频特效的舞台节目因场地的不同需要对各个环节进行调整,投影幕布或LED显示屏的位置与尺寸等都要根据实际情况进行变动,而这些改变会使原本的投影不再合适,校准的过程极其繁琐,需要幕后人员将特效视频一帧一帧地裁剪对准到幕布中心上,当视频时间长或投影幕布多时将变得难以处理。
该模块充分考虑到这些可变因素,将其参数化并组成配置文件,主要包括:(1)投影幕布的个数以及投影到各块幕布所需要的位置偏移与显示尺寸数据。(2)数据处理模块参数初始设置,抠图的阈值以及均值滤波的模板大小需根据现场灯光条件改变。(3)舞台表演时所需要加载的特效。这些参数需在彩排时根据具体要求进行设置,因此需要一个可视化图形界面方便工作人员使用。
图16为本系统的用户设置界面,所有操作都可通过鼠标键盘进行,预览区(图17)可以根据设置实时更新,大大减轻了幕后工作人员的工作压力,节约了彩排时间。
图16 设置界面
图17 用户预览区
设置完成后,数据将全部写入配置文件,实际演出时,选择相对的配置文件读入,通过投影机将渲染画面投影到对应幕布上并按需求控制特效播放即可。
7 系统运行结果
本系统以Visual Studio为平台,使用C++语言开发,成功与中国美术学院合作多个新媒体节目,如登上国家大剧院舞台、以大运河为题材的文化遗产传播舞蹈剧《遇见大运河》,以及上海电子艺术节开幕作品、艺术人文频道开幕文化盛典舞蹈节目《律动》等。
舞蹈《遇见大运河》将京杭大运河抽象成运河女神,其在幕前由演员扮演,幕后由虚拟特效表现,因此演员进出幕布部分极易出现特效不同步的情况,该剧原本采用演员与视频配合的方式进行表现,经常出现较大失误。
图18表现了演员进入幕布舞蹈时视频特效时间不同步与位置不同步的现象,图18(a)主要由于演员时间卡点不准确造成,图18(b)由于彩排时投影位置对准出错造成。
图18 表演不同步现象
使用了本系统后,特效的表现完全由演员自主控制,极大地降低了演出失误风险。为配合该剧的整体形象设计,展现运河女神由水组成的属性,本系统利用水波纹视频纹理并搭配大量水珠粒子来模拟,效果如图19所示。
图19 运河女神效果
《律动》是一种强交互的新型舞蹈,演员与特效全程同时展现在观众面前,表现出计算机时代电子艺术的魅力。传统方法严重限制了演员的自由发挥且长时长的视频特效制作周期长、成本高,本系统的应用成功解决了此问题,演员可以随性发挥,只需后台人员控制切换粒子特效即可,对应的特效会根据演员的实际动作控制粒子的运动与表现,部分效果如图20所示。
图20 舞蹈动作控制粒子效果
由于在每个模块设计时都着重考虑到性能的问题,本系统渲染帧数稳定在60以上,完全符合实时的要求,演出均取得了完美成功。
8 结束语
基于红外摄像头的舞台增强现实系统协调了演员与显示设备的人机关系,改变了以往演员配合视频的方式,为解决舞台AR的互动难题提供了一种可行方法。显示内容直接由摄像头驱动并通过计算机实时渲染呈现,不仅减轻了舞蹈演员的压力,使其能够全身心的投入演出本身中,而且绚丽可控舞台特效使节目更具有科技感与现代感。可视化的操作界面极大地方便了艺术工作者的使用,特效的编辑与导入、针对舞台的设置都变得极为容易,丰富了艺术创作的手段,加快了艺术创作的进度,具有广泛的应用前景。
[1]沈萦华,方瑜骅,吕朝辉,等.舞台灯光虚拟效果的设计与实现[J].中国传媒大学学报:自然科学版,2011,18(2):50-53.
[2]杨波.基于OpenGL的交互式舞台布景仿真系统设计[J].武汉冶金管理干部学院学报,2002,12(1):71-73.
[3]Amiaz T,Lubetzky E,Kiryati N.Coarse to over-fine optical flow estimation[J].Pattern Recognition,2007,40(9):2496-2503.
[4]Drummond T,Cipolla R.Real-time visual tracking of complex structures[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2002,24(7):932-946.
[5]Monnet A,Mittal A,Paragios N,et al.Background modeling and subtraction of dynamic scenes[C]//Proceedings IEEE International Conference on Computer Vision,2003,2:1305-1312.
[6]石曼银.Kinect技术与工作原理的研究[J].哈尔滨师范大学自然科学学报,2013(3):83-86.
[7]孟明,杨方波,佘青山,等.基于Kinect深度图像信息的人体运动检测[J].仪器仪表学报,2015,36(2):386-393.
[8]Yeung K Y,Kwok T H,Wang C C L.Improved skeleton tracking by duplex kinects:A practical approach for realtime applications[J].Journal of Computing&Information Science in Engineering,2013,13(4):041007.
[9]Rakshit S,Ghosh A,Shankar B U.Fast mean filtering technique[J].Pattern Recognition,2007,40(3):890-897.
[10]陈佳鑫,贾英民.一种基于漫水填充法的实时彩色目标识别方法[J].计算机仿真,2012,29(3):4-9.
[11]杨波.基于OGRE图形渲染引擎的视景仿真技术的研究与实现[D].成都:电子科技大学,2006.
[12]石晓旻.游戏引擎扩展脚本技术的研究及实现[D].成都:电子科技大学,2005.
[13]周海波,陈福民,李莉娅.基于OGRE粒子系统的烟花模拟[J].计算机应用与软件,2008,25(10):222-224.
[14]潘良.基于OGRE粒子系统的飞机尾焰红外仿真[D].西安:西安电子科技大学,2013.
[15]张磊,黄亚玲.基于OGRE粒子系统的喷泉模拟[J].应用科技,2013(3):24-27.