防抖算法小结

来源:互联网 发布:dat文件导入数据库 编辑:程序博客网 时间:2024/05/04 17:37

最近研究了一下防抖算法,总结如下,欢迎大家交流。防抖算法我总结一下三个方向:

  • deconv method
  • base gyro method
  • feature method

下面说一下我对上述各种方法的理解。
- deconv method

该方法的模型数学表示如下:

Blurred image=Sharp image* kernel+Noise 公式1
这里写图片描述

这样问题就来了,当我们有且仅有一个模糊图像的时候,这个模型的数学表达就是一个ill-problem.在这种情况下,许多牛人提出了各种方法,但是都会有一个问题,离开不了预设初始化、迭代、傅立叶变换等条件。我在matlab跑了下代码,嗯,60分钟左右,一张几兆分辨率的图像。这里有兴趣的同学推荐阅读paper:
Deblurring Text Images via L 0 -Regularized Intensity and Gradient Prior
Deblurring Shaken and Partially Saturated Images
Fast Motion Deblurring
Learning Good Regions to Deblur Images

我总结如下:算法复杂度过高。

  • base gyro method.

这种方法是基于移动设备的陀螺仪来确定公式1的kernel,接下来是用deconv啊还是使用winner滤波等方法进行防抖处理。上图。
这里写图片描述

推荐paper如下:
Gyro-Based Multi-Image Deconvolution for Removing Handshake Blur

**Image deblurring in smartphone devices using
built-in inertial measurement sensors**

只进行了一下winner滤波在指定psf下的仿真,由此可证明在保证陀螺仪判断kernel靠谱的情况下,该方法可行。

加入指定的Blur
winner 滤波在正确的psf下的image restore

运行时间为1M分辨率的情况下 800ms。该方法可拓展为把图像分为大小相同的block,并进行分别的PSF和image restroe,这样理论上可以提高速度。因为winner滤波的本质就是7次傅立叶变换,可以使用fftw和neon进行加速。

  • feature method
    该方法是我由video stabilization algorithm总结而来,基本上特征点-匹配-warpping的方法进行视频稳像。

    推荐paper:
    Bundled Camera Paths for Video Stabilization

该论文的核心思想如下图所示:

这里写图片描述

该paper提出的思想如下,分成各个block确定各个block的端点,进行feature point检测,再进行匹配,根据上述信息进行warpping,得到最终稳定图像。

本想上传仿真图像,但超过2M,懒得上传了。
说下结论吧,可以稳像,但deblur效果一般。如果两帧的图像都有局域较大的blur,基本没啥效果。如果使用Surf工程化的时候也会有问题,因为surf向量是64维的,memory占用会较大。13M图像花了13s,呃,surf大约耗时5s,warpping 8s。

可以考虑基于多种feature point 进行优化。

有误之处,大家多多指教。

2 0