0%

常见的loss函数-TV_Loss

TV Loss

在图像复原过程中,图像上的一点点噪声可能就会对复原的结果产生非常大的影响,因为很过复原算法都会放大噪声。这时候我们就需要在最优化问题的模型中添加一些正则项来保持图像的光滑性,TV Loss是常用的一种正则项(注意是正则项,配合其他loss、

一起使用,约束噪声)。图片中相邻像素值的差异可以通过降低TV Loss来一定程度上解决。比如降噪,对抗checkboard等等。

1.初始定义

Rudin等人观察到,受噪声污染的图像的总变分比无噪图像的总变分明显的大。那么最小化TV理论上就可以最小化噪声。图片中相邻像素值的差异可以通过降低TV loss来一定程度上解决。

总编分定义为梯度幅值的积分:

JT0(u)=Ωuudxdy=Duux2+uy2dxdyJ_{T_{0}}(u)=\int_{\Omega_{u}}\left|\nabla_{u}\right| d x d y=\int_{D_{u}} \sqrt{u_{x}^{2}+u_{y}^{2}} d x d y

其中ux=uxu_{x}=\frac{\partial u}{\partial x}uy=uyu_{y}=\frac{\partial u}{\partial y}DuD_{u}是图像的支持域。限制总变分就会限制噪声

2.扩展定义

带阶数的TV loss定义如下:

Vβ(f)=Ω(fu(u,v)2+fv(u,v)2)β2\Re_{V^{\beta}}(f)=\int_{\Omega}\left(\frac{\partial f}{\partial u}(u, v)^{2}+\frac{\partial f}{\partial v}(u, v)^{2}\right)^{\frac{\beta}{2}}

但是在图像中,连续域的积分就变成了像素离散域中求和,所以可以这么算:
Vβ(x)=i,j((xi,j1xi,j)2+(xi+1,jxi,j)2)β2\Re_{V^{\beta}}(x)=\sum_{i, j}\left(\left(x_{i, j-1}-x_{i, j}\right)^{2}+\left(x_{i+1, j}-x_{i, j}\right)^{2}\right)^{\frac{\beta}{2}}

即:求每一个像素和横向下一个像素的差的平方,加上纵向下一个像素的差的平方。然后开β/2次根

3.效果

总变差(TV)损失促进了生成的图像中的空间平滑性,根据论文的描述,当β < 1时,会出现下图左侧的小点点的artifact, 当β > 1时,图像中的小点点会被消除,但是代价就是图像的清晰度

在这里插入图片描述