2011-10-04 3 views
11

Je voudrais savoir, s'il y a du code ou de la bonne documentation disponible pour implémenter des fonctionnalités HOG? J'ai essayé de lire la documentation here mais il est assez difficile à comprendre et il a besoin .. SVMHOG pour "détection d'objet" opencv

Ce que je besoin est juste de mettre en œuvre un détecteur de HOG pour les objets .... Comme quoi il ne SIFT ou SURF

BTW, je ne suis pas intéressant dans this travail.

Merci ..

+0

Je suis un peu en retard mais pour un exemple simple et direct VOIR: http://stackoverflow.com/questions/6090399/get-hog-image-features-from-opencv-python – jmunsch

Répondre

4

vous pouvez jeter un oeil à http://szproxy.blogspot.com/2010/12/testtest.html

il a également publié "tutoriel" pour HOG sur SourceForge ici: http://sourceforge.net/projects/hogtrainingtuto/?_test=beta

Je sais cela depuis que je suis avoir le même problème que vous. Le tutoriel n'est pas ce que j'appellerais un tutoriel, c'est un tas de codes source, pas de documentation, mais je suppose que cela fonctionne et peut au moins vous amener quelque part.

+0

Merci pour votre réponse , mais pour détecter les gens, il y a déjà implémenté un tutoriel dans les exemples de open source open source, mais je ne connais pas les paramètres requis pour détecter les objets. – Mario

1

A la fin et en simplifiant un peu, tout ce dont vous avez besoin pour détecter des objets spécifiques dans l'image est la suivante:

  • Localize « points d'intérêt » pour extraire les patches:

Pour obtenir des points d'intérêt, vous pouvez utiliser des algorithmes comme Harris détecteur de coin, au hasard ou quelque chose comme des fenêtres coulissantes.

  • De ces points obtenir les patchs:

Vous devrez prendre la décision volontaire de la taille du patch. À partir de ces correctifs, le descripteur de fonctionnalité est calculé à l'aide de ces correctifs.

  • (comme HOG).

Au lieu de HOG vous pouvez utiliser un autre descripteur de fonction comme SIFT, SURF ...
la mise en œuvre du HOG est pas trop dur. Vous devez calculer les gradients du patch extrait en appliquant les noyaux Sobel X et Y, après quoi vous devez diviser le patch dans les cellules NxM, par exemple 8x8, et calculer un histogramme des gradients, de l'angle et de la magnitude. Dans le lien suivant vous pouvez le voir explication plus détaillée: HOG Person Detector Tutorial

  • Vérifiez votre vecteur caractéristique dans le classificateur préalablement formé

Une fois que vous avez obtenu ce vecteur, vérifier si elle est l'objet désiré ou non avec un classificateur précédemment formé comme SMV. Au lieu de SVM, vous pouvez utiliser NeuralNetworks par exemple.

L'implémentation de SVM est plus difficile, mais il existe des bibliothèques comme opencv que vous pouvez utiliser.