使用陀螺仪的数字视频稳定和卷帘快门校正
Abstract
在本文中,我们提出了一种基于商用陀螺仪的强大实时视频稳定和滚动快门校正技术。首先来对相机运动和卷帘快门扭曲进行建模,然后从单个视频捕获自动校准陀螺仪和相机输出。 这种校准使我们能够仅使用陀螺仪数据来有效校正卷帘快门扭曲并稳定视频。
Video Stabilization and Rolling Shutter Correction
我们系统中的相机运动仅根据旋转进行建模。 我们忽略平移运动,加速度计数据必须被积分两次才能获得位移,因此它们很难使用 IMU 准确测量。即使我们可以准确地测量平移,这也是不够的,因为在相机相同平移量的情况下不同深度的物体移动的量不同,我们将不得不依赖立体或基于特征的运动结构(SfM)算法来获取深度信息。这些方法并不健壮,而且目前在移动平台上实时运行计算成本太高。
Forsse ́n 和 Ringaby[2010]
试图在他们的系统中模拟相机位移,但发现结果比只考虑旋转的模型表现更差。
他们假设优化器在尝试从特征跟踪器重建位移时陷入局部最小值。他们的算法还假设相机正在对纯平面场景(即恒定深度)进行成像。
因此,由于视频中的未建模视差,平移重建有时会失败。
为了避免这些问题,我们没有将平移合并到我们的模型中。 幸运的是,相机抖动和卷帘快门扭曲主要来自旋转。之所以如此,是因为平移随着深度的增加而迅速衰减,并且物体通常离镜头足够远,平移相机抖动不会在图像中产生明显的运动。 这一结论得到了我们的稳定结果的支持。
Camera Model
我们的旋转卷帘快门相机模型基于针孔相机模型。在针孔相机中,图像之间的关系在齐次坐标中的点 x 和对应点在 3D 世界坐标系中的 X(图 2)可以通过以下方式表示:
其中
其中,
Camera Motion
我们将世界原点设置在相机原点。然后可以用 R(t) 来描述相机在时间 t 时刻的运动。因此,对于任何世界坐标点点 X,对应的图像点 x 在时间 t 由下式给出:
旋转矩阵
这里
Rolling Shutter Compensation
我们现在将卷帘快门的概念引入我们的相机模型中。在 RS 相机中,每个图像行的曝光时间略有不同,因此曝光期间相机的旋转将导致图像的扭曲。例如,如果相机在快门滚动时左右摇摆,则输出图像将扭曲,如图 2 所示。更正式地说,我们可以说 x 在时间 t(i, y) 期间成像:
其中 y 是点 x 对应的图像行,h 是帧中的总行数,
Image Warping
现在我们推导出一帧图像两个坐标点之间的旋转关系。对于场景点 X,在 i
帧和 j 帧的图像平面中的投影点
联立两式整理得到:
想在我们已经考虑了同一个视频中的两帧之间的关系,我们加入限制条件两帧图像的原点相同,将
我们可以得到如下:
还要注意,W 分别取决于图像点
实际上,我们不会为每个图像行
Camera and Gyroscope Calibration
我们现在展示用于找到未知的相机和陀螺仪参数。
这个校准步骤是必要的,它使我们能够直接从陀螺仪数据中计算 W。
我们模型中的未知参数是:相机的焦距 f、滚动快门的持续时间
请注意,制造商可能会给定其中一些参数,例如相机的焦距,也可以通过实验测量这些参数。
例如,Forssen 和 Ringaby [2010]
使用快速闪烁的显示器来测量滚动快门持续时间
我们的方法是从单个视频和陀螺仪捕获中估计这些参数。用户被要求记录视频和陀螺仪轨迹,在那里他们站着不动并在指向建筑物时晃动相机。持续时间约为
10 秒的短片通常以估计所有未知数。
请注意,这只需为每个摄像头和陀螺仪设置完成一次。
在我们的方法中,我们使用 SIFT [Lowe 2004]
在连续视频帧中找到匹配点,并且我们使用 RANSAC [Fischler and Bolles 1981]
来丢弃异常值。 结果是捕获视频中所有相邻帧的一组点对应关系
请注意,这是一个非线性优化问题。许多非线性优化器可用于最小化我们的目标函数。 然而,我们发现通过直接目标函数评估的坐标下降可以快速收敛。每次我们在目标函数 J 不减小的情况下迈出一步,我们就反转步长方向并减小相应参数的步长。一旦所有参数的步长降到所需阈值以下(即,当我们达到目标精度时),算法就会终止。对于时长约 10 秒的校准视频,我们的 Matlab/C++ 实现通常会在 2 秒内收敛。
我们通过将焦距设置为相机具有 45° 的视野来初始化优化算法,并将所有其他参数设置为 0。我们发现在这些初始条件下,优化器收敛到我们数据集的正确解。 更一般地,我们可以通过重新启动我们的坐标下降算法以获取一系列合理参数并选择最佳解决方案来避免陷入局部最小值(例如,当陀螺仪和帧时间戳之间的延迟很大时)。正确恢复参数的平均重新投影误差通常约为 1 个像素。
我们模型中的另一个未知数是陀螺仪与相机的相对方向。 例如,绕陀螺仪 y 轴的旋转可以对应于绕相机 x 轴的旋转。为了发现陀螺仪的方向,我们排列了它的 3 个旋转轴并为每个排列运行我们的优化器,最小化目标的排列最好对应于相机的轴顺序。我们发现不正确排列的重投影误差要大得多。 因此,这种方法在实践中效果很好。
在我们的讨论中,我们假设相机具有垂直滚动快门。RS
模型可以很容易地修改为适用于图像列而不是行。
找到两种情况下的最小重投影误差将告诉我们相机是否具有水平或垂直滚动快门。
最后,为了更好地了解校准所获得的结果,我们展示了校准前后视频和陀螺仪信号的可视化效果。 如果我们假设连续帧之间的旋转很小,那么图像中的平移可以通过旋转近似计算如下:
在这里,我们还假设滚动快门没有影响(即
参考文献
< Digital Video Stabilization and Rolling Shutter Correction using Gyroscopes >
预览: