Bonjour , pour un projet de stage je dois détecter des porcs sur une vidéo. Je suis débutant sur OpenCv et d'une manière plus générale sur le traitement d'images.*
J'ai essayé deux approches, une basée sur la méthode de Viola et Jones et une en utilisant la couleur et les contours des cochons.
Commençons avec la première,
J'ai entraîné une cascade avec 35 images positives de cochons comme celle là :
https://drive.google.com/file/d/0BwH...ew?usp=sharing
ou celle là :
https://drive.google.com/file/d/0BwH...ew?usp=sharing
mes 25 images négatives sont le fond de l'image sans cochon comme cela :
https://drive.google.com/file/d/0BwH...ew?usp=sharing
Voila la commande pour créer le classifieur :
haartraining.exe -data cascades -vec vector/vector.vec -bg negative/bg.txt -npos 35 -nneg 25 -nstages 15 -mem 1024 -mode ALL -w 24 -h 24 -bt DAB
Mon programme de detection :
cascade.detectMultiScale( frame, faces, 1.1, 1, 0|CASCADE_SCALE_IMAGE, Size(150, 150) );
Le problème est que il detecte plusieur cochons au lieu d'un seul comme vous pouvez le voir içi :
https://drive.google.com/open?id=0Bw...WtFYU12NTNFemc
Je voudrais savoir si vous pensez que je m'y prend mal ou que mon classifieur n'a juste pas assez d'images ?*
Pour ma seconde approche
J'ai segmenté mon image en deux régions avec la couleur des cochons.
Aucun soucis pour cela :
https://drive.google.com/file/d/0BwH...ew?usp=sharing
Mais je voudrais utiliser les contours pour séparer les cochons qui se touchent.
Le problème est que les contours sont soit trop nombreux ou soit ils ne séparent pas les deux cochons :
Trop nombreux :
https://drive.google.com/file/d/0BwH...ew?usp=sharing
Pas assez :
https://drive.google.com/file/d/0BwH...ew?usp=sharing
Connaissez vous une technique pour pouvoir les séparer ?
N'importe quel aide me sera utile, je vous remercie par avance.
Partager