Fisher Vector(FV)原理

Fisher Vector(FV)是一种类似于BOVW词袋模型的一种编码方式,如提取图像的SIFT特征,通过矢量量化(KMeans聚类),构建视觉词典(码本),FV采用混合高斯模型(GMM)构建码本,但是FV不只是存储视觉词典的在一幅图像中出现的频率,并且FV还统计视觉词典与局部特征(如SIFT)的差异。在讲解Fisher Vector(FV)之前,先对FV有一个总体的认识,先看一下FV的代码实现。

FV采用GMM构建视觉词典,为了可视化,这里采用二维的数据,当然这里的数据可以是SIFT或其它局部特征,具体实现代码如下:

%采用GMM模型对数据data进行拟合,构建视觉词典
numFeatures = 5000 ;            %样本数
dimension = 2 ;                 %特征维数
data = rand(dimension,numFeatures) ; %这里随机生成一些数据,这里data可以是SIFT或其它局部特征

numClusters = 30 ;  %视觉词典大小
[means, covariances, priors] = vl_gmm(data, numClusters); %GMM拟合data数据分布,构建视觉词典
这里得到的means、covariances、priors分别为GMM的均值向量,协方差矩阵和先验概率,也就是GMM的参数

这里用GMM构建视觉词典也存在一个问题,这是GMM模型固有的问题,就是当GMM中的高斯函数个数,也就是聚类数,也就是numClusters,若与真实的聚类数不一致的话,GMM表现的不是很好(针对期望最大化EM方法估计参数),具体请参见GMM。

接下来,我们创建另一组随机向量,这些向量用Fisher Vector和刚获得的GMM来编码,具体代码如下:

numDataToBeEncoded = 1000;
dataToBeEncoded = rand(dimension,numDataToBeEncoded);
encoding = vl_fisher(datatoBeEncoded, means, covariances, priors);



如上代码片段中的encoding就是dataToBeEncoded数据的FV表示。为了提升性能,FV表示还要经过白化与归一化,具体参见VLFeat
现在我们已经对FV已经有了一个整体的认识,下面讲述FV的原理。
现设

为从图像中提取的一个D维的特征向量(如SIFT描述子等),设
为高斯混合模型GMM拟合描述子概率分布所得的参数。在得到GMM的参数后,GMM也就确定了。现在给定一个特征描述子向量,它属于某个高斯分布(GMM中共有K个高斯分布函数)的后验概率为:

对于每个模式k(也就是GMM中的单个高斯分布),考虑均值和协方差偏差向量,得到:

在上式中

把GMM中的每个模式按先向量后向量的形式级联起来,便得到图像的FV特征表示如下:

为了提升FV性能,得到的FV还要经过白化,Power Normalization和归一化。为了提升计算效率,当某个特征向量对应的很小到可以忽略时,直接被设置为零,这样在计算的过程中便少计算了一个模式,当大部分为零时,可以明显提高计算效率。至此,FV的原理算是讲完了。但是还有一点需要注意的是,FV还有一种实现方法,它被看成是Fisher Kernels (FK) 的一种特例。

FK推导了一种数据和拟合数据得到的生成模型,由生成模型产生的数据之间的相似性测度。生成模型的参数是通过最大似然估计(MLE)得到的。一旦生成模型被确定后,每个特定的数据都是通过观察它如何影响MLE参数估计来表示的。这个影响测度可以通过计算相应的数据的对数似然函数的梯度得到:

协方差矩阵可以通过生成模型得到(由生成模型生成的数据已经被中心化)如下所示:

注意,H也是模型的Fisher信息矩阵。最终的FV编码由对数似然函数的白化梯度给出:

取两个这样的向量的内积产生Fisher核:

可以看出,FV编码相当于FK的映射函数。

参考:

1. 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut

2. 漫谈 Clustering (3): Gaussian Mixture Model

3. Fisher Vector and VLAD 4. Fisher vector fundamentals

5. 判别式模型和产生式模型 (discriminative model and generative model)

6. Fisher Vector

7. Fisher Kernel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值