[VLFeat]Fisher vector提取matlab代码

来源:互联网 发布:iphone8 用淘宝就发烫 编辑:程序博客网 时间:2024/05/01 22:18

fisher vector学习笔记:http://blog.csdn.net/happyer88/article/details/46576379 
fisher vector改进:http://blog.csdn.net/happyer88/article/details/46625639

使用vlfeat提取fisher vector的matlab 代码

% 读入图片I = vl_impattern('roofs1') ;I = single(vl_imdown(rgb2gray(I))) ;% 设置bin大小binSize = 8 ;% sparse sift中bin大小是根据该层的高斯平滑的尺度sigma计算来的% dense sift这里是设定binSize,反推sigmamagnif = 3 ;% 对图像做高斯平滑Is = vl_imsmooth(I, sqrt((binSize/magnif)^2 - .25)) ;% f中每一列保留每个sift点位置,d中每一列保留每个sift的128维特征向量[f, d] = vl_dsift(Is, 'size', binSize) ;siftData = double(d);% GMM% GMM中的component个数numClusters = 20 ;% means是GMM的均值,大小128*20% covariances是协方差,大小128*20% priors是每个component的权重,大小20*1[means, covariances, priors] = vl_gmm(siftData, numClusters);% fisher vector% 这里得到的fisher vector大小是(2*128*20=5120)*1, 其中没有包含对权重的梯度encoding = vl_fisher(siftData, means, covariances, priors);
0 0