IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Utilisation de opencv_traincascade


Sujet :

OpenCV

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Par défaut Utilisation de opencv_traincascade
    Bonjour,

    J'ai réalisé un programme qui effectue une détection et un tracking dynamique en permettant à l'utilisateur de naviguer entre les différents classifiers d'un dossier.
    J'utilise pour l'instant les classifiers fournis avec opencv :
    • haarcascade_frontalface_alt2.xml
    • haarcascade_eye_tree_eyeglasses.xml
    • haarcascade_fullbody.xml


    Je cherche maintenant à entrainer mes propres classifier, pour cela opencv fournis "opencv_createsamples" et "opencv_traincascade" que je cherche à utiliser [Documentation]

    J'ai obtenu des résultats utilisable mais pour améliorer les cascades obtenues je suis bloqué par ma compréhension du fonctionnement de ces exécutables.

    Est-ce que quelqu'un sait :

    • Comment sont géré les fonds sur les images positive (ex : une pomme sur un fond noir, est ce que l'entrainement va considérer le fond noir comme partie intégrante de l'image), et comment diminuer l'erreur que les fonds génèrent.
    • Ce que signifie "Required leaf false alarm rate achieved, Branch training terminated." qui est un message que j'obtiens fréquemment lors de l’interruption de la génération d'une cascade et comment modifier les paramètres pour éviter que la génération ne soit interrompue.
    • Si un outil permet de générer les fichiers de description (-bg, -info).
    • Pour réaliser des tests sur des collections de taille plus importante je souhaite utiliser les collections d'image fournies par http://staff.science.uva.nl/~aloi/, rubrique Object image, est-ce que ce type de collection est la plus pertinente pour réaliser un entrainement de cascade ?
    • Si il existe un moyen d'utiliser plusieurs fichiers générés par opencv_createsamples avec en paramètre une unique image qui subit des transformation (paramètre -img au lieu de -info) pour les passer en paramètre à opencv_createsamples.



    OS : windows 7 64b, Ubuntu 12.04
    IDE : QtCreator, VS2008

    Je n'espère pas de réponse à toute mes questions mais la moindre réponse me permettrait de progresser plus vite.

    Merci d'avance pour toute aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Computer Vision engineer
    Inscrit en
    Mars 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Computer Vision engineer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 65
    Par défaut
    Bonjour,

    Ca fait plus de 03 mois que je travaille sur le boosting et le haartraining et je peux te garantir que c'est loin d'etre evident ^^ !!

    A vrai dire pour les positives, ce sont les images qui possèdent la cible a rechercher, et justement cette cible tu dois la localiser ( manuellement ) en faisant un découpage qui te renvoie un fichier .txt (ObjectMarker est impec pour ça), et tout ce joue sur ça, si tu veux une pomme, tache de cropper que la pomme rien de plus, car chaque détail qui apparait après croppage est considéré comme étant une donnée apprentissage POSITIVE ce qui va fausser tes calculs par la suite.


    Pour le FalseAlarm achieved, ça veut dire que le classifieur ne peut plus entrainer des étages surpplémentaire, soit t'as pas suffisamment d'images négatives, soit ta cible ne contient pas suffisament d'occlusions .

    Lol moi franchement j'ai vraiment galéré avec tout ça, mais j'ai réussi a entrainé mes propres cascades avec plus de 20 étages

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Par défaut
    Merci de ta réponse,

    J'ai l'impression que pour augmenter le nombre de stages générés avec succès (en % par rapport au nombre de stages saisis) les rapports :
    nombre d'image negative enregistré / -numNeg (le paramètre de opencv_traincascade.exe)
    et
    nombre d'images positives enregistré / -numPos

    doivent être les plus élevés possible
    Mais avant de lancer une génération pouvant durer 1 semaine j'aimerais bien connaitre ce rapport, enfin si cette idée n'est pas fausse.

    De plus je ne sais pas comment calculer le nombre de stages dont j'ai besoin pour garder un bon ratio précision/souplesse lors de l'utilisation du classifier pour une détection.

    J'ai trouvé un petit tutorial à ce [Lien], je vais essayer de le suivre, dans tout les cas j'y apprendrais sans doute quelque chose.

    En tout cas encore merci pour ton aide.

  4. #4
    Membre éclairé
    Homme Profil pro
    Computer Vision engineer
    Inscrit en
    Mars 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Computer Vision engineer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 65
    Par défaut
    Moi perso j'utilise la commande Haartraining.exe, le ratio le plus important est " Npos/Nneg qui doit etre environ de 0.5.

    Si non pour les étages, tout dépend de la compléxité de ta cible, une relation de proportionnalité.

    Si non regarde ce Tuto référence http://note.sonots.com/SciSoftware/haartraining.html il est pas mal du tout !

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Par défaut
    J'avance pas mal grâce aux exemples mais je pense que les codes fournis dans les exemples sur les liens ont besoin d'être modifié un petit peu.
    Je devrais pouvoir me débrouiller pour terminer le programme d'ici 1 semaine, même si je n'ai pas réussi à tout comprendre sur le fonctionnement des ces fonctions et outils.
    Merci beaucoup de ton aide.

    Ps : ce n'est pas moi qui me suis amusé à mettre des notes négative partout, donc je met un + partout pour contrer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo