How to use VLfeat to do VLAD-k encoding?

2 views (last 30 days)
Yi Zhu
Yi Zhu on 28 May 2016
Answered: ahmed shahin on 20 Aug 2021
Hi everyone, I want to use VLfeat library to do VLAD-k encoding of image features. They have a simple tutorial online at here (<http://www.vlfeat.org/overview/encodings.html)>. But the tutorial is a little vague for me to follow. In addition, the example is for VLAD with nearest neighbor, not VLAD-k. So could anyone write an example of VLAD-k using VLfeat for me? Thanks a lot.
  1 Comment
Yi Zhu
Yi Zhu on 28 May 2016
VLAD-k exmaple I wrote, is this correct? Especially for the assignment step? Thanks.
numFeatures = 5000 ;
dimension = 2 ;
data = rand(dimension,numFeatures) ; % Data is used to train the VLAD encoding
numDataToBeEncoded = 1000;
dataToBeEncoded = rand(dimension,numDataToBeEncoded);
numClusters = 30 ;
centers = vl_kmeans(data, numClusters);
kdtree = vl_kdtreebuild(centers) ;
nn = vl_kdtreequery(kdtree, centers, dataToBeEncoded,'NUMNEIGHBORS', k) ; % k is the number of nearest neighbors
assignments = zeros(numClusters,numDataToBeEncoded);
assignments(sub2ind(size(assignments), nn, 1:length(nn))) = 1; % is here still correct for VLAD-k? nn is a matrix now
enc = vl_vlad(dataToBeEncoded,centers,assignments);

Sign in to comment.

Answers (1)

ahmed shahin
ahmed shahin on 20 Aug 2021
Dear Zhu
what is the value of k?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!