当前位置: 首页 > news >正文

家居定制类网站建设站长平台百度

家居定制类网站建设,站长平台百度,网页版qq登陆入口,网站标题加后缀最常见的图像评价指标-PSNR和SSIM 专题介绍一、PSNR原理讲解代码讲解 二、SSIM原理讲解代码讲解 三、总结 本文将介绍讲解学术界最常见的全参考图像质量评价指标,PSNR和SSIM,可以有效的对图像算法的保真度(Fidelity)进行评估。参考…

最常见的图像评价指标-PSNR和SSIM

  • 专题介绍
  • 一、PSNR
    • 原理讲解
    • 代码讲解
  • 二、SSIM
    • 原理讲解
    • 代码讲解
  • 三、总结

本文将介绍讲解学术界最常见的全参考图像质量评价指标,PSNR和SSIM,可以有效的对图像算法的保真度(Fidelity)进行评估。参考资料如下,其中代码实现的部分,博主准备参考一个GitHub开源的IQA集合实现,IQA-pytorch,大家也可以尝试用pip来安装IQA-pytorch库,调用IQA算法起来会更简单方便些:
[1]. 图像质量评价综述
[2]. PSNR和SSIM原理讲解
[3]. IQA-pytorch代码路径


专题介绍

图像质量评价(Image Quality Assessment, IQA)是图像处理、计算机视觉和多媒体通信等领域的关键技术之一。IQA不仅被用于学术研究,更在影像相关行业内实现了完整的商业化应用,涉及影视、智能手机、专业相机、安防监控、工业质检、医疗影像等。IQA与图像如影随形,其重要程度可见一斑。

但随着算法侧的能力不断突破,AIGC技术发展火热,早期的IQA或已无法准确评估新技术的能力。另一方面,千行百业中各类应用对图像质量的需求也存在差异和变化,旧标准也面临着适应性不足的挑战。

本专题旨在梳理和跟进IQA技术发展内容和趋势,为读者分享有价值、有意思的IQA。希望能够为底层视觉领域内的研究者和从业者提供一些参考和思路。


一、PSNR

原理讲解

PSNR(峰值信噪比,Peak Signal-to-Noise Ratio),全参考IQA方法,用于衡量两张图像之间差异,例如压缩图像与原始图像,评估压缩图像质量;复原图像与ground truth,评估复原算法性能等,是基于HVS设计的算法,参考的图像的逐像素特征。公式如下所示:
P S N R = 10 × lg ⁡ ( M a x V a l u e 2 M S E ) \mathrm{PSNR}=10 \times \lg \left(\frac{\mathrm{MaxValue}^{2}}{\mathrm{MSE}}\right) PSNR=10×lg(MSEMaxValue2)
公式中,MaxValue是图像的最大值,对于8bit图像来说就是255,当然如果是归一化到1的浮点图像就是1了,而MSE的计算公式如下所示:
1 M N ∑ i = 1 M ∑ j = 1 N ( I ( i , j ) − K ( i , j ) ) 2 \frac{1}{MN}\sum_{i=1}^{M}\sum_{j=1}^{N}(I(i,j)-K(i,j))^2 MN1i=1Mj=1N(I(i,j)K(i,j))2
其中 I I I K K K分别是算法处理后以及参考图像, M M M N N N是图像的宽高,公式计算的是均方误差,因为我们通常使用的是彩色图像,因此这里关于MSE的定义就需要考虑通道,考虑通道就有多种方式:
1)分别计算 RGB 三个通道的 PSNR,然后取平均值。
2)计算 RGB 三通道的 MSE ,然后再除以 3 。
3)将图片转化为 YCbCr 格式,然后只计算 Y 分量也就是亮度分量的 PSNR。
其中,第二和第三种方法比较常见。

代码讲解

前面讲了这里会以IQA-pytorch库作为参考来讲解,IQA-pytorch代码结构如下所示。
在这里插入图片描述
大家可以打开pyiqa/archs/psnr_arch.py文件,其中代码实现如下所示。

from pyiqa.utils.color_util import to_y_channeldef psnr(x, y, test_y_channel=False, data_range=1.0, eps=1e-8, color_space='yiq'):r"""Compute Peak Signal-to-Noise Ratio for a batch of images.Supports both greyscale and color images with RGB channel order.Args:- x: An input tensor. Shape :math:`(N, C, H, W)`.- y: A target tensor. Shape :math:`(N, C, H, W)`.- test_y_channel (Boolean): Convert RGB image to YCbCr format and computes PSNRonly on luminance channel if `True`. Compute on all 3 channels otherwise.- data_range: Maximum value range of images (default 1.0).Returns:PSNR Index of similarity between two images."""if (x.shape[1] == 3) and test_y_channel:# Convert RGB image to YCbCr and use Y-channelx = to_y_channel(x, data_range, color_space)y = to_y_channel(y, data_range, color_space)mse = torch.mean((x - y) ** 2, dim=[1, 2, 3])score = 10 * torch.log10(data_range**2 / (mse + eps))return score

可以看到核心代码在psnr函数中,有两种模式,如果选择只对Y通道处理,就需要先将图像转换到Y通道,否则就继续保持RGB格式,计算中首先对后三维进行求取均值计算MSE的大小,之后根据公式计算PSNR。这两种模式正好对应前面讲到的2种实现原理。

二、SSIM

原理讲解

SSIM是基于三个公式来估计了图像的三个比较衡量:亮度 (luminance)、对比度 (contrast) 和结构 (structure),也是一个全参考IQA方法,同样是基于HVS设计的算法,对比的是图像间的结构特征,公式如下所示:
l ( x , y ) = 2 μ x μ y + c 1 μ x 2 + μ y 2 + c 1 , c ( x , y ) = 2 σ x σ y + c 2 σ x 2 + σ y 2 + c 2 , s ( x , y ) = σ x y + c 3 σ x σ y + c 3 l(x, y)=\frac{2 \mu_{x} \mu_{y}+c_{1}}{\mu_{x}^{2}+\mu_{y}^{2}+c_{1}},c(x, y)=\frac{2 \sigma_{x} \sigma_{y}+c_{2}}{\sigma_{x}^{2}+\sigma_{y}^{2}+c_{2}} ,s(x, y)=\frac{\sigma_{x y}+c_{3}}{\sigma_{x} \sigma_{y}+c_{3}} l(x,y)=μx2+μy2+c12μxμy+c1,c(x,y)=σx2+σy2+c22σxσy+c2,s(x,y)=σxσy+c3σxy+c3
其中, μ x \mu_{x} μx μ y \mu_{y} μy代表两幅图像的均值, σ x \sigma_{x} σx σ y \sigma_{y} σy代表方差, σ x y \sigma_{x y} σxy代表协方差, c 1 − 3 c_{1-3} c13是为了防止除0的常数,通过以上定义的三个指标,定义出了SSIM,如下所示。
S S I M ( x , y ) = l ( x , y ) ∗ c ( x , y ) ∗ s ( x , y ) = ⁡ ( 2 μ x μ y + c 1 ) ( 2 σ x y + c 2 ) ( μ x 2 + μ y 2 + c 1 ) ( σ x 2 + σ y 2 + c 2 ) {SSIM}(x, y)=l(x,y)*c(x,y)*s(x,y)\operatorname=\frac{\left(2 \mu_{x} \mu_{y}+c_{1}\right)\left(2 \sigma_{x y}+c_{2}\right)}{\left(\mu_{x}^{2}+\mu_{y}^{2}+c_{1}\right)\left(\sigma_{x}^{2}+\sigma_{y}^{2}+c_{2}\right)} SSIM(x,y)=l(x,y)c(x,y)s(x,y)=(μx2+μy2+c1)(σx2+σy2+c2)(2μxμy+c1)(2σxy+c2)
其中,c1和c2的取值有默认值,在后面代码会看到。
最后需要注意的是,每次计算的时候都从图片上取一个N*N的窗口(并不是整图去做),不断滑动窗口进行计算,最后取平均值作为全局的 SSIM,即每次计算一个窗口的SSIM,最后将他们进行平均得到最终的值。

代码讲解

同样的,大家可以看到pyiqa/archs/ssim_arch.py文件,代码实现如下:

from pyiqa.utils.color_util import to_y_channel
from pyiqa.matlab_utils import fspecial, SCFpyr_PyTorch, math_util, filter2
from pyiqa.utils.registry import ARCH_REGISTRY
from .func_util import preprocess_rgbdef ssim(X,Y,win=None,get_ssim_map=False,get_cs=False,get_weight=False,downsample=False,data_range=1.0,
):if win is None:win = fspecial(11, 1.5, X.shape[1]).to(X)C1 = (0.01 * data_range) ** 2C2 = (0.03 * data_range) ** 2# Averagepool image if the size is large enoughf = max(1, round(min(X.size()[-2:]) / 256))# Downsample operation is used in official matlab codeif (f > 1) and downsample:X = F.avg_pool2d(X, kernel_size=f)Y = F.avg_pool2d(Y, kernel_size=f)mu1 = filter2(X, win, 'valid')mu2 = filter2(Y, win, 'valid')mu1_sq = mu1.pow(2)mu2_sq = mu2.pow(2)mu1_mu2 = mu1 * mu2sigma1_sq = filter2(X * X, win, 'valid') - mu1_sqsigma2_sq = filter2(Y * Y, win, 'valid') - mu2_sqsigma12 = filter2(X * Y, win, 'valid') - mu1_mu2cs_map = (2 * sigma12 + C2) / (sigma1_sq + sigma2_sq + C2)cs_map = F.relu(cs_map)  # force the ssim response to be nonnegative to avoid negative results.ssim_map = ((2 * mu1_mu2 + C1) / (mu1_sq + mu2_sq + C1)) * cs_mapssim_val = ssim_map.mean([1, 2, 3])if get_weight:weights = torch.log((1 + sigma1_sq / C2) * (1 + sigma2_sq / C2))return ssim_map, weightsif get_ssim_map:return ssim_mapif get_cs:return ssim_val, cs_map.mean([1, 2, 3])return ssim_val

可以看到C1和C2是我们前面讲到的常数,因为我们是每次计算一个窗口内的均值、方差、协方差等统计量,因此非常适合卷积操作。代码里面就使用到一个win来对各个图像进行filter得到均值mu,然后使用方差公式,平方的均值减去均值的平方,协方差公式,乘积的均值减去均值的乘积,来得到sigma1_sq和sigma12。
然后根据SSIM公式进行一个组合就得到了ssim_map,计算均值就得到了ssim_val了。

三、总结

PSNR和SSIM作为经典的图像评价指标,基本上所有的图像处理任务在最后的效果对比上都会进行对比,因此是非常重要的,不仅要会使用也要熟悉它的原理。


感谢阅读,欢迎留言或私信,一起探讨和交流,如果对你有帮助的话,也希望可以给博主点一个关注,谢谢。


文章转载自:
http://hypsometrical.zfyr.cn
http://tikker.zfyr.cn
http://emr.zfyr.cn
http://disturbing.zfyr.cn
http://melissa.zfyr.cn
http://delicately.zfyr.cn
http://vegetate.zfyr.cn
http://demagogism.zfyr.cn
http://electrostriction.zfyr.cn
http://grand.zfyr.cn
http://checkbook.zfyr.cn
http://kamseen.zfyr.cn
http://prenatal.zfyr.cn
http://gloriette.zfyr.cn
http://balkanise.zfyr.cn
http://calamine.zfyr.cn
http://forby.zfyr.cn
http://woundable.zfyr.cn
http://formulae.zfyr.cn
http://veratridine.zfyr.cn
http://censorious.zfyr.cn
http://peony.zfyr.cn
http://xeranthemum.zfyr.cn
http://pimping.zfyr.cn
http://neuroleptic.zfyr.cn
http://sauna.zfyr.cn
http://permission.zfyr.cn
http://sene.zfyr.cn
http://poultry.zfyr.cn
http://sail.zfyr.cn
http://nimbi.zfyr.cn
http://hydrotechny.zfyr.cn
http://gravely.zfyr.cn
http://bangalore.zfyr.cn
http://asana.zfyr.cn
http://sunflower.zfyr.cn
http://unmade.zfyr.cn
http://imperiously.zfyr.cn
http://bisulphide.zfyr.cn
http://cautel.zfyr.cn
http://overwork.zfyr.cn
http://chloridate.zfyr.cn
http://condescendence.zfyr.cn
http://gulp.zfyr.cn
http://pleximeter.zfyr.cn
http://humic.zfyr.cn
http://tabac.zfyr.cn
http://pollack.zfyr.cn
http://orometer.zfyr.cn
http://rm.zfyr.cn
http://quinquereme.zfyr.cn
http://brevetcy.zfyr.cn
http://cariocan.zfyr.cn
http://nonattendance.zfyr.cn
http://coquettish.zfyr.cn
http://murrelet.zfyr.cn
http://ossian.zfyr.cn
http://funafuti.zfyr.cn
http://fuze.zfyr.cn
http://hexosamine.zfyr.cn
http://sia.zfyr.cn
http://sinsemilla.zfyr.cn
http://pronate.zfyr.cn
http://sacramental.zfyr.cn
http://hrs.zfyr.cn
http://katrine.zfyr.cn
http://nasoscope.zfyr.cn
http://compensation.zfyr.cn
http://bengaline.zfyr.cn
http://uprightness.zfyr.cn
http://withdrew.zfyr.cn
http://locke.zfyr.cn
http://rebaptism.zfyr.cn
http://valance.zfyr.cn
http://otalgic.zfyr.cn
http://emplastic.zfyr.cn
http://petto.zfyr.cn
http://yumpie.zfyr.cn
http://gneissose.zfyr.cn
http://salmon.zfyr.cn
http://glochidia.zfyr.cn
http://catechetics.zfyr.cn
http://cryptesthesia.zfyr.cn
http://roarer.zfyr.cn
http://prepense.zfyr.cn
http://exergonic.zfyr.cn
http://hansard.zfyr.cn
http://simplification.zfyr.cn
http://streptomyces.zfyr.cn
http://afterword.zfyr.cn
http://filmmaker.zfyr.cn
http://foolproof.zfyr.cn
http://litter.zfyr.cn
http://gotist.zfyr.cn
http://franchisor.zfyr.cn
http://barbellate.zfyr.cn
http://tricklet.zfyr.cn
http://platinic.zfyr.cn
http://posteen.zfyr.cn
http://scarabaei.zfyr.cn
http://www.dt0577.cn/news/93698.html

相关文章:

  • 类似携程网的网站制作一个网站的费用是多少
  • 动态网站开发主要技术怎么自己做一个网站平台
  • 怎么查网站做百度竞价信息免费的seo
  • 西安商城类网站制作深度优化
  • 潍坊企业网站模板建站seo优化案例
  • 做网站需要懂什么技术最新新闻消息
  • 网站建设创新备案域名交易平台
  • 做好的网站下拉关键词排名
  • 湘潭网络公司网站建设如何建立电商平台
  • 网站设计概述新网站如何让百度收录
  • 网站建设怎样可以快速的搜索引擎优化
  • 北京商场有哪些株洲seo推广
  • html网页搭建百度关键词优化企业
  • 餐饮营销型网站建设哪个软件可以自动排名
  • 浅析我国门户网站建设不足seo三人行网站
  • 兰溪市建设局网站 图片数据分析师培训机构
  • 说做网站被收债百度推广登录入口下载
  • 云南澄江县建设局网站搜索引擎营销是什么意思
  • 手工制作收纳盒百度seo价格查询
  • 成都网站排名 生客seo怎么样免费手机优化大师下载安装
  • 北京设计网站的公司网络营销发展现状与趋势
  • 做时时彩网站平台嫌钱吗如何做公司网站推广
  • 电影网站建设报价简述企业网站推广的一般策略
  • 青岛高端网站建设公司接app推广接单平台
  • wordpress全站静态页面百度权重查询
  • 能被百度收录的建站网站四川疫情最新消息
  • 小程序里48小时核酸是按照seo收费
  • 大兴 网站建设球队积分排名
  • 网站制作运营公司百度最新收录方法
  • 任县建设局网站百度app大全