数字视频稳定处理面临的困难
作者:谢家荣
数字视频稳定处理的方法
1、处理方法的分类与步骤
从宏观的角度来看,数字视频稳定的处理方法分为实时处理和后期处理。实时处理是将传感器捕获到的视频图像中的每一帧经过稳定处理过后立刻呈现到屏幕上,而后期处理则是将拍摄后形成的视频进行稳定处理。这两种方法在时间顺序上不同。
从微观的角度出发,数字视频稳定的步骤主要分为三步。
一、相机运动估计
二、确定不需要的运动
三、渲染稳定图像。
在相机运动估计中又可以分为2D、3D、2.5D(混合坐标法)。在确定不必要运动时有:滤波法、优化法、插值法、隐式处理。渲染稳定视图的方法有:Cropping-based、Filling-based。在实时处理和后期处理中对于这三个步骤的实现顺序有所不同,在实时处理中视频稳定会将捕获时的每一帧和前一帧放到处理方法中,分别进行步骤一、二、三后将每一帧呈现出来。但在后期处理会有所不同,后期处理是将已经拍摄好的整个视频分别进行三个步骤进行稳定处理。视频稳定会在后期处理中获得更好的效果,当然发展实时稳定的方法会对处理实时流媒体有着重要意义。
视频稳定处理面对的困难
1、相机运动估计
相机在没有辅助传感器所采集而来的运动信息后需要从像素强度来推断进行建立相机坐标上的运动。换而言之,在相机图片上每个物体都会有特定的像素点颜色,我们可以根据物体像素点区块的位置移动来推断出相机运动的情况。
但是这也会划分两种情况,分别是在静态图像背景和动态图像背景当中。
当在静态图像背景中,背景的物体是静止不动的,只有相机镜头在移动,我们可以根据物体在投影平面上不同帧时的位置情况来建立相机运动,这也称为显式运动。
在在动态图像背景中,估计相机运动就会更加困难,因为背景物体是运动的,所以需要结合相机和物体的运动,将相机运动从外部分离。在特定的场景下可能会更加困难。在其他情况下也会影响估计相机运动,例如在低纹理的情况中,物体在图像中可视度很低,无法分清相机和物体之间的运动情况会导致建立相机运动失败。当然在物体深度差距很大或是有大型运动物体占据图像面积时也会导致建立相机运动失败
低纹理背景
为了通过像素点的强度来恢复建立相机运动,我们通常会认为物体在图像上的像素点亮度是恒定不变的,这就是说在时间t下像素点强度在相邻的帧中只发生空间上的移动。所以主要的工作就是寻找像素点的不同位置进而建立相机运动。
但是在实际应用中,我们往往会采用像素块的形式来判断运动情况,因为像素点强度相同的像素会有特别多。例如在强度均匀的区块下会影响关联,
图1:不同情况下图片的对应点,圆形区域代表像素区域,箭头代表困难匹配的区域,左:一个对应区域 中:多个对应区域 右:无对应
如图1中,在直角的多个点中,我们只有一个匹配解决方案,在多个点中我们可以根据垂直线的交点来确定匹配的点。但如果我们考虑一个没有纹理的区域,就更难找到一个解。由于无法计算某些像素的运动,因此我们必须从可能的像素进行推断。
建立不同位置的运动向量,我们需要确定相机运动所产生的像素位移。其中一个办法就是通过像素间的位移来解决,但是有时候帧的很大一部分区域并不属于背景部分,这些像素区域被不能用来推断出位移,即使是属于背景部分也很难推断,例如在低纹理的背景之下,两张帧中相似区域特别大,这时候Peak Signal-to-Noise Ratio (PSNR)和Structural Similarity (SSIM)方法将不适用。
图2. 一对连续帧之间的不同匹配,灰度像素表示对应位置的匹配,而彩色像素表示灰度像素的运动。
如图2中,展示了同一组图片中两种可能的匹配结果,一种是根据墙壁颜色来推断,另一种则是通过小人物的位置情况来推断。在左图中图像的背景纹理很低,无法通过背景的运动情况来确定像素的位移情况得到运动向量。右图则是根据小人物的位置来判断相机的运动情况。
深度与位置模糊
有时候因为相机的位置和物体的深度在不同角度看物体会不一样,下图展示了3D和2D点中的关系和运动向量。对于两张图片中,我们假设两个静态的相机在两个不同的位置上,分别是C和C’ 以及它们各自的投影平面。在3D坐标点中X1…Xn都可以映射到二维平面上C中的X1,这就意味着任何在线l2上的2D平面点都可以与X1有关。那么如果在平面C‘ 寻找X1所对应的点就会有无数个解,我们称之为深度模糊
图3. 3D与2D运动向量的关系,左图:静态场景,2D平面上的点因为缺失深度无法确定在三维平面内,因为在投影线上有无数个解。右图:动态场景,在不同的相机位置上观察物体的运动方向不同。
在右图中,当C平面上的物体从X1运动至X‘1时运动向量为d1,但是在平面C’ 上因为相机所处的位置不同,观察的物体运动方向也有差异,C‘ 平面上的物体从X2运动至X’2时运动向量为d2。这种情况称为不同位置的模糊。通常在处理这个问题时对于建立相机运动会将相机的运动从场景物体运动分离出来进行处理。
视差
视差是根据一个物体位置在不同的两个观察点中而产生视觉上的差异。当图像深度不同时,视差可能会有很大差距。如图4所表示,在观察点1的视角观察圆锥在2D的投影平面上是在圆柱的右边,而从观察点2中观察圆锥在2D的投影平面上则是在圆柱右边。
图4 由于视差而造成不同物体观察的位置差异,锥体被投射到背景的不同部分,而圆柱则保持在相同的位置。因此,圆锥位置上的差异会相比圆柱更大。
这也表明直接转换不足以表示和补偿2D相机的运动,因为在现实世界中,即使是两个物体相对静止,这两个物体也可能是运动的。而在2D平面上,物体的运动强度也会因为其深度的变化而变化。深度的变化会影响到物体实际的运动情况。
果冻效应
在CMOS相机中不同像素行曝光的时间不同可能会影响捕获到的帧的质量。当曝光时间极短,而物体运动速度特别快时,传感器所捕获到的图像将呈现扭曲的画面。因为不同行之间的曝光时间不同,所以每一行所采集到的图像时刻也不同,这也会影响在转换时建立相机运动。
2、估计不必要的运动
即使有正确的相机运动,也会有不利的情况,需要特别关注在估计不必要运动时所遇到的困难,以获得一个平滑的相机路径。
趋向运动(Intentional Movement)
平滑处理的主要目的是为了在输入中找到嵌入模式,来获取稳定的视频。平滑的方法必须依赖预定义的规则来定义什么是”平滑“虽然这些假设在基于深度学习的方法中可能不那么明确,但它们可以被纳入到真实的有效值视频或损失函数中。在前者定义光滑中,该方法模拟捕捉视频的设备的行为来定义什么是平滑,可能会很像具有机械稳定器的相机。
当遵循这些规则时,在处理视频时必须考虑趋向运动,在没有用户监督的情况下识别意图是一项具有挑战性的任务。
高频和低频
大多数的工作都一直认为一些由手持相机引起的抖动都应该从视频中去除,其特点是在整个相机路径中出现高频振荡。而低频的反射也许会出现在手持相机平移或是步行中。这种平滑的类型并不是在所为的视频稳定方法中进行的,大多数都依赖低通滤波器。虽然这类的运动类型不符合专业的电影摄影原则,它可能是一个趋向运动造成的结果。这种方法也会频繁的应用在休闲视频进行缩放,去除抖动时必须十分小心。例如:当使用者在船上时,这就可能要去除由海水引起的低频反射
图5 展示红线展示在行走时所产生的低频振动,蓝线代表平滑后的曲线
从图5我们可以看到,平滑的相机路径消除了低频和高频,将低频跳动转化为了静态的相机片段。
平滑与保真的权衡
一般为了获取平滑的相机路径,每一个视频帧都需要通过一个转换矩阵Bi+1(Bi+1= Ji * Hi -1)来转换成新的帧。其中B1是单位矩阵(Identity Matrix)。当转换后的新画面与原本相机的画面相差很远时,这也表明帧通过矩阵转化也更加强烈,这样在画面上会有明显的变化,因此会得到在原本基础画面上没有的信息,以及一些帧的重要部分可能会丢失,所以在稳定相机的强度要与原来画面的相似度(保真度)进行权衡是十分重要的,避免丢失重要的信息。尽管我们只是在转换的情况下所提出的问题,但同样的情况也会发生在光流法中。在图6中分别表示了优先度不同而产生的不同结果。
在权衡中可以通过一个参数来实现,例如高斯滤波器的sigma参数。平滑系统必须自适应参数来实现合适的权衡。
图6. 左图表示在稳定与不稳定视频帧与转化在建立相机运动中的关系。中间和右图则表示在对与不同优先顺序(平滑或保真)下平滑相机得到的路径。
时空一致性
当在稳定二维局部轨迹时,我们必须关心它们在空间上十分连续。单独对它们进行平滑处理会导致某一帧的特征之间存在无效的空间关系,从而导致失真画面扭曲等。因此,新的稳定视图需要根据两个分段轨迹中的空间有效关系和平滑轨迹生成。在混合方法(2.5D)的情况下更关键。由于特征轨迹是稀疏和不连续的,对它们直接平滑处理会导致空间不一致,如图7所示,对其中一条轨迹单独平滑处理会对渲染帧产生负面影响。
图7. 表示两个不连续的轨迹方便进行平滑处理会产生空间上的不一致。左图为平滑前的相机路径,右图为平滑后的相机路径
片段连贯性
在非常长的相机路径之下处理是不可行的,因为处理限制和内存的计算限制。为了解决这种情况一般,使用滑动窗口来对较长的视频进行处理,将视频的路径分成多段小路径在窗口中并分别进行平滑处理。
3、渲染稳定的视图
视图通常是基于图像渲染技术来完成的,这一章小节中的主要是关于在处理丢失和丢失的信息时可能遇到的困难。在前面提到,新渲染的视频会和原来的视频特别相近。如图8所示,一些图像区域的信息缺失,要么是因为它不在原帧的视野范围内,要么是因为它被场景中存在的物体遮挡。这两种情况通常会导致其他区域的闭塞,导致信息丢失。在帧的图片框内丢失的信息只与转换矩阵(Bi)的强度有关,但在未遮蔽的区域中(disocclusion region),除了与转换矩阵强度有关外,还与场景的深度变化有关系。由于旋转是沿着相机轴进行的,没有平移,只有在平面上的信息才会丢失。这是因为三维旋转意味着明显的运动,与深度无关。然而,3D平移依赖于深度,因此会在边界和不遮挡区域造成信息缺失。
图8. 左图表示原始视频的数据信息,右图表示在经过转换后丢失的信息。
区域修复
渲染没有信息的区域的难度主要取决于区域的大小和材质的复杂性。材质的变化是根据场景决定的,而区域的大小是与转换稳定视频的强度(Bi)有关。通过其他帧的信息来修复空白区域会比直接无视更有效,但是难度也很高,因为相间的两帧是在不同时间和位置捕捉的。因此这个不同步的信息必须小心处理才能确定修复的材质。这些问题损害了大多数传统的修复策略,但它们可以使用深度学习技术更好地解决。
单尺寸裁剪
图9. 帧的裁剪,第一组图片代表转换后的图片在三个不同位置上信息的丢失,第二组1图片代表将图片在方形区域内进行裁剪,只保留有效的信息。
因为使用修复的方式可能对于未同步化的图像信息来说不是一个很好的选择。通常还可以通过裁剪的方式,在裁剪方式中帧是没有空白像素(丢失信息)的,但是会造成不必要的后果。这种单一大小的裁剪意味着一个过度转换的帧会破坏整个视频。