Pixvana详解VR云服务对英伟达VRWorks SDK的支持
查看引用和消息源请点击:映维网
基于云端的解决方案
(映维网 2019年04月23日)Pixvana基于云端的VR管道现在包含了NVIDIA VRWorks 360 Video SDK。Pixvana希望利用云计算的力量来帮助解决VR创意人士所面临的诸多挑战。Pixvana VR管道的亮点包括:
- 兼容所有主要VR头显的视频播放器,方便进行视频分发。
- 后期处理工具和选项,可为头显提供最佳质量的360度视频。
- 提供拼接工具(利用VRWorks),可根据各种相机系统创建360度视频。
- 基于Web的平台,支持Chrome浏览器共享,编辑和资源管理。
- 可定制的交互式视频允许图形叠加与测试。
- 用于创建交互式视频的头显内编辑工具。
- …
Pixvana联合创始人兼首席技术官Scott Squires,以及高级计算机视觉科学家Paul Barsic日前撰文概述了制作360度视频的基础知识,并且介绍了Pixvana基于云端的工具套件,以及VRWorks中的关键流程,目的是帮助大家充分利用相关程序来开发360度/度VR项目。以下是映维网的具体整理:
1. 创建360度视频
Pixvana专注于帮助创作者在不减损视频质量的情况下制作360度视频。高质量的360度视频需要在专门的相机系统来捕捉环境的所有角度图像。如下图所示,相关的相机系统一般都会搭载多个传感器和多个摄像头。
图1:左边是Kandao Obsidian R Professional 3D 360 Camera;右边是Insta360 Pro Camera。
各个摄像头捕获的视频这些视频视图需要校准,曝光补偿,并在名为“拼合”的过程中进行组合,如图2所示。其他后期制作功能允许编辑者对图像进行细化操作,旋转和颜色校正。拼合和处理一系列图像会产生通常为8K或更大的等量矩形视频。
图2:SPIN Studio后期处理工具和360度拼接工具
尽管等量矩形是360度视频的标准格式,但它存在明显的缺点,包括图像最高点区域和最低点区域的像素浪费。所以除了等量矩形视频外,我们同时支持多种包含不同几何形状和打包方式的专业格式,如菱形平面和FOVAS(视场自适应流式传输)。菱形平面是一种特殊的投影格式,可以缩减数据大小。FOVAS则采用特殊的平铺格式和流媒体技术。即使用户转头,它都可以在活动视场中提供高分辨率内容。所述格式旨在克服标准视频的限制,最终目标是在较低带宽下生成更高质量的视频。
图3是海滩情景的等量矩形投影。请注意,最高点位置和最低点位置的畸变情况。所述像素都是过度采样,需要更多的带宽进行传输,而这是一种浪费。
图3:海滩情景的等量矩形投影
图4是菱形平面投影的格式,其中图像被投影至二十面体之上。图像的小平面会被重新排列以适合平面。这种投影格式解决了过采样问题,使得图像更小,并而流式传输效果更高。
图4:海滩情景的菱形平面投影
FOVAS方法则需要创建同一视频的多个视图,而每个视图都可以调整至特定的浏览方向。然后,播放器根据需要切换至正确的视频。
无论格式如何,VR视频制作的下一步都是创建具有不同比特率的多个文件版本,以便视频可以作为可变比特率视频进行流式传输和下载。对于拼合,颜色调整,格式改动等流程,它们都可以利用云端和GPU来高效快速地生成所需输出。
1.2 基于云端的系统:分发,后期制作和处理
分发是球形视频创作者面临的主要挑战之一。目前最先进的技术是将视频侧载至各台设备。但这需要相当漫长的时间,并且需要头显和视频制作者位于同一位置。Pixvana的SPIN Play功能简化了这个工作流程,支持远程管理和跟踪变化。它同时允许在未网时将完整内容下载至配对的头显并进行播放。
SPIN Play提供两种播放模式:Share Mode和Guide Mode。Share Mode用于短期浏览,例如与远程同事协作。要访问这一模式,你只需在视频播放器中输入唯一的九位密码,如图5所示。所述密码可以标识相应的播放列表。接下来,用户可以进行完全控制,并且能够轻松退出共享会话。
图5:共享模式设置
Guide Mode则针对需要更高管理权限的体验,例如VR电影或企业培训场景。运行Guide Mode的头显可以跟踪在线内容,响应更改,并且可以切换至可供管理的播放模式。单位演示者可以同步数十款头显,开始和停止播放,甚至可以跟踪所有用户的注视点。这样特殊的功能使其成为了VR电影节和企业客户的理想选择。图6是Guide Mode的管理屏幕。
图6:Guide Mode
为了提高360度视频的用处和吸引力,我们添加了创建交互式视频的工具,如图7所示。制片可以在VR里面编辑交互式视频,并直接在头显中为最终浏览环境添加端口,图形和文本。
图7:SPIN Plau允许你创建交互式360度视频
处理VR视频所需的系统性能是VR创作者面临的又一重大挑战。典型的VR相机装置由大约六个或更多高分辨率的摄像头组成。无论编辑决策如何,摄像头图像都必须对齐,拼合,并渲染成最终的超高分辨率(8K)视频。这需要大量的处理能力。英伟达显卡明显是个正确的解决方案,但渲染所需的性能和时间大幅度占用了工作站。一些编辑工作者得不得在一天工作结束后令设备继续处理,从而影响了工作流程。
SPIN Studio是Pixvana基于云端的平台,借助VRWorks 360 Video,它可以在合理的时间内渲染高质量的VR视频。Amazon Web Services (AWS)托管的智能资源管理系统允许用户同时编辑和渲染多个视频。一旦用户请求渲染,系统就将视频分成多个片段,然后将其分发到多个实例。这样的系统可以管理不同云服务平台之间的工作,从而实现更高的吞吐量。在当前的架构中,Pixvana利用了AWS和Microsoft Azure。
完成工作后,最后一个进程是收集结果,从而完整地生成最终视频。每个GPU实例都运行Callisto,亦即我们内部的视频处理引擎,它位于Docker容器的一个实例之中。Callisto集成了行业标准计算机视觉库,包括FFMPEG和OpenCV,我们自家基于C ++和CUDA的图像处理算法,以及VRWorks 360 Video SDK。
所有VR视频处理都涉及以下步骤:
- 校准,或确定旋转和扭曲输入图像的规则
- 编辑,裁剪,颜色处理,拼合调整,以及定向
- 渲染和编码
借助云端技术,新的专业格式,以及Pixvana突破性的VR管道,创建360度视频变得前所未有的轻松。接下来,我们将讨论在VRWorks中的图形,360度视频和空间化音频,以及Pixvana VR管道的未来计划。
2. 云端的VRWorks
现在我们来讨论如何利用VRWorks和基于云端的处理来优化VR视频制作。我们同时将介绍在这一过程中开发出的最佳实践。
2.1 VRWorks的工作原理
VRWorks是一组特定于VR的API,库和引擎。VRWorks由三个主要组件组成:VRWorks Graphics(适用于应用程序和头显开发者),VRWorks 360 Video和VRWorks Audio(适用于空间化的光追音频)。Pixvana主要利用了360 Video。
NVIDIA VRWorks 360 Video SDK支持基于文件,基于流传输数据,以及基于帧的工作流程。它包括五个模块:High-Level拼合器,校准器,Low-Level拼合器,打包器,以及空间音频处理器。High-Level管道包括GPU加速解复用器,复用器,解码和编码,并可直接处理视频文件和流传输数据。
尽管经过了优化,但High-Level拼合器并没有提供给交互的能力。相反,我们选择使用校准器和Low-Level拼合器的组合来实现用户交互。Low-Level拼合管道直接配合CUDA设备存储中的帧,并为执行和数据传输的线程提供了更大的灵活性和应用程序控制。高度优化的、基于CUDA的打包器可以在透视,鱼眼和等量投影之间转换图像,从而执行图像扭曲和失真消除。扭曲操作同时可以将等量矩形拼合输出转换为投影格式(如立方体贴图),以便消除过度采样并减少所需的流式传输带宽。
图8是校准工作流程。左侧框标有“Sources”,这表示用户输入。英伟达校准器根据至少一帧来确定每个摄像头的一组完整内部参数(焦距,畸变系数,视场)和外部参数(方向和位置)。
图8:校准流程示例
存在一定的注意事项,如特征距离,足够的特征和适当的照明。场景特征不应该位于相机装置的一米或两米以内,因为显著的视差会混淆算法。具有大片无特征区域(如墙壁)的场景可能会产生对齐问题。最后,场景应该要提供足够的照明,不能太暗,也不能太亮。
图9是易于校准的情况。
图9:后期校准,简单的照明
图10则是非常有挑战性的案例。你可以看到场景非常光亮。在这种情况下,向校准系统提供焦距估计可以提供帮助。但是,你可以显著看到明显的对齐问题。
图10:更为复杂和多变的照明产生了校准方面的挑战
下面的代码片段是一个名为NVcalib的VRWorks校准器函数。它分为7个关键的步骤:
- 创建校准实例
- 设置相机装置属性
- 设置校准选项
- 将输入图像指针(Pointer)传输至校准实例
- 指令校准器执行校准
- 检索结果
- 销毁校准实例
nvssVideoStitch底层拼合器函数同样易于调用。下面是粗略的示意性步骤,并不代表最佳工作流程:
- 设置拼合器属性
- 初始化拼合器实例 (每个视频需要一次)
- 将输入数据加载至nvstitch实例
- 执行拼合
- 将拼合器的拼合图像复制到outputRGBA
- 销毁校准实例(每个视频需要一次)
曝光补偿是VR视频的一个重要问题。由于在室外拍摄360度场景将包括太阳光和阴影,因此动态范围会发生很大变化。相机传感器的动态范围有限,所以相机装置中的每个摄像头通常会自动设置曝光。对于最终的拼合图像而言,重叠的区域会出现不同的亮度。我们测量亮度差异,并且进行曝光补偿,然后再将它们传输至VRWorks拼合器。Pixvana正在与英伟达团队合作优化拼合器,并提供更多的控制和功能以产生更好的拼合。
3. 云处理的优点,缺点及解决方案
图11说明了云计算的其中一个主要优势。示例视频中的每个输入分成短节段,然后分配给多个计算机以进行拼合。收集拼合节段,并编码成单个拼合视频。接下来,将最终视频放到用户的媒体asset库中,这样用户随时都可以观看。
图11:SPIN Studio的云处理为360度视频提供了大量的并行处理
我们基于云端的方法存在四个重要的局限性。首先,我们对GPU的控制有限。其次,我们必须维护一个基于Web的VR编辑器。第三,我们需要管理一系列服务之间的协同工作。最后,用户必须上传源视频,而这可能是一个耗时的过程。
为了解决将文件传输至云端系统的问题,Pixvana为Windows和Mac OS开发了云摄取功能和桌面上传器。桌面上传器在中断后可以恢复(如网络丢失或系统断电),从而为用户提供了最大的灵活性。上传器同时理解文件夹层次结构,可以在云端复制用户定义的文件结构。上传状态将同时报告给Web UI和上传器,允许远程编辑器跟踪进度。
Pixvana同时创建了一套工具来解决VR创建者面临的主要问题。亮点包括通用播放器,头显内后期处理工具,以及基于Web的编辑与管理系统。云计算令所有这些创新成为可能。这个基于云端的VR视频编辑平台以英伟达的VRWorks为核心,同时将成为Pixvana实现XR故事叙述潜力的方式。
4. 未来计划
为继续提升电影制作体验与质量,Pixvana致力于改进我们基于云端的VR管道。
- 随着视频处理量的增加,我们正在寻求利用机器学习和人工智能来探索360度电影制作的可能性。
- 我们同时在研究如何利用图像识别功能,支持内容感知填充,以及优化视频内容元数据来改善拼合过程。
- 尽管我们目前专注于面向VR头显的360度视频,但我们期望涵盖AR和MR的专门用例。
- 体三维捕获正继续发展,并可提供完整的六自由度捕获体验。随着它变得越加实用,对这项功能的支持将整合至管道之中。
- 光场是另一种VR视频技术,可以在六自由度环境中提供完全复制的实时捕捉。
当然,所有这一切将需要云端提供更多的GPU性能。