Watch out with your eigenvalue analysis - your covariance matrix is limited to rank 500 because you're only using 500 images. Furthermore, the smaller eigenvalues will have eigenvectors with high variance due to the random image sample (ie. "noisy"). If the singular values start to fall off within ~1-3x of your sample size then that's indication you need larger sample - eg. random matrix spectra will still exhibit rolloff in spectra.