0


比较两幅图像的相似度的各种相似度量结果对比

对于人眼来说,很容易看出两个给定图像的质量有多相似。例如下图将各种空间噪声添加到图片中,我们很容易将它们与原始图像进行比较,并指出其中的扰动和不规则性。但是在机器学习中我们需要数学表达式来量化这种差异。

在本文中,我们将看到如何使用一行代码实现以下相似性度量,并对比各相似度的评分:

  1. Mean Squared Error (MSE)
  2. Root Mean Squared Error (RMSE)
  3. Peak Signal-to-Noise Ratio (PSNR)
  4. Structural Similarity Index (SSIM)
  5. Universal Quality Image Index (UQI)
  6. Multi-scale Structural Similarity Index (MS-SSIM)
  7. Erreur Relative Globale Adimensionnelle de Synthèse (ERGAS)
  8. Spatial Correlation Coefficient (SCC)
  9. Relative Average Spectral Error (RASE)
  10. Spectral Angle Mapper (SAM)
  11. Visual Information Fidelity (VIF)

sewar库可用于实现所有这些指标(以及其他一些指标)。

开始安装sewar:

  1. pip install sewar

首先我们导入相应的库

  1. from sewar.full_ref import mse, rmse, psnr, uqi, ssim, ergas, scc, rase, sam, msssim, vifp

这些模块很容易使用,可以直接调用,如下所示。

  1. print("MSE: ", mse(blur,org))
  2. print("RMSE: ", rmse(blur, org))
  3. print("PSNR: ", psnr(blur, org))
  4. print("SSIM: ", ssim(blur, org))
  5. print("UQI: ", uqi(blur, org))
  6. print("MSSSIM: ", msssim(blur, org))
  7. print("ERGAS: ", ergas(blur, org))
  8. print("SCC: ", scc(blur, org))
  9. print("RASE: ", rase(blur, org))
  10. print("SAM: ", sam(blur, org))
  11. print("VIF: ", vifp(blur, org))

对于每一种噪声方法,我们可以看到下面的相似结果。“Original”一栏显示的是原始图像与自身比较后的分数,以便看到理想的分数。

每一种噪声方法的值都与上面图像网格直观获得的值相对应。例如,Salt and Pepper和Poisson方法添加的噪声是肉眼不容易看到的,需要我们通过对图像的肉眼近距离观察发现。在相似度评分中,我们可以看到,与其他噪声方法相比,Salt and Pepper和Poisson的值更接近于理想值。类似的观察结果也可以从其他噪声方法和指标中得到。

从结果看来,ERGAS、MSE、SAM和VIFP能够足够敏感地捕捉到添加的噪声并返回放大的分数。

但这种简单的量化有什么用呢?

最常见的应用是重新生成或重建的图像与其原始的、干净的版本进行比较。GAN最近在去噪和清理图像方面做得非常好,这些指标可以用来衡量模型在视觉观察之外实际重建图像的效果。利用这些相似度指标来评估大量生成图像的再生质量,可以减少人工可视化评估模型的工作。

此外,相似度度量也可以判断和强调图像中是否存在的对抗性攻击。因此,这些分数可以用来量化这些攻击带来的干扰量。

作者:Param Raval

标签:

“比较两幅图像的相似度的各种相似度量结果对比”的评论:

还没有评论