子空间视频稳像原文理解

来源:互联网 发布:程序员手机输入法 编辑:程序博客网 时间:2024/04/30 10:42

1 业余水平的视频总是包含以下几个问题:

a)缺少视差:背景没有足够的特征点。

b)相机的缩放:变焦和相机的前向运动。

c)相机自带的稳像:改变了相机的参数。

d) 卷帘快门:不在同一时刻曝光,导致图像模糊。

2 子空间视频稳像算法

         首先,使用标准KLT方法提取出一组特征点轨迹。在提取出特征点轨迹之后,视频稳像可以分解为两个问题:a) 这些点应该定位在输出视频的哪些位置;b) 如何呈现出一个处理好的视频。对于第一个问题,定义一个特征点轨迹矩阵M:

每一列对应的是一帧中的特征点的x、y坐标,下标为第i帧,上标为第i个特征点,一共F帧图像,每帧图像取N个特征点。

图1 轨迹矩阵

 如图1所示,红框表示当前的窗口,每个特征点都会从左向右移动,有的特征点会从某一帧出现或者消失,所以轨迹矩阵不是一个完整的矩阵,一直在变化。

 稳像的任务就是得到一个新的轨迹矩阵,从而可以得到一个稳像之后的视频。

2.1 简单的轨迹滤波

         首先假设原始的运动是典型运动(比如直线运动,曲线运动),同时假设场景是静态的。使用一个大的高斯低通滤波器进行滤波,标准差 , 代表滤波器的半径,单位为“帧”。作者的实验表明,对于一个30FPS的视频,滤波半径 的取值如下所示:

 

默认半径为 50。

         假设直接对轨迹矩阵进行滤波,即 ,也就是对每条轨迹分别进行卷积操作,但是这样做没有对各个特征点之间做明确的约束。当滤波窗口滑动的时候,轨迹矩阵会变化,所以每个特征点轨迹会得到不同的处理,原来各点之间的关系会被破坏,所以这种方法处理的效果非常差。


图2 对每条轨迹单独滤波

图3 对矩阵分解之后再滤波

         由于每条轨迹对应与同一滤波核有不同的支撑区域,所以在移动到区域边界处,边界两边的滤波结果差距非常大,所以产生了图2的这种效果。

2.2 子空间约束

2.3 保持子空间约束的滤波

         相机的运动可以用低阶的特征点轨迹表示,作者发现阶数r=9时,刚好不会过拟合或者欠拟合。前k帧的轨迹矩阵可以按以下形式分解为两个低阶矩阵相乘:

        

W is a binarymask matrix.

E is eigen-trajectories,theyrepresent the basis vectors that can be linearly combined to form a 2D motion trajectoryover this window ofkframes。

C is coefficientmatrix,represent each observed feature as such a linear combination.

直接对E进行滤波:

 

2.4 动态因式分解

对一个固定的k帧的窗口进行处理,每次向前移动δ帧。(k取50,δ取5)

在前k帧中可以取出m条完整的特征点轨迹,用来描述子空间。然后用这k帧的特征点轨迹形成一个轨迹矩阵 ,也即公式2所定义的完整的子空间矩阵 。为了使子空间有意义,m必须大于等于r/2,且很少的时候m<2r(r为子空间的阶数,作者发现r取9的时候刚好不会过拟合或者欠拟合)。为了确定参数,应先确定m值,再减少k的值直到前k帧中可以提取到足够数量的特征点轨迹。

         对 矩阵进行因式分解(原文:The factorization is calculated by truncating the output of SVD(Golub and Van Loan 1996) to the rows, columns, and values corresponding to thelargest r singular values, and then distributing the square root of eachsingular value to the left and right matrices.):



假设存在一个轨迹矩阵 ,像前移动δ帧之后的轨迹矩阵为M1 。

在得到 之后,为了得到 ,只需得到 即可,但是必须与前面得到的 和 形式保持一致,为了满足这个条件,增加一个约束:


近似为线性形式

由于窗口每次向前移动很小的帧数δ,所以 的尺寸远小于 ,因此可以将

当作 在 上的投影。(??

        

剩下的步骤是处理移动窗口时,丢失了轨迹数据以至于 中的轨迹数据太少。

2.5 动态场景内容

对于动态场景,原来使用的低阶约束已经不再适用,在分解矩阵之前需要移除尽可能多的异常轨迹(少量的异常轨迹在矩阵分解的过程中可以被当作噪声去除)。

移除异常轨迹有三个策略:

a) we have foundthat trajectories on moving objects are typically much shorter than those onrigid objects. Therefore, trajectories shorter than 20 frames are removedentirely. Also, trajectories shorter thankframes do not influence theeigen-trajectories, since factorization is only computed on trajectories thatare complete over the window.

b) we rule outmotion outliers using the fundamental matrix constraint [Hartley and Zisserman2000]. We estimate a fundamental matrix between every 5 frames within a RANSACloop [Fischler and Bolles 1981], and remove a trajectory when it deviates from theepipolar constraint by more than 1 pixel for more than 1/3 of the duration ouralgorithm has processed.

c) afterfactorization is computed we remove trajectories with large factorizationerror, which we classify as any trajectory whose per-frame error ever exceeds 3pixels.

2.6 平滑运动

         支持三种平滑操作:低通滤波、多项式拟合路径、交互式样条拟合。

         a)低通滤波:只对eigen-trajectories进行滤波。

         b)多项式拟合路径:很多视频效果都是通过移动相机沿着非常简单的路径(例如线或抛物线)产生的。我们的方法支持三种多项式运动模型:常数、线性、抛物线。将eigen-trajectories表示为一个多项式模型: , 表示t帧对应的新轨迹,d表示多项式的次数, 表示多项式的系数。特征轨迹表示为:

         .

最小化新位置和原位置的偏移:

        

这种算法需要遍历整个视频,不适合流处理,适合短视频。

         c)Interactive Spline Fitting. Polynomial path fitting is often not appropriatefor long videos, since their motion cannot be well modeled with a singlepolynomial. In these cases, we provide an interface that allows the user toselect several keyframes. We then fit a standard spline to theeigen-trajectories with knots at the keyframes. The user can choose betweenquadratic and cubic splines. Since the feature trajectories are linearcombinations of the eigen-trajectories, a quadratic (or cubic) spline for theeigen-trajectories leads to a quadratic (or cubic) spline for each output featuretrajectory. This motion planning approach also cannot be computed in astreaming fashion.

         3结果

         作者测试视频:109个视频,长度从5秒到180秒,其中48个视频使用没有卷帘快门的3-CCD相机采集,61个使用有卷帘快门的CMOSHD相机采集。(注:卷帘快门可以达到更高的帧速,但当曝光不当或者物体移动较快时,会出现部分曝光、斜坡图形、晃动等现象

         第一个实验:使用Liuet al. 用来展示3D视频稳像的32个视频来测试本文中的算法。这些视频是为SFM(structure-from-motion)方法精心挑选出来的:这些视频由一个连续行走的人拍摄,产生足够的视差,并且相机没有变焦或者内置的稳像,这样可以保证相机的参数不变。用本文的方法测试之后, 25个视频有相似的效果,7个视频有较好的效果(视频效果由作者两个学生评价)。

         第二个实验:测试15个视频SFM方法难以实现的。这些相机运动的特性:a) 包含步行和站立时的平移的序列;b) 具有明显的卷帘快门的序列;c) 相机内置稳像的序列;d) 变焦距的序列。测试了61个卷帘快门相机的视频,有46个视频效果很好,12个视频效果一般,3个视频效果不好。Rolling shutter is particularly challenging for 2D stabilization,since full-frame warps cannot remove the local wobbling it introduces.

         Thereare several possible reasons where there might be an insufficient number oflong trajectories: dramatic camera motions that push trajectories out of thefield of view, strong motion blur, geometry with little texture, or largemoving objects that pass through and occlude the tracked geometry. One solutionto this problem would be to reduce the window size.

         几个失败的例子如下图所示:

图4 失败案例1

另外一个失败的原因:有足够的特征轨迹,但是很大一部分特征点都是在移动的目标上面。

图5 失败案例2

5.2 性能

         作者电脑配置:Intel双核3.16GHz,3GB内存,没有使用GPU加速。

         输出:4FPS

 

 

 

1 0