Print

发布时间: 2017-07-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.160657
2017 | Volume 22 | Number 7




    图像理解和计算机视觉    




  <<上一篇 




  下一篇>> 





三焦点张量重投影视频稳像算法
expand article info 王敬东, 薛重飞, 魏雪迎, 刘云霄
南京航空航天大学自动化学院, 南京 211106

摘要

目的 目前,特征点轨迹稳像算法无法兼顾轨迹长度、鲁棒性及轨迹利用率,因此容易造成该类算法的视频稳像结果扭曲失真或者局部不稳。针对此问题,提出基于三焦点张量重投影的特征点轨迹稳像算法。 方法 利用三焦点张量构建长虚拟轨迹,通过平滑虚拟轨迹定义稳定视图,然后利用三焦点张量将实特征点重投影到稳定视图,以此实现实特征点轨迹的平滑,最后利用网格变形生成稳定帧。 结果 对大量不同类型的视频进行稳像效果测试,并且与典型的特征点轨迹稳像算法以及商业软件进行稳像效果对比,其中包括基于轨迹增长的稳像算法、基于对极几何点转移的稳像算法以及商业软件Warp Stabilizer。本文算法的轨迹长度要求低、轨迹利用率高以及鲁棒性好,对于92%剧烈抖动的视频,稳像效果优于基于轨迹增长的稳像算法;对于93%缺乏长轨迹的视频以及71.4%存在滚动快门失真的视频,稳像效果优于Warp Stabilizer;而与基于对极几何点转移的稳像算法相比,退化情况更少,可避免摄像机阶段性静止、摄像机纯旋转等情况带来的算法失效问题。 结论 本文算法对摄像机运动模式和场景深度限制少,不仅适宜处理缺少视差、场景结构非平面、滚动快门失真等常见的视频稳像问题,而且在摄像机摇头、运动模糊、剧烈抖动等长轨迹缺乏的情况下,依然能取得较好的稳像效果,但该算法的时间性能还有所不足。

关键词

视频稳像; 三焦点张量; 虚拟轨迹; 长轨迹; 重投影

Video stabilization algorithm using trifocal tensor reprojection
expand article info Wang Jingdong, Xue Chongfei, Wei Xueyin, Liu Yunxiao
College of Automation Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China
Supported by: National Natural Science Foundation of China(U1531110)

Abstract

Objective Video stabilization is one of the key research areas of computer vision. Currently, the three major categories of video stabilization algorithms are 2D global motion, 2D local motion, and feature trajectory stabilization. The 2D global and local motion stabilization algorithms usually cannot achieve a satisfying stabilization result in scenes with nonplanar depth variations. By contrast, the feature trajectory stabilization algorithm handles nonplanar depth variations well in the aforementioned scenes and outperforms the two video stabilization algorithms. However, the feature trajectory stabilization algorithm normally suffers from stabilization output distortion and unstable local result because of its drawbacks in the trajectory length, robustness, and trajectory utilization rate. To solve this problem, this paper proposes a feature trajectory stabilization algorithm using trifocal tensor. Method This algorithm extracts real feature point trajectory in the scene of the video with KLT algorithm and leverages the RANSAC algorithm to eliminate mismatches in the tracking feature point. The algorithm then adaptively selects a segment of the real trajectories to initialize the virtual trajectories based on the length of real trajectories. A long virtual trajectory is constructed by applying a trifocal tensor transfer to extend the initial virtual trajectory. This virtual trajectory extending process stops when either the virtual trajectory exceeds half of the frame width or height, or the difference between the mean and median of transferred points is larger than five pixels. When the number of virtual trajectories through one frame is less than 300, new initial virtual trajectories are added using the real trajectories on the same frame. With the acquired long trajectories, the algorithm odd-extends the beginning of the virtual trajectories to the first frame and the ending of the virtual trajectories to the last frame. The stabilized view is defined by the smoothed virtual trajectories from the output of the FIR filter. To smoothen the real trajectories, the algorithm re-projects real feature points to the stabilized views by the trifocal tensor transfer and divides the original frames into 16×32 uniform meshed grids. The final stabilized frames are rendered using mesh grid warping conversion of the original frames, while the input to the mesh grid warping is the smoothing vectors between the real feature points and the smoothed real feature points. For the smoothing vectors with unneglectable error, the proposed algorithm deletes them to guarantee the output of mesh grid warping by a combined usage of discarding the smoothed trajectories at most five frames long and the RANSAC algorithm based on the affine model. The degraded precision of virtual trajectory construction and real feature point reprojection is observed because of the degeneration of trifocal tensor transfer, and this algorithm adaptively changes the size of the transfer window according to the severity of degeneration. This process guarantees sufficient transferred points acquired to guarantee the precision of virtual trajectory construction and real feature point reprojection. In the construction of virtual trajectories, this algorithm marks the previous frame as a breakpoint to process the partitioned video when the number of virtual trajectories through one frame is detected at 25% less than the previous frame. Thus, the proposed algorithm achieves enhanced stabilization result. Result The experiment on a number of videos of different types shows the proposed algorithm has advantages in the video stabilization result over the traditional feature trajectory stabilization algorithms that are based on the feature trajectory augmentation or epipolar point transfer and the commercial software, Warp Stabilizer. The testing videos are classified into categories, including "simple, " "running, " "rolling shutter, " "depth, " and "driving, " when compared with the stabilization algorithm based on the feature trajectory augmentation. The "simple" videos have relatively slow camera motions and smooth depth variations. The "running" videos are captured while the users are running, thus these videos are challenging because of excessive wobbling. The "rolling shutter" videos suffer from noticeable rolling shutter distortions. The "depth" videos have a significant abrupt depth change. The "driving" videos are captured on moving vehicles. Furthermore, when compared with Warp Stabilizer, the classification is slightly changed to include "simple, " "lack of long trajectory, " "rolling shutter, " "depth, " and "driving." The "lack of long trajectory" videos lack long trajectories because of possible reasons, such as camera panning, motion blurring, or excessive jitters. To compare the stabilization results of the three algorithms, a scoring system is used to evaluate their stabilization outputs and then statistically analyze the results of each category to demonstrate the performance of the proposed algorithm. indicates that the proposed algorithm requires a reduced trajectory length and achieves high trajectory utilization rate and good robustness. When compared with the algorithm based on feature trajectory augmentation, the stabilization results have fewer distortions and better stability for 92% of the "running" videos; both algorithms have similar stabilization result for nearly 50% of the "rolling shutter" videos; and the proposed algorithm has fewer distortions for 38% of the videos in this category. Both algorithms have similar stability and no distinct distortion for 55% of the "simple" videos; the proposed algorithm can achieve better stability for the remaining 45% of the videos in this category. Meanwhile, both algorithms have similar stability and extent of distortion for most of the "depth" and "driving" videos; the proposed algorithm has slightly improved stability for few "depth" videos. When compared with Warp Stabilizer, the proposed algorithm has fewer distortions and better overall effect for 93% of the "lack of long trajectory" videos and 71.4% of the "rolling shutter" videos. For the "simple" and "driving" videos, both algorithms achieve good stabilization result. Both algorithms achieve a similar result for 75% of the "depth" videos; for the remaining 25% of the videos in this category, the proposed algorithm has fewer distortions. When compared with the stabilization algorithm based on epipolar point transfer, the proposed algorithm has fewer degenerated situations and therefore can avoid distortion introduced by phased motionless camera or pure camera rotation. Conclusion The proposed algorithm has less restriction on the camera motion pattern and scene depth and is suitable for common video stabilization situations, including scenarios that lack parallax with the nonplanar structure or with rolling shutter distortion. The proposed algorithm can still achieve satisfying stabilization result in scenarios that lack long trajectory because of camera panning, motion blurring, or excessive jitters. The time complexity of this algorithm may require improvement because this algorithm requires approximately 3-5 s per frame on a machine with a 2.1 GHz Intel Core i3 CPU and 3 GB of memory. In the future, parallel computing may be a potential solution for increasing speed.

Key words

video stabilization; trifocal tensor; virtual trajectory; long trajectory; reprojection

0 引言

早期视频稳像[1-3]主要为2维稳像。2维稳像采用2维全局模型表示两帧之间的运动,之后通过平滑2维模型参数以稳定视频。这类方法计算开销小、鲁棒性好,因此目前常用于实时稳像中[4-6];但对于非平面结构的场景,2维模型不能准确地表示两帧之间的运动,因此稳像效果差且容易失真。针对此问题,发展出2维局部模型稳像[7]和特征点轨迹稳像[8-12]

2维局部模型稳像将视频帧分为若干块,每块的运动用一个2维模型表示,因此增强了帧间运动的表示能力。其中,文献[7]利用网格变形[8]估计每块的运动,然后在假设相邻块运动路径相似基础上,平滑所有块的运动路径。该方法不需要长轨迹,而且能在一定程度上处理非平面深度变化的场景;但对于存在深度跳变的场景,不能很好地稳像,因为该场景下,相邻块的运动路径相似度低,破坏了假设条件。

为了比2维局部模型更好地表示帧间运动,特征点轨迹稳像算法利用特征点运动轨迹表示视频帧的运动,之后通过平滑特征点轨迹来稳定视频。这类方法的关键在于平滑特征点轨迹。由于直接对特征点轨迹滤波容易破坏轨迹间的几何关系,造成稳定帧失真[10],因此文献[8-12]提出各种不同的平滑方法。文献[8-9]利用SFM技术重构摄像机运动轨迹和特征点3维位置,然后通过重投影来平滑特征点轨迹。由于SFM技术易受噪声干扰且需要视差,因此文献[8-9]的方法鲁棒性差。为了避免算法鲁棒性差的问题,文献[10-12]避免利用SFM技术进行3维重构。文献[10]利用子空间约束移动分解特征点轨迹,然后线性结合平滑的特征轨迹以间接地平滑原轨迹。该方法鲁棒性好、计算开销减小,但需要较多的长轨迹来支撑子空间分解。为了降低对长轨迹的需求,文献[11]仅选取部分较长的轨迹,利用迭代低秩逼近原理对其中相对短的轨迹进行增长,然后直接平滑被增长的轨迹。该方法鲁棒性高,一定程度上降低了对长轨迹的需求,但由于仅利用部分轨迹,因此不能很好地表示视频帧各部分的运动,从而不能很好地处理剧烈抖动的视频。文献[12]利用对极几何点转移构建长虚拟特征点轨迹,通过平滑虚拟轨迹来间接地平滑实特征点轨迹。该方法对轨迹长度要求不高且轨迹利用率高,但对极几何点转移存在较多的退化情形,因此算法鲁棒性较差,运用场景较窄。除了上述特征点轨迹算法以外,文献[13]提出一种近似的特征点轨迹稳像算法。文献[13]假设稳定光流形成的轨迹与特征点轨迹相似,因此通过平滑稳定光流来稳定视频。该方法不需要长轨迹,但鲁棒性差,而且需要计算稠密光流,所以计算开销较大。

综上所述,目前特征点轨迹稳像算法对轨迹长度、轨迹利用率以及鲁棒性3个方面很难兼顾,因此难以处理摄像机摇头、剧烈抖动、运动模糊等挑战性问题。因此,本文提出一种基于三焦点张量重投影的稳像算法,利用三焦点张量实现实特征点的重投影,以此平滑实特征点轨迹,然后利用网格变形生成稳定帧。

1 基于三焦点张量的稳像算法

1.1 算法思想

作为特征点轨迹稳像算法的一种,本文算法与其他该类算法具有相似的算法流程:1) 提取实特征点轨迹;2) 平滑实特征点轨迹;3) 生成稳定帧。实特征点轨迹表示为${\mathit{\boldsymbol{P}}_i} = \left\{ {\mathit{\boldsymbol{p}}_i^t\left| {{m_i} \le t \le {n_i}} \right.} \right\}$${\mathit{\boldsymbol{P}}_i}$为第$i$个实特征点的轨迹,即第$i$条实轨迹,$\mathit{\boldsymbol{p}}_i^t = \left( {x_i^t,y_i^t} \right)$为实特征点在第$t$帧时图像坐标,${m_i}$${n_i}$分别为${\mathit{\boldsymbol{P}}_i}$的起始帧和终止帧;平滑的实轨迹为${\mathit{\boldsymbol{R}}_i} = \left\{ {\mathit{\boldsymbol{r}}_i^t\left| {{m_i} \le t \le {n_i}} \right.} \right\},\mathit{\boldsymbol{r}}_i^t$表示平滑实特征点,即$\mathit{\boldsymbol{p}}_i^t$的平滑位置。

与大多数特征点轨迹稳像算法一样,采用KLT跟踪算法[14]提取实轨迹以及利用网格变形生成稳定帧。网格变形时,将每帧分为$N \times M$个网格,之后在保持视频帧内容尽可能不失真的同时变形网格,使得$\mathit{\boldsymbol{p}}_i^t$尽可能地接近$\mathit{\boldsymbol{r}}_i^t$,而变形之后的原始帧即稳定帧。

如前所述,特征点轨迹稳像的难点在于平滑特征点轨迹,但目前特征点轨迹稳像算法在该方面还有所不足,如文献[8-9]需要视差和对特征点噪声敏感,鲁棒性差;文献[10]需要大量长于50帧的轨迹来支撑分解,对轨迹长度要求较高;文献[11]轨迹利用率低,难以稳定剧烈抖动的视频;文献[12]所用的对极几何点转移退化情形多,算法鲁棒性较差。

由于目前特征点轨迹稳像算法平滑特征点轨迹时,难以兼顾鲁棒性、轨迹长度以及轨迹利用率,因此提出一种基于三焦点张量重投影的平滑算法,利用三焦点张量点转移技术构建长虚拟轨迹,之后通过平滑虚拟轨迹定义稳定视图,然后利用三焦点张量点转移将实特征点重投影到稳定视图,以达到平滑实特征点轨迹的目的。与实轨迹类似,虚拟轨迹表示为$\mathit{\boldsymbol{V}}_j^t = \left\{ {\mathit{\boldsymbol{v}}_j^t\left| {{m_j} \le t \le {n_j}} \right.} \right\},\mathit{\boldsymbol{v}}_j^t$为虚拟特征点;平滑的虚拟轨迹表示为$\mathit{\boldsymbol{\tilde V}}_j^t = \left\{ {\mathit{\boldsymbol{\tilde v}}_j^t\left| {{m_j} \le t \le {n_j}} \right.} \right\},\mathit{\boldsymbol{\tilde v}}_j^t$为平滑虚拟特征点。由于实轨迹通常不够长,不能利用较大的滤波窗口进行直接滤波[10],所以通过平滑长虚拟轨迹以间接地平滑实轨迹。由于三焦点张量表示了3幅视图之间特征点的对应关系,所以可以利用三焦点张量求得两幅视图的对应点在第3幅视图上的对应位置,此即三焦点张量点转移。选取通过初始${N_{\rm{s}}}$帧的实轨迹作为初始虚拟轨迹,即$\mathit{\boldsymbol{v}}_j^t = \mathit{\boldsymbol{p}}_i^t,t = 1, \cdots ,{N_{\rm{s}}}$,并且利用实对应点$\mathit{\boldsymbol{p}}_i^{t - 2} \leftrightarrow \mathit{\boldsymbol{p}}_i^{t - 1} \leftrightarrow \mathit{\boldsymbol{p}}_i^t$计算第$t$-2、$t$-1以及$t$帧的三焦点张量,之后利用该三焦点张量对初始虚拟对应点$\mathit{\boldsymbol{v}}_j^{t - 2} \leftrightarrow \mathit{\boldsymbol{v}}_j^{t - 1}$进行点转移获得$\mathit{\boldsymbol{v}}_j^t$;以此就能增长虚拟轨迹,从而构建长虚拟轨迹。

值得注意的是,虚拟轨迹不能像实轨迹一样用于网格变形生成稳定帧,主要有两个原因:1) 虚拟轨迹是实际不存在的特征点轨迹,不能表示视频帧各部分的真实运动;2) 摄像机不断运动,所以虚拟轨迹往往会超出视频帧的有效范围。

虽然如此,虚拟轨迹却可以用来定义稳定帧的理论位置,即稳定视图,而稳定视图是平滑实轨迹的关键前提。通过平滑虚拟轨迹可以定义稳定视图,主要有两个原因:1) 虚拟轨迹与实轨迹一样,可以建模摄像机运动,因为构建虚拟轨迹的三焦点张量是由实对应点求得的,所以虚拟轨迹和实轨迹遵循相同的三焦点张量,因此虚拟轨迹看作是虚拟3维特征点在视频帧上的投影;2) 虚拟轨迹足够长,因此轨迹间重叠区域大,所以直接平滑虚拟轨迹不会受到滤波窗口宽度的影响。

由于稳定视图已经被定义,因此只需将实特征点重投影到稳定视图就可以实现实轨迹的间接平滑。如前所述,三焦点张量可以表示点对应几何关系,因此可以利用三焦点张量点转移来实现实特征点的重投影:利用虚拟对应点$\mathit{\boldsymbol{v}}_j^{t - 1} \leftrightarrow \mathit{\boldsymbol{v}}_j^{t + 1} \leftrightarrow \mathit{\boldsymbol{\tilde v}}_j^t$计算第$t$-1、$t$+1原始帧和第$t$稳定视图的三焦点张量,之后利用该三焦点张量将实对应点$\mathit{\boldsymbol{p}}_i^{t - 1} \leftrightarrow \mathit{\boldsymbol{p}}_i^{t + 1}$转移到第$t$稳定视图,从而获得$\mathit{\boldsymbol{p}}_i^t$的平滑位置$\mathit{\boldsymbol{r}}_i^t$。相比于基于SFM技术进行3维重构的重投影[8]以及基于对极几何点转移的重投影[12],不仅保持了不破坏轨迹间几何关系以及完整保存平滑实轨迹的优点,同时鲁棒性高。平滑实轨迹的过程如图 1所示。本文算法思路如图 2所示。

图 1 实轨迹平滑过程示意图
Fig. 1 Real trajectory smoothing procedure diagram
图 2 本文算法思路
Fig. 2 Algorithm diagram

1.2 三焦点张量点转移

射影几何下,三焦点张量可以表示3幅视图之间的全部几何关系,本文利用其中的点对应几何关系来构建长虚拟轨迹和实现重投影。三焦点张量与3幅视图上对应点的关系可以表述为

$\begin{array}{l} {\left[ {{\mathit{\boldsymbol{x}}^\prime }} \right]_ \times }\left( {\sum\limits_{i = 1}^3 {{\mathit{\boldsymbol{x}}_i}{\mathit{\boldsymbol{T}}_i}} } \right){\left[ {{\mathit{\boldsymbol{x}}^{\prime \prime }}} \right]_ \times } = {{\bf{0}}_{3 \times 3}}\\ {\left[ {{\mathit{\boldsymbol{x}}^\prime }} \right]_ \times } = \left[ {\begin{array}{*{20}{c}} 0 & { - x_3^\prime } & {x_2^\prime }\\ {x_3^\prime } & 0 & { - x_1^\prime }\\ { - x_2^\prime } & {x_1^\prime } & 0 \end{array}} \right]\\ {\left[ {{\mathit{\boldsymbol{x}}^{\prime \prime }}} \right]_ \times } = \left[ {\begin{array}{*{20}{c}} 0 & { - x_3^{\prime \prime }} & {x_2^{\prime \prime }}\\ {x_3^{\prime \prime }} & 0 & { - x_1^{\prime \prime }}\\ { - x_2^{\prime \prime }} & {x_1^{\prime \prime }} & 0 \end{array}} \right] \end{array}$ (1)

式中,3个3×3矩阵的集合$\left\{ {{\mathit{\boldsymbol{T}}_1},{\mathit{\boldsymbol{T}}_2},{\mathit{\boldsymbol{T}}_3}} \right\}$为三焦点张量的矩阵表示,张量表示参见文献[15]。$\mathit{\boldsymbol{x}} = \left( {{x_1},{x_2},{x_3}} \right),{\mathit{\boldsymbol{x}}^\prime } = \left( {x_1^\prime ,x_2^\prime ,x_3^\prime } \right),{\mathit{\boldsymbol{x}}^{\prime \prime }} = \left( {x_1^{\prime \prime },x_2^{\prime \prime },x_3^{\prime \prime }} \right)$为对应点的齐次坐标。式(1) 包含9个方程,仅4个线性无关。由于3幅视图并无差别,因此3幅视图有6个三焦点张量。由于这6个三焦点张量可以相互转换,所以仅考虑其中的一种即可。

点转移即求取两个匹配点在第3幅图上的位置,而利用三焦点张量实现的点转移即为三焦点张量点转移,即利用$\left\{ {{\mathit{\boldsymbol{T}}_1},{\mathit{\boldsymbol{T}}_2},{\mathit{\boldsymbol{T}}_3}} \right\}$求取$\mathit{\boldsymbol{x}} \leftrightarrow {\mathit{\boldsymbol{x}}^\prime }$的对应点${\mathit{\boldsymbol{x}}^{\prime \prime }}$,如图 3所示,被求取的对应点被称为转移点。求解${\mathit{\boldsymbol{x}}^{\prime \prime }}$时需要将式(1) 变形为

图 3 三焦点张量点转移
Fig. 3 Point transfer using trifocal tensor

${\mathit{\boldsymbol{A}}_{4 \times 3}}{\mathit{\boldsymbol{x}}^{\prime \prime }} = {{\bf{0}}_{4 \times 1}}$ (2)

式中,${\mathit{\boldsymbol{A}}_{4 \times 3}}$是由${\left[ {{\mathit{\boldsymbol{x}}^\prime }} \right]_ \times }$${\left[ {{\mathit{\boldsymbol{x}}^\prime }} \right]_ \times }$以及$\left\{ {{\mathit{\boldsymbol{T}}_1},{\mathit{\boldsymbol{T}}_2},{\mathit{\boldsymbol{T}}_3}} \right\}$中元素组成的系数矩阵。${\mathit{\boldsymbol{A}}_{4 \times 3}}$的行数为4,因为仅选用式(1) 中4个线性无关的方程。为了求取${{\mathit{\boldsymbol{x}}^{\prime \prime }}}$的非零最小二乘解,奇异值分解${\mathit{\boldsymbol{A}}_{4 \times 3}}$

${\mathit{\boldsymbol{A}}_{4 \times 3}} = {\mathit{\boldsymbol{U}}_{4 \times 3}}\left[ {\begin{array}{*{20}{c}} {{\sigma _1}} & 0 & 0\\ 0 & {{\sigma _2}} & 0\\ 0 & 0 & {{\sigma _3}}\\ 0 & 0 & 0 \end{array}} \right]\mathit{\boldsymbol{V}}_{4 \times 3}^{\rm{T}}$ (3)

式中,${\sigma _1}$${\sigma _2}$${\sigma _3}$为奇异值,${\sigma _1}$${\sigma _2}$${\sigma _3}$$\mathit{\boldsymbol{V}}$的最后一列即为${{\mathit{\boldsymbol{x}}^{\prime \prime }}}$的非零最小二乘解。

至于$\left\{ {{\mathit{\boldsymbol{T}}_1},{\mathit{\boldsymbol{T}}_2},{\mathit{\boldsymbol{T}}_3}} \right\}$,采用归一化线性算法[14]求解,同样利用式(1) 中相应的4个线性无关的方程,此时3幅视图上的对应点为已知量。该算法首先归一化对应点,然后求取非零最小二乘解。

利用上述的三焦点张量点转移机制就可以增长初始虚拟轨迹,从而构建长虚拟轨迹。

为了节省计算开销,选取尽可能长的初始虚拟轨迹。由于轨迹大多数长于10帧,所以${N_{\rm{s}}}$初始值取10。但一般情况下,轨迹长度远大于10,因此可以选取尽可能长的初始虚拟轨迹以减少点转移的次数:逐渐增大${N_{\rm{s}}}$,直到比${N_{\rm{s}}}$为10时的初始虚拟轨迹数量减少$α$为止。$α$默认为20 %,该值过小使得初始虚拟轨迹太短,增加不必要的计算开销;而过大将使得虚拟轨迹过少或者过分集中,不利于实轨迹的间接平滑。

由于仅利用两个对应点估计转移点的准确性容易受到特征点跟踪误差以及三焦点张量点转移退化等原因的影响,因此为了增加估计的准确性,设定转移窗口$\left[ {t - {N_{\rm{r}}},t - 1} \right]$(${{N_{\rm{r}}}}$初始为10),对转移窗口中任意两帧的虚拟对应点$\mathit{\boldsymbol{v}}_j^{{t_1}} \leftrightarrow \mathit{\boldsymbol{v}}_j^{{t_2}}$求关于$\mathit{\boldsymbol{v}}_j^t$的转移点,然后对所有转移点取中值作为$\mathit{\boldsymbol{v}}_j^t$。为了避免粗大误差的影响,估计$\mathit{\boldsymbol{v}}_j^t$之前,利用$\chi 84$准则[14]剔除严重偏离所有转移点中心的转移点。若剩余转移点的中值与均值相距超过5像素,则认为$\mathit{\boldsymbol{v}}_j^t$的估计是失效的[12],此时应该放弃此次估计,即不再增长第$j$条虚拟轨迹。

由于摄像机总是运动的,因此虚拟轨迹会逐渐超出视频帧的有效区域。若利用超出视频帧有效区域较远的虚拟轨迹求解原始帧和稳定视图之间的三焦点张量,此三焦点张量对实特征点的符合程度将会较低,从而不利于对实特征点的重投影。因此当虚拟轨迹超出帧宽或者帧高的$β$倍(该值范围通常取0.3 0.8,本文取0.5) 时,停止增长虚拟轨迹。$β$不能过小,否则虚拟轨迹将较短,不能有效地计算三焦点张量,从而影响实轨迹的平滑精度,以至于影响稳像结果的平稳性。

但是上述处理将造成通过后续视频帧的虚拟轨迹逐渐减少,因此为了始终有充足的虚拟轨迹用于平滑实轨迹,构建虚拟轨迹时逐帧检查虚拟轨迹数量,当数量不足时(默认阈值300,不可过少,否则影响三焦点张量计算的精度,导致实轨迹平滑精度下降;而过多没有必要,且会增加计算开销),增添新的初始虚拟轨迹。由于任意时刻总是存在许多长度大于10帧的实轨迹,所以对于$t$帧,若虚拟轨迹数量不足,则将$\left[ {t - 2r,t} \right]$中通过$t$帧同时长度大于10帧的实轨迹作为新增添的初始虚拟轨迹,其中$r$为滤波窗口半径。

1.3 实特征点重投影

如前所述,通过将实特征点重投影到稳定视图来平滑实轨迹,而稳定视图需要利用平滑虚拟轨迹来定义,因此采用FIR滤波对虚拟轨迹进行平滑。FIR滤波主要通过调节滤波器的截止频率${w_{\rm{n}}}$来平滑,${w_{\rm{n}}}$默认取0.01(归一化频率,采样频率的一半为1),该值与滤波窗口宽度有关,滤波窗口宽度固定时,该值取得更小也不会获得更大的平滑,而太大则平滑度不够;窗口函数选择Hamming窗;$r$默认取25,可根据对稳像结果平稳程度的需求进行调整,但是过大会增加对虚拟轨迹长度的需求,而过小则影响稳像结果的平稳性。平滑虚拟轨迹即利用FIR滤波的卷积核与虚拟轨迹在$X$$Y$方向上的分量分别卷积。为了在第1帧和最后一帧附近滤波窗口不超出虚拟轨迹的范围,卷积之前,对起始于第1帧或者终止于最后一帧的虚拟轨迹关于第1帧或者最后

一帧奇延拓。奇延拓在$X$$Y$方向上分别进行,延长$r$

为了不破坏平滑虚拟轨迹间的几何关系,仅对虚拟轨迹上滤波窗口不会超出的部分进行滤波。不会超出的部分即有效区间,其他部分即为无效区间,如图 4。由于轨迹总是存在于不同的时间区间,同时无效区间和有效区间的平滑程度不同,因此如果对无效区间也线性滤波,将破坏平滑轨迹间的几何关系,所以只平滑虚拟轨迹的有效区间。

图 4 特征点轨迹有效区间和无效区间
Fig. 4 Valid interval and invalid interval in the feature trajectory

与虚拟轨迹不同,实轨迹较短且轨迹间重叠区域小,所以当滤波窗口宽度较大时,仅对实轨迹的有效区域滤波将使得网格变形缺乏平滑实特征点,因此不直接平滑实轨迹,而利用重投影间接地平滑。

实特征点的重投影利用三焦点张量点转移技术,因此与构建虚拟轨迹时类似,为了更加精确的估计$\mathit{\boldsymbol{r}}_i^t$,设定一个转移窗口$\left[ {t - {N_t},t + {N_t}} \right],{N_t}$初始值取5。确定$\mathit{\boldsymbol{r}}_i^t$的位置之前,首先利用$\chi 84$准则剔除所有转移点中的粗大值,然后对于剩余的转移点取中值作为$\mathit{\boldsymbol{r}}_i^t$,若剩余转移点的中值和均值相差超过5像素,则放弃$\mathit{\boldsymbol{r}}_i^t$。但这样可能会使平滑实轨迹被分割成若干段,因此对于被分割的平滑实轨迹,将每段轨迹当作独立的轨迹。

1.4 三焦点张量点转移退化时的解决方法

值得注意的是,本文算法并不能避免三焦点张量点转移退化的影响。如果视图 1与视图 2的摄像机中心重合,而视图 3和视图 2摄像机中心不重合,此时利用三焦点张量将视图 1与视图 2的对应点转移到视图 3是退化的。上述退化情形发生于摄像机由纯旋转或者静止转入平移时,在实际情况中较少出现,而经常出现三焦点张量点转移的近似退化情形:视图 1与视图 2的摄像机中心不重合,但相距较近,视图 3和视图 2的摄像机中心相距较远。

由于三焦点张量点转移退化严重时,得到的转移点误差较大,所以在构建虚拟轨迹和平滑实轨迹时,需要判断点转移退化的严重性,例如构建虚拟轨迹时,利用$\mathit{\boldsymbol{p}}_i^{{t_1}} \leftrightarrow \mathit{\boldsymbol{p}}_i^{{t_2}} \leftrightarrow \mathit{\boldsymbol{p}}_i^t$计算三焦点张量;利用该三焦点张量对$\mathit{\boldsymbol{v}}_j^{{t_1}} \leftrightarrow \mathit{\boldsymbol{v}}_j^{{t_2}}$进行点转移之前,首先判断该三焦点张量用于点转移时,点转移退化的严重性;如果退化严重,则不用该三焦点张量对$\mathit{\boldsymbol{v}}_j^{{t_1}} \leftrightarrow \mathit{\boldsymbol{v}}_j^{{t_2}}$进行点转移。平滑实轨迹时也用此操作。

三焦点张量点转移退化严重性$w_{{\rm{tensor}}}^{{t_1},{t_2},t}$可以用转移点误差来评价,转移点误差即转移误差,例如$\mathit{\boldsymbol{p}}_i^{{t_1}} \leftrightarrow \mathit{\boldsymbol{p}}_i^{{t_2}}$的转移点与$\mathit{\boldsymbol{p}}_i^t$的误差。由于仅利用一组对应点的转移误差来评价易受特征点跟踪误差的影响,因此利用所有对应点转移误差的中值来评价$w_{{\rm{tensor}}}^{{t_1},{t_2},t}$,即

$w_{{\rm{tensor}}}^{{t_1},{t_2},t} = \mathop {{\rm{med}}}\limits_{i = 1, \ldots ,n} {\rm{ }}err_i^{{t_1},{t_2},t}$ (4)

式中,$err_i^{{t_1},{t_2},t}$表示${t_1}$${t_2}$帧的对应点转移到第$t$帧时,3幅视图上第$i$组对应点的转移误差;$n$为3幅视图上对应点的总组数。

但由于求转移误差需要利用式(1)(2)(3) 具体地求解出转移点,时间消耗大。因此为了节省计算开销,本文提出利用$\lambda _i^{{t_1},{t_2},t}$间接地表示转移误差,即

$\lambda _i^{{t_1},{t_2},t} = \frac{{\sigma _{1i}^{{t_1},{t_2},t} \cdot \sigma _{3i}^{{t_1},{t_2},t}}}{{{{(\sigma _{2i}^{{t_1},{t_2},t})}^2}}}$ (5)

式中,${\sigma _{1i}^{{t_1},{t_2},t}}$${\sigma _{2i}^{{t_1},{t_2},t}}$${\sigma _{3i}^{{t_1},{t_2},t}}$为式(3) 中的奇异值。上标表示${t_1}$${t_2}$帧的对应点转移第$t$帧,下标表示第$i$组对应点。

式(5) 中的$\lambda _i^{{t_1},{t_2},t}$原本表示式(3) 中系数矩阵的秩接近2的程度。但由式(3) 可知,${\mathit{\boldsymbol{A}}_{4 \times 3}}$的秩越接近2,解的准确性越高,转移误差就越小,因此$\lambda _i^{{t_1},{t_2},t}$可以用来表示转移误差。从而$w_{{\rm{tensor}}}^{{t_1},{t_2},t}$即可表示为

$w_{{\rm{tensor}}}^{{t_1},{t_2},t} = \mathop {{\rm{med}}}\limits_{i = 1, \ldots ,n} {\rm{ }}err_i^{{t_1},{t_2},t}$ (6)

本文认为$w_{{\rm{tensor}}}^{{t_1},{t_2},t}$>2.5的三焦点张量点转移退化严重。对于点转移退化严重的三焦点张量不用于求取转移点。但如果转移窗口中大部分点转移都退化严重,就会造成可用转移点很少,从而影响估计的精度,例如摄像机从连续多帧的静止突然转入平移运动。

针对此情况,构建虚拟轨迹时,根据可用转移点数量自适应地调节${{N_{\rm{r}}}}$以改变转移窗口的大小,从而改变可用转移点的数量。${{N_{\rm{r}}}}$的确定可以通过下述方式:1) 增大${{N_{\rm{r}}}}$直到$w_{{\rm{tensor}}}^{{t_1},{t_2},t}$<0.1的数量大于20;2)$w_{{\rm{tensor}}}^{{t_1},{t_2},t}$<1的数量大于100。两者满足其一即可。调节${{N_{\rm{r}}}}$时,如果已经出现足够多的精确点转移,不再增大${{N_{\rm{r}}}}$以节省计算开销,如条件1);如果始终没有足够多的精确点转移,则通过获得大量相对精确的点转移来保证转移点的精度,如条件2)。同时,为了使得${{N_{\rm{r}}}}$不至于过大而消耗过多的计算时间,设定${{N_{\rm{r}}}}$上限为80,但该值也不能过小,否则降低转移点的精度,因此通常取50 100。平滑实轨迹时,采用与上述相同的方法调节${N_t}$${N_t}$上限默认为25(通常取15 30,不能过小,否则当视频存在剧烈抖动时,影响特征点平滑精度,导致稳定帧失真;过大则会增加不必要的时间开销)。

需要注意,有些情况下即使${{N_{\rm{r}}}}$达到上限也不能得到很多的可用转移点,例如摄像机从很长一段时间的静止或者纯旋转突然转入平移。这些情况下,可能会造成大量的虚拟轨迹断裂。出现大量虚拟轨迹断裂的时刻被称为断点。构建虚拟轨迹时,检测通过每帧的虚拟轨迹数量,如果相对于通过上一帧的虚拟轨迹数量减少25 % (通常20 % 30 %有效,不能过小,否则断点数量过多,影响稳像结果的平滑性,而过大,则难以找到断点)以上,则将上一帧记录为断点,而被断点分隔开的两段视频则分别处理。但断点过密会使得稳定视频不稳,同时过密的断点是没有必要的,因此剔除过密的断点。由于构建虚拟轨迹时不断添加长度至少10帧的实轨迹作为新的初始虚拟轨迹,所以断点之间最小间隔为9帧。

2 实验结果及分析

本文基于matlab2010实现算法,运行环境Intel i3(2.1 GHz),内存2 GB,共测试视频62个,编号为video1 62。为了明显地体现算法性能的优越性,将与目前典型的特征点轨迹稳像算法和常用的商业软件进行对比,包括文献[11]、文献[12]的稳像算法以及商业软件Warp Stabilizer。文献[11]为基于对极几何点转移的稳像算法,文献[12]为基于轨迹增长的稳像算法,各种算法处理的视频结果见http://pan.baidu.com/s/1pKCD80b

在比较之前,有4个需要说明的情况:

1) 滚动快门失真(rolling shutter distortion)。滚动快门失真又称果冻失真,存在于CMOS摄像机中,由像素逐行曝光引起。与文献[11]中利用3次样条曲线插值消除滚动快门失真[16]不同,本文将滚动快门失真当作特征点跟踪噪声,不作特殊处理。尽管如此,对于含有滚动快门失真的视频,依然能取得很好的稳定效果。

2) 运动目标遮挡。利用RANSAC方法剔除运动目标上的特征点轨迹[10]

3) 误差较大的平滑向量。偶然出现的误差较大的平滑向量$\mathit{\boldsymbol{d}}_i^t = \mathit{\boldsymbol{p}}_i^t - \mathit{\boldsymbol{r}}_i^t$会严重影响网格变形,导致稳定帧局部严重失真。由于此类平滑向量通常出现在较短的平滑轨迹上,因此剔除较短的平滑实轨迹(阈值5帧即可)。除此之外,也在仿射变换的基础上利用RANSAC方法剔除误差较大的平滑向量。

4) 网格变形。将视频帧划分为16×32个网格。相比于利用2维模型对整个视频帧进行相同的处理,网格变形方法对不同深度的区域有着不同的变形,因此能够处理非平面结构的场景。

与文献[11]比较时,视频按照文献[11]中的分类方式进行分类:simple、running、rolling shutter、depth、driving。simple类抖动较小,深度变化平缓;running类是由奔跑的人拍摄的,因此抖动剧烈;rolling shutter类具有较为严重滚动快门失真;depth类具有较大的深度变化;driving类是在运动汽车上拍摄的。由于暂不考虑强运动目标遮挡的问题,所以对于文献[11]中的crowed类和object类不作比较。

为了与Warp Stabilizer比较视频缺乏长轨迹时的性能,对视频的分类进行调整:simple、lack of long trajectory、rolling shutter、depth、driving。其中lack of long trajectory类的视频通常包含剧烈抖动、运动模糊以及摄像机摇头等情形,所以缺少长轨迹。

2.1 与文献[12]比较

与文献[12]利用对极几何点转移构建虚拟轨迹相比,由于本文算法利用三焦点张量点转移构建虚拟轨迹,所以退化条件更少,因此具有更好的鲁棒性。文献[12]利用两条对极线的交点确定转移点,而摄像机静止时,两条对极线理论上重合,此时无法求得转移点,即对极几何点转移退化。

实际情况中,由于跟踪误差的干扰,两条对极线有很小的夹角,此时两条对极线可以确定转移点,但误差很大。而三焦点张量点转移则不受摄像机静止的影响,如图 5所示。图 5为摄像机静止时3幅视图上各组对应点的转移误差。

图 5 摄像机静止时的点转移
Fig. 5 Point transfer when camera is stationary

而针对两种算法都退化的情况,即当摄像机由静止或者纯旋转转入平移,通过仿真来比较。由于实际情况中常出现上述退化情形的近似情形,即视图 1与视图 2的摄像机中心不重合但是相距较近,视图 3和视图 2摄像机中心相距较远。所以仅在近似退化情形下比较两种算法的性能:随机取500个3维特征点,同时加入高斯白噪声;保持视图 1的摄像机中心${C_1}$与视图 2的摄像机中心${C_2}$距离不变,同时保持${C_2}$和视图 3的摄像机中心${C_3}$$Y$方向上的平移量不变,仅改变${C_2}$${C_3}$$X$轴上的平移量。比较结果如图 6所示。

图 6 两种算法都退化时的点转移
Fig. 6 Point transfer when both algorithms fail

随着平移量的增大,两种算法所有对应点转移误差的中值都逐渐增大,即两种算法退化都逐渐变强,但文献[12]退化的速度明显更快。

2.2 与文献[11]比较

与文献[11]进行比较时,将两种算法的稳像结果以及原视频放在一起播放,之后让3个人同时观看。将稳像结果分别标记为方法A和方法B,之后给每个人3种选择:方法A、方法B、无法判断。对于某个视频,当某种算法的稳像结果同时有两个人觉得更好时,则认为该算法更好,否则认为无法判断。稳像结果优劣的依据为视频的平稳性和失真程度。优先考虑失真程度,当失真程度无法区别时,考虑平稳程度。统计每一类中3种选择的视频占视频总数量的比例,统计结果如图 7

图 7 与Koh算法[11]的比较
Fig. 7 Comparison with Koh's method

图 7所示,与文献[11]相比,本文算法最大的优势在于running类,对于该类中92 %的视频,本文算法稳像效果更好。该类视频抖动剧烈,而且通常伴有较为严重的滚动快门失真,因此视频帧各部分的帧间运动差异非常大。对于该类视频,文献[11]有比较严重的失真,主要原因是:文献[11]只利用了少量的实轨迹,轨迹利用率低。为了在轨迹较少的情况下进行稳像,文献[11]的网格变形选用4×4的大网格,而大网格很难表示视频帧各部分的帧间运动,所以稳像结果失真严重。而本文算法几乎利用了所有的实轨迹,因此可以采用16×32的小网格来更加准确地表示帧间运动,所以稳像效果更好。实际上,影响两种算法效果的深层原因还是长轨迹,文献[11]仅利用少量的轨迹就是为了利用迭代低秩近似原理增长轨迹时,少量长轨迹能够占有更大的比例,以保证轨迹增长的精度。

而对于rolling shutter类,大约一半的视频,两种算法稳像效果相似,因为两种算法都能很好地处理滚动快门失真。约38 %的视频,文献[11]的稳像结果失真更严重,因为该类中很多视频的滚动快门失真是由剧烈抖动引起的,而如前所述,文献[11]很难处理剧烈抖动的视频。

对于simple类,其中约55 %的视频,两种算法平滑程度相似,而且都没有失真;45 %的视频,本文算法稳像结果平稳性更高,因为滤波窗口的宽度(默认51) 大于文献[11]的滤波窗口宽度(仅为31)。文献[11]为了降低对长轨迹的需求,有意地减小滤波窗口宽度,其副作用是稳像结果的平稳性被降低。

对于depth和driving类,其中大部分视频,两种算法稳像结果的平稳性和失真程度都相似。对于depth类,本文算法有些许优势,主要体现在平滑程度上。而对于driving类,文献[11]有些许优势,主要因为其中一部分视频的特征点轨迹相对集中且数量较少。与本文的小网格相比,文献[11]的大网格更适合处理这种情况,所以稳像效果稍好一些。

2.3 与Warp Stabilizer比较

Warp Stabilizer是商业软件After effects CS6的稳像模块,该模块的稳像算法采用文献[10]中子空间约束的方法:利用子空间约束对实轨迹进行分解,得到特征轨迹,然后线性结合平滑的特征轨迹以间接地平滑实轨迹,最后利用网格变形生成稳定帧。

本文算法与Warp Stabilizer的对比时,采用与文献[11]对比时相同的评价与统计方法,两种方法的对比结果如图 8所示。

图 8 与Warp Stabilizer的比较
Fig. 8 Comparison with Warp Stabilizer

图 8中,本文算法最明显的优势在于lack of long trajectory类,对于该类中93 %的视频,本文算法的稳像效果优于Warp Stabilizer,因为本文算法对轨迹长度的要求仅10帧左右即可,因此不会受到长轨迹缺乏的影响,而Warp Stabilizer需要较多长于50帧的轨迹来支撑子空间分解,因此对于缺乏长轨迹的视频,存在较大的分解误差,造成特征点轨迹的平滑存在较大的误差,破坏了平滑特征点轨迹之间几何关系,导致稳像结果具有明显的空间失真,如图 9所示。图 9中,Wrap Stabilizer的稳像结果或者倾斜失真,或者缩放失真,更明显的失真效果见video36和video40。

图 9 缺乏长轨迹时两种算法的稳像结果
Fig. 9 Results of both algorithms when videos lacking long trajectories
((a)original frames; (b)our results; (c) Wrap Stabilizer results)

而对simple和driving类,两种算法都有很好的稳像效果。原因有两个:1) 这两类中的视频都不缺乏长轨迹,因此不会影响子空间分解;2) 两种算法都利用网格变形生成稳定帧,所以都能够很好地处理非平面结构的场景。对于rolling shutter类,该类中71.4 %的视频,本文算法稳像效果优于Warp Stabilizer。由于两种算法都将滚动快门失真当作特征点跟踪噪声,而与子空间分解相比,三焦点张量点转移更能容忍跟踪噪声,因此对该类视频,本文算法稳像结果的失真更小。对于depth类中的video54 56,两种算法稳像效果相似,而对于video57,Warp Stabilizer稳像结果失真严重,主要因为该视频场景的深度变化太大,而不同深度上的特征点轨迹相似度较低,所以子空间实际的秩会远远超过假设的秩,从而带来较大的分解误差,影响轨迹的平滑精度,导致视频的稳像结果失真明显。

特征点轨迹稳像算法属于后期稳像,与2维全局稳像追求实时性不同,该类算法对实时性要求相对较低,主要追求稳像效果。目前特征点轨迹稳像算法的时间开销都是秒级别的,对于640×480像素的视频,本文算法时间开销通常每帧约3 5 s。

综合来看,虽然本文算法时间开销较大,但是对长轨迹的需求小、鲁棒性高且具有较高的轨迹利用率。因此,与目前主流的特征点轨迹稳像算法相比,在处理包含摄像机摇头、运动模糊以及剧烈抖动等问题的视频时,能够取得更好的稳像效果,因而在对时间性能要求不高的场合中,具有较为广阔的应用前景。

3 结论

本文提出一种基于三焦点张量重投影的特征点轨迹稳像算法,利用三焦点张量对特征点进行重投影以平滑特征点轨迹,并结合网格变形生成稳定视频,解决了其他特征点轨迹稳像算法无法兼顾轨迹长度、鲁棒性及轨迹利用率的问题,从而不仅能够处理缺少视差、场景结构非平面等常见的问题,而且在摄像机摇头、运动模糊、剧烈抖动等挑战性情形下也能很好地稳像。虽然如此,该算法在时间性能方面还有较大的不足,同时也没有考虑大运动目标遮挡的问题,因此在以后的工作中,针对时间开销较大的问题,可以引入并行处理机制,提高算法的速度;而针对大运动目标遮挡,在平滑实轨迹之前,可以尝试利用聚类的方法剔除大运动目标上的实特征点轨迹。

参考文献

  • [1] Xing H, Yan J L, Zhang S J.Digital image stabilization using Kalman filtering[J]. Acta Armamentarii, 2007, 28(2): 175–177. [邢慧, 颜景龙, 张树江. 基于Kalman滤波的稳像技术研究[J]. 兵工学报, 2007, 28(2): 175–177. ] [DOI:10.3321/j.issn:1000-1093.2007.02.011]
  • [2] Chen B Y, Lee K Y, Huang W T, et al.Capturing intention-based full-frame video stabilization[J]. Computer Graphics Forum, 2008, 27(7): 1805–1814. [DOI:10.1111/j.1467-8659.2008.01326.x]
  • [3] Wang Z M, Xu X G.Fast electronic image stabilization based on phase correlation in single-quadrant Fourier-Mellin domain[J]. Journal of Image and Graphics, 2009, 14(9): 1790–1795. [王志民, 徐晓刚. 基于单象限Fourier-Mellin域相位相关的快速稳像算法[J]. 中国图象图形学报, 2009, 14(9): 1790–1795. ] [DOI:10.11834/jig.20090912]
  • [4] Grundmann M, Kwatra V, Essa I. Auto-directed video stabilization with robust L1 optimal camera paths[C]//Proceedings of the 2011 IEEE Conference on Computer Vision and Pattern Recognition. Providence, RI: IEEE, 2011: 225-232. [DOI:10.1109/CVPR.2011.5995525]
  • [5] Zhang M, Guo C J, Li X Y, et al.Digital image stabilization based on SIFT and Kalman filtering[J]. Information Technology, 2012(3): 60–64. [张淼, 郭成娇, 李向阳, 等. 基于SIFT和卡尔曼滤波的电子稳像技术研究[J]. 信息技术, 2012(3): 60–64. ] [DOI:10.3969/j.issn.1009-2552.2012.03.019]
  • [6] Wang Z H, Wang J D, Li P, et al.Research on electronic image stabilization based on KLT-RANSAC global motion estimation[J]. Optoelectronic Technology, 2012, 32(1): 46–51, 55. [王智慧, 王敬东, 李鹏, 等. 一种基于KLT-RANSAC全局运动估计的电子稳像算法研究[J]. 光电子技术, 2012, 32(1): 46–51, 55. ] [DOI:10.3969/j.issn.1005-488X.2012.01.011]
  • [7] Liu S C, Yuan L, Tan P, et al.Bundled camera paths for video stabilization[J]. ACM Transactions on Graphics, 2013, 32(4): #78. [DOI:10.1145/2461912.2461995]
  • [8] Liu F, Gleicher M, Jin H L, et al.Content-preserving warps for 3D video stabilization[J]. ACM Transactions on Graphics, 2009, 28(3): #44. [DOI:10.1145/1531326.1531350]
  • [9] Buehler C, Bosse M, McMillan L. Non-metric image-based rendering for video stabilization[C]//Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Kauai, HI, USA: IEEE, 2001, 2: Ⅱ-609-Ⅱ-614. [DOI:10.1109/CVPR.2001.991019]
  • [10] Liu F, Gleicher M, Wang J, et al.Subspace video stabilization[J]. ACM Transactions on Graphics, 2011, 30(1): #4. [DOI:10.1145/1899404.1899408]
  • [11] Koh Y J, Lee C, Kim C S.Video stabilization based on feature trajectory augmentation and selection and robust mesh grid warping[J]. IEEE Transactions on Image Processing, 2015, 24(12): 5260–5273. [DOI:10.1109/TIP.2015.2479918]
  • [12] Goldstein A, Fattal R.Video stabilization using epipolar geometry[J]. ACM Transactions on Graphics, 2012, 31(5): #126. [DOI:10.1145/2231816.2231824]
  • [13] Liu S C, Yuan L, Tan P, et al. SteadyFlow: spatially smooth optical flow for video stabilization[C]//Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, OH: IEEE, 2014: 4209-4216. [DOI:10.1109/CVPR.2014.536]
  • [14] Fusiello A, Trucco E, Tommasini T, et al.Improving feature tracking with robust statistics[J]. Pattern Analysis & Applications, 1999, 2(4): 312–320. [DOI:10.1007/s100440050039]
  • [15] Hartley R, Zisserman A. Multiple View Geometry in Computer Vision[M]. New York: Cambridge University, 2003: 365-394.
  • [16] Sun Y F, Liu G.Rolling shutter distortion removal based on curve interpolation[J]. IEEE Transactions on Consumer Electronics, 2012, 58(3): 1045–1050. [DOI:10.1109/TCE.2012.6311354]