Je suis intéressé par la création de mon propre fichier xml de cascade haar, à utiliser avec python, pour détecter un certain logo (disons que c'est le logo de la pomme).
J'ai essayé de suivre les instructions à http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html et http://note.sonots.com/SciSoftware/haartraining.html
Le problème est que, bien que j'obtienne un fichier cascade valide et fonctionnel, il ne détecte rien. Plus précisément, lorsque j'essaie de détecter l'objet à l'intérieur de l'image originale utilisée pour le créer, il n'est même pas détecté.
J'ai déjà essayé de redimensionner l'image, ou simplement de la placer dans un contexte plus large en l'insérant dans une photo.
qu'est-ce que je fais mal ?
à la coquille, je cours :
opencv_createsamples -img original.jpg -bg negatives.dat -vec samples_set.vec -w 48 -h 48
opencv_traincascade -bg negatives.dat -data mycascade -vec samples_set.vec -w 48 -h 48
ce qui semble fonctionner correctement, en créant un fichier en cascade. Puis, en python :
import cv2
cascade2 = cv2.CascadeClassifier('mycascade.xml')
cv2Image = cv2.imread('original.jpg')
cascade2.detectMultiScale(cv2Image)
et la détection ne donne rien. J'ai essayé de tester avec un xml "standard" fourni avec python et cela fonctionne, donc quelque chose ne va pas avec le mien.