BRISQUE

原理

朴素原理:自然无损的图像之间他们的某些统计属性更接近,而非寻常的人工图像(或是内容非自然或者自然图像经过失真处理)则不符合经验分布,比如下面两个图,左侧的图像亮度符合高斯,而人为的图像则不符合。于是有别于通过识别不同distortion类型判断失真程度,比如 blur、noise、compression , 我们还可以通过与自然图像的总体统计值的偏差deviation 来评估感知质量。

Underlying Gaussianity of natural images

BRISQUE则是属于后者的一类 通过分析NSS的无参图像评估 方法。

Natural Scene Statistics(NSS)本译作自然场景统计,但由于自然场景往往同时也是指观察或者拍摄到的图像,所以我们这里暂且称呼为自然图像统计。自然场景统计的规律性在视觉科学文献中已经很好的阐述,其中在空域和小波域中已经得到了证明。

自然图像有别于随机生成的噪声图像,失真的图像,以及很大一部分计算机图形学生成的图像等等,是指人眼或相机在自然界能够观察或拍摄到的清晰的图像[1]。自然图像实际上相对数量非常少,如果我们考虑给定大小的图像存在多少种可能性,仅仅是64x64大小(最大像素值255)的图像就有大约有 1010000 种可能性,其中包括绝大多数噪声图像,而自然图像只占据整个图像空间(image space)的极小一部分,因此被类比为“啤酒泡沫”[2]。自然图像就像啤酒泡沫一样,看似多种多样,其实只占所有图像中一小部分

输出特征

在BRISUQE模型中引入了一个基于 a new model of the statistics of pair-wise products of neighboring (locally normalized) luminance values. 的统计量,不仅进一步量化图像的自然度“naturalness”, 还能评估distortion quality 失真度

  1. locally normalized luminance coefficients in the spatial domain

    1. feat :MSCN
    2. fit :GGD
    3. parameter : α σ
  2. pairwise products of these coefficients. along four orientations

    1. feat : MSCN*neighbor MSCN
    2. four orientations :
      1. horizontal (H ), H (i, j) = I(i, j)I(i, j + 1)
      2. vertical (V ), V (i, j) = Iˆ(i, j)Iˆ(i + 1, j)
      3. main-diagonal (D1) ,D1(i, j) = Iˆ(i, j)Iˆ(i + 1, j + 1)
      4. secondary-diagonal (D2),D2(i, j) = Iˆ(i, j)Iˆ(i + 1, j − 1)
    3. fit :AGGD
    4. parameter : v μ σl σr
    image-20240813012433491

    因此总共输出 2+4*4=18 个参数,这些参数作为特征输出,进行以上步骤后再对原图像做0.5倍下采样,再提取一次特征,因此,共得到36个特征参数。

    总体流程

    image-20240816204626147

algorithm

MSCN coefficient : mean subtracted contract normalized coefficient

文章中的 就是 MSCN coefficient 。(i,j)为 (y,x),其计算公式为: 均值 计算,使用高斯滤波计算,wendow size=7,也就是K = L = 3 然后在均值的基础上计算标准差 standard deviation, 这里的标准差也通过高斯滤波得到君主标准差

python code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def cal_mscn(grayimg):
im_original=grayimg.copy()
im = im_original.copy()
# normalize the image
im = im / 255.0

# calculating MSCN coefficients
mu = cv2.GaussianBlur(im, (7, 7), 1.166)
mu_sq = mu * mu
sigma = cv2.GaussianBlur(im * im, (7, 7), 1.166)
sigma = (sigma - mu_sq) ** 0.5

# structdis is the MSCN image
structdis = im - mu
structdis /= (sigma + 1.0 / 255)
return structdis

def shift_mscn(img,shifty=0,shiftx=0):
img=np.roll(img,shifty,axis=0)
img=np.roll(img,shiftx,axis=0)
return img

example

image-20240816205435767

MSCN distribution

对统计的fig2自然图像MSCN绘制直方图,像下面这样,mscn更接近一种高斯分布,后续可以用GGD进行拟合,对于 mscn相乘的结果,则用AGGD进行拟合

image-20240816205609727

GGD fit : generalized Gaussian distribution

GGD function

从fig1中可以看到自然和非自然图像的MSCN分布是存在差异的,在beisqe算法中采用GGD来对该分布进行拟合

is the gamma function

GGD parameters

GGD共有两个参数 :

  1. α : 控制分布的形状
    1. α=2 为零均值的高斯分布
    2. α越小,越锋利,接近laplacian 分布
  2. σ: 控制方差/标准差
相同方差不同形状参数的GGD
广义高斯分布(GGD)非对称广义高斯分布(AGGD)

generalized Gaussian distribution & asymmetric generalized Gaussian distribution

广义高斯分布(generalized Gaussian distribution,GGD)和非对称广义高斯分布( asymmetric generalized Gaussian distribution,AGGD)被经常使用与图像/视频信号的统计分析,其形状参数常被用为图像的特征进行分类或回归。

  1. GGD : α ,σ

    广义高斯分布,在高斯分布基础上,增加了形状的调整参数 α,会影响峰度

is the gamma function Probability density plots of generalized normal distributions

  1. AGGD : v, σl, σr

    非对称广义高斯分布,在广义高斯分布基础上,增加了偏态调整参数 σl、σr, 分别控制左右两边的扩散程度

where Probability density plots of generalized normal distributions

峰度kurtosis 和 偏度skewness
  • 峰度

峰度 ≈ 0表示该总体数据分布与正态分布的陡缓程度相同;

峰度 >0表示该总体数据分布与正态分布相比较为陡峭,为尖顶峰

峰度 <0表示该总体数据分布与正态分布相比较为平坦,为平顶峰

峰度的绝对值数值越大表示其分布形态的陡缓程度与正态分布的差异程度越大。

img
  • 偏度skewness

这个统计量同样需要与正态分布(也叫常态分布)相比较,

偏度 ≈ 0表示其数据分布形态与正态分布的偏斜程度相同;

偏度 >0表示其数据分布形态与正态分布相比为正偏(右偏),即有一条长尾巴拖在右边,数据右端有较多的极端值,数据均值右侧的离散程度强;

偏度 <0表示其数据分布形态与正态分布相比为负偏(左偏),即有一条长尾拖在左边,数据左端有较多的极端值,数据均值左侧的离散程度强

偏度的绝对值数值越大表示其分布形态的偏斜程度越大。

img
example

For example, blur creates a more Laplacian appearance, while white-noise distortion appears to reduce(原文是不是写错了) the weight of the tail of the histogram.

image-20240812215332505

GGD fit

采用 moment-matching 方法(该方法的基础来源于 概率论- 点估计 -矩估计法) 来估计 α 和σ参数, 主要源自 Estimation of Shape Parameter for Generalized Gaussian Distributions in Subband Decompositions of Video 这篇文章的结论

参考自:https://blog.csdn.net/sinat_36438332/article/details/88363492

零均值的广义高斯分布:(原文献中, α 用γ替代)

is the gamma function

  1. 首先 σ 是标准差,可以通过 下列公式得到: 右侧的公式可以计算得到

  1. α 是间接求解得到的

    首先有以下结论: 左侧的公式可以计算得到

    !!!!!!! important : ρ , α , σ

随后就是已知 求解α

利用查找匹配的方法确定 α。具体过程如下: 1)给出候选的α :设定α 的查找区间,如[0.2:0.001:10]即α 在(0.2,10)区间范围每隔0.001取值。 2)将所有α 代入式(4)右边计算ρ ( α ) 3)计算所有ρ ( α ) 与步骤3得出估计值的距离,选取距离最小对应的α 即为所求。

AGGD fit

MULTISCALE SKEWED HEAVY TAILED MODEL FOR TEXTURE ANALYSIS

参考资料:https://blog.51cto.com/u_15082391/4077039

AGGD formula: where

  1. 首先估计σ

  1. 计算 v

    定义几个变量

    1. γ :(可求)

    2. k-order moment + k-order absolute moment:

  2. r

  3. ρ

    由r的公式得到: ρ和 v 的关系

    同样的方法就可求出v

example

image-20240813010103349

SVM classifier

算法评价

ref https://blog.csdn.net/weixin_45682889/article/details/108739906

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