SSIM(MSSSIM)loss和相似功能的loss总结

1、tensorflow版本

https://www.e-learn.cn/index.php/content/wangluowenzhang/249870

2、pytorch版本(SSIM、MSSSIM)

https://github.com/jorge-pessoa/pytorch-msssim/tree/master

3、contextual loss(作用同SSIM)

https://www.cnblogs.com/jingyingH/p/9831027.html

https://github.com/roimehrez/contextualLoss

4、和SSIM loss思想相近的还有perceptual loss;

5、利用SSIM loss的论文

https://www.jianshu.com/p/a4db43de4fb2

https://www.jianshu.com/p/0fc4c696e409-----ACGAN

6、对比损失

https://blog.csdn.net/Hero_Never_GIVE_UP/article/details/82855493

7、SSIM loss和mse loss的总用区别

上图左侧为原图,中间为把灰度值调整为原来 0.9 的图,右侧为高斯模糊后的图。我们人眼明显感觉到中间的图比右边的图清晰,然而 MSE 距离显示,右侧的图与原图的距离远小于中间的图与原图的距离,即右侧的图质量比中间的高。

作者结合神经科学的研究,认为我们人类衡量两幅图的距离时,更偏重于两图的结构相似性,而不是逐像素计算两图的差异。因此作者提出了基于 structural similarity 的度量,声称其比 MSE 更能反映人类视觉系统对两幅图相似性的判断。

https://blog.csdn.net/jacke121/article/details/90749274

8、这些loss主要都是一些语义一致性的损失,其中cycada中语义一致性损失用在原图和迁移后的图经过分类器的loss,而perceptual loss是原图和迁移后的图经过VGG的相关层的loss,底层注重纹理,高层注重结构,亦可以用在计算原图和重建后的图的VGG loss上;

https://github.com/jhoffman/cycada_release

https://github.com/a514514772/DISE-Domain-Invariant-Structure-Extraction

9、SSIM loss解读

https://blog.csdn.net/hyk_1996/article/details/87867285

 

 

  • 3
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面举一个使用 SSIM 作为损失函数的例子: 假设我们要训练一个图像去噪的模型,输入为一张有噪点的图像,输出为一张去除噪点后的图像。我们可以将 SSIM 作为模型的损失函数,以最小化生成图像与目标图像之间的结构相似性差异。 具体实现步骤如下: 1. 定义模型的结构,包括输入层、输出层和中间层。其中,中间层可以是卷积层、池化层、全连接层等。 2. 定义 SSIM 损失函数。假设我们使用 TensorFlow 框架,可以通过以下代码定义 SSIM 损失函数: ```python import tensorflow as tf def ssim_loss(y_true, y_pred): return 1 - tf.reduce_mean(tf.image.ssim(y_true, y_pred, max_val=1.0)) ``` 其中,`y_true` 为目标图像,`y_pred` 为生成图像,`max_val` 为像素值的最大值。 3. 组合 SSIM 损失函数和其他损失函数。假设我们还使用了 MSE 损失函数,可以通过以下代码组合两个损失函数: ```python mse_loss = tf.keras.losses.MeanSquaredError() total_loss = ssim_weight * ssim_loss + mse_weight * mse_loss ``` 其中,`ssim_weight` 和 `mse_weight` 分别为 SSIM 损失函数和 MSE 损失函数的权重。 4. 训练模型。通过反向传播算法计算梯度并更新模型参数,以最小化总损失函数。 ```python model.compile(optimizer='adam', loss=total_loss) model.fit(x_train, y_train, epochs=10, batch_size=32) ``` 其中,`x_train` 为有噪点的输入图像,`y_train` 为对应的目标图像。 以上就是一个使用 SSIM 作为损失函数的例子。需要注意的是,实际应用中需要根据具体任务和数据集调整损失函数的参数和权重,以达到最佳效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值