L0 Smoothing 笔记(一)
来源:互联网 发布:linux创建组和用户 编辑:程序博客网 时间:2024/06/08 16:09
本文是Image Smoothing via L0 Gradient Minimization的学习笔记,大部分来自笔者对原文的翻译。笔者计算数学系小白一枚,初次接触图像处理,这是阅读的第一篇相关论文,如果笔记有所偏差,还望读者批评指正。
所谓图像平滑,就是将图像中无关紧要的细节去除,而只保留显著的边缘部分。L0范数可以理解为向量中非零元素的个数。而L0 Smoothing是通过控制非零图像梯度的数目来增强图像显著边缘部分,以此达到图像的全局优化。
(一)原理
1)一维平滑
用g来表示原始输入的离散信号,用f来表示信号平滑处理后的结果。此方法直接计数幅度的变化,其数学表达式为:
(1)
其中,p和p+1和分别表示相邻采样信号或者像素值,|fp-fp+1|示相邻信号间的梯度,信号之间采用向前差分的形式求解梯度。#{}表示一个统计操作,用来统计满足|fp-fp+1|不等于零的信号p的数目,即图像梯度的L0范数。c(f)不依赖于梯度本身,因此如果只改变其边缘对比度,它的值不会受到影响。这个离散计数函数是此法的核心。
但是仅仅有这一项是毫无意义的。在我该方法中,它与一般的约束项结合,即,结果f应该在结构上类似于输入信号g。具体的目标函数是:
(2)
c(f)=k表示结果中存在k个非零梯度。k越大,近似越精细。实际上,k的取值可能从几十到几千不等,尤其是在具有不同分辨率的二维图像中。为了控制k的取值,采用一般方程的形式在平滑项和保真项之间寻求一种平衡,并将其写为:
(3)
其中,lambda是控制着平滑项的权重参数,其数值越大,信号平滑的就越严重。通过下图可以看出该法的优点:
2)二维规划
在二维图像表示中,用I表示输入图像,用S表示计算结果。Sp的梯度是用来计算对于每一个像素点p,在x(水平)和y(垂直)方向上,它们与相邻像素间的颜色差异。此法的梯度测量(图像梯度的L0范数的测量)可表示为:
(4)
根据这个定义,S可以通过求解下式来估计:
(5)
(二)求解
引入辅助变量hp和vp,分别与S在x和y方向上的梯度相对应(即是两梯度的近似),将目标函数改写为:
(6)
其中,C(h,v)表示使得|hp|+|vp|不等于零的p的数目。beta是自适应参数,它控制着(h,v)和它们相应的梯度之间的相似度。当足够大时,方程(6)与方程(5)相近。方程(6)可以通过交替最小化求解(h,v)和S来解决。在每一次迭代过程中,每组变量的值都是由上一次迭代中得到的值来确定的。
子问题1:求解S
估计S的子问题对应于省略公式(6)中不涉及S的项后的公式(公式(7))的最小化:
(7)
该函数是二次函数,故可以通过梯度下降法获得全局最小值。此外,利用快速傅里叶变换(FFT)对微分算子进行处理,以加快计算速度。则获得的解为:
(8)
其中,F是FFT算子,F()*表示共轭复数。F(1)是δ函数的傅里叶变换。加号、乘法和除法都是分量运算符。相比与在图像空间中直接求解含有大型矩阵逆运算的方程(7),运用傅里叶变换,通过简单的分量除法进行计算更加快捷。
子问题2:求解(h,v)
关于(h,v)的目标函数是:
(9)
式(9)可以分解为:
(10)
其中,H(|hp|+|vp|)是一个二元函数,当|hp|+|vp|=0时其函数值为1,否则其函数值为0。在公式(10)中每一个像素p对应的项为:
(11)
在下列条件下达到最小值Ep*:
(12)
证明如下:
根据上述推导过程,在这一步中,我们计算每个像素p的最小能量Ep*,将所得数值加起来,可得到式(10)的全局最优解。
交替最小化算法展示如下:
在阅读论文的过程中,看到一些不错的笔记,链接与大家共享:
(1)原文及matlab代码链接:
http://www.cse.cuhk.edu.hk/leojia/projects/L0smoothing/index.html
(2)http://blog.csdn.net/dayenglish/article/details/42834723
(3)http://blog.csdn.net/k81805757/article/details/47011401
(4)http://blog.csdn.net/bluecol/article/details/48750561
- L0 Smoothing 笔记(一)
- L0 Smoothing 笔记(二)
- Image Smoothing Via L0 Gradient Minimization
- Image Smoothing via L0 Gradient Minimization
- 读“机器学习中的范数规则化之(一)L0、L1与L2范数”笔记
- L0、L1、L2范数与核范数(一)
- 论文笔记:Adaptive Run Length Smoothing
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 机器学习中的范数规则化之(一)L0、L1与L2范数
- 一致性hash算法
- java提高篇(三十)-----Iterator
- UGUI中UI控件简介
- (三) Image 类对bmp 格式图片处理 产生的问题
- JS someNode.chidren和someNode.childNodes的区别
- L0 Smoothing 笔记(一)
- 天然工坊盈利系统平台开发
- weed-fs使用简介
- Java提高篇(三一)-----Stack
- Tensorflow02-入门示例
- Thinkphp5增删改查
- 分分钟带你杀入Kaggle Top 1%
- Java提高篇(三二)-----List总结
- jmeter其他特性---HTTP Mirror Server