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 :

Suivi et comptage dans une vidéo


Sujet :

OpenCV

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Suivi et comptage dans une vidéo
    Bonjour,

    Je suis nouveau sur le forum, j'étudie en iut et je suis actuellement en stage.

    Je dois réaliser un dispositif de comptage routier, permettant de distinguer les 2 roues des autos, camions, piétons ... J'utilise pour cela OpenCV sous Ubuntu.

    Suite à mes recherches, j'ai tenter 2 methodes :

    1 - reconnaisance avec haarcascades : efficace seulement sur image fixe car sur limage video suivante, il recompte ! Et impossibilité de créer un fichier xml valide décrivant un 2 roues ! le programme entre en boucle infinie au bout de 22 stages ...

    2 - le blobTracking, avec le programme fourni blobtrack.cpp, j'isole les blobs d'une certaine dimension et les comptabilises, cette methode est la plus efficace des 2 car elle poursuit le vehicule au cours de son appartition sur la zone filmée et donc ne le compte qu'une seule fois ( et encore !! ) par contre si un autre objet aux meme dismension apparait, elle le comptee aussi

    Je ne suis pas très doué en maths et je debute en C++ et traitement de l'image, et donc j'aimerais savoir comment faire pour utiliser les 2 méthodes simultanément, c'est à dire :

    je détecte un 2 roues ( avec haarcascades par exemple )
    => je lance le suivi
    => quand il sort de l'image, j'incrémente le compteur

    Toute une galère pour juste faire un "+1" !!!

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    si ta cam est fixe pourquoi ne pas travailler sur une ROI, tu fixe la ROI sur la zone d'arrivée du véhicule et tu travaille dessus.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Salut,
    Est-ce que tu peux donner un peu plus d'info s'il te plait. Est-ce que la camera est fixe? Tu traques les 2 roues dans les 2 sens ou que dans 1?
    Sinon je travaille sur du tracking aussi en ce moment et je pense (je n'ai pas regarde le detail du code de blobtracking) qu'il vaudrait mieux que t'implemente un tracker simple (kalman existe deja sous OpenCv) et que tu l'adapte pour que quand tu detectes un objet avec haarcascade tu lance une instance du tracker sur cet objet et t'incremente de 1 une fois que les coordonnees renvoyees par le tracker ne sont plus dans l'image (fin a toi de voir pour ca...).
    En tout cas je pense que ca devrait poser aucun probleme. Je travaille en ce moment sur le filtre de Kalman alors si jamais tu veux suivre cette voie je peux te filer des infos.
    Bonne chance.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci de vos réponses,

    La Cam est fixe, en sur un pont a gauche et au dessus de la chaussée, je vois donc les vehicules arriver sur une diagonale, je les traques dans un seul sans à la fois, pour le moment je suis entrain de calculer ma cascades, c'est vraiment long ! Cependant je me suis baser sur un exemple tout fait : http://www.cognotics.com/opencv/down...per/index.html , le fonctionnement est simple, mais je ne peu suivre (en théorie, tant que la cascade n'est pas finie) qu'un vehicule à la fois ( je n'ai pas encore creusé pour plusieurs, vos idées sont les bienvenues ...)

    Pour ce qui est des filtres de Kalman, je n'est vraiment pas compris comment cela fonctionner et comment je pourrais m'en servir !!!

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Le filtre de Kalman est une methode pour tracker des objets, mettons pour faire simple que tu reussise ta segmentation et que t'arrive a recuperer le centre de gravite de l'objet que tu veux suivre. Tu peux alors passer au filtre de Kalman ces valeurs a chaque frame et ca traquera ton objet. Et pour ce qui est du probleme de plusieurs objets le filtre de Kalman marchera tres bien, le seul souci qui te reste c'est la segmentation et pour ca bonne chance.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci pour ton explication Glen, j'ai enfin saisi le principe de Kalman, cependant le calcul de mon haarcascade a tourné pendant les 3 jours de ce beau week end à ralonge, mais n'est toujours pas terminé !! J'ai 3 images positives et 16 négatives, est-ce normal ? (je ne pense pas !) N'y aurait-il pas une manière plus simple d'y arriver ?

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Je n'ai jamais utilise haarcascade mais j'ai entendu dire que ca pouvait etre tres long donc peut-etre que c'est normal. Je ne peux pas vraiment t'aider avec ca.

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    ben 3 jours c'est le temps qu'il a falu pour faire le xml du detect face avec un bi xéon de 3ghz donc bon à moins que tu en sois doté la patience est de mise ^^

    je proposerais plutot une soustraction d'image, tu prends la route sans personne puis la route à un instant donné et tu soustrais les deux. Si le résultat est zero tu as rien, sinon tu aura l'objet en question, tout ca bien sur en travaillant sur une ROI pour éviter de compter plusieurs fois le même véhicule, haar est très lourd à faire tourner d'après ma faible expérience.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    pour snowpy :

    J'avais penser a ton histoire de soutraction, cependant lorsqu'un autre vehicule, ou pieton ... passe sur la chausse, la differnce n'est pas nulle, or je ne m'interresse qu'au 2 roues ! Il faut donc forcément les reconnaitres

  10. #10
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    un deux roues a une taille bien spécifique ^^

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Hélas non ! Selon si celui-ci ce trouve a gauche ou a droite de la chausse, il est aussi facilement confondu avec un pieton en vue diagonale ! Un vrais casse tete qui me pollu le cerveau depuis 3 semaines !!!

  12. #12
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Je pense que sylvain_r a raison, la difference de frame ne marchera pas ou dumoins ne sera pas assez robuste. Moi je resterai sur l'idee du haarcascade pour detecter les objets (c'est deloin la methode la plus fiable pour etre sur qu'un objet est d'un certain type, ici un 2 roues). D'apres ce que j'ai compris une fois le xml termine ce n'est pas un traitement trop lourd donc je pense que ca devrait fonctionner pas mal. Il y a ca sur le net :
    http://www.docstoc.com/docs/6779342/...ars-in-traffic
    J'ai pas pu regarder mais a premiere vue ca ressemble a ce que t'essaye de faire. Ca pourra peut-etre t'aider. Si jamais t'arrive a passer l'etape de reconnaitre un 2 roues je peux t'aider a accelerer le traitement en utilisant le fitre de Kalman.
    Bonne chance.

  13. #13
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    la problématique est très bien mise en avant dans ton lien glen, pour utiliser un filtre de haar il te faut énormément de photo de chaque type de véhicule (ici mobilette, moto, roaster .....) mais si cela ne te fais pas peur ca fonctionne très bien (c'est très lourd en fonctionnement). Ce qui m'intrigue c'est comment tu vas faire pour différencier un véhicule comptabiliser d'un autre, tu comptes suivre un à un les véhicules ??? (ce qui impose d'extrapoller la direction des véhicules sans pour autant oublier qu'un véhicule peut changer de voie)

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci pour ton lien glen1789, c'est vraiment le truc que je cherche a faire ! Je ne sais pas comment tu a trouver cette doc mais grand merci !!


    Pour snowpy, en fait je compte comme tu l'as dis, détecter les 2 roues sur l'image (avec haarcascade), à savoir une portion de route d'environ 5m de long, sur 8m de large, de le suivre sur l'image (cvCamShift), et des lors qu'il n'est plus detecté, j'incrémente mon compteur, c'est ce qui me parait le plus simple ...

    J'ai d'abord essayer avec 60 images de 2 roues, et 400 images negatives, de routes avec seulement des voiture par exemple, biensur a pres 1 semaine, le calcul n'avancé plus, en ce moment ( depuis 3 jours ), j'ai fais un test avec 3 images positives et seulement 16 négatives ! Il tourne toujours ...

  15. #15
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    faudra pas oublier de comparer ton haar à ton camshift (histoire de pas tracker 100 fois la même mobylette) , c'est un peu tordu mais ca fonctionne en theorie ^^

    bon courage pour la génération du xml

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Pour vous tenir un peu aux nouvelles : mon programme est je pense en bonne voie, je peut compter les visages dans une video (pour verifier le fonctionnement) mais le haartraining n'est toujours pas terminé, apres bientot 5 jours ! Il bloque au stage 19 depuis hier matin comment faire ?

    PS : je viens de trouver le site http://www.haartraining.com/ quelqu'un connais ?

  17. #17
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    A premiere vue ce site propose de faire le haar training sur leurs serveurs. Avantages: -leurs serveurs sont beaucoup plus rapident et ils garantissent de reduire de 20 fois le temps d'execution (il parle de passer d'une semaine a qelques heures)
    -ils ont deja a disposition leurs propres images pour faire du training

    Inconvenients: C'est bien sur un service payant.

    Mais sinon comme je viens de le voir ta situation,5 jours, c'est a peu pres normal et desfois ca peut depasser une semaine.
    Bonne chance et tiens nous au courant.

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Je veut bien que le calcul dure 5 jours pour un nombre d'image important mais là, ce n'est pas le cas, 3 positives, 16 negatives ! Bref je vais attendre encore 1 ou 2 jours si sa n'avance pas j'iré demander un budjet pour le faire via le site.

  19. #19
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Je pense que tu as raison d'attendre parce qu'apres y avoir deja laisse 5 jours ca ferait mal de l'arreter juste avant que ca se termine. Mais voila si jamais ca avance pas t'as toujours cette deuxieme solution.

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Sa y est le haartraining a fonctionné, en fait je l'ai relancer avec un -nstages de 15 ... Cependant j'ai encore une question, vaut-t-il mieux avoir un grand nombre d'image et un -nstages petit ( 15 a 20 ) ou un moins grand nombre d'images et un -nstages plus grand, pour biensur obtenir le plus de precision possible ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Suivi des mains dans une vidéo
    Par toppolino dans le forum OpenCV
    Réponses: 14
    Dernier message: 10/04/2012, 19h31
  2. incrustation logo dans une vidéo de manière "automatique"
    Par samtheh dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 09/10/2007, 19h45
  3. [FLASH 8] [AS] Déplacement dans une vidéo
    Par levit dans le forum Flash
    Réponses: 2
    Dernier message: 31/03/2007, 16h48
  4. Double comptage dans une même table
    Par Patoune dans le forum Langage SQL
    Réponses: 5
    Dernier message: 22/03/2007, 17h49
  5. TMediaPlayer et positionnement dans une vidéo
    Par kurul1 dans le forum C++Builder
    Réponses: 6
    Dernier message: 07/03/2006, 15h14

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