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 :

Détection et suivi d'un cheval par une caméra mobile


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Par défaut Détection et suivi d'un cheval par une caméra mobile
    Bonjour,

    je cherche à faire le tracking en temps réel d'un cheval grâce à une caméra de vidéo surveillance mobile (et dans un futur proche, faire un asservissement).

    Voici un exemple sur lequel mon programme doit marcher (je n'ai pas accès au système de vidéo): video

    Pour faire le tracking, j'ai voulu utiliser une soustraction d'arrière-plan améliorée (utilisation de la modélisation gaussienne de l'arrière plan avec la distance de Mahalanobis et utilisation d'ouverture morphologique pour la suppression du bruit) pour récupérer les objets en mouvement. Cependant le fait que la caméra bouge empêche une soustraction efficace.

    L'augmentation du nombre d'itérations d'ouvertures permet de limiter les effets du mouvement de la caméra mais ca ne me semble pas très justifiable dans le cas général (quelqu'un capable de me prouver que c'est mathématiquement fiable ou non est le bienvenu).

    Enfin, mon maitre de stage m'a proposé d'utilisé la corrélation entre images pour récupérer les régions d'intérêt et donc éviter une soustraction d'arrière-plan. De ce côté la, je ne vois pas vraiment comment m'y prendre.

    Auriez-vous une idée de l'utilisation de la corrélation ou même de toutes solutions permettant de respecter les contraintes?

    Merci d'avance.

    Fred

  2. #2
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    hum le haartraining doit fonctionner la dessus, as tu la possibilité de sélectionner le cheval au début de la vidéo avec la souris (au quel cas je te conseillerais pluôt de faire du camshift) et pour la corrélation http://webcache.googleusercontent.com/search?q=cache:zTd107Zp2l0J:vast.uccs.edu/~tboult/CS330/NOTES/OpenCVTutorial_III.ppt+corr%C3%A9lation+d'image+openCV&cd=1&hl=en&ct=clnk

    la il t'explique en gros comment ca marche (tu selectionne ta zone et tu recherche tout les motifs de la zone sélectionné un peu comme le camshift)

    http://www.developpez.net/forums/d60...-forme-simple/
    un vieux sujet ou il t'explique le principe du matching et d'autre truc très sympa

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Par défaut
    Merci pour cette réponse. Je vais m'intéresser au CamShift pour voir comment l'utiliser, mais n'y a t'il pas de problème de suivi lorsqu'un objet qui ressemble à ce que l'on suit (un autre cheval par exemple) passe dans la région d'intérêt?

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    le camshift va suivre l'objet que tu lui indique, il faudrait que ton autre cheval soit comme le premier (des jumeaux ? XD) y a peu de chance que cela arrive enfin je pense que le camshift reste la meilleur solution si tu peux sélectionner l'objet à tracker (à ma connaissance).

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Par défaut
    Bonjour,

    J'ai utilisé les algorithmes fournis par openCV et cela fonctionne à quelques exceptions près (l'objet à tracker est modifié dans le cas d'un chevauchement).
    Pour pouvoir améliorer la qualité de tracking, je voudrais être sur que j'ai bien compris le principe du camshift:

    -Sélection de la région ou se trouve l'objet à tracker
    -Création d'un histogramme de cette région et égalisation de celui-ci de manière à avoir un meilleur contraste.
    -L'algorithme de mean shift va définir la région où la probabilité de retrouver l'histogramme précédent est la plus forte (tout en considérant les régions "proches" de la région initiale)
    -Définition de la nouvelle région
    -On recommence sur l'image suivante

    Je voudrais savoir si j'ai bien compris ce principe. Si oui, je pensais que l'augmentation de la dimension de l'histogramme serait un facteur d'amélioration du tracking mais il ne semble pas que ce soit le cas. Qu'est ce que signifie exactement "proche", y-a-t-il un moyen de modifier cette "distance".

    Merci d'avance.

  6. #6
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    tu as tout à fait compris, hum aucune idée de si on peut modifier la distance , si tu augmente l'histogramme tu lui demande une meilleur précision je dirais plutôt ce qui est assez embettant quand on fait du tracking, le plus simple serait de se restreindre à une zone qui a peu de chance d'être chevaucher sinon je vois pas trop comment l'éviter

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut
    Bonjour, déjà, merci beaucoup pour toutes ces précieuses informations sur le feature tracking.
    Ensuite, psycko_puppet , j’aimerais savoir quelles stratégies tu avais mis en œuvre pour l’asservissement de la caméra mobile sur ton cheval ?
    la tâche que j'ai a réaliser moi est d'asservir un robot sur un objet pendant que le robot est en mouvement.
    merci.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Par défaut
    Salut sarion,

    pour l'asservissement de la caméra, il suffit de comparer le centre de la fenêtre de tracking et la taille de cette fenêtre aux instant t et t+1. Les différences de postions donnent les translations à effectuer et les rapports de tailles, le zoom.

Discussions similaires

  1. [2.x] Authentification avec FOSUserBundle par une application mobile
    Par Brownies17 dans le forum Symfony
    Réponses: 8
    Dernier message: 11/06/2013, 00h45
  2. Réponses: 0
    Dernier message: 19/04/2013, 16h17
  3. Reconnaissance de couleur par une caméra
    Par so.generously dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/03/2010, 18h26
  4. Réponses: 1
    Dernier message: 21/10/2009, 15h21
  5. Réponses: 0
    Dernier message: 24/09/2009, 14h41

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