2017-02-11 1 views
1

J'ai une grande archive d'images de la caméra extérieure. Près de 200000 articles, chaque pixel de couleur 1280x960. Je voudrais indexer cette base de données en construisant SVD (Eigen-images) pour ces données et en faisant des vecteurs réduits de données (disons un vecteur de 100 dimensions pour chaque image).Décomposition de valeur singulière incrémentielle pour OpenCV

Chargement de toutes ces données dans la RAM à la fois nécessiterait environ 200 Go de RAM. Premièrement, je n'ai pas beaucoup de RAM. Deuxièmement, il ne sera pas beaucoup échelle. Donc, je suis à la recherche de la mise en œuvre de incrémentale décomposition de vecteur singulier qui devrait probablement exister pour des bibliothèques comme OpenCV ou Eigen. Je ne veux pas réduire la résolution avant de faire SVD parce que je crois que les petites parties (objets lointains résolus) peuvent être importantes pour moi, mais en réduisant la résolution je viens de perdre toutes les caractéristiques haute fréquence.

Upd:

Répondre

1

Je n'ai pas vu une mise en œuvre à l'aide Eigen. Mais il ne semble pas difficile de coder la même méthode que celle utilisée par scikit-learn pour incremental PCA.

+0

L'algorithme est assez simple, c'est pourquoi je pense qu'il pourrait y avoir des implémentations prêtes. – 0x2207

+0

@ 0x2207 vous avez raison, je suppose que c'est juste que personne n'a demandé ou tenté de contribuer cet algorithme à eigen ou opencv. Je pense que les deux sont ouverts aux contributions de la communauté. Tu pourrais essayer de faire ça. – fireant