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);