Je veux mettre en œuvre un système où une image d'entrée donnée, il renvoie un similaire similaire (approximation est acceptable) dans un ensemble de données de (environ) 50K images. Les performances temporelles sont cruciales.Vecteur de Fisher avec LSH?
Je vais utiliser une version parallèle de SIFT pour obtenir une matrice de descripteurs D
. J'ai lu à propos de Fisher Vector (FV) (VLfeat et Yael implémentations) comme une alternative d'apprentissage et beaucoup plus précise au sac de caractéristiques (BoF) pour représenter D
comme un seul vecteur v
.
Ma question sont:
- Quelle distance est utilisé pour FVS? Est-ce l'euclidien? Dans ce cas, j'utiliserais LSH en distance euclédienne pour trouver rapidement le voisin proche des FV.
- Il existe un autre FV efficace (en termes de temps) C++ mise en œuvre?
D'après ce que je comprends votre réponse, VLAD sont meilleurs que FV, ce qui me surprend depuis (très utile BTW, merci!) Je pensais que FV était une amélioration de VLAD. C'est une bonne chose, car je ne comprenais pas complètement les GMM. Quoi qu'il en soit, qu'en est-il de l'utilisation de LSH pour les distances E2 (comme [FALCONN] (https://falconn-lib.org/)) pour trouver le ANN? Dernière chose: quelles implémentations de VLAD/FV avez-vous utilisées? – justHelloWorld
J'ai écrit ma propre implémentation basée sur le papier donné. J'ai utilisé OpenCVs BFMatcher pour faire la correspondance, mais vous pouvez remplacer cette partie par n'importe quoi d'autre. Le code est en C++ – s1h
Bien sûr, cela dépend de l'implémentation, mais l'approche VLAD va être plus coûteuse que celle de BoF? – justHelloWorld