最近本来在研究TV去噪效果的改进,但是由于自己之前对于TV去噪方法学习太浅,所以理解出了很大的问题,这里想总结一下:
首先是TV去噪的原理,我自己觉得比较好理解的这篇文章是:
从欧拉-拉格朗日方程到理论力学和全变分约束降噪
这篇文章首先证明了对于泛函求极值需要满足的条件是:
得到高维函数的欧拉-拉格朗日方程式:
TV去噪通常使用的是L1范数
在解决问题的过程中,我们同时希望去噪后的图像与原图像的差距不会特别大(图像不失真),因此,在求解这个梯度极小值时,加了一个保真项,结果变成:
后一项为泛函的保真项,λ是松弛因子,调节保真项与梯度的占比,泛函的核
泛函取极值的必要条件为满足欧拉方程
欧拉方程可化简为
关于TV的作用我主要是从这篇文章理解的:
全变分图像去噪的研究
在图像边缘处,|▽u|越大,1/|▽u|越小,u越趋近于u0,保留了边缘;在平滑区域,|▽u|越大,因此在图像平滑区域能较好地去噪了。
如何理解TV去噪产生的阶梯效应呢?
TV的L1范数的作用主要是稀疏
这是通过L1范数正则项实现的,与其让每一点的梯度都是常数值,不如出现很多0和一个非0值,这也就出现了阶梯效应,但是也保证了边缘。通过调节λ的值,可以在保护边缘和平滑之间进行调节。λ=0时,会过于平滑,为使值达到最小,就让|▽u|尽可能小,所以迭代到最后,可能会得到边界都被模糊掉了的图片,像这样:
但是当λ越大,边界保留越好。
继续分析TV算法:
通过梯度下降法:
利用有限差分求数值解
其中为学习率或步长,对二维离散信号(图像),差分形式如下