广义高斯分布(GGD)和非对称广义高斯分布(AGGD)

Posted dilthey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了广义高斯分布(GGD)和非对称广义高斯分布(AGGD)相关的知识,希望对你有一定的参考价值。

 《No-Reference Image Quality Assessment in the Spatial Domain》,BRISQUE。

 

1. 广义高斯分布,generalized Gaussian distribution,GGD

1.1 描述

零均值的广义高斯分布如下:

技术图片

 其中

技术图片

而 Γ(·) 是gamma函数。

形状参数 γ 控制分布的“形状”,而 σ² 控制方差。

例如另 γ = 2 就会得到零均值的高斯分布:

技术图片

 

 

首先记

技术图片

 

技术图片

因此

技术图片

 

就得到了一个比函数:

技术图片

 

1.2 估计方法

对于零均值广义高斯分布,计算估计值:

技术图片

 

 然后就有

技术图片

 

在知道了 ρ(γ) 的估计值之后,就很容易通过枚举的方式来估计 γ。

 

1.3 代码

参考BRISQUE中给出的源代码:

function [gamparam sigma] = estimateggdparam(vec)
gam                              = 0.2:0.001:10;
r_gam                            = (gamma(1./gam).*gamma(3./gam))./((gamma(2./gam)).^2);

sigma_sq                         = mean((vec).^2);
sigma                            = sqrt(sigma_sq);
E                                = mean(abs(vec));
rho                              = sigma_sq/E^2;
[min_difference, array_position] = min(abs(rho - r_gam));
gamparam                         = gam(array_position);

 

 

2. 非对称广义高斯分布,asymmetric generalized Gaussian distribution,AGGD

2.1 描述

零均值的非对称广义高斯分布如下:

技术图片

 

 其中

技术图片

形状参数 α 控制分布的“形状”,而 σl2 和 σr2 是缩放参数,它们控制模式两边的扩散程度。当 σl2 = σr2 的时候,AGGD退化成GGD。

参考论文《MULTISCALE SKEWED HEAVY TAILED MODEL FOR TEXTURE ANALYSIS》的做法:

技术图片

 

技术图片

 

因此

技术图片

所以记

技术图片

 

就有

技术图片

 类似地

技术图片

 

然后计算比值:

技术图片

 

其中

技术图片

 

 

2.2 估计方法

首先估计 σl2 和 σr2 :

技术图片

 

所以

技术图片

 

而 r 的一个无偏估计是

技术图片

 

所以就可以

技术图片

 

求得

技术图片

 

然后就和上文的GGD的方法一样,枚举求出最优的 α 就可以了。

 

2.3 代码

也是来自BRISQUE的matlab代码:

function [alpha leftstd rightstd] = estimateaggdparam(vec)
gam   = 0.2:0.001:10;
r_gam = ((gamma(2./gam)).^2)./(gamma(1./gam).*gamma(3./gam));

leftstd            = sqrt(mean((vec(vec<0)).^2));
rightstd           = sqrt(mean((vec(vec>0)).^2));
gammahat           = leftstd/rightstd;
rhat               = (mean(abs(vec)))^2/mean((vec).^2);
rhatnorm           = (rhat*(gammahat^3 +1)*(gammahat+1))/((gammahat^2 +1)^2);
[min_difference, array_position] = min((r_gam - rhatnorm).^2);
alpha              = gam(array_position);

 

以上是关于广义高斯分布(GGD)和非对称广义高斯分布(AGGD)的主要内容,如果未能解决你的问题,请参考以下文章

在MATLAB中,已知2个参数,画出广义高斯分布的曲线,求高手贴出程序,万分感谢!!

广义线性模型

机器学习算法总结——广义线性模型(线性回归,逻辑回归)

机器学习笔记—再谈广义线性模型

单高斯模型SGM & 高斯混合模型GMM

概率统计笔记:高斯分布的等高线