龙空技术网

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

deephub 448

前言:

此刻姐妹们对“图像相似性度量方法”都比较看重,朋友们都想要知道一些“图像相似性度量方法”的相关内容。那么小编在网摘上网罗了一些关于“图像相似性度量方法””的相关资讯,希望我们能喜欢,大家一起来了解一下吧!

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

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

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

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

开始安装sewar:

pip install sewar

首先我们导入相应的库

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

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

print("MSE: ", mse(blur,org))print("RMSE: ", rmse(blur, org))print("PSNR: ", psnr(blur, org))print("SSIM: ", ssim(blur, org))print("UQI: ", uqi(blur, org))print("MSSSIM: ", msssim(blur, org))print("ERGAS: ", ergas(blur, org))print("SCC: ", scc(blur, org))print("RASE: ", rase(blur, org))print("SAM: ", sam(blur, org))print("VIF: ", vifp(blur, org))

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

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

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

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

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

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

作者:Param Raval

标签: #图像相似性度量方法