How can PCA be used for SIFT or VLAD vectors?

990 views Asked by At

I'm reading a lot of papers about VLAD and Fisher Vectors (FV). In particular, in this paper (and essentially every paper talking about the topic) the authors use PCA for reducing SIFT, VLAD and FV dimensions.

However, from what I understand PCA involves computing the eigenvalues of the covariance matrix, and we can compute eigenvalues only for square matrices.

Now, supposing that we want to compute PCA for 1M SIFT vectors. How can we compute PCA on a 1Mx128 matrix?

My understanding from this question that SVD is an alternative, but I'm quite surprised since nobody in any papers have ever talked about PCA! Did I miss something?

1

There are 1 answers

2
JARS On

Implementations of VLAD and Fisher Vectors effectively tend to use PCA to reduce the dimensionality of the image patches. Most papers report typical values are DIM=64 and using 1M patches which effectively makes it difficult to apply SVD directly.

I have seen implementations of PCA for SIFT which use the iterative algorithm reported here: https://en.wikipedia.org/wiki/Principal_component_analysis#Iterative_computation.