2017-07-27 3 views
2

Je ne suis pas tout à fait sûr de savoir comment mettre en œuvre l'approche «sac de mots» avec des descripteurs HOG. J'ai vérifié plusieurs sources qui fournissent généralement plusieurs étapes à suivre:Sac de mots avec des descripteurs HOG

  1. Calculer les Porcs pour l'ensemble des images de formation valides.
  2. Applique un algorithme de clustering pour récupérer n centroïdes à partir des descripteurs.
  3. Effectuez un peu de magie pour créer des histogrammes avec la fréquence des centroïdes les plus proches des HOG calculés ou utilisez l'implémentation OpenCVs pour cela.
  4. train un SVM linéaire avec les histogrammes

L'étape qui implique la magie (3) n'est pas vraiment clair. Si je n'utilise pas OpenCV, comment l'implémenterais-je?

Les HOG sont des vecteurs qui sont calculés par cellule. J'ai donc un vecteur pour chaque cellule. Je pourrais itérer sur le vecteur et calculer le centroïde le plus proche pour chaque élément du vecteur et créer l'histogramme en conséquence. Serait-ce une bonne façon de le faire? Mais si c'est le cas, j'ai encore des vecteurs de différentes tailles et aucun avantage.

Répondre

1

Les principales étapes peuvent être exprimées;

1- Extrayez les caractéristiques de votre ensemble complet d'entraînement. (Fonction HOG pour votre but)

2- Cluster ces caractéristiques dans un vocabulaire V; vous obtenez K centres de cluster distincts. (K-Means, K-Medoid Votre hyperparamètre sera K)

3- Encodez chaque image d'apprentissage comme un histogramme du nombre de fois que chaque élément de vocabulaire apparaît dans l'image. Chaque image est alors représentée par un vecteur de longueur-K.

Par exemple; le premier élément de K peut se produire 5 fois, le deuxième élément de K peut se produire 10 fois dans votre image. Peu importe à la fin, vous aurez un vecteur qui a K éléments.

K [0] = 5 k [1] = 10 .... .... K [n] = 3

4- Former le classificateur à l'aide de ce vecteur. (SVM linéaire)

Lors de l'obtention d'une image de test, extrayez les fonctions. Représentez maintenant l'image de test sous la forme d'un histogramme du nombre de fois que chaque centre de cluster de V était le plus proche d'une entité de l'image de test. C'est à nouveau un vecteur de longueur K.

+0

Merci pour votre réponse! Comment ferait-on cela avec les porcs felzenszwalb? Depuis, ces types de HOGs sont généralement un ensemble de 32 vecteurs dimensionnels. –

+1

Je n'ai pas de solution exacte, peut-être que vous pouvez essayer d'abord la façon la plus simple de calculer la moyenne des vecteurs. Ex: x1 + x2 + ... + xn/n = X et ce X pourrait être votre descripteur de taille fixe. Peut-être que cela ne fonctionne pas, nous pouvons simplement essayer. – BlackCode

+0

Avez-vous essayé une solution pour résoudre ce problème? Si vous avez une solution, pouvez-vous partager avec nous? Merci – BlackCode