超分损失函数总结
1.Pixel loss 像素级损失
用途
用来度量生成图片和目标图片的像素级差异
主要公式
- L1 LOSS:
\[L_{pixel \_l1}(\hat{I},I)=\frac{1}{hwc}\sum_{i,j,k}|\hat{I}_{i,j,k}-I_{i,j,k}|\]
- L2 LOSS:
\[L_{pixel \_l2}(\hat{I},I)=\frac{1}{hwc}{\sum_{i,j,k}(\hat{I}_{i,j,k}-I_{i,j,k})^2}\]
- Chaebonnier Loss
\[L_{pixel \_Cha}(\hat{I},I)=\frac{1}{hwc}\sum_{i,j,k}\sqrt{(\hat{I}_{i,j,k}-I_{i,j,k})^2+\epsilon^{2}}\]
其中 h,w,c 为高,宽,图像通道数
特点
L2可以对损失较大的进行惩罚,但是在小的损失上效果较差,L1在小的损失上效果较小
缺点
像素损失实际上并没有考虑到图像质量(如感知质量、纹理),经常缺乏高频细节,并且产生的纹理过于平滑,让人不满意
2.Content loss
用途
指输入输出图像之间像素点的差、通俗为比较生成图片和真是图片的特征。
公式
\[L_{content}(\hat{I},I;\phi,l)=\frac{1}{h_{l}w_{l}c_{l}}\sqrt{\sum_{i,j,k}(\phi^{(l)}_{i,j,k}(\hat{I})-\phi^{(l)}_{i,j,k}(I))^{2}}\]
PS
I是网络的第I层,常用的度量特征提取网络有vgg,resnet
3.Texture loss
公式
\[G_{i,j}^{(l)}(I)=vec(\phi_{i}^{(l)}(I))\cdot vec(\phi_{j}^{(l)}(I))\]
由于重建后的图像应该与目标图像有相同的样式(颜色、纹理、对比度),将图像的纹理视为不同特征通道之间的相关性
\[L_{texture}(\hat{I},I;\phi,l)=\frac{1}{c_{l}^{2}}\sqrt{\sum_{i,j}(G_{i,j}^{(l)}-G_{i,j}^{(l)}(I))^{2}}\]
缺点
易使用,但是需要调参来确定patch的大小,比较依赖于经验
4.Adversarial Loss
公式
loss bassed cross entropy
$$$$
5.Cycle Consistency Loss
公式
\[L_{cycle}(I^{'},I)=\frac{1}{hwc}\sqrt{\sum_{i,j,k}(I_{i,j,k}^{'}-I_{i,j,k})^{2}}\]
受基于对抗神经网络GAN启发,将HR图像通过另一个CNN网络缩小成\(I^{'}\),然后跟要处理的小图片做相似性度量
6.Total Variation Loss
\[L_{TV}(\hat{I})=\frac{1}{hwc}\sqrt{(\hat{I}_{i,j+1,k}-\hat{I}_{i,j,k})^{2}+(\hat{I}_{i+1,j,k}-\hat{I}_{i,j,k})^{2}}\]
7.Prior-Based Loss
即引入外部先验知识来约束生成过程;经过预先培训和整合,提供对齐知识(即先验知识)