BOW vs FisherVector vs VLAD

来源:互联网 发布:veket linux img 编辑:程序博客网 时间:2024/06/06 03:07


      特征聚合

  • BOW是把特征点做kmeans聚类,然后用离特征点最近的一个聚类中心去代替该特征点,损失较多信息; 
  • fisher Vector. 本质上是用似然函数的梯度vector来表达一幅图像,这个梯度向量的物理意义就是表达了参数往哪个方向修正才能最佳拟合数据,说白了就是数据拟合中对参数调优的过程。以GMM为例,Fisher vector是对特征点用GMM建模,GMM实际上也是一种聚类,只不过它是考虑了特征点到每个聚类中心的距离,也就是用所有聚类中心的线性组合去表示该特征点,在GMM建模的过程中也有损失信息;  令 I=(x1,,xN)D个的特征向量(e.g. SIFT ) . 令Θ=(μk,Σk,πk:k=1,,K) 是对特征进行拟合的K个高斯混合模型的参数. 特征集合中特征xi属于模型k的概率是 :qik=exp[12(xiμk)TΣ1k(xiμk)]Kt=1exp[12(xiμt)TΣ1k(xiμt)].
    对每个模型k, 考虑平均和协方差:
  • ujkvjk=1Nπki=1Nqikxjiμjkσjk,=1N2πki=1Nqik[(xjiμjkσjk)21].

    j是特征个数的下标,那么一副图的FV是将Uk和Vk连接起来  vkvk

    Φ(I)=ukvk.


  • VLAD像BOF那样,只考虑离特征点最近的聚类中心,VLAD保存了每个特征点到离它最近的聚类中心的距离。像Fisher vector那样,VLAD考虑了特征点的每一维的值,对图像局部信息有更细致的刻画; 而且VLAD特征没有损失信息。



0 0
原创粉丝点击