输出为图像的任务, 比如enhance, deblur, super-resolution, generation等用到的loss, 主要分为以下几类

output和label相近

loss 公式 目的 特点
L1 loss $||I_1-I_2||_1$ 大体相近 最常用的loss
L2 loss
(MSE)
$||I_1-I_2||_2$
或$MSE=\overline{(I_1-I_2)^2}$
  因为导数是线性所以计算最快
SSIM
(stuctural similarity
index measure)
$\frac{2\mu_1\mu_2+C_1}{\mu_1^2+\mu_2^2+C_1}\cdot \frac{2\sigma_{12}+C_2}{\sigma_1^2+\sigma_2^2+C_2}$
$\mu, \sigma$ 分别为mean, variance
$\sigma_{12}$是covariance
$C_1, C_2$ 是常数
纹理相近 要分patch计算
$C_1, C_2$ 的值要根据图像的范围调整
PSNR
(Peak signal-
to-noise ratio)
$-10\log_{10}(MSE(I_1,I_2))$   经常是用来验证
PerceptualLoss 一个分类网络 语义相近 一般用vgg16, 输入RGB图像
一般会用后几层的语义特征对比
LPIPS
(Learned Perceptual
image patch similarity)
    perceptualLoss+分块
DeltaE 转换成Lab空间的MSE 颜色相近  
Gan Loss 在训练过程中学习到的loss
用determinate网络表示
determinate网络
区别不出
 

output图像符合自然图像的性质(image prior)

loss 公式 目的 特点
Total Variant(TV) anisotropic定义:
$||D_x I||_1+||D_y I||_1$
图像gradient稀疏性  
       

output图像分布符合自然图像的分布

loss 公式 目的 特点
IS
(Inception Score)
另一个代码
$KL(p|\bar p)$
$p$ 是当前图像在Inception v3的分类分布
$\bar p$ 是所有生成图像的分类分布的平均
KL散度计算两个分布距离
图像多样性:
每个图像的分类分布
和图像平均分布差距大
生成模型也需要在ImageNet上训练才有意义
FID
(Freachet Inception
Distance)
$d_F=||\mu_1-\mu_2||^2_2+tr(\Sigma_1+\Sigma_2-2\sqrt{\Sigma_1\Sigma_2})$
$\mu_1,\Sigma_1$ 是generated images的分布的mean, variance
$\mu_2,\Sigma_2$ 是real images的分布的mean, variance
$d_F$ 是Freachet Distance, 可以衡量两个多维分布的距离
图像分布接近真实 用到的也是图像通过一个分类网络得到的vector的分布
sFID   图像分布接近真实 和FID一样, 只是特征提取用的是中间层

代码

reconstruction_loss.py

其他讨论这个的链接:

[1] https://www.jiqizhixin.com/articles/2019-01-10-18 inception loss