Hi, I have training samples 4611x4096. Where number of samples = 4611 and number of features = 4096. Now, I want to apply Block circulant decomposition methods to improve my detection results. But I don't understand that how to write the code in MATLAB for my data sample according to the  algorithm that I got in the following paper.

http://home.isr.uc.pt/~henriques/publications/henriques_iccv2013.pdf. What is s1 and s2? Why permutation? Can someone explain the following codes. 

Inputs:

• X (m features on a s1 × s2 grid for n samples,

total size s1 × s2 × m × n)

• Y (labels, size s1 × s2 × n)

• regression (a linear regression function)

Output:

• W (weights, size s1 × s2 × m)

X = fft2(X) / sqrt(s1*s2);

Y = fft2(Y) / sqrt(s1*s2);

Y(1,1,:) = 0;

X = permute(X, [4, 3, 1, 2]);

Y = permute(Y, [3, 1, 2]);

for f1 = 1:s1

for f2 = 1:s2

W(f1,f2,:) = regression( ...

X(:,:,f1,f2), Y(:,f1,f2) );

end

end

W = real(ifft2(W)) * sqrt(s1*s2);

More Farhad Bulbul's questions See All
Similar questions and discussions