Guided Filter
来源:互联网 发布:日系淘宝店铺推荐 编辑:程序博客网 时间:2024/05/01 05:51
引导滤波–笔记
引言
Guided Image Filtering 一文是何凯明(Kaiming He)在10年ECCV发表的一种快速边缘保持滤波器,它不仅解决了当时流行的双边滤波器(Bilateral Filter)在图像边缘处容易发生梯度翻转(gradient reversal)的问题,同时,也因为采取了一种引导图像的计算方式,使得其在抠图(matting)、HDR、细节增强等方面具有良好的性能和表现。这篇文章后再发表于2013年T-PAMI。
1. 代价函数(cost function)
作者在3.1节给出了引导滤波的具体定义,我认为它的核心思想就是其关键假设(The key assumption ): “the guided filter is a local linear model between the guidance I and the filtering output q ”。 简单的解释,引导滤波器是一个局部线性模型,输出图像 q 由引导图象 I 的一个局部线性关系所决定。 作者在(4)式给出了这个局部线性模型的假设。
注意观察这个线性模型,因为
这个模型并非是第一次由作者提出,在这篇文章引用的 A closed-form solution to natural image matting一文中,就提出了这种线性模型假设,并且作者Levin在 matting 一文中给出了这种线性模型的解析解和证明,具体的细节我们将在之后讨论。
回到这个假设,有了线性模型,那么如何求解出
有了(4)式和(5)式,接下来构造cost function。考虑这样一个线性系统,它的输入由引导图像 I 来决定(训练集),输出为
这样,就可以通过一个代价函数来计算参数
简单理解,就是
2. 脊回归(Ridge Regression)
上文中的代价函数和通常所采用的线性回归模型有一点不同,常用的最小二乘法,从矩阵的角度来写:
求导并让其导数为0,可以解得:
但对图像各重叠的局部窗口中进行线性计算时,很难保证数据之间的相关性,这种情况下,输入矩阵X 很难达到满秩,存在线性相关或近似线性相关的行(列),那么输入矩阵就会是奇异矩阵或者近似为奇异矩阵,这将导致估计得到的参数向量
为了解决这种问题,引入线性脊回归模型(Ridge Regression)。对于一个线性模型,在原来损失函数的基础上加入参数
其解的形式由矩阵求导可以得到:
3. Image Matting 及 代价函数求解
通常的脊回归模型与作者所采用的代价函数形式并不完全一样,标准形式中第一项是
可以参照一种更普通的代价函数形式来理解论文中的cost function:
回到论文中的代价方程这里:
如何去求解这个函数,下面用到 A closed-form solution to natural image matting这篇文章,原文引用文献[10],06年发于CVPR,08年再发于PAMI,在Google学术上仅PAMI累计已经有1200+的引用。何凯明论文中线性回归方程的求解用到了这篇文章 Theorem 1。
这篇文章讲到的是一种closed form方法来实现图像前景背景的抠图,原理很简单,数学求解相对复杂,在Richard J. Radke Computer vision for visual effects,2013 一书 的closed-form matting一节里(21-24页)有对这篇论文的详细介绍和公式证明。
仿照这本书里的2.4.2 matting Laplacian 节,将以下公式
改写为矩阵形式(参考 式(2.27),原文我觉得有略微错误,具体可以看pdf标记):
进而得到:
此时,假定
然后将最优解的矩阵形式展开写为代数形式即为:
此处有一个问题,我通过
参考
1.cost function的解释
- http://www.cnblogs.com/hust-ghtao/p/3587461.html 代价函数选择的概率解释
- Digital Image Processing 222页 维纳滤波中对损失函数的解释
- https://www.math.wisc.edu/~jmiller/FRG/Costfunction-handout.pdf 讲义
- https://en.wikipedia.org/wiki/Loss_function 维基上的解释
- http://www.cnblogs.com/fanyabo/p/4060498.html 常见回归类型介绍
2.选择岭回归的原因
- http://blog.csdn.net/zhangchaoyangsun/article/details/8470327 岭回归基本介绍
- http://blog.csdn.net/google19890102/article/details/27228279 一个较为全面的岭回归解释
- http://blog.csdn.net/daunxx/article/details/51556677 线性回归基本介绍,并介绍了机器学习中的一些回归算法,基函数。
- http://blog.csdn.net/daunxx/article/details/51578787 脊回归的系统定义
- 数学分析 高教版 上册444页 拉格朗日乘子法 (\lambda) 乘子法
- http://blog.csdn.net/zouxy09/article/details/24971995/ 三种类型的范数规则化、condition number的概念、\lambda 强凸的概念、梯度下降
- http://blog.csdn.net/zouxy09/article/details/24972869 核范数、低秩矩阵及其应用、规则化参数的选择、五个重要的参考文献地址
- http://fastml.com/large-scale-l1-feature-selection-with-vowpal-wabbit/
- http://www.stat.purdue.edu/~vishy/introml/notes/Optimization.pdf
- http://www.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf
- GradientDescent, Wolfe’s Condition and Logistic Regression
- http://nm.mathforcollege.com/mws/gen/04sle/mws_gen_sle_spe_adequacy.pdf
3.岭回归的求解
Norman R. Draper, Harry Smith Applied Regression Analysis, Third Edition Wiley Series in Probability and Statistics 16章、17章
Trevor Hastie, Robert Tibshirani, Jerome Friedman The elements of statistical learning Data mining, inference, and prediction 3.4节
- Richard J. Radke Computer vision for visual effects.2013 closed-form matting一节,21-24页,书上内容是对下面这篇论文的详细解释。
2008_pami_A closed-form solution to natural image matting Theorem,06年发表于cvpr。
matrix cookbook 矩阵运算参考手册 2.4节
- Guided Filter
- guided image filter
- Introduction to guided filter
- Guided Filter 引导滤波
- Fast guided Filter
- 引导滤波Guided Filter
- 认识guided filter
- 用 OpenCV 实现 Guided Filter
- 导向滤波原理(Guided Filter)
- Single Image Haze Removal Based On Guided Filter
- 导向滤波(Guided Filter)的解析与实现
- guided Filter--引导滤波算法原理及实现
- 【拜小白opencv】33-平滑处理6——引导滤波/导向滤波(Guided Filter)
- OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾
- OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾
- 导向滤波小结:从导向滤波(guided filter)到快速导向滤波(fast guide filter)的原理,应用及opencv实现代码
- 导向滤波小结:从导向滤波(guided filter)到快速导向滤波(fast guide filter)的原理,应用及opencv实现代码
- Guided Image Filtering
- 大文件 and 多下载任务的封装(一)---线程池的封装(ThreadPool,TheadManager)
- C++继承
- 二分查找
- c# 多线程 调用带参数函数
- PMP笔记:启动过程组检查事项
- Guided Filter
- curl使用
- 闲来无需要事写了个自增编号的方法
- 分区修剪(Partition Pruning)
- winsock accept立即返回,GetLastError得到10014错误
- 策略模式——分离算法的设计模式
- 1143: [CTSC2008]祭祀river
- Android实现点击两次返回键退出
- java中equal与==的区别