您的位置:首页 > Web前端

[VLFeat]Fisher vector提取matlab代码

2015-06-30 09:52 706 查看
fisher vector学习笔记:/article/1961314.html

fisher vector改进:/article/1961316.html

使用vlfeat提取fisher vector的matlab 代码

[code]% 读入图片
I = vl_impattern('roofs1') ;
I = single(vl_imdown(rgb2gray(I))) ;

% 设置bin大小
binSize = 8 ;
% sparse sift中bin大小是根据该层的高斯平滑的尺度sigma计算来的
% dense sift这里是设定binSize,反推sigma
magnif = 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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: