【CV知识】PSNR&SSIM指标

学习了图像处理问题中常见的评价指标:PSNR和SSIM,并自己整理了一遍加深印象

写在前面:这都是从网络博客重新整理的,链接均位于文末,如有不妥请联系协商~

PSNR

PSNR全称Peak Signal to Noise Ratio,即峰值信噪比,从计算公式看相当于MSE的对数形式,多了像素峰值特征。所以也是一种通用的衡量图像失真、衡量噪声水平的指标。应该是个标量,其单位是dB,一般30dB以上比较好,以下稍微差点吧,现在做到$32^+$的还挺多的

计算公式为:

以普通的单通道图像为例,其中$X,Y$一般是输出的去噪图和gt干净图;不妨设图像的维度都是$m\times n$,则$\displaystyle MSE(X,Y)=\dfrac{1}{mn}\sum_{i=1}^m\sum_{j=1}^n\left(X_{ij}-Y_{ij}\right)^2$;$max=2^b-1$,指的是像素值的极值,与每张图像本身无关,$b$是每个像素的bit数,一般就是8,所以$max=255$

SSIM

SSIM全称Structural Similarity,即结构相似性,从计算公式看,这个指标考虑了图像之间(1)亮度(2)对比度(3)结构之间的差异。它是个标量,参考了几篇文章,SSIM没有单位,取值区间是$[0,1]$,越接近1表示两张图像越相近

计算公式为:

其中小写字母都是数值标量,$\displaystyle \mu_X=\dfrac{1}{mn}\sum_{i=1}^m\sum_{j=1}^nX_{ij}$就是图像像素值的均值,$\displaystyle \sigma_X=\left(\dfrac{1}{mn-1}\sum_{i=1}^m\sum_{j=1}^n\left(X_{ij}-\mu_X\right)^2\right)^{\frac{1}{2}}$是方差的无偏估计,$\sigma_{XY}=\dfrac{1}{mn-1}\sum_{i=1}^m\sum_{j=1}^n\left(X_{ij}-\mu_X\right)\left(Y_{ij}-\mu_Y\right)$是两张图像协方差的无偏估计,注意仍然是数量标量。另外,$c_1,c_2,c_3$都是避免除0的常数,取$c_1=(k_1max)^2,\ k_1=0.01$,$c_2=(k_2max)^2,\ k_2=0.03$,$k_1,k_2,k_3,\alpha,\beta,\gamma$感觉是像控制$L,C,S$权重的。取$\displaystyle c_3=\frac{c_2}{2},\alpha=\beta=\gamma=1$,就是常见的SSIM计算式:

其它指标

一个是MSSIM,平均结构相似性,就是给图像分块,每一块分别计算SSIM再平均。据参考链接$[3]$,不用遍历像素点而是分块的方式,可能有更高的效率;而为什么用高斯函数计算均值、方差和协方差,不知道,这个没有再去学了

还有就是各种指标拓展到彩图(多通道图)、高光谱图等,大概都是各个通道,谱段分别求再平均,有没有加权的操作则不清楚了

参考链接

都是从网络博客直接学的:

[1] 图像质量评价指标之 PSNR 和 SSIM,知乎文章,写得全,有代码

[2] 图像质量评估中的PSNR和SSIM的定义,公式和含义,CSDN博客,写得全

[3] 图像相似度评价指标,简书文章,有定义和大量代码。注意这里面SSIM范围写错了,而且错得离谱。。

[4] 图像质量评价指标PSNR、SSIM、MSSIM介绍,也比较全,有MSSIM公式