图像减均值除⽅差_常⽤图像质量评估指标
本⽂整理在图像增强paper中从常⽤的图像增强指标SSIM,PSNR。
Update-04042019: 增加⽔下图像质量评价指标(undewater color image quality evaluation)UCIQE.
Updata-28-11-2019: 增加⽔下图像质量评价指标(UIQM, PCQI).
Structural Similarity Index (SSIM)
可以⽤来评价图像的三个⽅⾯,光照(luminance),对⽐度(contrast)和结构(structure)。
where
分别是图⽚x和Y的
局部
局部的均值,⽅差和协⽅差。
同时相似测量函数要满⾜:
1.
2.
3. iff
,
Question1:
是怎么取值的?
A:
是为了避免数值除以0,⽽存在的。通常可以选择
,其中L表⽰图像的灰度等级,⽐如8bit的灰度图像则
.
.
的选择与
类似,
。Matlab中的实现。
if isempty(C)
C = [(0.01*L).^2 (0.03*L).^2 ((0.03*L).^2)/2];
end
fprintf作用Question2: What are the meanings of these equations?
A:
可以表⽰图像的灰度/亮度的均值。
⽅差表⽰图像亮度距离灰度均值的偏差/波动范围,因此可以⽤来描述对⽐度的强弱,如果⽅差⼤,则说明图像对⽐度⾼。⽤协⽅差描述结
构差异,如果协⽅差⽐较⼩,说明两张图⽚结构差异⼩。
Question3: 如何处理局部计算的结果?
A: 可以⽤8*8的⾼斯(窗⼝)遍历图像,针对窗⼝内图像块计算图像指标(存储为映射矩阵)。同时为了减少由于窗⼝的存在和导致的分块效应,可以对窗⼝叠加⼀个⾼斯filter。整张图⽚的SSIM的结果是所有窗⼝内SSIM的平均值。[Pytorch实现时,直接通过图⽚和⾼斯核做卷积得到。source code refer: pytorch-ssim ].
Question4: 对于RGB图像呢?
A: 对于彩⾊图⽚,SSIM只评价Y,亮度分量。
Matlab的函数可以返回全图的SSIM值以及每个patch的SSIM值。
Peak signal-to-noise ratio (PSNR)
图像峰值信号⽐。
MSE (Mean Square Error) 描述原图与处理后的图⽚的均⽅误差
PSNR的定义是
其中MAXI表⽰颜⾊图像的最⼤数值,8位采样点则可以得到255。对于彩⾊图⽚,只需要在计算MSE时,三个通道的MSE求均值即可。记得要将图⽚转换成float类型后再进⾏运算,否则,uint8的计算结果是没有负数的。
def get_psnr(im1, im2):
im1 = np.asarray(im1, dtype=np.float64)
im2 = np.asarray(im2, dtype=np.float64)
mse = np.mean(np.square(im1 - im2))
return 10. * np.log10(np.square(255.) / mse)
Question: PSNR 仍然是基于MSE的评价,与直接⽤MSE有和区别?
A:
Question: PSNR原始的评价是对图⽚压缩带来的图⽚质量损失,MSE越低,PSNR越⾼,说明图⽚压缩损失越低,那么对于图⽚增强来说,是否PSNR越⾼就说明增强效果越好呢?
A: 对图像增强来说,⽆论是否有ground truth,都是PSNR越⾼效果越好。
不过许多实验结果都显⽰,PSNR 的分数⽆法和⼈眼看到的视觉品质完全⼀致,有可能 PSNR 较⾼者看起来反⽽⽐ PSNR 较低者差。这是因为⼈眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响⽽产⽣变化(例如:⼈眼对空间频率较低的对⽐差异敏感度较⾼,⼈眼对亮度对⽐差异的敏感度较⾊度⾼,⼈眼对⼀个区域的感知结果会受到其周围邻近区域的影响)。
由于PSNR计算量低,已于实现,使⽤⼴泛,但是PSNR和⼈类视觉的主观判断并不容易⼀致。SSIM更好⼀些。也就是说PSNR如果打分好的话,可以⽤, 打分不好也不要在意。
CVPR⾬⽔降噪的指标最常⽤的就是这两个指标,其他指标可以参考。
YaqiLYU:全参考图像质量评价⽅法整理与实⽤性探讨z huanlan.zhihu
Update:
还是建议在y有ground-truth的条件下进⾏⽐较PSNR。
另外,利⽤PSNR进⾏评价时,要注意图像应该是8-bit uint(最⼤值255),图像均值化前后对SSIM和PSNR都有影响。
Update: “图像均值化卡后对SSIMh和PSNR都有影响”,这句话是深刻的。这涉及到Matlab⾥⾯对与图像均值化之后理解,下⾯的例⼦讲了⼀下这个细节。
clear ;
close all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% read 8-bit image.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A = imread('0-outputs.png');
ref = imread('0-inputs.png');
[ssimval, ~] = ssim(A,ref);
fprintf('Normal-8-bit-SSIM: %0.4f.n',ssimval);
[peaksnr, ~] = psnr(A, ref);
fprintf('Normal-8-bit-PSNR: %0.4f n', peaksnr);
%%%%%%%%%%%%%%%%%%%%%%%%%
% convert into (0,1)
%%%%%%%%%%%%%%%%%%%%%%%%%
% convert image into (0,1). double type.
A_double = im2double(A);
ref_double= im2double(ref);
[ssimval, ~] = ssim(A_double,ref_double);
fprintf('[0,1] SSIM: %0.4f.n',ssimval);
[peaksnr, ~] = psnr(A_normlize, ref_double);
fprintf('[0,1] PSNR: %0.4fn', peaksnr);
%%%%%%%%%%%%%%%%%%%%%%%%%
% convert into (-1,1) range
%%%%%%%%%%%%%%%%%%%%%%%%%%
A_normlize = A_double *2 -1;
ref_normlize = ref_double*2 -1;
[ssimval, ~] = ssim(A_normlize,ref_normlize);
fprintf('[-1,1] SSIM: %0.4f.n',ssimval);
[peaksnr, ~] = psnr(A_normlize, ref_normlize);
fprintf('[-1,1] PSNR: %0.4f.n', peaksnr);
Normal-8-bit-SSIM: 0.7550.
Normal-8-bit-PSNR: 24.8250.
[0,1] SSIM: 0.7550.
[0,1] PSNR: 24.8250.
[-1,1] SSIM: 0.6411.
[-1,1] PSNR: 18.8044.
当转换到[-1,1]的range时,计算结果就不对了。因为SSIM和PSNR计算时,matlab需要计算图⽚的range。这⾥⾯调⽤的是getrangefromclass.这个⽅法。这个函数是根据图⽚类型计算图⽚取值的范围,⽽不是图⽚真实值。A_double和A_normalize都是double类型。调⽤这个⽅法时,返回值都是(0,1),所以造成结算结果不正确。
另外: im2double就已经将图⽚转换到(0,1)的范围了,不要在做A/255这种⾏为了。
更新⽔下图像质量评价指标:
UCIQE
1) UCIQE
是⾊彩浓度,饱和度和对⽐度的线性组合,⽤来定量评价⽔下图像⾮均于的⾊偏,模糊和低对⽐度的情况。属于没有参考(groundtruth)图像的图像质量评价指标--perceptual image quality. CIElab color space
CIElab color space is a uniform color space and device independent.
chroma的标准差,亮度的对⽐和饱和度的平均值,三项指标的线性组合。这个指标的提出是针对⽔下管道检测的图像,不同权重的系数是拟合得到的。
【那么不同的场景的测试数据,原则上是需要重新进⾏系数拟合的】
那么这个指标的实现步骤:
1 ) 转换到CIELab space进⾏特征提取。
2) 计算三个特征量。
3)参数权重拟合。
Update:
1)计算图像相关统计量,主要参考原⽂16的引⽤⽂献。
2) 基于数据拟合的数据,就⽐较依赖数据了,如果训练/拟合数据⽐较⼩时,表现出来的就是不稳定,那么这种指标就没有办法⽤。作者提出,针对其他问题,可以按照这个思路构建⾃⼰的指标:a有label好的数据,b 提取feature(多提取点),c 做曲线拟合,权重回归。多⼀些指标和配图:⽐如颜⾊分布在极坐标中绘制。
⽔下图像质量评价指标2
2) UIQM (underater image quality measurement)
the overall quality of an image can be effectively obtained by combinations of image attribute measures.
For underwater images, the different absorption rate for light with different wavelengths causes color casting, the forward-scattering effect generally leads to blurring of the image features, and the backward-scattering effect
generally limits the contrast of the images.
Accordingly, the attributes of colorfulness, sharpness, and contrast, which are degraded mostly due to the property of the water media, are selected as the attributes in evaluating the overall underwater image qualities.
a) UICM (colorfullness measure)
选⼀组color-space,做正交基,本⽂选择是Red-green 和Yellow-blue。
描述的是⽩平衡的⾓度,希望三个颜⾊尽量均衡。从数值上,希望颜⾊偏差的均值⼩,(说明不同通道的颜⾊分布⽐较均衡),⽅差⼤(说明图像颜⾊的动态范围⼤)。
因此⽩平衡调整好的⽅法,UICM效果会更好。
b) UISM (sharpness measure)
主要是描述图像的边缘(edge.)
where the image is divided into k1k2 blocks,
indicates the relative contrast ratio within each block.
图⽚边沿信息多,对⽐度⾼的UISM指标会更好。
c) UIConM (Underwater Image Contrast Measure)
仍然是基于block的内对⽐度的计算。
分块对⽐度⾼的图像,UIConM指标要更好。
分块
-------------------------------------------------------------------
图像质量评价指标3
PCQI(patch-based contrast quality index)
在每个patch中计算平均强度(mean intensity),信号强度(signal strength)和信号结构 (signal structure).并在这三个⾓度对图像的失真进⾏评价。
code:
PCQI-code e ce.uwaterloo.ca
是full reference image quality evaluation. 可以⽤来⽐较两个图⽚之间的对⽐度的差异。
SSIM的指标相似的。⽅差差别⼤的,说明对⽐度强。
同样是基于patch内的均值和⽅差的⽐较,和SSIM
其实描述的是均值统计量,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论