MS-SSIM

这篇具有很好参考价值的文章主要介绍了MS-SSIM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 概要

该文提出了一种多尺度结构相似度方法,该方法在考虑观看条件的变化方面比以往的单尺度方法具有更大的灵活性。该文展示了一种图像合成方法来校准参数,以定义不同尺度的相对重要性。

2. 结构

结构相似性为图像质量评估[3]-[6]问题提供了一种替代和补充的方法。它基于一个自上而下的假设,即HVS非常适合于从场景中提取结构信息,因此结构相似性的度量应该是一个很好的感知图像质量的近似值。研究表明,该方法的一个简单实现,即结构相似性(SSIM)索引[5],可以优于最先进的感知图像质量指标。然而,在[5]中引入的SSIM索引算法是一种单尺度的方法。我们认为这是该方法的一个缺点,因为正确的比例取决于观看条件(例如,显示分辨率和观看距离)。在本文中,我们提出了一种多尺度结构相似度的方法,并引入了一种新的基于图像合成的方法来校准加权不同尺度之间的相对重要性的参数

2.1 SINGLE-SCALE STRUCTURAL SIMILARITY

指的就是SSIM:
S ( x , y ) = f ( l ( x , y ) , c ( x , y ) , s ( x , y ) ) (1) S(x,y)=f(l(x,y),c(x,y),s(x,y)) \tag{1} S(x,y)=f(l(x,y),c(x,y),s(x,y))(1)
很重要的一点是,这三个组成部分是相对独立的。例如,亮度和/或对比度的变化不会影响图像的结构。例如,亮度和/或对比度的变化不会影响图像的结构。

为了完成(1)中相似度度量的定义,我们需要定义三个函数 l ( x , y ) , c ( x , y ) , s ( x , y ) l(x,y),c(x,y),s(x,y) l(x,y),c(x,y),s(x,y)以及组合函数 f ( ) f() f()。我们还希望相似度度量能够满足以下条件:

  • 对称性: S ( x , y ) = S ( y , x ) S(x,y)=S(y,x) S(x,y)=S(y,x)
  • 有界性: S ( x , y ) ≤ 1 S(x,y)\le 1 S(x,y)1
  • 唯一最大值: S ( x , y ) = 1 S(x,y)=1 S(x,y)=1只有在 x = y x=y x=y时才成立

最终SSIM的计算方法:
S S I M ( x , y ) = [ l ( x , y ) ] α ⋅ [ c ( x , y ) ] β ⋅ [ s ( x , y ) ] γ   (2) SSIM(x,y)=[l(x,y)]^\alpha \cdot[c(x,y)]^\beta \cdot[s(x,y)]^\gamma  \tag{2} SSIM(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ (2)
其中, α > 0 , β > 0 , γ > 0 \alpha>0,\beta>0,\gamma>0 α>0,β>0,γ>0是用于调整这三个组件的相对重要性的参数。我们很容易验证这个定义是否满足上述三个条件。为了简化表达式,我们对本文进行了设置, α = β = γ = 1 , C 3 = C 2 / 2 \alpha=\beta=\gamma=1, C_3=C_2/2 α=β=γ=1,C3=C2/2。这就导致了一种特定形式的SSIM指数:
S S I M ( x , y ) = ( 2 μ x μ y + C 1 ) ( 2 σ x y + C 2 ) ( μ x 2 + μ y 2 + C 1 ) ( σ x 2 + σ y 2 + C 2 ) (3) SSIM(x,y)=\frac{(2\mu_x \mu_y+C_1)(2\sigma_{xy}+C_2)}{(\mu_x^2+\mu_y^2+C_1)(\sigma_x^2+\sigma_y^2+C_2)} \tag {3} SSIM(x,y)=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)(3)
SSIM指数和更传统的质量度量之间的关系可以在图像分量的向量空间中以几何方式加以说明。

SSIM

2.2 MULTI-SCALE STRUCTURAL SIMILARITY
2.2.1 Multi-scale SSIM index

图像细节的可感知性取决于图像信号的采样密度、图像平面到观察者的距离以及观察者视觉系统的感知能力。在实践中,当这些因素发生变化时,对给定图像的主观评价就会发生变化。如上一节中所述的单尺度方法可能只适用于特定的设置。

多尺度方法是一种方便的结合不同分辨率的图像细节的方法。该文提出了一种多尺度的图像质量评估SSIM方法,其系统图如下图所示。

MS-SSIM

系统以参考和失真图像信号为输入,迭代应用低通滤波器,将滤波后的图像降采样2倍。我们将原始图像设为 S c a l e 1 Scale 1 Scale1,最高Scale记为为 S c a l e M Scale M ScaleM,这是经过 M − 1 M−1 M1次迭代得到的。在第 j j j个尺度上,计算对比比较(4)和结构比较(5),并分别记为 c j ( x , y ) c_j(x, y) cj(x,y) s j ( x , y ) s_j(x, y) sj(x,y)。亮度比较(6)仅在 S c a l e M Scale M ScaleM下计算,记为 l M ( x , y ) l_M(x, y) lM(x,y)
c ( x , y ) = 2 σ x σ y + C 2 σ x 2 + σ u 2 + C 2 (4) c(x,y)=\frac{2\sigma_x\sigma_y+C_2}{\sigma_x^2+\sigma_u^2+C_2} \tag 4 c(x,y)=σx2+σu2+C22σxσy+C2(4)

s ( x , y ) = σ x y + C 3 σ x σ y + C 3 (5) s(x,y)=\frac{\sigma_{xy}+C_3}{\sigma_x\sigma_y+C_3} \tag {5} s(x,y)=σxσy+C3σxy+C3(5)

l ( x , y ) = 2 μ x μ y + C 1 μ x 2 + μ y 2 + C 1 (6) l(x,y)=\frac{2\mu_x\mu_y+C_1}{\mu_x^2+\mu_y^2+C_1} \tag 6 l(x,y)=μx2+μy2+C12μxμy+C1(6)

SSIM的总体评价是通过结合不同尺度上的测量来获得的:
S S I M ( x , y ) = [ l ( x , y ) ] α M ⋅ ∏ j = 1 M [ c ( x , y ) ] j β ⋅ [ s ( x , y ) ] γ j (7) SSIM(x,y)=[l(x,y)]^{\alpha_M} \cdot \prod \limits_{j=1}^M[c(x,y)]^{\beta}_j \cdot[s(x,y)]^{\gamma_j} \tag 7 SSIM(x,y)=[l(x,y)]αMj=1M[c(x,y)]jβ[s(x,y)]γj(7)
采用指数 α M α_M αM​、 β j β_j βj​和 γ j \gamma_j γj​来调整不同分量的相对重要性。这个多尺度 S S I M SSIM SSIM​索引定义满足最后一节给出的三个条件。它还包括单尺度方法作为一个特例。特别地,尺度M的单尺度实现应用迭代滤波和降采样过程,直到尺度M,只有指数 α M α_M αM​、 β M β_M βM​和 γ M \gamma_M γM​被给出非零值。为了简化参数的选择,我们让所有j的 α j = β j = γ j α_j=βj=\gamma_j αj=βj=γj​。此外,我们对交叉尺度设置进行了标准化,使 ∑ j = 1 M γ j = 1 \sum \limits_{j=1}^M \gamma_j=1 j=1Mγj=1。这使得不同的参数设置(包括所有的单尺度和多尺度设置)具有可比性。

3. 各个 α j , β j , γ j α_j,βj,\gamma_j αj,βj,γj的确定

对于MSSIM一般对每个尺度令alpha=beta,那么如何选择不同尺度的alpha和beta参数(即确定不同scale的相对权重)?

该文使用一种图像合成方法来校准不同尺度的相对重要性。

MS-SSIM

每个失真的图像是使用一个迭代过程,初始图像生成随机添加白色高斯噪声原始图像和迭代过程采用约束梯度下降算法在指定的约束条件中(MSE)搜索基于SSIM最差的图像。

上图中,每一行的MSE都相同,每一列的scale都相同。对于给定的8bit灰度图像,我们可以合成上面的失真图像表。这里有5个scale,12个失真水平,共60幅图像。可以看到每行的MSE都相同,但是它们的感知质量却差别很大,这说明不同尺度的失真对感知质量的影响不同。

我们使用10幅不同内容的(人脸、自然风景、植物、人造物体等)64x64的图像,构建了10个上面的失真表(共600幅失真图像)。有8个受试者,观测距离固定为每度观测视角32个像素距离。每个人依次看10组图像,对不同尺度的图像进行比较,每个尺度选择出一幅他们认为质量相同的图像。例如上图中标红的5幅图像,观测者认为它们质量相同。每个人选择的结果会被记录,平均计算得到最终测试结果,对测试结果计算得到:
β 1 = γ 1 = 0.0448 β 2 = γ 2 = 0.2856 β 3 = γ 3 = 0.3001 β 4 = γ 4 = 0.2363 β 5 = γ 5 = 0.1333 \beta_1=\gamma_1=0.0448 \\ \beta_2=\gamma_2=0.2856 \\ \beta_3=\gamma_3=0.3001 \\ \beta_4=\gamma_4=0.2363 \\ \beta_5=\gamma_5=0.1333 β1=γ1=0.0448β2=γ2=0.2856β3=γ3=0.3001β4=γ4=0.2363β5=γ5=0.1333

4. 结果

MS-SSIM

5.代码

python:

# import the necessary packages
import torch.nn.functional as F
from skimage.measure import compare_ssim
import argparse
import cv2
#cv2torc和torch2cv两个函数在下面
from Utils import cv2torch, torch2cv

def mssssim(a,b,):
    X = a
    Y = b
    for i in range (5):
        (score, diff) = compare_ssim(X, Y, data_range=1,multichannel=True, full=True)
        print(format(score))
		#每次低通滤波都使用张量进行转化,滤完波再转回来,虽然需要用到torch,但是胜在代码方便
        Ta = cv2torch(X)
        Tb = cv2torch(Y)
        padding = (X.shape[1] % 2, X.shape[2] % 2)
        Xa = F.avg_pool2d(Ta, kernel_size=2, padding=padding)
        Yb = F.avg_pool2d(Tb, kernel_size=2, padding=padding)
        X = torch2cv(Xa)
        Y = torch2cv(Yb)

for i  in range(2,13):
    num1 = str(5890 + i)
    num2 = str(i)
    img2 = cv2.imread('D:/c/hdrcnn/'+num2+'.exr',flags=cv2.IMREAD_ANYDEPTH + cv2.IMREAD_COLOR)
    img2_662 = cv2.imread('D:/c/hdr/'+num1+'_256x256.exr',flags=cv2.IMREAD_ANYDEPTH + cv2.IMREAD_COLOR)
    mssssim(img2,img2_662)

代码参考

Reference: MULTI-SCALE STRUCTURAL SIMILARITY FOR IMAGE QUALITY ASSESSMENT文章来源地址https://www.toymoban.com/news/detail-407494.html

到了这里,关于MS-SSIM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【该文章已被封禁】区块链钱包APP逆向分析及实现

    0、原文链接:点击我进行打开: https://qqizai.gitee.io/qqizai/views/Android_reverse/20210910_BlockchainWalletReverse.html 1、发布了很久的文章,突然间收到信息说,违反社区规定。。。 2、不知道哪里违反了规定哦,我也没指名道姓是什么APP,也没放源码教你们破坏。。。

    2024年02月12日
    浏览(25)
  • 当Visual Studio遇到 “当前不会命中断点.还没有为该文档加载任何符号“的情况

    1.配置项目调试路径:  2.问题解决方案: VS配置调试路径不是默认路径时,需要看生成的文件是否在配置路径内,如果不在的话,可能发生\\\"当前不会命中断点.还没有为该文档加载任何符号\\\"的情况; 右键项目属性--生成事件 查看生成事件中的“后期生成事件命令行(O):”路径

    2024年02月12日
    浏览(29)
  • pytorch ssim计算

    在PyTorch中,可以使用 torchvision 库中的 SSIM 函数来计算结构相似性指数 (SSIM)。 SSIM 函数的签名如下: 其中,参数的含义如下: data_range:输入数据的范围,通常为1.0或255.0。 win_size:滑动窗口的大小。 win_sigma:滑动窗口的高斯核标准差。 k1、k2:SSIM计算公式中的常数。 nonne

    2024年02月02日
    浏览(21)
  • SSIM学习

    SSIM原文链接: https://www.researchgate.net/profile/Eero-Simoncelli/publication/3327793_Image_Quality_Assessment_From_Error_Visibility_to_Structural_Similarity/links/542173b20cf203f155c6bf1a/Image-Quality-Assessment-From-Error-Visibility-to-Structural-Similarity.pdf SSIM是结构相似性度量(Structural Similarity Index),是一种衡量两个图像

    2024年02月05日
    浏览(30)
  • [架构之路-263]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 概要设计 - 综述、如何做概要设计、概要设计的内容

    目录 一、概要设计综述 1.1 什么是概要设计 1.2 概要设计的目标 1.3 软件概要设计与软件架构设计的比较 1.4 软件概要设计、软件架构、软件详细设计比较 二、如何做好概要设计 2.1 概要设计的入手点 2.2 概要设计的步骤 2.3 进行概要设计的注意事项 三、软件概要设计的内容

    2024年03月10日
    浏览(80)
  • 图像质量指标:PSNR、SSIM、MSE

           方法描述:有两幅图像patch(当然也可是整幅图像),分别计算两幅图像的直方图,并将直方图进行归一化,然后按照某种距离度量的标准进行相似度的测量。 方法的思想:基于简单的向量相似度来对图像相似度进行度量。 优点:直方图能够很好的归一化,比如256个b

    2024年02月04日
    浏览(34)
  • 人类细胞造出了微型生物机器人

    机器人可以从一个成年人的细胞中创造出来,而且还无需任何基因改造,这意味着什么? 对无数患者来说,这意味着从他们自身衍生出的生物机器人,可以帮助他们恢复健康、愈合创伤、治疗疾病,这是医疗工具研发史上一个崭新的起点。 现在,美国塔夫茨大学和哈佛大学

    2024年02月04日
    浏览(28)
  • 图像质量评估算法SSIM(结构相似性)

    由于最近在阅读图像超分辨率方面的RCAN论文,里面涉及到了两幅图像之间的相似性,所以就引入了这个指标,并最终使用pyhton进行实现。结构相似性,是一种衡量两幅图像相似度的指标。该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Image and Video Eng

    2024年01月18日
    浏览(72)
  • 企业开拓市场有难度?是这些方面出了问题

    随着互联网的发展,市场也越来越激励,不少商家甚至在网上相关平台进行商机发布,因此更多的企业纷纷在相关平台寻找商机。因为线上采购网具备很多优势,并能实现为企业开拓市场的能力,所以不少企业将自己的销售模式进行与时俱进的改变,这其中包括企业与线上平

    2024年02月12日
    浏览(29)
  • 翻出了我当时学习的笔记来了html

    php:高级语言 web应用程序 万维网 浏览器中查看 apache:服务器 mysql:数据库 javascript:客户端脚本 js jquery mysql数据库基础 php语法基础 面向对象(物件) smart框架/thinkphp cms工具(内容发布系统工具) html 标签 css:层叠样式表 常用图片格式 : .jpg .gif .png .bmp 颜色 : 例如: 新

    2024年02月13日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包