Search code examples
matlabvectornormalizationvlad-vector

Power normalization step for VLAD vector representation


I am doing a Power normalization step for VLAD vector representation v. The un-normalized VLAD vector for an image in my experiment is of 8192x1 dimension [Considering 128-D SIFT descriptors, and K (centroids) = 64].

Power-law normalization modifies each component as:

v_i = sign(v_i) x |v_i|^alpha, i = 1, ..., (k*d)

I have written a piece of code to Power-normalize the un-normalized VLAD vector v:

for i = 1:(k*d)
    v(i) = sign(v(i)) * (abs(v(i)))^alpha;
end        

alpha = 0.5, is a parameter here.

May I know if I am correct with this?
or
I feel on second thought, should norm replace abs?


Solution

  • It's "abs"

    Reference: All about VLAD

    To obtain the SSR normalized VLAD, each element of an unnormalized VLAD is sign square rooted (i.e. an element x_i is transformed into sign(x_i)*sqrt(|x_i|) )