【译】Online motion smoothing for video stabilization via constrained multiple-model estimation

注:使用多个Kalman Filter做视频稳化

原文:https://jivp-eurasipjournals.springeropen.com/articles/10.1186/s13640-017-0171-8

摘要:视频稳定使摄像机的运动估计平滑,以适应不同类型的有意运动。校正运动(平滑运动和原始运动之间的差异)应受到约束,以便黑色边界不会侵入(修剪)稳定帧。虽然脱机平滑可以使用所有帧,但是联机(实时)平滑只能使用少量以前的帧。本文提出了一种基于线性估计的在线运动平滑方法,应用于等速模型。我们使用估计投影来确保平滑运动满足黑边界约束,而黑边界约束是由一般二维运动模型的线性不等式精确建模的。然后将估计投影与多模型估计相结合,以概率的方式自适应平滑摄像机运动。实验结果表明,该算法能较好地平滑摄像机运动,实时稳定视频。

关键词:视频稳化,卡尔曼滤波,多模型估计,有效集方法

1.引言

由于手持摄像机的普及,近年来视频数据急剧增加。然而,与三脚架摄像机或带机械稳定器的摄像机拍摄的视频相比,此类视频通常更不稳定。数字视频稳定旨在消除不必要的帧对帧抖动,并生成视觉稳定和愉快的视频。一般来说,数字视频稳定包括三个主要步骤,即运动估计、运动平滑和帧合成。本文的重点是第二步。

考虑到每帧摄像机的运动估计,运动平滑旨在设计一个新的平滑摄像机运动路径。大多数现有的作品都将运动平滑作为整个视频序列录制后的脱机处理。然而,实时视频稳定对于视频会议和广播等应用是必要的。此外,对于想要录制视频的消费者来说,实时稳定可以极大地提高取景器上实时显示稳定视频的用户体验。实时视频稳定还可以减少压缩前帧稳定的内存需求。在实时视频稳定中,需要对摄像机运动进行因果平滑处理。这比离线运动平滑更困难,因为我们缺少有关相机运动之后如何变化的信息。

由于摄像机运动由运动平滑转变为运动平滑,合成帧中的某些区域将不确定。这就是所谓的黑边界问题。在实践中,我们必须裁剪产生的视频帧,并在必要时放大它们。但是,在运动平滑中,我们必须限制摄像机运动的变化,以确保没有黑边界侵入稳定的视频帧。如何将这类约束条件优化为5是一个具有挑战性的问题,特别是对于在线运动平滑。

在拍摄视频时,人们有时会故意移动摄像机,以获得正在录制的场景的最佳视角。这就是所谓的故意运动,应该通过运动平滑来保持。相机有意运动的变化率可能会有所不同,固定运动平滑策略可能效果不佳。例如,积极的运动平滑可以有效地减少抖动,如果相机运动应该是静止的,但可能会失去跟踪的有意运动,如果它是快速变化。此外,对于快速变化的有意运动,积极的运动平滑将导致稳定视频中更大的区域未定义。因此,运动平滑算法应具有相应的自适应性。

本文提出了一种在线运动平滑方法。该方法是基于卡尔曼滤波的匀速运动平滑方法。采用贝叶斯多模型估计实现自适应平滑。几乎每个二维运动模型的黑边界约束都被精确地建模为线性不等式。在考虑约束条件的基础上,对多模型估计算法进行了改进。状态向量估计以概率的方式投影到约束集上。

本文的组织结构如下:第2部分回顾了以前的运动平滑算法和相关的估计背景。第3节说明了如何将在线运动平滑化为具有恒定速度模型的线性估计问题,该模型可通过卡尔曼滤波解决。第4.1节将大多数二维相机运动模型的黑边界约束定义为线性不等式,并说明如何使用估计投影来解决约束估计问题。第4.2节介绍了使用多模型估计的自适应运动平滑,以及如何使用估计投影对其进行修改。第5节展示了如何使用多个运动模型的建议算法改进运动平滑。第6节结束论文。

2.背景和相关工作

本文主要研究运动平滑。运动估计作为视频稳定的另一个重要步骤,可以通过稀疏特征跟踪[1]或块匹配[2,3]来实现。

现有的运动平滑算法大多是离线平滑。分别在二维平移模型和仿射模型下,利用高斯窗滤波对[4,5]中的摄像机运动轨迹进行平滑处理。另一种算法通过最小化表示相机运动轨迹平滑度的特定目标函数来平滑相机运动。这种目标最小化方法的一个优点是,黑边界约束可以自然地添加到问题中,并通过约束优化来解决。在[6]中,作者将目标函数定义为二维欧几里得模型下相机运动二阶差的L 2范数。通过对运动参数的区间约束,对黑边界约束进行了近似建模。在[7]中也使用了类似的建模方法,但假设变量为整数值,并通过动态规划解决了问题。在[8]中,目标函数是用l 1范数测量的相机运动的一阶、二阶和三阶差的混合。运动模型为二维相似运动,黑边界约束精确建模为线性不等式。结果表明,线性规划可以有效地解决约束运动平滑问题。基于窗口过滤的方法也考虑了黑边界约束。在[9]中,作者提出了一种双程运动平滑方法,可以找到尽可能大的最佳裁剪尺寸。

在[10]中,提出了基于二维平移运动模型的在线运动平滑的IIR滤波。卡尔曼滤波在[11]中首次用于在线平滑。在二维平移运动模型下,采用等速线性系统对目标运动参数进行建模,从而利用卡尔曼滤波对目标运动参数进行最优估计。同样的卡尔曼滤波运动平滑框架在[12]中被扩展到二维仿射运动模型,从而获得了更好的性能。同样的算法在后来的视频稳定工作中得到了广泛的应用,如[1,13]。这些算法使用固定的参数来稳定整个视频序列,这是不理想的,因为无意中摄像机运动(抖动)的幅度可能会有所不同。针对这一问题,提出了一种在线运动平滑的自适应算法。在[14]中,使用模糊系统来调整IIR运动滤波器中的参数。为了改进基于卡尔曼滤波的方法,在[15]中还提出了类似的模糊系统。在[16]中,通过检测运动参数的零交叉数,提出了另一种自适应卡尔曼滤波方法。在本文中,我们采用动态多模型估计自适应地估计有意相机的运动,这是单模卡尔曼滤波的一个推广[17]。交互多模型(IMM)算法[18]以其优异的性能和相对较低的计算要求而被广泛应用于解决这类问题[19]。与以往的基于卡尔曼滤波的运动平滑算法相比,本文提出的动态多模型估计能够从概率的角度优化选择合适的参数。对现有的无约束IMM算法进行了改进,使其在保证无黑边界的前提下,以自适应的方式平滑摄像机运动。

在线运动平滑中很少考虑黑边界约束。在[20]中,作者建议对二维平移运动模型使用约束卡尔曼滤波。由于运动模型的简单性,可以采用区间约束,一步即可得到约束估计。对于更复杂的运动模型,区间约束不能准确地模拟黑边界约束。虽然[21]在更复杂的运动模型中仍然使用区间约束来近似求解黑边界问题,但在本文中,我们使用了一个精确的线性不等式模型来模拟约束,而不需要对类似运动和仿射运动等复杂运动模型进行任何近似。n.我们通过[22]中提出的估计投影来求解约束估计。有关约束卡尔曼滤波算法的更全面调查,请参见[23]。

3. 基于卡尔曼滤波的运动平滑

卡尔曼滤波器是高斯过程和测量噪声的线性动态系统的最优极大后验估计。在不丧失一般性的情况下,我们假设系统没有控制输入。系统可以表示为

\left\{\begin{array}{l} \mathbf{x}_{k} = \mathbf{F}_{k}\mathbf{x}_{k-1} + \mathbf{w}_{k} \\ \mathbf{z}_{k} = \mathbf{H}_{k}\mathbf{x}_{k} + \mathbf{v}_{k} \end{array},                                                (1)\right.            

其中是时刻的隐藏状态向量,是时刻的观察量。是应用于前一状态的状态转换模型。是将真实状态空间映射到观测空间的观测模型。和是对均值正态分布的过程噪声和观测噪声的建模。卡尔曼滤波器通过跟踪均值和协方差递归地估计高斯后验概率。卡尔曼滤波算法可以概括为算法1。

【译】Online motion smoothing for video stabilization via constrained multiple-model estimation_第1张图片
算法1

带有恒等速度(CV)的卡尔曼滤波系统模型已广泛应用于机动目标的跟踪。假设要跟踪的目标位置的一维是,CV模型使用状态向量,其由和该维度的速度组成。动态模型被表示为:

\mathbf{F}_{k} = \left[\begin{array}{ll} 1 & T\\ 0 & 1 \end{array},\right] \mathbf{w}_{k} \sim \mathcal{N}\left(\mathbf{0}; \sigma_{p}^{2} \left[\begin{array}{ll} \frac{T^{4}}{4} & \frac{T^{3}}{2} \\ \frac{T^{3}}{2} & T^{2} \end{array}\right]\right),    (2)

其中是采样间隔。在这个模型中,除了可能的满足分布的加速度(机动的),速度几乎是恒定的。通常,我们对目标位置进行噪声测量,因此测量模型可以指定为:

上述一维CV模型可以很容易地推广到多维CV模型。由于动态模型中的等速假设,从CV模型中对目标位置的卡尔曼滤波估计通常比原始噪声位置测量更平滑。因此,该模型已成功地应用于相机运动等时间序列的因果平滑。

给定一个参考帧,整个视频序列的摄像机运动可以表示为一个运动参数序列,这取决于运动模型的选择。例如,二维仿射模型将两帧之间的相对变换描述为:

其中和是两帧中任何一对匹配像素的位置。因此,每帧的相机运动可以用2×2矩阵和2×1矢量表示。一般来说,视频的摄像机运动可以参数化为运动矢量序列。然后,通过将状态向量设置为,这个序列可由基于卡尔曼滤波的CV模型来平滑。

4.提出的的方法

上述恒速卡尔曼滤波算法有效地平滑了摄像机的运动序列,实现了在线视频稳定。然而,它并不局限于避免稳定框架中的黑色边界。另外,当相机有意以不同的速度运动时,单一的等速模型无法准确地跟踪。我们提出了一种在线运动平滑算法来解决这两个问题。黑边界约束被建模为线性不等式,并通过估计投影求解。交互式多模型估计用于自适应平滑单模卡尔曼滤波无法实现的摄像机运动。

4.1 运动平滑约束与卡尔曼滤波

平滑的相机运动为每帧生成一个校正运动。在视频稳定的最后一步中,利用修正运动通过图像扭曲来合成新的帧。合成帧可能包含黑色边框,因为合成帧中的每个像素由于相机运动的变化而在原始帧中不可见。如第2节所讨论的,解决这个问题的一种安全方法是将合成帧裁剪成较小的尺寸,这样稳定视频中就没有黑色边界。因此,在平滑相机运动序列时,我们需要保证裁剪稳定帧中的每个像素在原始帧中都是可见的。这是相机运动平滑算法中必须考虑的一个硬约束。

对于几乎所有类型的二维运动模型,对每帧相机运动参数的约束可以表示为一组线性不等式约束。因此,我们所面对的系统变成了:

\left\{\begin{array}{ll} \mathbf{x}_{k} = \mathbf{F}_{k}\mathbf{x}_{k-1} + \mathbf{w}_{k} \\ \mathbf{z}_{k} = \mathbf{H}_{k}\mathbf{x}_{k} + \mathbf{v}_{k} \end{array}\right. \mathrm{s.t.} \boldsymbol{\Psi}_{k}\mathbf{x}_{k} \leq \boldsymbol{\beta}_{k}.     (5)

卡尔曼滤波必须考虑状态约束。我们用一种称为估计投影的有效方法来解决这个问题。其思想是将卡尔曼滤波器的无约束状态估计投影到约束集上。约束估计可以写为:

\tilde{\mathbf{x}}_{k} = \text{argmin}_{\mathbf{x}}(\mathbf{x} - \hat{\mathbf{x}}_{k})^{\mathrm{T}}\mathbf{W}(\mathbf{x} - \hat{\mathbf{x}}_{k}), \mathrm{s.t.} \boldsymbol{\Psi}_{k}\mathbf{x} \leq \boldsymbol{\beta}_{k},   (6)

其中是一个正定加权矩阵。通常情况下,选择作为无约束协方差矩阵估计的逆矩阵,这样,解最大化了受状态约束的原始无约束估计的概率密度函数(pdf)。注意,公式(6)是一个线性不等式约束凸二次规划(QP)问题。我们用有效集方法求解。有效集方法搜索在问题的最佳解决方案中处于有效状态的约束。对于每一个有效约束的尝试,将问题简化为线性等式约束二次规划问题,利用拉格朗日乘子法可以一步分析求解。凸QP的主动集方法详情见[24]。

在下一小节中,我们将可见性约束的建模显示为三种不同相机运动模型的一组线性不等式约束:

4.1.1 仿射运动

在仿射运动下,帧中的像素可以转换为位置:

\left[\begin{array}{ll} x^{\prime} \\ y^{\prime} \end{array}\right] = \left[\begin{array}{ll} a_{k}^{0} & a_{k}^{1} \\ a_{k}^{2} & a_{k}^{3} \end{array}\right] \left[\begin{array}{ll} x \\ y \end{array}\right] + \left[\begin{array}{ll} b_{k}^{0}\\ b_{k}^{1} \end{array}\right]\     (7)

使用了六个参数。我们假设帧的平滑相机运动是和。然后,给定裁剪矩形的四个角,

\begin{array}{*{20}l}  \left[\begin{array}{ll} 0\\ 0 \end{array}\right] &\leq \left[\begin{array}{ll} a_{k}^{0} & a_{k}^{1} \\ a_{k}^{2} & a_{k}^{3} \end{array}\right]^{-1}\left(\left[\begin{array}{ll} \hat{a}_{k}^{0} & \hat{a}_{k}^{1} \\ \hat{a}_{k}^{2} & \hat{a}_{k}^{3} \end{array}\right] \left[\begin{array}{ll} c_{x}^{i} \\ c_{y}^{i} \end{array}\right] + \left[\begin{array}{ll} \hat{b}_{k}^{0}\\ \hat{b}_{k}^{1} \end{array}\right] \right)\\ &\quad- \left[\begin{array}{ll} a_{k}^{0} & a_{k}^{1}\\ a_{k}^{2} & a_{k}^{3} \end{array}\right]^{-1} \left[\begin{array}{ll} b_{k}^{0}\\ b_{k}^{1} \end{array}\right] \leq \left[\begin{array}{ll} w\\ h \end{array}\right], \end{array}     (8)

其中和是原始图像的宽度和高度。这是一组关于平滑运动参数的线性不等式约束。

4.1.2 相似运动

相似运动模型与仿射运动模型相似,只是被强制等价于,被强制等价于。因此,仿射运动模型中每个帧有四个运动参数,而不是六个。

4.1.3 平移运动

平移模型只描述图像平面上像素的二维平移运动,因此它强制矩阵为恒等映射,只留下平移参数和。

平滑相机运动的约束可以表示为:

这可以进一步简化为一个区间约束。

4.2 多模型估计的自适应平滑

4.2.1 自适应运动平滑

使用CV模型的运动平滑很大程度上取决于加速度方差(公式(2)中的)的假设。小的值可以使速度变化很小,从而使轨迹更平滑。相反,较大的值使速度变化具有更高的灵活性,并使轨迹更接近原始轨迹(作为噪声测量给出)。

在视频稳定中,小的不一定会产生好的结果。如果视频中存在明显的有意摄像机运动变化,小的可能具有较长的延迟时间,甚至无法跟踪有意摄像机运动。此外,较小的卡尔曼滤波产生的平滑摄像机运动往往偏离原来的摄像机运动,从而更频繁地触发4.1节中的估计投影。如第4.1节所示,运动参数的约束由原始(非平滑)运动参数确定,因此不同帧的约束不同。频繁的估计投影可能会增加不需要的相机抖动,降低卡尔曼滤波输出的平滑度。

因此,需要根据摄像机的原始运动自适应地改变的值。对于有意相机运动仍然存在的帧,我们最好使用小的值来有效地消除相机抖动(公式(1)中的测量噪声)。对于目标摄像机运动变化较快的帧,较大的值可以提供跟踪摄像机运动变化的灵活性,并避免满足黑边界约束的估计投影。

我们通过动态多模型状态估计来解决这个问题。我们使用种不同的CV系统模型,他们只在值上有所不同。假设模型像马尔可夫链一样在模型之间跳跃:

如果模型是静态的,我们可以实现卡尔曼滤波器与每个对应的模型并行。在每个阶段,首先计算每个模型的可能性,并将状态估计作为单个估计的贝叶斯最优组合进行计算。如果模型和我们的情况一样是动态的,那么最佳的多模型过滤器必须跟踪所有的模型历史,这些历史随着阶段(帧)的增加呈指数增长。在实践中,只保留最后阶段的模型历史,并将旧阶段的模型历史合并起来。提出了一种交互多模型算法,该算法具有较好的性能和较低的计算复杂度。

4.2.2 IMM算法

无约束的IMM估计包括三个主要步骤:(1)混合/交互前一阶段的模式条件估计,(2)模式条件状态估计,和(3)模式概率计算。图1说明了如何实现IMM算法。在每个阶段,我们用平均和协方差保持每个模式条件估计的高斯近似。也保持着。

【译】Online motion smoothing for video stabilization via constrained multiple-model estimation_第2张图片
图1 无约束IMM算法

在mixing步骤中,我们根据以下公式得到

其中,,可用贝叶斯规则计算,使用模式转换概率和前一阶段的模式分布,如:

\begin{array}{*{20}l}  \lambda_{k-1}^{ij} & = \frac{p(m_{k-1} = i, m_{k} = j | \mathbf{z}_{1:k-1})}{\sum_{i=1}^{M} p(m_{k-1} = i, m_{k} = j | \mathbf{z}_{1:k-1})} \\ & = \frac{\mu_{k-1}^{i} p_{ij}}{\sum_{i=1}^{M} \mu_{k-1}^{i} p_{ij}}. \end{array}    (12)

注意,(11)是高斯混合模型。IMM算法用平均值和协方差的高斯分布来近似它。

然后将每对送入卡尔曼滤波器,得到(由平均和协方差表示)。

模型概率根据以下公式进行更新:

\begin{array}{*{20}l}   \mu_{k}^{j} & \propto p(m_{k} = j, \mathbf{z}_{k}|\mathbf{z}_{1:k-1})\\  & = p(m_{k} = j | \mathbf{z}_{1:k-1})p(\mathbf{z}_{k} | m_{k} =j, \mathbf{z}_{1:k-1}) \\ & = \left(\sum\limits_{i=1}^{M} \mu_{k-1}^{i} p_{ij}\right)p(\mathbf{z}_{k} | m_{k} =j, \mathbf{z}_{1:k-1}), \end{array}     (13)

其中等于innovation 向量,其是相对于高斯分布的概率(参见算法1中的第8行和第9行)。

每个阶段的最终估计是使用模式概率的所有卡尔曼滤波器输出的线性组合。

4.2.3 约束IMM算法

在本小节中,第4.1节中的黑边界约束适用于多模型估计。我们已经证明了约束可以被建模为一组线性不等式约束。在单模型卡尔曼滤波中,误差投影法可以应用于满足约束条件的无约束卡尔曼滤波。IMM算法的输出包括几个卡尔曼滤波器的输出,以及使用模式概率的组合。因此,我们也可以将误差投影(6)应用于每个卡尔曼滤波器的无约束估计。它们的线性组合由于约束的线性化而自动满足约束。

这种修改可以保证满足约束条件。但不考虑约束对服装概率计算的影响。在实现了预测和更新步骤之后,提出了误差预测。因此,不修改创新向量,模式概率计算保持不变。为了使模式概率更好地反映黑边界约束的影响,我们建议在IMM算法中的每个卡尔曼滤波器的预测和更新步骤之间插入一个额外的误差投影步骤。模式概率计算步骤的输入(创新向量)是经过误差投影后的修正版本。但是请注意,每个卡尔曼滤波器中的更新步骤仍然使用不变的预测状态向量,因为更新后会有另一个错误投影步骤。

约束IMM算法的改进卡尔曼滤波器如图2所示,并在算法2中进行了总结。

【译】Online motion smoothing for video stabilization via constrained multiple-model estimation_第3张图片
图 2 受约束的IMM算法中的修正的KalmanFilter
【译】Online motion smoothing for video stabilization via constrained multiple-model estimation_第4张图片
算法2

你可能感兴趣的:(【译】Online motion smoothing for video stabilization via constrained multiple-model estimation)