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.
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.
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