Partage
  • Partager sur Facebook
  • Partager sur Twitter

Robot-vision : quelle caméra ? quel traitement ?

    28 janvier 2013 à 10:43:30

    Bonjour,

    je suis en train de plancher sur la faisabilité d'un robot qui sache se déplacer et reconnaître des objets dans son environnement. Arduino propose tout ce qu'il faut pour la commande, les actuateurs et les capteurs. Par contre, je cherche quel matériel je pourrais utiliser pour la vision. Quelqu'un connaît-il une caméra qui offre un bon rapport dimension/résolution ? En cherchant sur le net, j'ai notamment trouvé ceci mais je ne sais pas du tout ce que ça vaut point de vue qualité d'image. Je précise qu'il m'en faudrait deux pour assurer la vision tridimensionnelle du robot.

    Deuxièmement, je voudrais savoir s'il existe dans le logiciel Arduino des fonctions qui permettent de lire les données fournies par ce type de caméra. Il faudrait que je puisse analyser l'image transmise et pour ça que je puisse déterminer le code RVB de chaque pixel de l'image transmise. Quelqu'un peut-il m'éclairer là-dessus ?

    Merci d'avance pour vos conseils.

    Ecu
    • Partager sur Facebook
    • Partager sur Twitter
    Découvrez mes jeux de société sur jeuxetmondes.com et likez ma page facebook/jeuxetmondes
      28 janvier 2013 à 11:12:31

      On ne traite pas de l'image avec de l'Arduino. Puissance de traitement ridiculement trop faible... Pense à embarquer un petit PC qui tourne correctement pour pouvoir faire des vrais traitements.
      • Partager sur Facebook
      • Partager sur Twitter

      Retrouvez moi sur mon blog et ma chaine Youtube !

        28 janvier 2013 à 11:18:03

        @ Eskimon

        Merci pour ta réponse.

        Concrètement, comment faire pour embarquer un pc ? Ca signifierait embarquer toutes les cartes (carte mère, processeur, carte vidéo) sur le robot ? Et installer un OS complet dessus ? Si tu as des précisions pratiques, je suis preneur.

        Ecu

        • Partager sur Facebook
        • Partager sur Twitter
        Découvrez mes jeux de société sur jeuxetmondes.com et likez ma page facebook/jeuxetmondes
          28 janvier 2013 à 12:11:36

          Il existe des cartes "réduites", qui typiquement ont les chipsets de base (vidéo et audio) d'embarqué, ce qui simplifie le travail et possède par exemple un processeur de type Atom (faible consommation)...

          Sinon tu peux hercher du coté des Raspberry Pi, qui sont vraiment pas cher mais pas non plus des foudres de guerre (sur laquelle tu pourrais brancher une caméra USB ou deux par exemple)...

          • Partager sur Facebook
          • Partager sur Twitter

          Retrouvez moi sur mon blog et ma chaine Youtube !

            28 janvier 2013 à 13:11:05

            @ Eskimon

            Merci beaucoup pour tes réponses.

            J'ai été voir les raspberry pi, ça a l'air pas mal du tout. Voir notamment ceci. A ce que j'ai compris, il fonctionne sur OS linux. On peut le programmer directement en le connectant à un écran et un clavier.

            Eskimon a écrit:

            Il existe des cartes "réduites", qui typiquement ont les chipsets de base (vidéo et audio) d'embarqué, ce qui simplifie le travail et possède par exemple un processeur de type Atom (faible consommation)...

            Tu as une référence autre que Raspberry pi ?

            Donc au final l'architecture pourrait être : un raspberry pi (ou équivalent) qui réceptionne le images des caméras, traite l'information et en déduis un ordre d'action + un micro contrôleur Arduino qui gère les autres capteurs et les actionneurs. Les 2 éléments étant connectés par ??? A voir.

            • Partager sur Facebook
            • Partager sur Twitter
            Découvrez mes jeux de société sur jeuxetmondes.com et likez ma page facebook/jeuxetmondes
              28 janvier 2013 à 13:50:13

              par voie série, I2C, SPI... c'est pas les communications qui manque ^^

              Il existe d'autres cartes mais j'ai pu les noms/références sous les yeux...

              La raspberry pi si tu la branches en ethernet tu n'as meme pas besoin de clavier/écran, tu peux tout faire à distance !

              • Partager sur Facebook
              • Partager sur Twitter

              Retrouvez moi sur mon blog et ma chaine Youtube !

                28 janvier 2013 à 13:52:05

                Ecu a écrit:

                Donc au final l'architecture pourrait être : un raspberry pi (ou équivalent) qui réceptionne le images des caméras, traite l'information et en déduis un ordre d'action + un micro contrôleur Arduino qui gère les autres capteurs et les actionneurs. Les 2 éléments étant connectés par ??? A voir.

                Voila, c'est surrement la meilleur approche. Pour connecter les deux, tu as plusieurs possibilités. Le mieux est d'utiliser les GPIO : en effet la majorité des mini-PC sur cartes ont des entrées/sorties programmables. Si le debit d'ordre n'est pas important, tu peux te contenter par exemple de communiquer par un bus i2c par exemple, assez adapté à ce genre de chose et ne necessitant que 2-3 fils.

                Apres il y a une tonne de carte basé Atom ou ARM du genre du RPi. Il est clair qu'il te faut AU MOINS ça pour faire de la vision (je sais de quoi je parle, je fais une these sur ce sujet). Tout dépend apres du type d'algos que tu va utilisé et implémenter. Mais il faut bien voir que ça bouffe de la puissance tres rapidement le traitement video...

                • Partager sur Facebook
                • Partager sur Twitter
                  28 janvier 2013 à 15:55:05

                  Quelqu'un à déjà fait un projet du genre, regarde ici : http://www.semageek.com/bird-buggy-un-chariot-robotise-pour-perroquet/.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  2b||!2b   sqrt(4b²)
                    28 janvier 2013 à 19:30:02

                    Yaurait pas moyen de tout faire avec la rapsberry pi?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 janvier 2013 à 19:37:16

                      Si surement...
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Retrouvez moi sur mon blog et ma chaine Youtube !

                        28 janvier 2013 à 21:28:44

                        Je sais que ça coute plus cher, mais, à titre perso, je partirais plutôt sur des Beagle board ou pandaboard. C'est du matériel plus récent, mieux supporté, avec des performances tout à fait acceptables sur OpenCV. Sinon, je trouve drôle de faire le traitement vidéo avec un FPGA, mais ça demande de toutes autres compétences.

                        • Partager sur Facebook
                        • Partager sur Twitter
                        64kB de mémoire, c'est tout ce dont j'ai besoin
                          29 janvier 2013 à 0:48:18

                          Quand tu parles de vision tridimensionnelle, que veux-tu faire comme traitement vidéo plus précisément ? Car entre faire de la détection d'objet avec une caméra et OpenCV sous linux, une Raspberry Pi ou plutôt une BeagleBone (un peu plus puissante et surtout beaucoup plus E/S, donc plus adaptée pour un robot) c'est largement faisable.

                          Maintenant faire de la reconstruction 3D avec estimation de distance avec les deux caméra, je pense qu'il vaut mieux que tu te tourne vers un mini pc, ou déjà dans un premier temps tester sur PC pour voir un peu la puissance nécessaire. Un ancien élève avait réalisé un projet de vision 3D avec deux caméra et estimation de la distance le tout implémenté dans un FPGA, ca fonctionnait très bien mais il y a quand même de la matière à creuser en dessous, notamment niveau optimisations.

                          Néanmoins OpenCV + Linux est une bonne solution pour du traitement vidéo embarqué, jusqu'à une certaine limite (et il faut savoir en combien de temps tu dois faire ton traitement).
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 janvier 2013 à 1:55:04

                            Y aurai toujours moyen de streamer les entrées sortis sur un réseau local et de traiter tout ça sur un autre PC. Bon je sais pas si le temps de réponse serait assez bien. Si t'as pas envie de trop investir ça pourrait être une option.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 janvier 2013 à 10:16:09

                              zeqL a écrit:

                              Quand tu parles de vision tridimensionnelle, que veux-tu faire comme traitement vidéo plus précisément ? Car entre faire de la détection d'objet avec une caméra et OpenCV sous linux, une Raspberry Pi ou plutôt une BeagleBone (un peu plus puissante et surtout beaucoup plus E/S, donc plus adaptée pour un robot) c'est largement faisable.

                              Maintenant faire de la reconstruction 3D avec estimation de distance avec les deux caméra, je pense qu'il vaut mieux que tu te tourne vers un mini pc, ou déjà dans un premier temps tester sur PC pour voir un peu la puissance nécessaire. Un ancien élève avait réalisé un projet de vision 3D avec deux caméra et estimation de la distance le tout implémenté dans un FPGA, ca fonctionnait très bien mais il y a quand même de la matière à creuser en dessous, notamment niveau optimisations.

                              Néanmoins OpenCV + Linux est une bonne solution pour du traitement vidéo embarqué, jusqu'à une certaine limite (et il faut savoir en combien de temps tu dois faire ton traitement).

                              Techniquement la stereo-vision c'est lourd mais pas forcément prohibitif sur beaucoup de cas. En effet tu limite l'entrée à des points d'interet dans chaque image, ce qui limite le nombre de points à traiter et appareiller. ça peut tres bien ce faire sur ce genre de chose je pense mais je ne suis pas surs qu'il reste beaucoup de puissance dispo ensuite pour le reste.

                              Sinon il y a des DSP pour faire ça aussi. Mais un bon algo de reconstruction 3D avec RA peut tourner sur des smartphone moyenne-gamme, donc ça doit passer sur ces cartes

                              MmAxX a écrit:

                              Y aurai toujours moyen de streamer les entrées sortis sur un réseau local et de traiter tout ça sur un autre PC. Bon je sais pas si le temps de réponse serait assez bien. Si t'as pas envie de trop investir ça pourrait être une option.

                              Le temps de reponse risque d'etre vraiment important (transfert des images + traitement + rappatriment du resultat) mais ça depend un peu de l'utilisation qu'il en fait.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                30 janvier 2013 à 10:34:27

                                Bonjour,

                                merci à tous pour vos réponses, ça enrichit ma réflexion.

                                kristofjé a écrit:

                                (je sais de quoi je parle, je fais une these sur ce sujet).

                                Tu peux m'en dire plus sur en quoi consiste exactement ta thèse, qu'as-tu déjà fait, quelles sont les difficultés principales, combien de temps ça prend, etc ?

                                diode a écrit:

                                Quelqu'un à déjà fait un projet du genre, regarde ici : http://www.semageek.com/bird-buggy-un-chariot-robotise-pour-perroquet/.

                                Merci pour le lien.

                                MmAxX a écrit:

                                Yaurait pas moyen de tout faire avec la rapsberry pi?

                                Ben au niveau entrées/sorties type commande de moteur, signal capteur j'avais l'impression qu'il était peu pourvu (j'ai plus les specs en tête).

                                Nathalya a écrit:

                                Je sais que ça coute plus cher, mais, à titre perso, je partirais plutôt sur des Beagle board ou pandaboard. (...) Sinon, je trouve drôle de faire le traitement vidéo avec un FPGA, mais ça demande de toutes autres compétences.

                                Merci pour les références, le prix m'importe peu (dans une certaine mesure, hein). Par contre je pige pas le terme FPGA, qu'as-tu voulu dire ?

                                zeqL a écrit:

                                Quand tu parles de vision tridimensionnelle, que veux-tu faire comme traitement vidéo plus précisément ? (...)

                                Un ancien élève avait réalisé un projet de vision 3D avec deux caméra et estimation de la distance le tout implémenté dans un FPGA (...)

                                Néanmoins OpenCV + Linux est une bonne solution pour du traitement vidéo embarqué, jusqu'à une certaine limite (et il faut savoir en combien de temps tu dois faire ton traitement).

                                L'idée serait d'avoir un véhicule qui sache se repérer dans une pièce : estimation de la taille de la pièce, emplacement des principaux objets (volume d'encombrement). Même chose en extérieur. Sinon même question, qu'entends-tu par FPGA ?

                                MmAxX a écrit:

                                Y aurai toujours moyen de streamer les entrées sortis sur un réseau local et de traiter tout ça sur un autre PC. Bon je sais pas si le temps de réponse serait assez bien. Si t'as pas envie de trop investir ça pourrait être une option.

                                Merci, mais je pars plutôt dans l'idée d'un véhicule autonome. Investir ne me dérange pas si ça marche.

                                Ecu

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Découvrez mes jeux de société sur jeuxetmondes.com et likez ma page facebook/jeuxetmondes
                                  30 janvier 2013 à 10:50:01

                                  FPGA : http://fr.wikipedia.org/wiki/Circuit_logique_programmable

                                  Le traitement d'image demande des ressources enorme... Tu demandes a ce que ton robot se déplace, je l'imagine sur des chenilles ? au niveau de la gestion des profondeurs, des ultrasons pourraient etre utilisé ? Ou tu veux vraiment faire du traitement d'image ?

                                  Les ultrasons sont utilisé dans les radar de recul de voiture par exemple.

                                  Quand tu parles de reconnaissance d'objet, tu penses a quoi exactement ?

                                  Si tu veux toujours faire une bete de course je te propose : http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135341359084

                                  jamais acheter.

                                  -
                                  Edité par Bounce17 30 janvier 2013 à 10:56:57

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Robot-vision : quelle caméra ? quel traitement ?

                                  × 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