SiGGRAPH Asia 2016之来自facebook的Johannes Kopf的论文360 Video Stabilization的简单翻译

本文主要是简单翻译SiGGRAPH Asia 2016中facebook的Johannes Kopf的论文360 Video Stabilization,其中原论文以及我翻译的文件可以下载查看(由于编辑器不能复制图片,所以建议下载查看):点我
忘了分享原文了,点我

好的直接上译文:

《360 Video Stabilization》


提要
本文基于可变形的螺旋运动模型提出了一种用于360°视频稳定的一种2D-3D混合算法。我们的算法使用3D分析来估计关键帧之间的旋转,这些旋转被适当地间隔开,使得发生正确的运动量,以使该操作可靠。而对于剩下的帧,使用二维优化来最大化特征点轨迹的视觉平滑度。这是一种新的低维柔性变形旋转运动模型,可以处理小的平移抖动,视差,镜头变形,和滚动快门摆动。我们的2D-3D框架比之于纯2D或纯3D的方法具有更好的鲁棒性、更快的速度、以及更强的平滑能力。使用我们的方法稳定视频花费的时间比以正常速度播放视频花费的时间少。结果在高速因子下回放能够实现极大程度的平滑;因此我们提供了一个简单的360°超速带算法用于重新映射视频帧时间戳来平衡视频摄像机速度。
介绍
在上个世纪的电影中,我们通过狭窄的视角观看了这个世界。全球360×180° 视频提供了一种手段来打破框架,并产生完全身临其境的体验,将观众传送到另一个世界,并允许她一次查看所有方向。我们简称这样的媒体方式为“360 video”。360 video非常适用于现场录制比如动作运动(图1b),因为在记录中没有剪切角度,观众可以通过在电脑或移动设备上拖动鼠标或手指,或通过一个虚拟现实耳机从而平移和旋转360° video的角度,以获取从不同的角度来观看视频。
在过去的一年或两年,行业对于360媒体的支持水平显着增加。Google和Facebook在他们的分享视频上增加了对360媒体的支持并且为专业内容制作者发布了相机设计参考(reference camera designs12)。众多消费者360级相机即将可用,或将在今年晚些时候发布(图1A)。
虽然记录和共享360视频现在对消费者来说相当方便,但使它看起来不错,不是那么简单。使用手持相机拍摄的360°休闲视频通常看起来很不舒服(晃动剧烈)(图1c),并且各个帧由于滚动快门摆动而几何失真。360视频抖动尤其严重,因为使用的VR头盔[Kennedy et al. 2010] 观看时会导致不适(“cybersickness”)。 在本文中,我们提出了一个360视频稳定算法,可以在360视频中显着减少抖动和滚动快门的扭曲。
大多数现有的视频稳定算法是专为狭窄视野的视频而设计的,并且使用的是二维运动模型。早期的工作使用的低维相似或单应变换[Morimoto and Chellappa 1998];然而,这些简单的模型不能处理视差。最近的工作转向更灵活的模型,如网格扭曲[Liu et al. 2011; Goldstein and Fattal 2012; Liu et al. 2013]或平滑流场[Liu et al. 2014]。不幸的是,这引入了限制额外尺寸以避免对经处理的视频产生新的几何变形的挑战,这是这些论文的主要焦点。然而,许多这些约束,不容易在360 video中转换到球形环绕域(第2节)。
另一类算法重建相机轨迹和场景几何的3D模型,以及关于3D的稳定视频的原因[Buehler et al. 2001; Bhat et al. 2007; Liu et al. 2009; Kopf et al. 2014]。然而,执行完全3D重建是复杂的过程,在实践中缓慢,并且在某些情况下(例如,不存在平移运动)不鲁棒。
我们在本文中提出的方法是一种混合的3D-2D算法。我们使用一个新的变形旋转运动模型来消除在视频中的抖动。纯旋转的微小偏差允许处理一定程度的平移运动,视差,透镜变形和滚动快门摆动。像大多数稳定算法一样,我们跟踪特征点,并根据这些累积的轨迹来使其表现稳定。我们使用鲁棒性的3D分析来估计适当间隔开的关键帧之间的真实相对旋转。对于内部帧,我们切换到新的变形——旋转运动模型来最大化特征点轨迹的平滑度的2D优化,以考虑上述提到的来自纯旋转的偏差。我们可选重新应用估计旋转的平滑版本以保持原来的视频定位(但没有快速抖动)。
上面描述的新的算法架构有几个优点。旋转补偿是准确的,因为它使用三维分析,所以它可以区分旋转和平移运动。3D重建是鲁棒的,因为它被应用于仔细间隔的关键帧,并且仅忽略旋转分量而忽略平移。固定的旋转补偿关键帧为2D优化提供正则化骨干。算法的结果非常快:稳定视频花费的时间比以正常速度播放的时间少。
我们的稳定结果足够光滑的回放在高加速因素中。为此,我们提出了一个简单的360 Hyperlapse算法从后输入视频稳定的运动矢量估计摄像机的视速度,然后重新映射的视频帧的时间来平衡输出相机速度。
我们比较了我们的混合算法和纯2D、3D的变种并且分析了我们对视频码率稳定性的影响。对于依靠客户端应用稳定变换的逆的近无损压缩,我们实现了10%-20%之间的比特率降低。我们在一系列具有挑战性的示例视频演示我们的算法,请参考全部结果的补充材料。
Previous work
2.1 360 Video
360 Video使用全向相机拍摄,或从一组相机拼接而成。尽管在本文中我们投影了大多数360图像在圆柱上(由于它一次示出所有360×180°的角度)它们通常为了输出显示而变换成具有较低视场的透视视口。当观看360视频,通过在屏幕上拖动手指或者通过倾斜设备来改变观看角度,就好像它是进入在360捕获的场景中的入口。在计算机上,鼠标可以用于导航视频。也可以使用诸如Samsung GearVR或Google Card Board等设备在“VR”中观看视频。
2.2 视频稳定
视频稳定是在过去一二十年里已经深入研究的主题,几乎所有的方法都专注于狭窄的视野视频。通常,算法跟踪增量运动,拟合参数或非参数运动模型,平滑模型,然后裁剪和扭曲最终像素。
大多数算法不容易扩展到360的球面环绕域。例如,大多数算法使用Content-PreservingWarps [Liu et al. 2009]产生输出帧。虽然该算法在平面域中具有优雅的线性解,但在球上变得非线性,这对鲁棒性和性能(即,必须添加时间约束以防止相邻帧中的不同局部最小值之间的跳跃)具有影响。
视频稳定算法可以根据二维或三维模型拟合和平滑来进行分类,我们提出的算法结合了来自这两种视频稳定的元素。
2D Stabilization 这些算法适合和有助于平滑二维运动模型。最早的例子使用低维模型,如相似性或单应性变换[Morimoto和Chellappa 1998],但这些不能表示视差。简单模型仍然经常用于现代方法[Grundmann et al。 2011],但由于它们的鲁棒性,最近的方法倾向于使用更灵活的运动模型,例如内容保持变形[Liu et al. 2009],然而,这些灵活的运动模型必须仔细地约束以防止过度拟合和引入新的摆动伪像。Liu et al. [2011]在低维子空间中平滑特征点轨迹,Goldstein和Fattal [2012]使用核线约束,Liu et al. [2013]将视频帧划分为4×4网格,并用正则化约束拟合单应性。稳定流算法[Liu et al. 2014]通过平滑密集的光流场来实现强稳定性。
3D Stabilization 一些算法建立三维场景模型进行稳定[Buehler et al. 2001; Bhat et al. 2007; Liu et al. 2009; Kopf et al. 2014]。一般情况下,这些算法具有更高的平滑能力,因为他们使用一个更精确的模型。然而,在实践中,3D重建通常不如2D方法健壮。它可以在没有平移运动或者在存在滚动快门伪像的情况下分。3D方法通常比二维方法慢得多。
360 Video Stabilization “Jack-In Head”系统[Kasahara et a. 2015](系统的较早版本被称为“Live-Sphere”)估计相邻视频帧之间的相对旋转以用于稳定。因为相邻帧非常相似,所以算法难以区分小的平移和旋转; 误差累积导致获得不太平滑的结果,我们使用我们的混合3D-2D算法实现估计间隔关键帧之间的旋转(更鲁棒),并优化中间帧之间的平滑度。我们在5.3节比较了这种稳定性。
Kamali et al. [2011] 描述了类似于Liu [2009]等人的全向结构运动算法和3D稳定算法。它与上述窄视野视频的3D稳定器的限制相同。
引用3中至少存在一个稳定且商业化的360视频算法,然而,它只接受未缝合的GoPro镜头作为输入,并且不清楚使用什么算法。
360°视频稳定
在这一节,我们描述我们的用于稳定360视频的基本算法。我们从跟踪视频中的特征点的运动开始(第3.1节),然后,稳定算法完全在这些轨迹上操作,我们提出了一种混合的3D-2D算法框架。3D推理估计了适当间隔的关键帧的相对旋转(第3.2节,图2a),然后我们撤销关键帧之间的相对旋转,并内插对内部帧的调整(图2b),最后,我们切换到内部框架旋转的2D优化以最大化稳定特征点轨迹的平滑度(第3.3节,图2c)。我们的运动模型允许轻微偏离内部帧的纯旋转,以考虑来自视差和滚动快门摆动等的残留抖动(第3.4节)。这种架构有几个优点:
准确性:3D分析估计关键帧之间的真实旋转,不会混淆旋转/平移运动,变化的特征密度,非静态异常特征等。
鲁棒性:关键帧被间隔开,使得发生足够的运动以使得3D旋转估计可靠。我们在5.3节中显示,我们的稀疏3D估计更快,并产生比所有连续帧之间的密集估计更平滑的结果。
正则化:固定关键帧为内部帧的2D优化提供正则化骨干。 这限制了我们的变形旋转运动模型,防止产生新的摆动伪影,并且对收敛具有强的积极效果。
速度:虽然我们对内部帧使用非线性优化,但问题具有良性误差函数,良好初始化,并快速收敛。 我们使用自动代码生成使目标函数残差和雅可比评价高效(在补充文件中提供了这方面的工具)。 我们的算法比以正常速度播放视频更稳定。
3.1 跟踪和关键帧生成
像大多数现有的稳定算法,我们从跟踪视频中的特征点的运动开始。由于我们的输入视频使用圆柱投影(从世界地图知名,参见图1b的例子),这是极点附近高度失真,我们将帧转换为一个较少失真的立方体地图表示进行跟踪(图3)。我们总是使用256x256像素的立方体面尺寸,独立于输入分辨率,并且只使用亮度平面进行跟踪。
我们实验了基于描述符的匹配,但发现金字塔形Lukas-Kanade跟踪算法[Bouguet 2000]产生更长和更少的噪声轨道,如果跟踪点落在它的起源立方体面之外,我们简单地丢弃该观察并在那里结束该轨道。当我们跟踪平面立方体面上的点时,我们立即将2D位置转换为3D单位向量,并将它们存储在轨道表中。所有后续推理是根据这些3D单位向量完成的。
我们的算法有一个关键帧的概念,它们发挥非常重要的作用,因为我们估计它们的真实相对旋转,并且它们形成用于随后的2D优化的规则骨干。接下来我们将描述我们的启发式触发在跟踪过程中生成新的关键帧,在关键帧,我们产生新的轨道,用于后续跟踪,我们使用Shi-Tomasi算法生成特征点列表,通过递减特征强度排序[Shi and Tomasi 1994],我们排查列表,当一个特征超过2°远离任何先前选择或主动跟踪的特征,接受它并用于产生一个新的轨道。
我们在跟踪期间触发关键帧如下所示,第一帧总是一个关键帧,后续帧基于两个启发式转换成关键帧。(1)如上所述,利用连续Lucas-Kanade对准跟踪的点可以由于对准误差累积而缓慢地偏离其原始外观,Shi和Tomasi [1994]建议使用仿射校准回溯到产卵框架来验证轨迹; 然而,我们发现这个过程显着减慢了跟踪操作,相反,如果当前帧的呈现时间戳与最后一个关键帧的差异超过3秒,我们只需将当前帧转换为关键帧。这有效地防止了我们的实验中的跟踪漂移的退化。(2)为了可靠地估计旋转,如在下一部分中所描述的,我们需要在随后的关键帧之间具有足够数量的公共轨迹。为了确保这种情况并且它们分布良好,我们在产生新轨道之后计数关键帧在球体的每个八分圆内的轨道数,随着我们的进步,我们跟踪源自每个八分圆的活动轨迹的分数。一旦至少一个八分圆的分数下降到低于50%,我们将前一帧变成关键帧(因为在该帧中仍然有足够的轨迹)。在我们完成对整个视频的跟踪之后,我们从轨道切割“悬停端”,使得每个轨道在关键帧处开始和结束。
3.2 估计关键帧之间的旋转
我们的下一个目标是估计连续的关键帧之间的相对旋转。令K = {ki}是关键帧的集合。对于每对连续的关键帧(ki; ki + 1),我们从特征轨迹获得一组匹配点对。我们在RANSAC过程中使用五点算法[Fischler和Bolles 1981]来估计相对旋转eRki。我们使用OpenGV提供的库[Kneip和Furgale 2014]实现了Nist’er的[2004]以及Kneip的[2012]五点算法。两种算法产生非常相似的结果,即使Nist’er的算法理论上需要足够量的平移运动来稳健地工作,然而,我们没有发现任何问题,即使在测试相机安装在静态三脚架上拍摄的视频时。Kneip的算法[2012]保证计算正确的旋转,即使在零转换的情况下,因此使用这种算法可能更可取。
我们使用相对宽松的前门限阈值来容忍来自卷帘快门和透镜变形的一些量的图像变形。然而,如果模型内点的数量低于0.5的阈值分数,我们递归地拆分该段并在中间插入新的关键帧,这倾向于增加内层的数量,因为新的关键帧对彼此更相似。我们重复这个过程,直到满足离群值阈值或者直到没有空间插入新的关键帧。在少数情况下,关键帧对中的特征数量低于8个匹配,我们不使用五点算法,而是直接找到使匹配点之间的相对距离最小的旋转。
我们链接旋转,使它们相对于第一关键帧。 由于我们有兴趣从视频中删除旋转,我们存储逆变换

对关键帧应用Rki旋转使它们稳定,因为它消除了所有相对旋转。虽然旋转估计中的误差可能产生轻微的漂移,但是它几乎不可感知,因为关键帧以秒的间隔分开。
3.3 优化内框
我们现在将注意力转移到内框架的旋转。 在跟踪阶段,我们计算了一组轨迹T = {Ti},每个轨迹是观察值(3D单位向量)的列表:

fi : : : li是观察轨迹的帧的范围,始终以关键帧开始和结束。这些歌曲形式的视觉轨迹,可以绘制视频(图1C)。我们的目标是优化内框架旋转,使这些轨迹变得尽可能平滑(图1d-e)。 这在以下优化问题中被编码:

I = 1: : :n\K是内框架的集合,即,我们从优化中排除关键帧; 它们被固定在3.2节中估计的旋转。 我们考虑一阶(E1 i; j)和二阶(E2 i; j)平滑项。
一阶项鼓励轨迹尽可能短:

是降低对异常值的敏感性的鲁棒损失函数,并且a = 0:01设置发生鲁棒化的尺度。
仅使用一阶项是不够的,因为由于其成对性质,它不能跨越锁定的关键帧并且将在那里产生可见的扭结。 因此,我们还使用二阶项来促进使用离散拉普拉斯算子的平滑性,并且其3点的足迹可以跨越关键帧:

加和地组合这些术语鼓励在关键帧处没有扭结的短而平滑的轨迹。 我们发现,术语之间的精确重量平衡不是关键的,只要它们在彼此的数量级内; 因此,我们在方程3中赋予它们相等的权重。
当最小化等式 3,我们使用3维轴角参数化表示所有旋转,并且当它们应用于向量时使用罗德里格斯公式[Ayache 2007]。 由于这个优化问题是非线性的,我们需要对自由变量进行良好的初始化。 我们使用周围关键帧的四元数内插来初始化内部帧的旋转:

我们使用Ceres文库[Agarwal et al. 2015]解决这个非线性最小二乘最小化问题。 我们发现它通常在3-4次迭代内收敛。 注意,优化不一定恢复真正的旋转,而是产生最平滑的可能结果的那些,这是最终稳定的主要目标。
3.4 残余抖动补偿
解决前面部分中描述的优化消除了大部分的相机抖动,但是由于小的平移运动(例如,在行走时上下波动),视差,次最佳透镜校准,缝合伪影和卷帘快门摆动的组合,通常残留一些量的残余抖动(图1d)。
我们通过为运动模型添加一些灵活性来解决这个问题,因此它可以适应和消除轻微的图像变形(图1e)。 然而,我们希望确保模型不会变得太灵活,并且它被适当地约束,所以它不会过度拟合数据并引入伪像,而不是删除它们。
上面列出的一些现象可以直接建模,例如特定相机的卷帘快门功能的特性。 然而,这是不可取的,有几个原因:(1)这将需要校准我们想支持的每个摄像机。 此外,我们必须知道每个视频拍摄的是哪个相机。 (2)由于360° 相机使用鱼眼镜头,当转换到我们的算法操作的投影时,传感器扫描线经历非平凡的变换。(3)来自上述其他源的剩余抖动。
由于这些原因,我们设计一个通用的变形模型来处理上面所有的情况。 在这个模型中,我们在单位球体上均匀分布6个顶点,使它们分开90°并限定8个全等的球面三角形,每个八分圆一个,如图4所示。在每个顶点v ∈1: 6,我们存储一个旋转值Rv。 在每个球面三角形内,我们使用球心重心坐标插值顶点旋转[Langer et al. 2006],即对于轨道观察pij,我们获得混合旋转:

其中w_(j,v)^i是球形重心,我们使用纯旋转优化的解来初始化变形的旋转模型,例如任意v,j:R_j^v=R_j。
我们将新的运动模型集成到稳定优化问题中如下:

一阶和二阶平滑项, 类似于纯旋转版本,除非我们替换所有出现的旋转, 与它们的混合版本 。我们设置平衡系数m = 0:1。正则化项E_j^reg防止变形变得太强烈:

其中d是旋转接近度的度量。 d的适当选择将是从一个取向到另一取向所需的旋转角度。 由于更简单的优化,我们改为使用轴角表示系数的欧几里得距离,这对于合理地接近的取向是良好的近似。
第二层正则化由固定关键帧使用纯旋转提供。 这有效地防止卷帘快门补偿漂移太远,因为关键帧被内插。
3.5 实现细节
分析衍生物:非线性优化算法取决于能够评估关于参数值的目标函数的雅克比。 目标函数在等式3和8中是高度复杂的,并且难以手动地计算导数表达式。 为此,Ceres库提供了使用运算符重载的自动分化技术[Agarwal et al. 2015]。然而,这种方法不如期望的那样有效,因为它不能充分利用编译器优化并避免计算各种表达式中固有的冗余。
为了改善这种情况,我们编写了一个Python脚本,自动为目标函数残差及其雅可比生成高效的C ++代码。 我们使用SymPy包[SymPy开发团队2016]来表示残差的符号,并采取他们的派生。然后,我们使用术语重写技术递归地识别这些较大术语中的常见子表达式,并收集它们,以便可以立即评估它们。 最后,我们使用自动代码生成将优化的表达式转换为C ++代码。以这种方式生成的分析导数提供了超过2倍到3倍自动分化代码的性能改进。
我们提供最终的C ++代码以及用于在补充文档中生成它的Python脚本。 它是一个有用的代码,因为它可以很容易地适应其他目标函数。
图像变形:为了使用向后扭曲渲染输出帧,我们需要反转变形的旋转模型。 我们使用迭代搜索[Yang et al. 2011]。 然而,对每个像素多次计算等式7和各种变换需要大量的计算。由于所得到的弯曲函数非常平滑,我们仅在每8×8像素中评估1的弯曲坐标,并且双线性地内插剩余的坐标。 这看起来在视觉上几乎相同,但大大提高了翘曲速度。
扩展
在上一节中,我们描述了我们在360°视频中去除抖动的基本算法。 这里我们描述几个有趣的扩展,分层的基本算法。
4.1 重新应用平滑旋转
上一节中描述的算法从输入视频中删除所有旋转。这似乎适合于VR体验,其中任何诱导的加速度(例如旋转)可能导致不适[Kennedy et al. 2010]。
然而,在诸如MOUNTAIN BIKING(图7)的视频中,其中相机进行缓慢转动,这导致向前运动方向的方向偏离观看者的“前”方向。 在VR中,但是在计算机或移动设备上没有观看视频的情况下,我们希望保留整个相机前方向,并且仅去除高频抖动。
我们通过添加平滑版本的原始旋转估计来实现这一点,我们在稳定视频时从视频中减去它。 我们通过对它们的四元数表示进行时间低通滤波,独立地平滑4个四元数分量中的每一个并归一化结果来计算平滑的旋转。 图5显示了原始旋转估计值和重新应用于视频的平滑曲线。 一个有趣的扩展将是考虑基于电影原理的L1平滑约束,如Grundmann等人提出的。 [2011]。
4.2 双通道跟踪
跟踪视频的非常不稳定的部分是困难的,因为补丁的外观由于透视失真和跟踪在不同的立方体贴图面(我们不支持)的漂移而显着变化。我们可以通过在旋转稳定之后重复跟踪来改善这种情况下的结果。 在第二跟踪阶段中,当将输入视频转换为用于跟踪的立方体地图表示时,应用稳定的旋转调整。 在DOWNHILL SKIING视频中,我们发现这将平均轨道长度从62帧增加到78帧。 我们注意到,对于特别不稳定的输入,双通道跟踪可以提供轻微但明显的平滑性提高(见第5.3节)。
4.3 Hyperlapse
自从我们稳定了360° 视频非常流畅,它们为创建加速hyperlapse视频提供了极好的源材料[Kopf et al. 2014]。 自360 视频总是全帧的,没有必要混合来自多个帧的位和片段,这似乎是Kopf等系统中大多数技术挑战的来源。
创建360 hyperlapse简单地通过删除除了每个第n帧的序列稳定在我们的算法已经看起来很不错。 然而,hyperlapse视频摄影的一个共同的元素是平滑平衡的相机速度。 我们可以通过重新映射稳定的视频中的视频帧时间戳来修改视在相机速度。
首先,我们需要估计每帧的相机速度。 代替转向3D重建及其所有问题,我们使用简单的2D近似:稳定后运动矢量幅度的鲁棒平均。 这种简单的测量不适用于窄视场视频,因为当相机向前指向相对于侧面时,运动矢量表现不同,这将偏置速度估计。 但是在360 视频,我们总是看到所有的角度,所以我们不会遇到这个问题。
我们从计算每帧的中值运动矢量幅度开始:

这个估计非常嘈杂(图6中的虚线曲线)。 我们进一步处理它使用运行时间中值(半径4秒),随后低通滤波器(s = 1秒)删除离群值。 这个平滑的速度估计如图6中的实线曲线所示。它可以用于通过重新映射与累积速度函数成反比的视频帧时间标记来模拟恒定的相机速度。如果需要重新应用平滑的方向,如第4.1节所述,重要的是在低通滤波方向曲线时考虑这些修改的时间戳。 请参考补充材料的结果示例。
结果
我们在八个手持360视频上通过不同摇动量的不同活动的视频序列测试了我们的算法。完整的输入和稳定序列在补充材料中提供。图7示出了来自每个序列的样本帧。
5.1 性能
我们实现我们的算法不使用GPU加速,使其适合在标准云硬件上执行。 图8总结了我们的算法的性能。 当在3.50GHz的Intel Core i7-5930K CPU上以1080p输入/输出分辨率处理MARKET WALK序列时,测量时序。 该序列是310秒(9,292帧)长,并且处理花费了201秒,即,稳定比以正常速度播放视频花费更少的时间。在表中,我们将该过程分解为不同的算法阶段,并报告每帧的定时。 我们不包括最终的视频解码和编码步骤,因为它们是视频转码流水线的基本部分,并且高度依赖于编解码器参数。 我们发现这些时间对于不同的序列没有显着变化。 该进程期间的总内存消耗始终小于2 GB。
5.2 稳定性对视频比特率的影响
毫不奇怪,稳定性可以对视频比特率消耗具有有益的影响。360有一些非显而易见的特征,首先,因为稳定的视频没有被裁剪,我们可以从稳定的结果中简单地恢复原始的抖动序列。 第二,自任何360观察者已经应用旋转视图变换,我们可以在没有任何附加计算的情况下进行(至少如果我们使用纯旋转稳定)。 我们发现比特率降低可能很大。
我们分析了使用x264库4将视频编码为H.264 / MPEG-4 AVC格式时的比特率消耗。 图9总结了我们的发现。 我们分析了两个序列:CABLE CAR(蓝色)和DOWNHILL SKIING(橙色)。第一个场景大多是静态的,并且具有低的抖动量,而后者包含非常快速,抖动的运动。 我们用纯旋转(浅色)和变形旋转(暗色)运动模型稳定了两个序列。对于每个实验,我们使用30帧长的图像组(GOP)结构将未处理的,纯旋转和可变形旋转模型的前600帧编码成H.264流,即,每个流由20个GOP组成。 然后,我们将每个纯旋转和变形旋转GOP的大小与相应的不稳定GOP进行比较,并报告图中的平均大小部分。

场景大多是静态的,并且具有低的抖动量,而后者包含非常快速,抖动的运动。 我们用纯旋转(浅色)和变形旋转(暗色)运动模型稳定了两个序列。 对于每个实验,我们使用30帧长的图像组(GOP)结构将未处理的,纯旋转和可变形旋转模型的前600帧编码成H.264流,即,每个流由20个GOP组成。 然后,我们将每个纯旋转和变形旋转GOP的大小与相应的不稳定GOP进行比较,并报告图中的平均大小部分。
在图的左半部分,我们将编码参数固定为“非常慢”,并改变恒定速率因子(CRF,即质量设置),而在右半部分,我们将CRF固定为21。对于序列和所有设置,我们发现比特率的相当大的降低。 令我们惊讶的是,较少摇晃的CABLE CAR序列的节省远远更大,这可能是由于场景大多是静态的,并且在稳定和滚动快门补偿之后变得非常冗余,而DOWNHILL SKIING序列保持快速移动与稳定。
5.2 比较和定量评价
虽然我们在补充材料(即要观看的视频)中提供定性结果和比较,我们在这里看一些定量实验。 我们可以使用等式4和5中的一阶和二阶罚分来数值地评估给定结果的平滑度。为了做到这一点,我们收集所有的轨道观察和评估一阶和二阶惩罚。图10显示了我们的稳定算法的不同变量的这些量的分布函数。 我们比较了纯旋转(3.3节)和变形旋转(3.4节)运动模型,包括1遍和2遍跟踪模式。 在图11中,我们以表格形式显示汇总统计数据。
除了上面提到的变体之外,我们还在所有连续帧上密集地运行3D旋转分析(3.2节)。 这大致对应于Jack-In Head(LiveSphere)方法的重新实现[Kasahara et al. 2015]。 评估表明,这导致明显不太平滑的结果(请参考补充材料进行视频比较)。
5.4 局限
非常强的滚动快门变形,特别是频率大于帧速率的高频滚动快门变形不能由我们的低频变形旋转模型表示。 虽然我们并不总是完全成功地消除这些变形,我们的输出仍然倾向于比这些情况下的输入更稳定和可观察。
变形旋转模型的另一个问题是它可能偶尔在结果中引入轻微的摆动。 这种效果相对温和,可以在我们的结果视频中观察到。
我们的方法并不总是在“制作”视频上产生好的结果。 例如,这里描述的算法不处理镜头边界:它可以以不可预测的结果跟踪和稳定镜头边界上的视频。 添加代码以相应地检测和处理这种情况将是相对直接的。
如果包含静态覆盖(例如徽标或文本),则会生成带有生成的视频的另一常见故障模式。 在这种情况下,我们的稳定器可能稳定抖动的背景运动,这将反过来使叠加出现摇动。
结论
我们提出了一个360视频稳定的方法。我们的方法是一种混合3D-2D方法。 它使用3D分析来估计在适当间隔的关键帧之间的旋转,使得我们可以可靠地估计真实旋转。 对于中间帧,我们解决使得跟踪的特征点轨迹的平滑度最大化的2D优化问题。灵活的变形 - 旋转运动模型能够减少由小平移运动,视差,滚动快门摆动等引起的残留抖动。我们的新型稳定结构提供比纯2D或纯3D方法更高的精度,鲁棒性,平滑能力和速度。 结果足够平滑,可以在高加速因子下播放。 为了这个目的,我们提出一个简单的360hyperlapse算法重新映射视频帧时间戳以平衡表观摄像机速度。
360 视频是一种令人兴奋的新媒体,其基础技术正在迅速提高。 虽然今天的2K分辨率仍有改进的空间用于拍摄360 视频,4K和更大的分辨率将很快广泛提供给消费者。 即使期望的最终结果是规则的窄视场视频,它可能很快“有意义”总是在360°拍摄,因为没有角度被丢失并且视频可以稍后被框架化。 我们的稳定算法为360视频提供了一个基本的构建块处理管道。

简单的Xmind表示:

SiGGRAPH Asia 2016之来自facebook的Johannes Kopf的论文360 Video Stabilization的简单翻译_第1张图片


最后,想分享一张澳门拍的特别好看的照片可惜CSDN对 图片大小有限制,想要原图的可以下载:点我

SiGGRAPH Asia 2016之来自facebook的Johannes Kopf的论文360 Video Stabilization的简单翻译_第2张图片


这真的是最后了
给大家安利我男神梁朝伟唱的《十年》哈哈,男神一般是不唱歌的啊:点我


真的真的真的是最后

十年太长,什么都可能会变,一辈子太短,一件事也有可能做不完

你可能感兴趣的:(翻译)