韩 柯 徐子凡
(北京电影学院声音学院,北京 100088)
在数字娱乐与展示行业,制作互动视觉效果的需求已经十分常见。借助一些传感与捕捉技术将体验者的行为转换为控制视频播放或图形渲染的信号,视觉效果就能跟随体验者的位置或动作实时变化,创设出沉浸式的虚拟现实体验。不过,在以演员为主体的舞台表演中,演员的表演动作通常是预先设计好的,只要跟随时间去表演,经过多次排练之后,就能呈现出数字影像与演员互动的效果,无需借助捕捉设备精准的获取演员的动作或位置。
当艺术表演以概念的传达为核心时,对互动视觉效果的制作与呈现手段会有新的需求。在北京冬奥会开幕式节目 《雪花》中,500名手拿和平鸽道具的孩子在超过1万平米的LED 地砖屏上以自由嬉戏的形式进行表演,每个人脚下都有闪亮的雪花特效时刻“追随”。为了准确传递孩子们心中的自由与浪漫,使用精准排练去解决小演员脚下的特效跟随问题就不再是可选方案,而构建一个能够实时测定演员位置的定位系统,并以此完成互动视觉效果的制作是更具可行性的方案。
在视频游戏行业,互动视觉效果的制作主要是以游戏图形引擎为平台的视效内容制作与交互规则开发。在这个成熟的工业体系中,智能手机、个人计算机以及游戏专用主机是互动效果的通用实现设备,游戏的体验者以鼠标、键盘、触屏或游戏手柄等方式控制渲染程序产生图形数据,再通过手机或计算机的屏幕体验视觉效果。因而,游戏领域的互动效果制作很少需要考虑互动效果实现系统的构建。
与视频游戏行业不同,演出领域的互动视觉效果并没有标准化的制作平台。对于演出中的互动环节,一方面,表演者可以是既定的演员也可能是任意选出的观众,互动行为可以是表演者的位置、动作,也可能是其表情甚至着装的颜色;另一方面,视觉效果的呈现可以通过数台投影组合投射出的非规则画面,也可能借助现场每一位观众的手机屏幕。因此,对于现场演出而言,互动视觉效果的制作者通常要根据项目需求去选择合适的表演行为捕获技术,并构建一个可由行为数据控制的视效处理系统,而视效内容制作与交互规则开发则应基于所建构视效系统的技术平台。可以说,演出领域的互动视觉效果制作方案是一个同时包含内容制作与系统集成的完整解决方案,而北京冬奥会开幕式节目《雪花》的互动视觉效果制作正体现了上述概念。
北京冬奥会开幕式节目 《雪花》的表演形式,以及互动视觉效果制作需求可概括如下。
图1 《雪花》的演出效果
660名儿童演员分为两组,以露天体育场内平整铺设的LED 地砖屏为舞台进行表演。其中,500名舞蹈组演员手持发光道具在完整舞台区域进行跑动、行走、转圈、挥舞道具等动作,160 名合唱组演员边歌唱边行走,表演区域主要在舞台中心区。
作为舞台的LED 地砖屏尺寸约155米×76米。节目表演时段在日落后,使用常规舞台灯光进行照明。
大量雪花状图形单元以组为单位持续生成并消失,每组效果在每个演员脚下区域实时生成后,快速向四周扩散,扩散半径约1米,持续3到5秒后消失。扩散过程中带有颜色与形态的改变,呈现出雪花沿演员行动轨迹散落的效果。
演出领域的互动视觉效果并没有标准制作方案,在进行软件层面的视效内容制作与交互规则编写之前,首先要确定互动效果的实现平台。
依据系统功能,可以把 《雪花》的互动视效实现平台分为演员定位系统、图形渲染系统、视效显示系统三个部分,见图2。
图2 《雪花》的互动视效实现平台结构
作为一个兼顾现场与直播效果的表演,《雪花》的视觉效果呈现基于国家体育场内已经铺设的大规模LED 地砖屏,这是一个支持标准视频信号输入的显示系统,也是视效显示系统的主体。另一方面,在指定位置实时产生特定图形是当今计算机实时渲染引擎的常规功能,尽管 《雪花》的视觉效果需要实时生成形状、颜色等属性动态变化的大量图形单元,并且渲染系统输出至显示系统的信号需达到接近14K 的超高分辨率,不过在多机同步渲染与输出机制下,图形渲染系统的功能需求基于主流的实时渲染技术即可实现。
演员定位系统是《雪花》互动视效实现平台的设计重点。《雪花》的舞台区域超过1万平米,500名演员从舞台南、北两侧上场后,他们的表演几乎涉及整个舞台区域。互动娱乐领域常见的定位设备无法直接满足本节目的技术需求,因而需要整合相关技术研发面向本次大型演出的演员定位系统,这也是本文的主要研究内容。
演员定位系统的主要功能是测定演员在表演区域的位置。《雪花》的演员仅在平整的LED 地砖屏上表演,且互动效果也仅在LED 地砖屏上显示,因此,实现演员在LED 平面上的二维定位即可满足需求。
从测量设备的类型上划分,互动娱乐领域的二维定位技术主要有基于红外或压力传感器、基于电磁波收发设备、基于激光雷达、基于相机的几类方案,而根据《雪花》的演出环境与功能需求,一些技术并不适用。首先,在进行 《雪花》的互动视效制作时,LED 地砖屏已经搭建完成,无法改为LED内嵌红外或压力传感器的方案,且该方案的成本也较高。其次,诸如GPS、UWB (UltraWideBand,超宽带)等基于电磁波的定位技术因需要演员穿戴设备而不优先考虑,并且这些技术在本节目的表演区域很难实现每秒15次以上的连续测定,较差的定位实时性将会影响节目效果呈现。再者,由于表演人数较多,使用二维激光雷达 (业内称为LiDAR)扫描表演区域的方案无法较好的解决演员之间的相互遮挡问题,并且工业激光雷达的探测距离有限,针对超过1万平米的表演区域并没有理想的安装位置。
综合上述分析,《雪花》的演员定位系统可以使用一种基于相机的定位方案,定位系统连续测定并输出演员站立点的位置坐标,位置的测量频率与测定精度应不影响节目效果的呈现。
基于相机的定位技术在互动娱乐领域已有较长的应用历史,其定位原理主要是依据被测目标在相机拍摄图像中的位置来推算目标在实际空间中的位置。相机设备本身并不包含探测与定位机制,它仅输出反映画面光学特征的图像。基于相机拍摄的图像或视频数据进行目标定位需要借助相机标定机制确定图像与实际空间的坐标对应关系,之后借助图像处理算法确定目标 (像素)在完整图像中的位置坐标,从而推算出目标在实际空间中的坐标。
6.1.1 相机标定
工程测量与计算机视觉领域的相机标定是一个求解相机特定参数的过程,这组特定参数可用于计算相机所拍摄空间中的某一点与图像中某一点的对应关系。
相机标定的技术方案通常根据实际需求来选择。使用常规数字相机实现目标在平面上的二维定位时,常用的方式是在被探测平面上放置或显示明显的标志物,这些标志物在平面上的二维坐标是已知的,当相机拍摄到标志物时,即可确定标志物所在像素与实际平面二维坐标之间的关系。常规数字相机输出的单帧图像是一个以像素为单位的二维矩阵,并且可认为像素的排列与间距是规则的,但相机的成像光轴与被探测平面并不一定绝对垂直,并且相机镜头的成像也会有一定程度的畸变,因此从理论上讲,实现精确定位需要通过标志物测定出图像中所有像素与空间坐标点的对应关系。不过根据定位的精度需求,可以认为像素与空间坐标在一定范围内存在可计算的对应关系,因此对多个坐标已知的标志物进行逐个测定,建立相机模型及参数,经过推算即可得到图像中任意像素所对应的实际二维坐标。
图3 相机标定的概念
6.1.2 区分目标图像
在大部分基于相机的定位方案中,确定目标位置需要将目标(的图像)从完整的单帧图像中区分出来。一些常见的目标图像区分方案如下。
(1)基于红外光强度区分目标图像
借助红外相机直接区分目标的方案在互动娱乐领域较为常见。红外相机拍摄的画面主要反映物体的红外辐射强度,如果被探测区域中的目标发出明显强于其他物体的红外光,则可利用红外光的强度对比来实现目标与背景的分离。
(2)基于深度信息区分目标图像
深度相机泛指带有深度测量系统的一类视频相机,这类相机能依靠深度测量系统得到所拍摄图像中各区域与相机之间的距离值。如果目标与相机的距离相比画面中其它元素到相机的距离有所不同,则可以借助深度信息将画面中的目标对象区分出来。目前常见的深度测量系统基于红外光散斑来推算深度值,这类技术受环境光影响较大,深度的有效测量距离通常在十几米以内,因而采用这类技术的Kinect、RealSense等相机主要用于小范围的室内娱乐系统。另一方面,使用激光雷达辅助相机获取深度数据也是一个技术方案,不过这类系统目前成本较高,并且分辨率有限。
(3)基于目标检测算法区分目标图像
在计算机视觉领域,目标检测是一种在数字化图片或视频中检测特定物体的技术,而人工智能概念的兴起让目标检测技术更加关注如何在常规图像(而不是带有红外强度或深度信息的图像)中检测某一类语义对象,比如人、猫或者车。简单的说,目标检测技术可以让计算机像人一样把图像中的各类对象“圈”出来,实现了从完整图像中区分出某类目标图像的需求。
计算机视觉的广义研究目标在于令计算机程序能够“理解”数字化的图像内容,而这个 “理解”可分为多个不同的层次。最初级的层次是判断图像中出现了哪些类别的物体,这里的类别通常是泛化的语义对象,例如人、狗、羊等,因此也被称为“分类 (Classification)”。更高层次的 “理解”则是在“分类”的基础上,检测出图像里的每个物体,获得其类别与位置,也就是令计算机看懂图像中“在哪里,有什么”,这一处理在计算机视觉领域被称为目标检测 (Object Detection)。目标检测又为其它更高级的算法提供了基础,例如将目标从背景中精确分割,或是对特定目标进行追踪等。
一般来说,目标检测的实现主要基于对图像视觉特征的提取,例如形状、纹理、颜色等,再依据这些特征对物体进行识别。在传统的图像算法中,用于识别的视觉特征往往是预先设计的一般性特征,例如方向梯度直方图 (Histogram of Oriented Gradients,HOG)算法。这类算法仅需要少量计算资源就能够实现检测,但是由于使用了固定的特征以及比较简单的分类算法,能够实现的检测精度与类别都比较有限。
图4 计算机视觉的研究目标
图5 使用卷积神经网络进行目标检测[1]
为计算机视觉领域带来跨时代变化的是近年来迅速发展的卷积神经网络 (Convolutional Neural Network,简写为CNN)算法。不同于传统算法,卷积神经网络利用多层卷积核 (Convolution Kernel)函数对图像特征进行提取,通过改变卷积核的大小、权重,可以实现各种不同视觉特征的提取,并形成多个特征图 (Feature Map)。特征图的特征可以继续被卷积核提取,直到分析出对应于各种不同目标图像的高级特征,利用这些高级特征进行检测,能够实现远超传统算法的检测准确度。
使用卷积神经网络实现高精度目标检测的关键在于确定各个卷积层中的卷积核参数,而这要依赖对卷积神经网络进行的大规模训练。卷积神经网络的训练是借助大量经过标注的图片来进行的。这里的标注是指以人工方式将图片中的目标对象标记出来(比如用边界框分割出目标对象)。使用标注过的图片数据去训练网络,即能逐渐调整出理想的卷积核参数,最终让神经网络能够把目标从未经标注的图片中区分出来。卷积神经网络通常需要用大量的已标注图片去训练才能达到理想的检测准确度,不过业内已经有开放下载的训练集 (已经标注好的图片数据),并且对于一些常见对象(比如人、车)的检测,可以通过下载权重文件直接得到一个训练好的网络模型。当然,如果需要针对特定目标提高检测的准确度,就需要专门标注带有特定目标的图片,并对神经网络进行训练。
基于卷积神经网络的目标检测算法并不唯一。一些检测精度较高的算法(例如FastR-CNN 算法)在完成分类任务后需要通过第二个独立阶段进行位置探测,因而相对耗时,而YOLO、SSD 等算法则采用仅通过一个阶段的网络运算同时完成分类和检测任务的策略,以牺牲一定检测精度为代价,做到了检测效率的有效提升。
基于相机的定位方案通常需要目标被清晰拍摄,《雪花》的演员人数多且表演区域广,因此在高处架设相机能够尽量避免画面中出现演员相互遮挡的情况,但这也意味着相机与演员之间的距离较远,加之国家体育场的结构与演出安全要求,可选的相机架设位置与舞台中心的距离在100米以上,这超出了常规深度相机的作用范围,也无法较好地使用主动式红外探测。另一方面,需要定位的500名演员在表演时穿着一致,人形轮廓清晰,舞台的灯光环境与互动视觉内容也会在排练过程中确定下来,上述条件为使用目标检测算法实现演员图像的识别与定位提供了可行性。
目标检测算法的检测速度将直接决定演员定位系统的处理时间,单帧图像处理时间较长不仅会降低定位系统的测量频率,也会增加互动视效实现平台的系统延迟。较低的测量频率会影响互动视效的流畅度,而较大的系统延迟则会导致演员快速移动时出现视觉效果明显滞后于演员站立位置的现象,让实时互动的概念无法成立。因此,在保证一定识别精度的条件下,演员定位系统应优先选择检测速度较快的算法,尽可能缩减系统延迟。
综合上述分析,《雪花》的演员定位系统设计思路如下:使用多台相机组成拍摄视角覆盖完整表演区域的采集系统,对表演过程进行连续的图像采集,再借助计算机视觉领域的目标检测算法得到每个演员在单帧图像中的位置,最后基于相机标定的结果,推算出演员在实际表演区域中的位置。使用检测速度较快的目标检测算法确保单帧定位处理能在合理时间内完成,使用算法连续处理相机输出的单帧图像序列,即能对演员进行连续定位,满足演员定位系统的功能需求。
基于目标检测的演员定位系统与图形渲染系统、视效显示系统构成了《雪花》的互动视效实现平台,加上面向该平台开发的互动视效程序,形成了完整的互动视觉效果制作方案,见图6,这里对演员定位系统的系统构成做简要说明。
图6 《雪花》的互动视效制作方案
《雪花》的演员定位系统可以分为图像采集设备、定位算法服务器以及目标定位程序、坐标处理程序几个主要单元。下文对其中关键技术指标进行说明。
7.1.1 图像采集设备与定位算法服务器
基于对表演区域与演出环境的调研数据,图像采集设备由国家体育场六层观众席最高处架设的4台1.1英寸传感器工业相机 (含专业镜头)组成。每台相机负责场地约1/4区域,以4K 分辨率、60帧/秒的参数运行。为了避免场内低温对相机性能造成影响,相机覆盖了专用保暖套,见图7。
图7 相机架设位置
定位算法服务器包含5台独立的机架式服务器,其中4台执行目标定位程序,另1台执行坐标处理程序。定位算法服务器使用双至强32核心处理器,锁频2.6GHz时执行目标检测算法的单帧处理时间在30ms以内,从相机拍摄到定位处理完成的平均耗时为60ms,可达到预期效果。
图8 定位算法服务器
演员定位系统选择的工业相机支持以SPF+光缆接口的万兆以太网直接发送视频数据。4台相机与执行目标定位程序的4台服务器通过光口以太网交换机组成网络。在服务器端,Linux系统配合相机厂商提供的SDK 可以直接获取RGB 格式的无压缩图像数据。
演出系统的可靠性极为重要。《雪花》的演员定位系统采用了双系统备份方案,两套系统使用完全一致的“4相机+5服务器”硬件配置,各自独立运行,持续发送定位数据。而后端的图形渲染系统能够同时接收来自两套定位系统的数据,并根据设置实时切换或者混合使用两套系统的定位数据,实现了演员定位系统的热备份。
7.1.2 目标定位程序
目标定位程序基于卷积神经网络中检测速度较高的YOLO 算法进行目标检测。借助节目排练时采集的图片数据对神经网络进行训练后,图像中的演员会以边界框(Bounding Box)的形式被框选出来,将边界框底边的几何中心点作为演员站立位置的参考点,再结合预先输入程序的相机标定参数,即可得出演员在实际舞台平面的位置坐标。
图9 使用YOLO 进行的定位测试
YOLO 算法实现快速检测的核心机制在于预先将输入图像用二维网格划分成若干个格子,每个格子根据卷积网络提取的特征直接进行物体的类别与位置预测,一次性完成分类和检测任务。使用YOLO 算法有以下参数可以根据被检测目标的特点进行调整。
(1)YOLO 的网格分辨率。YOLO 算法会对图像进行网格划分,通过提高网格的分辨率,可以提升对较小目标的检测效果,但这种操作会增加运算耗能,影响检测速度。
(2)每个格子内负责进行位置预测的锚框(Anchor Box)数量以及大小。该参数可以根据训练时的数据集进行设定,从而使算法更好地适应特定的检测目标。
(3)检测阈值。其代表算法在对预测结果有多高把握时即认为该预测有效。通过降低阈值,可以令算法输出更多的预测框,在有大量对象需要检测时可以提升检测率,但也会增加误检可能性。
7.1.3 坐标处理程序
目标定位程序的输出结果是每位演员站立位置的平面坐标,由于完整表演区域被分为四个区域独立检测 (如图10),且区域之间有交叠部分,因此开发了坐标处理程序用以汇总来自四个目标定位程序的坐标值,并过滤掉因区域交叠产生的冗余坐标。此外为了优化互动视觉效果,程序使用滤波算法对坐标连续变化的轨迹进行了平滑处理,并设计了一些辅助性的参数,从而构成完整的定位数据。
图10 定位处理程序监控界面
坐标处理程序以UDP 数据包形式发送完整表演区域的演员定位数据至后端的图形渲染系统。依据前期对目标定位程序单帧处理时间的测试结果,定位处理程序的数据包发送频率定为30次/秒,采用定长数据包方案。
7.1.4 相机标定操作
表演区域平整铺设的LED 地砖屏具有非常有利于的标定条件。实际操作中,在LED 地砖屏上显示一个棋盘状黑白相间的网格图,并设置每个方格为同等的边长(图11)。通过实地测量获得LED 所显示每个方格边长的物理尺寸后,选择LED 地砖屏的一点作为坐标原点,可以构建出基于LED 地砖屏的平面坐标系,由于地砖屏上每个方格的长度是已知的,因此格与格的每个交界点都可以作为标定操作的标志点。在整个表演区域等间距选择80个标志点进行标定时,经过实际测量验证,演员定位的误差不超过15cm,能够满足呈现效果需求。
图11 表演区域的标定操作
《雪花》的互动视觉效果制作方案在节目排练过程中进行了多次测试与调整,包括相机的分布、相机分辨率、曝光参数、对卷积神经网络的训练、目标检测算法的检测阈值测定、单帧画面平均处理时间测定,以及互动视效程序中通信控制机制、视效触发与渲染机制的调整,最终在开幕式前的彩排和开幕式正式演出中实现了预期目标,为全世界观众呈现了精彩的互动视觉特效。
在前期测试中,YOLO 目标检测算法的漏检一直是定位系统的主要问题。尽管项目使用最接近正式演出环境的排练数据对神经网络进行了 “训练”,但因节目转播效果需要,现场灯光无法达到目标检测的理想条件,演员着装后无法较好的和背景进行区分,在检测阈值降低到一定程度时,依然会出现演员漏检的情况。此外,YOLO 算法对小尺寸目标的识别效果较差,当目标较密集的聚集在一起时,发生漏检的几率会明显增加。因此在表演过程中,当几名小演员站立位置过近、相互遮挡或者和平鸽道具挡住演员头部时,演员定位系统都会大概率出现定位丢失现象。不过,上述情况针对单个演员而言并不会持续频繁出现,因此在对互动视觉效果的触发机制与渲染算法调整后,漏检问题已经不会影响到互动效果的观赏体验。
计算机视觉领域的目标检测算法为互动视觉效果制作中的演员定位问题提供了新的解决方案。基于目标检测的定位系统无需演员穿戴设备,使用单台高性能服务器配合常规相机即能实现定位,而使用高分辨率、高帧率的专业相机时,其定位精度与速度能够满足大型演出的实时互动视效需求。相信随着计算机视觉领域人脸识别、骨骼追踪、三维姿态预测等技术的持续发展,演出领域的互动视觉效果将迎来全新的制作方式。