文/[美]科里·爱比德 编译/施 端
由卡莱·麦克罗德茨(Kalle Macrides)编剧、Adhesive Theatre Project创作的《黑街二人组》(Noir)作为演艺技术系(Entertainment Technology Department)的实习剧目之一首演于纽约城市理工学院(New York City College of Technology)。作为一出多媒体/舞蹈/戏剧作品,《黑街二人组》利用了计算机视觉系统来提升预录视频内容和现场视频反馈的投射效果。由笔者设计的该系统借鉴了一些技术和软件。本文着重阐述构建有形的硬件系统的方法,分享对用于Cycling’74 Max/MSP/Jitter平台的cv.jit软件的研究。笔者的主要目标是跟踪舞台上演员的活动并在移动对象上投射影像。
最初,笔者想把跟踪舞台上演员的技术用于木偶戏中,希望由技术制作的科技木偶可以把一个演员的脸“粘贴”到一个活动的立体木偶头部。例如:在文乐木偶戏风格(Bunraku-style)中,领头的操纵木偶表演者可以把他自己的脸“转移”到木偶头部并扮演木偶的角色;在《罗索姆万能机器人》(R.U.R)一剧中,一个演员(通过投影技术投出很多个他)怪异地扮演一大批机器人。该技术给予艺术创作以无限的可能性,包括可按任意尺寸缩放演员,且演员可能会有鱼一样的身体或不受重力的束缚。
《黑街二人组》讲述了一位刚遭枪击的好莱坞电影制作人埃迪·钱德勒(Eddy Chandler)的故事。当回忆导致这一悲剧的那段情节时,他使用了控制时间和影像的电影制作技术,揭露了谋杀未遂案的真相。这既是对黑色电影的一次学术研究,又是对电影影像技术用于舞台演出的一次探索。
笔者设计了由24块活动框架组成的舞台布景(其中一些用钢材做成),其上覆盖白布、有色棉麻布或纸张作为投射面。其意图是让演员操作这些框架,就像木偶操纵者操纵木偶协助叙述故事一样。例如,第一场戏是从外部的城市景观转变到内部的电影片场。演员像电影技术员那样搬动这些框架,活动框架不仅形成电影布景,还需要由演员操纵。一些场景中,设计者在框架表面添加视频,增强了演员与框架之间的互动,有助于阐明故事的某一特定含义。
有一场在火车站的戏中,主角和一位机智的记者被一些歹徒和一个邪恶的警察追杀。他们躲过飞驰而来的火车并跳上一节货车车厢,成功脱身。虽然,这本可以仅通过移动框架来暗示这列火车;或者加上一些音效和灯光,也可以进一步增强这种舞台效果(即火车行进的效果)。然而,在这部关于电影的、对舞台活动影像探索的戏中,重要的是要创造一场视觉景观反映这一宗旨。笔者想设计三个场景(使用资料片),在这些场景中演员既要与框架内运动的火车发生互动,又要与舞台有形空间运动的火车发生互动。
这一场景是舞台跟踪对象系统的明证。由于系统中有不少参数是不变的,笔者可以从方程中去掉许多变量,仅关注于运动跟踪的某一方面。例如,活动框架都是固定大小、固定形状的矩形,因此,可以保持在一个二维平面上。此外,因为它们都放置在滑轮上,与地面的高度保持不变,所以,可以取消上下轴。
图1 舞台上演员与投影的互动
该系统的使用基于摄像机,它充当了计算机的眼睛。接着软件分析特定参数的影像,控制基于那些参数的视频内容。此外,摄像机与投影仪之间需要以某种方式进行校准,摄像机必须“看到”投影仪投射到的同一区域。工作团队将它们以相同的角度放置在相同位置。投影仪在投影屏上投以蓝色,确保摄像机可以看到蓝屏的所有四条边,且在其取景框内没有其他区间。他们还把摄像机和投影仪设置成相同的长宽比。这不必很精确,但两者的长宽比校准得越接近,软件计算就越容易。
一旦校准好摄像机与投影仪,使用者必须弄清楚要获取哪些具体参数。在通常的戏剧环境中,除了许多活动的演员和物体外,还有各种颜色和不同强度的舞台光,一旦把影像投向舞台,摄像机就会获取这些信息。为了排除这些散射光对影像的干扰,笔者使用了带有夜间拍摄模式的索尼摄像机。虽然所有摄像机都读取红外光,但在夜间拍摄模式下摄像机对红外光谱的敏感度增强了。随后,使用一张可见光过滤片,遮挡了不属于红外光谱的所有光线。而投影仪已经通过玻璃透镜排除了红外光。因为舞台灯光会投射出红外光,所以,灯具前都加装了隔热片,以减少这些光线。
图2 演出现场
因此,只有有限的光进入了计算机。笔者使用了由一节3 V电池供电的单颗红外LED光源,其投射距离可达40英尺(舞台至摄像机之间的距离),对观众来说几乎是不可见的。通过改变Max/MSP/Jitter平台中摄像机的阈值,可以在任何情况下看到单个白点穿过漆黑一片的舞台。
笔者采用的由让·马克·佩尔蒂埃(Jean-Marc Pelletier)开发的cv.jit软件是免费的扩展库软件。笔者研究了两类视频影像的分析算法:blobs算法和mean-shift算法。blob算法用于查找、分析最大对象的影像,并且可以修改其周边的参数。例如,你可以选择忽略或选取某块斑点。mean-shift算法可计算某个影像的平均值,及其与下一帧之间改变(漂移)了多少,也叫做帧差值。(这两种都是非常简单的算法和进程。)在尝试了佩尔蒂埃库中所有的补丁之后,笔者发现cv.jit.shift可以跟踪计算机从摄像机中接收到的白点。在一些调整和相关人员的帮助下,笔者制定出了一个有效而简捷的解决方案——“单点跟踪”(one-point tracking)。
第二个问题就是蒙板(masking)。为了实现这个功能,笔者使用了Luma Key(亮度抠像)工具。本质上,它使得影像变暗或变亮,并且可以使影像透明。如此就能把另一影像或视频放进那些区域。既然投影屏幕本身比其周围的区域要明亮得多,那就可以改变摄像机的阈值,得到一个二值影像,并且仅投射到屏幕上而不是周边区域上。比方说,如果准备投射一张照片,当屏幕移动时,呈现出来的视觉效果是:在那张照片上开了一扇小窗,通过小窗可以“浏览”其他影像。
既然希望得到反射光,笔者便决定使用一台不带夜间拍摄模式的常规摄像机。这可能会带来之前提及的所有问题——变化的光强、活动的演员、与计算机视觉摄像机互动的投影视频等等——当然,这也相应地制造出了一些纷乱但又十分有趣的视频输出。例如,当演员走过舞台,投射的视频会跟随他们。而且,投影视频会被摄像机获取,并再一次地投射出去,其强度虽有减弱,但这种无限地摄取和投射宛如一个反馈循环系统。
虽然这些都是有趣的效果,但影像还是太模糊了。此外,影像清晰程度取决于舞台上反射了多少光。如果是暗场,拍摄不到视频影像。如果舞台上较亮,投影会比较明亮,但是同样是那些光又会冲淡影像。设计者配备了两盏红外LED灯,可以悬挂在剧场上空照射舞台。使用带有可见光过滤片以夜间拍摄模式的摄像机,以此成功减少这种视频缺陷并且可以在完全黑暗的环境中使用这一技术。
Horn-Schunck光流法,给出了测定二维平面上光流的方程式(或指在二维平面上某一视频帧与下一视频帧之间的变化)。利用这一计算结果,可以看出垂直运动或水平运动数值之间的差异。在佩尔蒂埃的软件补丁cv.jit.HSflow中,这一变化由色彩变化表现出来。如果向上移动,颜色是蓝色;向下是黄色,向左是绿色,向右是红色。而这一补丁激发了笔者对本剧最后一场戏的创作灵感。
就在与编剧讨论最后一场可能选用的场景时,大家忽然想到1953年公映的最早的3D电影《恐怖蜡像馆》(House of Wax)中的场景。笔者想表现出用肉眼(不戴3D眼镜)观看这部3D电影时那种不安的感觉。通过使用舞台上现场反馈的摄像机,通过经光流水平运动过滤处理的影像,就可以获得纷乱的红绿色的余迹。
设计者尝试采用的另一视频效果由舞台上的演员来操作,并通过无线中转设备与计算机进行通讯,该设备可以接收传感器信号并通过射频发送传感器中的数值。虽然,这个中转设备的通讯距离可以超过几百英尺且可以穿过墙体,但在这个场地中,大约在20英尺外就失去了信号。几经周折,天线被延伸到中转设备自身,实现了通讯要求。
中转设备与电位器相连接,电位器与临时代用的方向盘相连接。当女演员转动方向盘时,系统会左右移动舞台上的视频投影。设计者在一辆小车的后面投射出活动背景的视频,从而使视频对演员的活动作出了反应。
笔者还曾断断续续研究的系统是四点跟踪系统。这不像跟踪一个点,四个点给出了投射面四个角的位置,并允许在那些点之间的区域投射影像。这个系统允许用1台摄像机跟踪投射面的三维运动,除旋转运动外还有倾斜运动与偏移运动。与单点跟踪系统相反,屏幕除可以旋转或在轴上转动外还可以横截舞台的深度与高度,仍然始终维持视频影像。
在开发实用模型阶段,笔者从cv.jit.blobs.centroids补丁开始。该补丁用于定位斑点(四盏红外LED灯被放置在屏幕的每一个角上),并给斑点设定标记,以便将它们区分开。然后设置四个点中每个点的位置,并根据那些信息得到一个多边形。一旦有了这个多边形,就可以在那个形状内输出视频。遗憾的是,如果软件丢失了一个点或者搞乱了点的次序,视频影像将不能维持原有形状,会以蝴蝶结形状显示,拧成类似螺旋结构。也许这很容易克服,但解决问题需要一点C++编程语言的知识,这超出了笔者的能力。
可以部分解决三维问题的另一方法,是给每一个活动框架加装一个加速仪,它可以无线传送数据并与单点跟踪系统互相配合使用。但问题是景深仍然不够,需要另外的解决方案。最终,笔者没能及时设计出稳定的影像用于《黑街二人组》的演出,只好采用另一方案来叙述那段故事情节。