无参考图像质量评估NIQE算法详解附C++、Matlab代码

论文名称:Making a“Completely Blind”Image Quality Analyzer
作者:Anish Mittal, Rajiv Soundararajan, and Alan C. Bovik
年份:2013年

以下是论文的详细解析,文末我会附上论文原文与它的C++代码,在网上没找到它的C++代码所以自己写了一个,应该是独家吧哈哈,如果有其它版本记得告诉我呀。

概述

算法的大概流程是:先由一组清晰图像得出一组特征(均值向量,协方差矩阵),再用同样的方式得出低质量图像的相同特征。将这四个特征带入公式计算,本质上是计算低质量图像与清晰图像的距离。
因此,该论文的大部分篇幅都是在描述如何得到这两组特征,清晰图像和低质量图像求取特征的方式是一样的,只不过清晰图像是一组图,低质量图像是一张图。
注:图像评分与图像质量成正比。
这组清晰图像里,有多少张图像比较合适呢?论文作者做了一个实验:
在这里插入图片描述

由图中可以看出,选择40张图片基本救可以达到比较高的准确率了。

该算法主要分为 A~E 5个部分,下面逐一讲解。

A. Spatial Domain NSS 提取图像空间域特征

首先,像素强度归一化得到MSCN系数

在这里插入图片描述
该式表示高斯滤波后求局部均值和局部标准差(创建7*7高斯滤波器,标准差为7/6 )
其中局部均值:对原始图像做高斯模糊
局部标准差:对原始图像和局部均值的差的平方做高斯模糊
具体公式为:

在这里插入图片描述

将式(1)由图像表示,更加直观
在这里插入图片描述

补充知识:为什么选用MSCN系数?

MSCN系数的优点在于因为纹理等特征而产生的区域相关性很小。如下图左侧(原始像素点)和右侧(MSCN)结果间的区别。
在这里插入图片描述
举个例子,左图是原图,右图为MSCN系数结果
在这里插入图片描述

可以看出MSCN对于纹理的强弱并没有非常强的依赖性,这样提取出来的特征更有适用性。

B. Patch Selection 筛选图像块

为什么要筛选图像块?论文中这样说:
Since humans appear to more heavily weight their judgments of image quality from the sharp image regions.
We use a simple device to preferentially select from amongst a collection of natural patches those that are richest in information and less likely to have been subjected to a limiting distortion.
因此我们的筛选标准是:边缘更锐利的,包含信息内容更丰富的。
在归一化后,筛选前,作者将图像分成大小为PxP的若干个图像块(P=96),索引为b = 1,2,3,…,B
再对每个图像块求平均方差(也就是下文提到的锐利程度):

在这里插入图片描述
如何筛选呢?
作者将所有图像块的最大锐利程度的 p 倍设为阈值,其中p ∈ [0.6, 0.9],论文中取值为 0.75。将大于阈值的图像块保留,小于阈值的图像块淘汰掉。
在这里插入图片描述

图中红色方框部分就表示被保留的图像块,确实包含着丰富的信息~

C. Characterizing Image Patches 求图像块特征

该部分用到GGD(广义高斯分布)和AGGD(非对称广义高斯分布)求图像块特征。
首先利用GGD(广义高斯分布)求取图像的两个特征:
在这里插入图片描述
在这里插入图片描述

利用快速匹配算法(moment-matching)得到参数α,β
论文的这一部分写到这里就结束了,因此我将进入一系列补充内容~

补充内容:为什么选用GGD求特征?

GGD的特点是在其模型中可以发现数据的非正常分布,在图像质量评估中,因为各种distortion的影响,都会导致GGD分布曲线的变形,比如
在这里插入图片描述

图中可以看出不同的distortion对分布结果产生的影响。

补充内容:怎么得到参数α,β?

广义高斯分布定义如下:
在这里插入图片描述
GGD有两个参数:参数α控制着分布的“形状”,即衰减的速度,σ控制着方差。
算法核心:
在这里插入图片描述
具体过程:
1)给出候选的α:设定α的查找区间,如[0.2:0.001:10]即α在(0.2,10)区间范围每隔0.001取值。
2)将所有α代入下式计算ρ(α)
在这里插入图片描述
3)设R为ρ(α)的估计值
在这里插入图片描述
其中在这里插入图片描述
在这里插入图片描述
4)计算所有ρ(α)与步骤3得出估计值R的距离,选取距离最小对应的α即为所求。
5)最后得出在这里插入图片描述
其次利用AGGD(非对称广义高斯分布)求取图像块的16个特征:
在提取特征之前,为了加入相邻像素间的关联信息,选取了4个方向分别计算MSCN:
在这里插入图片描述
注:图中左下角写错了,应该是(i+1,j-1)
四个方向的计算公式为
在这里插入图片描述
对于每个方向MSCN系数进行以下计算:
在这里插入图片描述
依然利用快速匹配算法(moment-matching)得到特征参数
在这里插入图片描述第四个特征参数(均值:the mean of the distribution)通过下式计算:
在这里插入图片描述
论文中该部分的内容到这里也就结束啦,因此下面有一系列补充内容。

补充内容:为什么选用AGGD求特征?

AGGG的作用:更好的拟合distortion image产生的非对称高斯分布
拟合结果:
在这里插入图片描述
因为不同的distortion会使得AGGD产生不同的左右非对称现象,AGGD的pair parameters能更好的拟合出这种现象。

补充内容:怎么得到以上三个参数?

非对称广义高斯分布定义如下:
在这里插入图片描述
仔细阅读红线部分→因此我在实现时,利用AGGD的计算方法求GGD,将AGGD的βl,βr的均值,即为GGD的β。
AGGD共有三个参数,α、σl​、σr。α控制着分布的“形状”,σl​、σr控制左右两边的扩散程度。
算法核心:
在这里插入图片描述
具体步骤:
1)给出候选的α:设定α的查找区间,如[0.2:0.001:10]
2)将所有α代入下式计算ρ(α):
在这里插入图片描述
3)估计

在这里插入图片描述
4)估计
在这里插入图片描述
5)估计r
在这里插入图片描述
其中
在这里插入图片描述
6)设R为ρ(α)的估计量
在这里插入图片描述
7)计算所得的ρ(α)与步骤5估计的R的距离,选取距离最小对应的α即为所求
8)最后
在这里插入图片描述
以上,GGD得到2个特征参数,AGGD的4个MSCN系数各得到4个特征参数,共2+4*4=18个特征参数,进行以上步骤后再对原图像做0.5倍下采样,再提取一次特征,因此,共得到36个特征参数。
下面对前18个特征参数进行总结
在这里插入图片描述
需要注意的是,我的补充内容里的符号与论文中的并不完全一致(因为是直接截图来的),输出参数也与论文中的不完全一致,于是我总结了一下。
在这里插入图片描述
因此特征总结图中的方差就相当于论文中的β,然而由公式(如GGD具体过程中的5))可以看出β是由方差得到的,因此,问题不大。

D. Multivariate Gaussian Model 多元高斯模型

拟合高斯模型(MVG):
在这里插入图片描述输入每张清晰图像的特征参数,得到式(9),对(9)做最大似然估计得到该模型的均值向量、协方差矩阵:v,∑
注1:这个模型是由一组清晰图像得到的,用来计算低质量图像与它的距离。
注2:采用高斯分布来处理这些特征有一个基本前提是假设这里所涉及的特征在真实的图像中所反映的也是服从高斯分布的,关于这一点这里没有证明而是假定这是一个事实。
注3:然而在实现时,无论是MATLAB版本还是c++版本,都没做最大似然估计,也没有建立该模型,而是直接求所有清晰图像的均值向量、协方差矩阵的平均值。

E. NIQE Index 最终得分

在这里插入图片描述
由上式即可得出最终得分,v1,∑1是一组清晰图像得到的均值向量和协方差矩阵,v2,∑2是输入的低质量图像得到的均值向量和协方差矩阵。

算法评价

1.MSCN削弱了对纹理的强弱关系依赖 ,但本质还是根据纹理进行评价。
2.最好用同一设备、在同一环境下先测出一组足够清晰的图作为groundtruth,且亮度不能过大。(因为我在实验时发现亮度过大准确率明显降低。)
3.该算法仅采用空间域的特征,有一定局限性。比如严格按照patch的分割方式获得一系列patch,如果将不同patch在空间上的位置进行对调,这样每一个patch都还能符合该算法的要求,但是很显然那是个马赛克状的退化图像。

最后附上论文原文、C++代码、MATLAB代码的GitHub地址:
原文、C++ code、MATLAB code

  • 21
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值