一种用于实时视频稳定的新型相机路径规划算法
Introduction
视频稳定根据运动模型分为 2D 和 3D 方法。 第一种方法是 2D 视频稳定 [2],它使用 2D 运动模型(例如简单的平移模型、2D 刚性模型和 2D 仿射模型 [3-12])描述两个连续帧之间的关系。 如果相机在 3D 空间中沿 x 轴和 y 轴的旋转很小,则 2D 视频稳定可提供良好的性能 [13]。 然而,随着相机运动变得动态,二维运动模型无法描述连续帧之间的几何关系,性能非常有限。 lee 等 提出了一种无需明确估计相机运动即可直接稳定视频的方法 [14]。 该方法找到一组变换来平滑特征轨迹 [15, 16] 并稳定视频。
第二种方法是 Buehler 等人引入的 3D 视频稳定 [17]。早期的 3D 方法使用来自运动的结构 (SFM) 技术重建场景和相机运动的 3D 模型 [18]。然后在新的 3D 相机路径上渲染稳定的视图 [17, 19]。 3D 视频稳定提供比 2D 方法更好的性能。由于这些 3D 方法在处理缺乏视差的视频时经常失败,因此它们在许多情况下并不实用 [20]。 Liu 提出了结合 2D 和 3D 视频稳定优点的子空间视频稳定 [21],然而,由于长特征轨迹的数量不足,这种方法对于包含动态运动的视频通常会失败 [20]。因此,Wang [20] 针对 3D 重建困难或长特征轨迹不可用的视频提出了视频稳定。Liu 等人 [22] 提出了一种运动模型 SteadyFlow,它是一种通过强制强空间相干性的特定光流。Grundmann 等人基于单应性混合模型 [23],提出了免校准滚动快门去抖。 Dong 提出了使用基于帧间单应性估计的运动模型的实时应用视频稳定 [24]。Ringaby 等人提出了一种通过将相机旋转参数化为连续曲线来校正和稳定视频的方法 [25]。Karpendo 等人建议使用陀螺仪进行视频稳定和滚动快门校正 [26]。 Lee 提出了基于人类视觉系统的视频稳定 [27]。
Background
为便于解释,本文描述了在简单视频稳定下相机路径规划的建议算法,如图 1 所示。 不同的运动模型,如单应性。
手持相机拍摄的视频的原始相机路径通常是不稳定的,如图 2 所示。为了提供稳定的输出视频,有必要从原始相机路径预测平滑的相机路径。估计平滑相机路径的最简单方法是对原始相机路径应用低通滤波器,如下所示:
\[ P_N(t) = \sum_{k} w(k)P_o(k) \tag1 \]
这里,\(P_O(t)\) 和 \(P_N(t)\) 分别表示原始和新的相机位置。 \(w(k)\) 是低通滤波器的第 k 个系数。 由于上述理想滤波器需要无限多的信号,因此无法实现。 实际上,低通滤波器应该考虑有限数量的信号。具体来说,在实时应用中考虑依赖于过去和现在帧的相机位置的临时过滤器,如下所示。
\[ P_N(t) = \sum_{k=0}{k=t} w(k)P_o(k) \tag2 \]
图 2 显示了将临时低通滤波器应用于沿 x 方向的相机路径的结果,低通滤波器显着平滑了相机路径。 在这里,图 2 中原始和新相机路径之间的差异可以解释为图 1 中所示的裁剪窗口偏移量。如果偏移量是超过边距的宽度或高度,裁剪窗口将不适合原始框架。 宽度和高度余量(MW 和 MH)定义如下。
\[ M_W = \frac{W_I - W_O}{2}, M_H = \frac{H_I - H_O}{2} \tag3 \]
其中\(W_I、H_I\)和\(W_O、H_O\)分别是原始帧和输出帧的宽度和高度。 出界区域将不可见或需要运动修复 [10, 33]。 边界如图 3 所示。在图中,灰色区域说明了界外区域的示例。 对于实时应用,由于复杂性,运动修复不是一个可行的解决方案。 因此,应确定新的相机路径,以便裁剪窗口位于原始帧内。 然而,基于低通滤波器的方法中的裁剪窗口偏移量是不可控的,并且该方法不能保证裁剪窗口总是位于原始帧内。 因此,这种简单的方法不能应用于输出视频大小固定的实时视频稳定。
在后期处理视频稳定中,在规划新的相机路径之前给出整个原始相机路径。 因此,可以优化规划平滑的相机路径,从而不会出现越界区域。然而,由于实时视频稳定中后续帧的摄像机位置是未知的,因此有时难以正确确定当前帧的摄像机位置。图 4 举例说明了为实时视频稳定规划相机路径的困难。在图 4a 中,无法预测相机路径在后续帧中是上升还是下降。如果相机路径在后续帧中向下行进,则新的相机路径可以是直的,如图 4b 所示。如果相机路径在后续帧中向上移动,则新相机路径的方向应该改变,如图 4c 所示。这种突然的移动会降低稳定视频的视觉质量。另一方面,由于整个原始相机路径是在后处理视频稳定中给出的,因此可以如图 4d 所示规划新的相机路径。如本例所示,如果没有后续帧的摄像机位置,实时视频稳定是很困难的。摄像机路径规划在实时视频稳定方面的性能将不可避免地受到限制。因此,用于实时视频稳定的相机路径规划是一个具有挑战性的问题。
Method—camera path planning
Framework of the proposed algorithm
在规划相机路径时要考虑的第一个属性是提供恒定的相机路径。恒定的相机路径表示一条斜率为零的线。下一个属性是线性相机路径,其中相机具有恒定速度。虽然线性相机路径的斜率不为零,但线性路径也是一条线。虽然这两个属性的物理含义在相机运动方面有所不同,但恒定和线性相机路径的形状基本上是一条线。因此,所提出的算法将线视为在相机路径中追求的基本特征。
所提出的算法首先在新的相机路径上找到通过最后一个相机位置的所有可能的候选线,如图 6 所示。由于新的相机路径应该是连续的,候选线应该从第( n − 1) 帧,它是新相机路径上的最后一个相机位置。然后它们在第 (n + K) 帧的上下边界之间结束。所有可能的候选线在第 (n+K) 帧以相邻候选线之间的间隔为 1 的方式生成。图中,当前帧(或第 n 帧)的相机位置尚未确定,缓冲的帧范围从第 (n+1) 帧到第 (n+K) 帧。可以预先预测缓冲帧的相机运动,从而可以确定缓冲帧处的原始相机位置和边界。因此,候选线的端点简单地位于第 (n+K) 帧的两个边界之间。然后,所提出的算法使用将在下一小节中描述的所提出的成本函数检查搜索范围内所有可能的候选线,选择成本最低的候选线作为最佳线。最后,根据最佳线计算当前帧的相机位置,请注意,缓冲帧处的相机位置不属于新的相机路径。
如果候选线穿过界外区域,则不应将其选为最佳线。 图 7 描绘了不应选择的候选行的示例。 在图 7a 中,区域 R 中的候选线通过了界外区域。 因此,不应选择区域 R 中的任何候选线作为最佳线。 有时,搜索范围内的所有候选线都经过界外区域,如图 7b 所示。 在这种情况下,当找不到最佳行时,K 的值减 1,直到找到最佳行。
Cost function
所提出的算法选择具有最小成本的候选线作为最佳线。 第 n 帧第 i 条候选线的代价函数定义如下。
\[ C(n,i) = w_1C_s(n,i) + w_2C_L(n,i) + w_3C_M(n,i) \tag4 \]
其中,w1、w2 和 w3 是权重因子。 CS(n, i) 定义如下。
\[ C_S(n,i) = |S(n,i)| \tag5 \]
\(S(n, i)\) 是第 i 条候选线在第 n 帧的斜率。 候选线的零斜率表示没有相机移动。 因此\(C_S(n, i)\)可以解释为追求静态相机路径的术语,这是第一个属性。 如果候选线的斜率陡峭,则此项变大。
\(C_L(n,i)\)定义如下:
\[ C_L(n,i) = |S(n,i) - S(n-1, i_{n-1}^{min})| \tag6 \]
这里,\(i_{n-1}^{min}\)是第 (n-1) 帧的最佳行的索引。 因此\(S(n − 1,i_{n-1}^{min})\)表示在第 (n − 1) 帧的最佳线的斜率。 如果当前帧的候选线的斜率与前一帧的最佳线的斜率相同,则\(C_L(n, i)\)将为零。 可以理解为,该术语旨在保持相机路径的线性,这是第二个属性。
如果相机路径规划方法利用上下边界作为简单的约束,虽然约束会阻止新的相机路径超过可用的图像边缘,但新的相机位置有时会非常接近下边界,例如新的相机位置 对于图 4a 中的当前帧。 在这种情况下,如果原来的相机路径向上行进(情况 a),由于向下方向没有图像边缘,新的相机路径应该突然改变方向为向上。 新相机路径上的这种突然移动会降低稳定视频的视觉质量。 为了避免这种情况,本文考虑了一个新的\(C_M(n, i)\)项来保留上下方向的可用图像边距。
\[ \begin{aligned} C_M(n,i) = \sum_{k=n}^{n+K} (F_{LO}(k,i) + F_{UP}(k,i)) \\ &F_{UP}(k,i) = \frac{1}{max(0.01,P_O(n) + M_{UP} - P_N^i(n))^2} \\ &F_{LO}(k,i) = \frac{1}{max(0.01, P_N^i(n) - P_O(n) + M_{UP})^2} \end{aligned} \tag7 \]
其中\(P^i_N(n)\)是第 i 条候选线上第 n 帧的相机位置。\(M_{LO}\) 和\(M_{UP}\) 分别是下边距和上边距的大小,这些边距通常设置为相同的值。\(P_O(n)+M_{UP}−P_N^i(n)(或 P_N^i(n)+ M_{LO}−P_O(n))\)是\(P_N^i(n)\)与上边界(或下边界)之间的欧几里德距离,如图 8 所示。这里,0.01 被认为是为了防止被零除。如果\(P^i_N(n)\)靠近上边界(或下边界),则\(F_{UP}(n, i)(或 F_{LO}(n, i))\)的值将变得非常大。如果\(P_N^i(n)\)远离上边界(或下边界),则\(F_{UP}(n, i)(或 F_{LO}(n, i))\)的值将变得非常小。当\(P_N^i(n)\)位于距离两个边界等距的位置时,\((F_{UP}(n, i)+F_{LO}(n, i))\)将获得最小值。因此,\(F_{UP}(n, i)\)和\(F_{LO}(n, i)\)可以解释为从边界推动相机位置以保持图像边缘的力。\(C_M(n, i)\)在第 i 条候选线上的相机位置处累积所有\(F_{UP}(n, i)\)和\(F_{LO}(n, i)\)。相机位置不能位于边界之外。如果 K 值减小\(C_M(n, i)\)成为在实时视频稳定中实现高质量新相机路径的重要术语。实验结果在第 4 节中给出了详细信息。
让我们简要地考虑一下所提出方法的计算过程。所提出算法的第一步是寻找候选线。这可以通过获取从第 (n - 1) 个摄像机位置连接到搜索范围内的点的线来简单地实现,如图 6 所示。下一步涉及排除包含在外的候选线边界区域,如图 7 所示。 如果第 i 条候选线(或 \(P^i_N(n)\))上的任何点不在\(P_O(n) − M_{LO}\)到\(P_O(n) + M_{UP}\)之间,则对应的候选线应为排除在外。在最后一步,该方法根据等式评估每个候选行 (4) 并找到成本最低的候选行。如上所示,所提出的算法需要多次算术运算和比较来规划当前帧新相机路径的新相机位置,与视频稳定的计算负担相比,其计算过程极低。
参考文献
< A novel camera path planning algorithm for real-time video stabilization >