防抖算法小结
来源:互联网 发布: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靠谱的情况下,该方法可行。
运行时间为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 进行优化。
有误之处,大家多多指教。
- 防抖算法小结
- Android应用防内存泄露小结
- java防sql注入方法小结
- 算法小结
- 算法小结
- 算法小结
- 算法小结
- 特殊算法防DDOS攻击!
- RFID防碰撞算法(三)
- 数码相机防抖技术
- 相机防抖
- 防抖功能
- 什么是光学防抖
- 防抖功能规划
- 图像视频防抖
- 关于防抖
- 函数防抖
- 节流和防抖
- 《Linux驱动》混杂设备与设备节点
- 实时 Java 社区论坛:Sym
- 线性结构栈----动态实现
- on my zsh 安装
- Hello Gradle
- 防抖算法小结
- Java调用DLL
- hive建外表时默认分隔符错误导致行数增加和数据错误
- 梯度下降法
- [HDU 1874] 畅通工程续 spfa 写法
- 快速打开Android虚拟机的方法
- leetcode---Power of Four
- memset calloc malloc
- JQ一些常用的方法