图像视频防抖

视频防抖

该项技术关键字挺多的,但作用都是去除视频拍摄过程中轻微抖动造成的图像模糊。

Anti-Shake,Shake-proof, imagestabilization都是这个意思,image stabilization是由canon最先开始这么称呼的,Anti-shake更通用一点。

该项技术分为两大类,镜头防抖和电子防抖。做镜头技术牛的公司喜欢搞这个,像canon.

更经济通用的方法则是电子防抖,利用数字图像处理技术去除帧间抖动。

防抖主要分为两大步骤:

(1)    运动估计,找出最优运动向量

(2)    运动补偿,根据运动向量补偿当前帧,去除抖动。

在计算的过程中又可以和其他方法结合起来,比如帧间去噪,公用buffer.

模型如下:


防抖算法的核心显然就变成了运动估计,即求(x’,y’)。收罗下常用的方法有:

(a) 灰度投影法

(b) 块匹配法

(c) 位平面匹配法

(d) 边缘匹配法

(e) 特征点匹配法

针对这些方法,稍后介绍下。

(a)灰度投影法是一种基于整幅图像的方法,前后帧之间最终找到一个运动适量,这是最简单的方法,如果图像中有小物体的位移,这种方法的效果将非常糟糕。

大致流程为,计算前后帧对应的灰度投影图,其实就是一维向量,针对横向和纵向的向量,分别计算xy两个方向上的全局运动向量。在一个给定的移动范围内,使两帧对应的灰度投影图的差异最小即可。

由于太简单,用处不大,就不贴code了。

利用该方法也可以做一些优化,比如利用局部方法,将图像分成一些小区域,然后再进行防抖处理,就像局部二值化一样。我的目标是:像264压缩一样,找到局部最优的精度高的运动向量。

(b)块匹配法

块匹配算法的思想是,将一帧图像分割为 或者是更为常用的 像素大小的许多互不重叠的子块(例如32*32),并假定子块内所有像素的运动向量都相同。然后,在设定的搜索范围内,当前块与前一帧中对应的块相比较,基于某种匹配准则,找出最佳匹配,得到当前块的替代位置或相应的运动向量。

继续总结后面的方法。

你可能感兴趣的:(图像处理,anti-shake,shakeproof,stabilization)