(论文分析) 图像相似度和图像可见性分析,即SSIM

2023-10-11 06:10
文章标签 分析 图像 ssim 论文 相似

本文主要是介绍(论文分析) 图像相似度和图像可见性分析,即SSIM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇是论文   Image Quality Assessment: From Error Visibility to Structural Similarity    的解读

源链接https://www.cnblogs.com/jian-hello/p/3552108.html

1. 结构相似度

 

这篇文章的研究背景是建立一个衡量图像质量好坏的测量准则。客观图像质量测量分为两种,一种是使用参考标准图像,另一种是无参考标准图像。而本文是第一种类型的客观图像质量测量。

 

假设人类视觉系统(HVS)倾向于抽取结构化信息。

 

遭到批评的算法:

一幅图像的信号可以理解称为一幅无噪声信号图像(Refference Image Signal)和一幅误差信号(Error Image Signal)。主观感觉上的图像质量的丢失与误差信号(Error Signal)的可见性紧密相关。最简单的一种测量方式就是MSE,但是两个拥有相同MSE的受干扰图像可能有非常不同的误差类型,它们中的一些可能比另一些更加可见的。大多数的这种图像质量估计方法都试图根据所关心的误差的可见性对其进行加权。

 

基于误差可见性的图像质量估计方法的通用框架

 

 

预处理阶段(Pre processing)

(1)对受干扰图像和参考图像进行适当的放缩和对齐

(2)转换到一个适合于HVS的颜色空间

(3)quality assessment metrics may need to convert the digital pixel values stored in the computer memory into luminance values of pixels on the display device through point wise nonlinear transformations.

(4)使用模拟eye optics 的点分布功能(point spread function)的低通滤波器

(5)对两幅图像使用一个非线性操作来模拟光照(light adaptation)

 

 

CSF 滤波(CSF filtering)

The contrast sensitivity function(CSF) 描绘了HVS对在视觉冲击中呈现出的不同空间时间频率的敏感度。一些图像质量评估方法将要根据这个函数进行加权。但是许多最新的测量方法选择将CSF看作一个敏感性规范化因子。

 

 

通道分解(Channel Decomposition)

图像根据空间时间频率以及方向分解到一些子带中去。尽管一些质量估计方法执行复杂的通道分解,其相信它们与神经响应紧密相连,但是大量的方法使用如DCT等简单的变换。

 

误差规范化(Error Normalization)

在参考图像和受干扰图像之间的差异根据一个masking model进行计算。这一差异考虑了这一事实,一个图像内容的出现将要降低在其空间或时间,空间频率或方向附近出现的另一个内容的可见性。

 

Normalization 过程就是打算将误差转换到Just noticeable difference 单位。

 

Masking Model 似乎很有意思:

为了能说清楚以下这些模型如何操作,我们将以JPEG 的DCT量化为背景进行,首先说一下这个背景知识:

图像压缩一般是这样进行的,将图像分成若干个8*8的块。每块都进行DCT变换,从而形成,其中i,j是DCT的频率的索引,k是这幅图像所分成的块的索引。每一块利用一个量化矩阵进行量化(),

量化误差使用如下的公式进行计算:

从人眼的特性以及心理学来讲,对于每个频率i,j,可以产生一个可见的信号的阈值是。也就是说,只有频率系数超过这个阈值,才可以产生一个能够被人感知的信号。最大可能的量化误差

于是为了使误差不可见,我们需要设置:

 

从上面的分析我们可以看到,阈值是独立于图像的。下面这些方法是告诉我们可以如何为每一块图像进行量化,从而使压缩率相同的情况下,图像质量更加。

 

 

Luminance Masking

上面这一组图像中每一个有同样的幅度,但是有不同的均值。左侧的亮度最小,右侧的亮度最大。正如所见,在左侧的图像中,内容可见性更强。这也就是说,当平均亮度更高时,区域内同等程度的变化只能产生较小的对比度(可见性较差)。

举例来说,量化到223~200比量化到123~100,区域中的内容可见性较低。因而我们有这样的想法,在亮度值大的区域,设定的阈值更大,从而量化程度更大。这主要是因为在这些区域里,图像细节不易被人眼识别。基于这样的想法,Andrew B.Watson设计了这样一个公式:

其中相当于平均亮度值(DCT变换中的第一个系数)。从这个公式中可以看出,平均亮度越大(越大),阈值越大,量化值越大。

 

 

Contrast Masking

原理介绍:当一个图像内容位于有相似空间频率和方向的图像内容区域,这个图像内容将要对人眼不可见。由于DCT变换的特性,DCT系数矩阵中的每个系数表示着在8×8区域块中特定空间频率和方向。一个DCT系数值越大,那么在这个块中,特定的空间频率和方向的内容出现更多。

 

基于这样的想法Andrew B.Watson设计了如下的公式:

 

Noise Masking

Mutural Masking

 

如何实际使用这些遮挡模型呢?需要进一步分析.

 

Reference:

(1)Perceptual quality metrics applied to still image compression

(2)DCTune: A technique for visual optimization of DCT Quantization matrices for individual images

(3)http://scien.stanford.edu/pages/labsite/1998/psych221/projects/98/dctune/yuke/index.htm

 

 

Just noticeable difference (JND) 

 

Error Pooling

这是质量评价模型的最后一步。它将要结合不同通道,不同空间位置的normalized error signals 到一个值。

 

 

局限性

这种模型必须基于一系列强假设:

 

(1)图像质量定义问题——误差可见性不一定等价于图像质量的损失。

(2)阈值问题——进行误差敏感性模型的心理学实验被设计来估计一个冲击响应仅仅可见时的阈值。这些测量阈值可以用来idngyi可见误差的敏感性例如,CSF和各种Masking Effects。但是否可以将这样模型扩展到来刻画失真程度(人类主观感觉),不清楚。

(3)自然图像的复杂问题——大量的心里学实验都是针对简单模式进行的,例如spots, bars, sinusoidal gratings。the SCF is typically obtained from threshold experiments using global sinusoidal images. The masking phenomena are usually characterized using a superposition of two different patterns.

(4)不相关问题——当我们选择上面Error Pooling中的计算式时,我们已经架设在不同位置上的error是统计独立的。但事实上并不是这样。

(5)理解交互问题(Cognitive Interaction Problem)——认知和交互视觉问题将要影响对图像质量的理解。

 

 

称赞自己的算法:

基本想法

自然图像信号是高度结构化的:像素之间呈现出很强的依赖性,特别是在它们空间邻近时,这些依赖性携带着关于目标的结构信息。

如何提取这些结构信息呢?这就是这篇论文的关键。

 

The Structural SIMilarity(SSIM) Index

 

作者定义在一副图像中的结构信息代表着独立于平均亮度及对比度的对象(object)的结构。作者将结构相似性分为三个部分:(1)luminance;(2)contrast;(3)structure。

(1)luminance

 

 

(2)contrast

(3)structure

 

将三个成分结合从而产生一个相似度测量

 

Reference: Image Quality Assessment: From Error Visibility to Structural Similarity

 

2. FSIM 基于特征相似度的图像质量估计

 

如何利用HSV的呢?

作者声称,根据心理学和生理学的证据,可察觉的特征一般位于这样的一些点上,在这些点上傅里叶变换在不同频率上有相同的相位,例如在高度相位一致性的点上的特征能更吸引人的注意。

 

(1)相位一致性(Phase Congruency)

 

PC能够被认为是一个局部特征重要性的评估量。有不同的方式来计算一副给定图像的PC map,在这篇文章中使用Kovesi的方法。

对于二维图像,可以对上面的公式进行进一步扩展得到,具体细节见论文,及相应代码。

 

问题:为什么这样定义的PC量可以说明PC值越大在这一点上的傅里叶成分的相位一致性越强呢?

 

(2)梯度幅值

 

FSIM Index

 

分为两个阶段,第一阶段针对PC的局部相似度和梯度的局部相似度计算相似度map;第二阶段结合两个相似度map到一个相似度分数。

第一阶段:

 

第二阶段:

 

由于在一个位置的PC值反应着在这个点上的结构信息能够被人识别的程度。因为可以利用这个进行加权,

这个值越大说明,当前所测试的图像越接近参考图像。

 

Reference: FSIM A Feature Similarity Index for Image Quality Assessment

这篇关于(论文分析) 图像相似度和图像可见性分析,即SSIM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/186105

相关文章

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An