Partage
  • Partager sur Facebook
  • Partager sur Twitter

[OpenCV] Détection et reconnaissance d'un mouvement

    15 août 2010 à 16:38:38

    Bonjour !
    Je m'amuse à utiliser OpenCV en ce moment (à l'aide de l'excellent tutoriel disponible sur le Sdz), et je me suis demandé s'il était possible de détecter le mouvement d'un objet (ça je sais qu'on peut ^^ ) ET de reconnaître ce mouvement : par exemple, dans quel sens se plie une feuille, dans quel sens roule une voiture, etc.
    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      15 août 2010 à 16:58:17

      Je ne connais pas opencv, tu as lu le site officiel?
      • Partager sur Facebook
      • Partager sur Twitter
        15 août 2010 à 17:39:30

        J'ai parcouru le site officiel sans comprendre grand-chose parce que c'est en anglais :-°
        Il faudrait que je décortique tout en me concentrant à fond pour essayer de comprendre...
        Je pensais plutôt qu'il existerait une sorte de "méthode" :)
        Par exemple, j'ai entendu parler de flot optique et de tracking : est-ce que avec ces méthodes on serait capable de faire correspondre un mouvement à un "scénario", de le classer ?
        Désolé si je ne suis pas très clair :euh:
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          15 août 2010 à 17:56:24

          J'ai des doutes, mais il me semble que pour ton projet il faut quand même une grosse base mathématiques.

          Là dedans, il doit y avoir une histoire de vecteurs, matrices, etc...

          Donc avant que tu ailles plus loin, es-tu capable de continuer ce projet?

          Là est la question :)
          • Partager sur Facebook
          • Partager sur Twitter
            15 août 2010 à 18:04:38

            J'ai aussi quelques doutes sur mon niveau mathématiques :-°
            Pensez-vous qu'il faille un niveau supérieur au bac pour implémenter un tel système ?
            S'il s'agit de quelques petits raccords pas trop difficiles, ça pourra aller, mais si il faut avoir été en prépa et tout, hmm.... :(

            NB : et merci de vous intéresser à ma question :)
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              15 août 2010 à 18:12:53

              Alors pour cela je laisse répondre les autres membres avec des compétences mathématiques bien supérieurs aux miennes.

              Cependant les matrices, me semblent-ils sont du niveau BAC+2 si mes souvenirs sont bons.

              En tout cas bonne chance pour la suite.

              :)
              • Partager sur Facebook
              • Partager sur Twitter
                16 août 2010 à 11:03:10

                D'accord merci :)
                Mon projet est d'essayer de détecter le mouvement quand on plie une feuille et de déterminer dans quel sens on la plie.
                Je ne sais pas si c'est faisable à mon niveau :-° mais je pense que je vais me lancer, au moins pour la détection du mouvement ;)
                Et même si je n'y arrive pas, j'aurai toujours appris quelques trucs intéressants ^^
                Encore merci :)
                • Partager sur Facebook
                • Partager sur Twitter
                  16 août 2010 à 11:51:39

                  Alors, pour ce qui est du niveau en maths.

                  Non, tu n'as pas spécialement besoin d'un bac+2 en maths pour implémenter ce genre de truc, juste de beaucoup de patience et de curiosité : oui, le traitement d'images et de vidéo c'est du traitement de matrices, mais ça ne requiert pas forcément de connaissances en algèbre très poussées pour s'en sortir.

                  Sinon, il faut séparer ton problème en plusieurs phases :

                  * Détection du mouvement (est-ce qu'il y a un truc qui bouge à l'image ?).
                  * Classification du mouvement (qu'est-ce qui bouge, et quel est son mouvement ?).

                  Les deux problèmes sont liés, certes (la manière dont tu classifies le mouvement peut influer sur la façon dont le mouvement doit être détecté, afin que tu puisses disposer des bonnes données en sortie de la détection et en entrée de la classification), mais dépendent avant tout de la tronche des vidéos que tu veux traiter.

                  As-tu une vidéo d'exemple ?

                  Reconnaitre le sens dans lequel on plie une feuille devant sa webcam, ou bien trouver la direction dans laquelle avance une voiture sur une vidéo de surveillance dans une rue (ou sur la route), c'est pas du tout le même genre de problématique... Le premier est beaucoup plus compliqué a priori, puisque la cible est un objet déformable (et tu cherches à identifier sa déformation), alors que le second peut être grosso-modo assimilable à un blob rigide qui ne fait que se translater d'une image à l'autre...
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Zeste de Savoir, le site qui en a dans le citron !
                    16 août 2010 à 11:55:25

                    Il s'agirait plutôt du premier cas (le plus difficile, évidemment :-° ) : je plie une feuille devant ma webcam.
                    C'est vrai que le fait que ce soit un objet déformable (par rapport à une voiture par exemple) me laisse perplexe, et je ne sais pas trop comment procéder...
                    Merci de m'aider :)

                    NB : j'ai oublié de préciser que à priori, le fond sera plutôt uniforme (une table) et ne changera pas. Je pensais donc le supprimer d'abord pour me concentrer sur les mains et la feuille ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 août 2010 à 12:01:34

                      Ça ok, mais sous quel angle ta feuille est-elle filmée, l'est-elle de près ou de loin, est-ce qu'on la voit tout entière à l'écran ou seulement une partie, la caméra bouge-t'elle, est-ce que l'angle de vue peut varier d'une vidéo à l'autre, etc... ?

                      Lorsque tu cherches à extraire des informations complexes d'une vidéo, la première chose à faire est de savoir dans quelles conditions tu travailles, afin de t'affranchir de tout ce qui peut rendre la détection difficile à effectuer.

                      Edit: Une bonne approche pour ça, c'est de faire des vidéos d'exemples, et de les regarder, en boucle, pour essayer de comprendre comment nous, visuellement, on fait pour extraire l'information.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Zeste de Savoir, le site qui en a dans le citron !
                        16 août 2010 à 12:08:10

                        Ah ! Je n'avais pas pensé à tout ça ^^
                        La caméra ne bouge pas, elle est statique.
                        L'angle de vue peut en effet varier un peu d'une vidéo à l'autre.
                        La feuille est filmée de près, on ne voit que les mains et la feuille.
                        On doit la voir en entier à l'écran.

                        Il ne devrait donc pas être trop difficile de déterminer où est la feuille au début.... non ?
                        Ensuite je pensais "marquer" les coins et leur position initiale puis tracer leur déplacement.
                        Même si c'est très théorique et vite dit tout ça :-° est-ce que je fais fausse route ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 août 2010 à 12:13:33

                          Si tu marques les coins pour les suivre et décider du sens où la feuille est pliée selon qu'il y a une occlusion ou non, ça peut être une approche, effectivement...
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Zeste de Savoir, le site qui en a dans le citron !
                            16 août 2010 à 12:15:52

                            D'accord merci :)
                            Et pour repérer la feuille (de couleur uniforme j'ai oublié de préciser >_< ), quel outil devrais-je plutôt utiliser ?
                            • Partager sur Facebook
                            • Partager sur Twitter

                            [OpenCV] Détection et reconnaissance d'un mouvement

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown