Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Reconnaissance Forme/couleur par camera...



  1. #1
    Yanniv

    Reconnaissance Forme/couleur par camera...


    ------

    Salut a tous,
    j'ai eu une petite idée saugrenue qui serait de faire un type de tapis roulant trieur de piece de légo...
    Le but n'étant évidement pas de trier mes legos a long terme mais principalement par but lucratif...
    Pour ce qui est du hardware je n'ai pas de PB, pour ce qui est du software, que je compte faire sur VB6, un point me pose pb, en effet je ne sait absolument pas comment m'y prendre pour faire une sorte d'analyse d'image en temps réel....
    le principe: un tapis roulant contenant des pièces carrées de légo de différentes couleurs est filmé de dessus par une webcam ... Il faudrait alors reconnaitre la présence d'une pièce, et analyser sa couleur(ou éventuellement sa forme)...
    Je ne cherche pas fondamentalement un bout de code mais plutôt la méthode pour parvenir a le faire....
    Comment communiquer avec la camera... comment distinguer un objet/forme (a la manière de la réalité augmenté et des carte 2D) ... (et comment analyser les couleurs)....

    Voila
    Merci d'avance

    @+

    -----

  2. Publicité
  3. #2
    padboy

    Re : Reconnaissance Forme/couleur par camera...

    Moi, je ne m'y connait vraiment pas au niveau de la machine que tu implantera. Mais, une fois que tu auras fait un logiciel qui arrivera à filmer les légos, c'est plus à ce niveau que je pourrais t'aider.

    Pour reconnaître des couleurs, la façon que je le ferais, serait d'enregistrer la couleur pixel par pixel, dans une matrice et de faire une moyenne, à la fin (car il peut y avoir de l'ombre, une tache, etc). Ensuite, tu iras par comparaison avec une liste de couleurs pré-établis de la collection Légo. La couleur moyenne qui ressemble le plus d'une couleur dans la liste |((couleur théorique-couleur moyenne)/couleur moyenne)|x100 est donc fort probablement la couleur pré-établie.

    Pour la présence d'une pièce, j'opterais pour un petit détecteur de mouvement. Tu n'aurais plus qu'à récupérer sa "réponse" binaire.. Sinon, si tu veux faire la programmation avec l'image obtenue de la webcam, Moi j'utiliserais le même principe que dans les trucages vidéos (une couleur de fond rare). Si à coté du tapis, tu installe un mini mur beige (dans mes souvenirs, il n'y a pas cette couleur dans les légos...), dans le fond, tu attends qu'il y ait une proportion respectable d'une autre couleur dans la matrice de couleurs de pixel. Dans ce cas, tu retourne la valeur binaire 1, par exemple.

    Voila, la théorie est faite.. En gros, il te faut juste un système qui prend rapidement des images du tapis de légo (ce que je ne sais pas faire). Ensuite, tu pourras appliquer la théorie indiquée.

    Dans mes souvenirs, j'ai déjà fait il y a longtemps, un analyseur de couleur, justement en VB6. Il y a une fonction qui s'appelait getpixel, si ma mémoire est bonne. Avec ca, tu pourras boucler jusqu'à la fin de ton image.

    Bonne chance!

  4. #3
    Yanniv

    Re : Reconnaissance Forme/couleur par camera...

    Salut,
    Merci de ta réponse, je vais essayer de voir ce que je trouve du coté de l'obtention pixel par pixel.
    Comme tu le dis, je pensais faire un tapis d'une couleur tres uniforme (soit toute blanche, soit d'une autre couleur non utilisée par les légos.

    J'ai aussi penché du coté détecteur de mouvement et apres l'analyse d'un exemple, j'ai cru voir qu'il analysais image par image en comparant les pixel differents, ce qui peut etre judicieux car la vitesse du tapis etant fixe, la difference entre 2 images successive doit surement etre facilement analysable... en tout cas plus facilement que pixel par pixel....
    Est-ce que les connaisseurs peuvent me dire si c'est une bonne solution?

    Merci encore

  5. #4
    Yanniv

    Re : Reconnaissance Forme/couleur par camera...

    re,
    j'ai pas mal regardé coté pixel par pixel ou image par image et j'ai peut etre trouvé une solution....
    En traitant chaque image successive, je peux déterminer les pixels différents d'une image a une autre.... j'ai eu une idée pour pouvoir distinguer différente formes et couleurs donc pour ce qui est de la reconnaissance forme couleurs c'est bon .... pour ce qui est du hardware(tapis roulant, système de tri, ect) c'est bon aussi, la liaison software/hardware se fera surement par // (solution la plus simple) ou éventellement via port serie(grace a un USBtoCOM) + PICAXE permettant de décoder facilement le message...

    La seule chose me posant encore Pb est : Comment Faire pour traiter le signal de la webcam "Image par image" a une cadence d'environ 6fps??? sans manger trop de ressource??(c'est a dire obtenir 1image par seconde (par exemple) au lieu d'avoir une vidéo(plus difficile a traiter)
    Merci




    PS: Pour les personnes voulant des infos sur le soft de reconnaissance que je vais dévelloper, envoyez moi un mp (il faut avoir quelque base sur la programmation car je ne l'ai pas encore terminé et je ne peux donc pas vous donner un programme tout fait, mais juste la technique utilisée, l'exe viendra lorsque j'aurai fini cette partie, vous pouvez toujours me mp pour plus informations)...

  6. A voir en vidéo sur Futura
  7. #5
    Ouk A Passi

    Re : Reconnaissance Forme/couleur par camera...

    Bonjour,
    Comment Faire pour traiter le signal de la webcam "Image par image" a une cadence d'environ 6fps???
    Tu trouveras sans doute des pistes en cherchant ce qui ce fait en soft pour la NXT Cam (dédiée Lego), ou encore CMUcam, et Pob-Eye.

    Encore un peu de lecture ici

  8. #6
    Yanniv

    Re : Reconnaissance Forme/couleur par camera...

    Salut,
    je suis en train de lire tout les docs que tu m'a envoyé, je n'ai pas encore fini donc je ne sais pas si un doc correspond a ce que je cherche mais quand je parle de camera je parle de Webcam en fait(je l'avais spécifié au début du sujet si je me rapelle bien) Ce n'est donc pas la meme demarche que d'obtenir une image en passant par de l'Ic² et tout le tralala...
    En fait ma question se portait plus au niveau de la programmation (VB ou par API) pour obtenir une image a une certaine frequence d'une webcam

    Merci quand meme

  9. Publicité
  10. #7
    lemuria

    Re : Reconnaissance Forme/couleur par camera...

    SI tu veut faire ce genre de chose , oriente toi niveau programmation et traitement d'image.
    Une lib tres connue et très adaptée a ce que tu fait est "open cv" , cependant , il faut être motivé et je ne sais pas si on peut l'utiliser dans tes langages de prog (C pour moi).

    Bonne chance pour la suite , sois confiant et motivé !


    Edit : avec opencv , tu peut traiter des flux video ( fichier ou webcam , enfin tout est fichier sous nux , bref ) pour les simplifier en faisant certaines opérations dessus : Video du début -> noir et blanc -> etc , etc -> Quelque chose de géométrique facile a reconnaitre.

    Un petit exercice pour débuter est la reconnaissance d'une balle de tennis , mais les lego ce n'est qu'un peu plus dur.
    Tu peut aussi regarder le projet de "Prav Mistry" , Sithsense , qui est open source et tees abouti sur la reconnaissance de chose.
    Dernière modification par lemuria ; 22/03/2010 à 19h12.
    Trantor , quelle belle ville..

  11. #8
    Yanniv

    Re : Reconnaissance Forme/couleur par camera...

    Salut,
    je suis en train de faire la partie prog, je n'ai toujours pas de solution pour extraire de la webcam des images....mais je fait le reste....
    Merci lemuria pour tes conseils je regarde de plus pres opencv

  12. #9
    automatique_ama

    Re : Reconnaissance Forme/couleur par camera...

    salut,
    j'ai un mémoire comme la votre monsieur Yanniv, est-ce-que tu peut m'aider SVP
    je besoin seulement la rédaction de ton projet
    merci d'avance

  13. #10
    yoda1234

    Re : Reconnaissance Forme/couleur par camera...

    Ce fil date de plus d'un an et yanniv ne s'est plus connecté depuis juillet2011.
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  14. #11
    Yanniv

    Re : Reconnaissance Forme/couleur par camera...

    Certes, mais je traine encore de temps a autre sur futura
    Je n'ai rien rédigé, c'étais un projet(defi) personnel. Tu as besoin d'aide pour quelle partie de ton projet ?

  15. #12
    mp3dux

    Re : Reconnaissance Forme/couleur par camera...

    bonjour,

    apparemment tu n'avais pas trouvé de solution...

    as tu pensé à KINECT ?

  16. Publicité
  17. #13
    automatique_ama

    Re : Reconnaissance Forme/couleur par camera...

    salut;
    tout façons merci yanniv, j'ai un pb sur les ressource pour rédiger ma mémoire

  18. #14
    Yanniv

    Re : Reconnaissance Forme/couleur par camera...

    @mp3dux: non je n'avais pas pensé a kinect, mais j'avais bien trouvé une solution + simple finalement, grace a un ocx, je récupérais les images successive de la camera, et je les traitais ensuite. le tout en Software (vb6)
    J'utilisais des matrices de couleurs, (pour inclure une sorte de "tolérance") et pour ce qui est des formes je calculais une moyenne de surface prise par la piece de lego.

    @ama: Dsl je ne comprends pas bien quel est ton problème sur les "ressources" ?

  19. #15
    mp3dux

    Re : Reconnaissance Forme/couleur par camera...

    ok, tu n'as pas eu de problème de couleur lié à la luminosité ambiante ?

  20. #16
    Yanniv

    Re : Reconnaissance Forme/couleur par camera...

    Si ^^
    Du coup j'ai mis une lumière fixe et j'ai isolé de la lumiere ambiante, c'était bcp mieux.

  21. #17
    mp3dux

    Re : Reconnaissance Forme/couleur par camera...

    Ok, je vois

  22. #18
    Dormeur74

    Re : Reconnaissance Forme/couleur par camera...

    Je procèderais autrement, car il faut aller très vite pour analyser une à une en temps réel les trames d'une séquence vidéo.

    Je ne suis pas certain qu'un langage interprété soit assez véloce pour faire de la reconnaissance optique sur un tapis. Alors voici ce que je propose. Un entonnoir permettrait de faire passer toutes les pièces au même endroit, de façon à n'avoir rien à scanner. Admettons qu'une trame mesure 200x200 pixels et que toutes les pièces passent par le centre (100,100) ; alors il suffit de trois fois rien pour analyser la couleur de la pièce.

    Une fonction dans ce style suffirait :

    Code:
      ' Exemple pour un rouge de valeur 2107625
      Couleur = Frame1.Point(100, 100)
      R = &HFF& And Couleur
      V = (&HFF00& And Couleur) \ 256
      B = (&HFF0000 And Couleur) \ 65536
      If R > V And R > B Then
        MsgBox "cette pièce est rouge"
      Else
        MsgBox "cette pièce n'est pas rouge"
      End If
    Principe de fonctionnement :
    Si la composante Rouge est supérieure aux deux autres composantes, alors la pièce est rouge. Même un rouge pratiquement noir comme RGB(1,0,0).

    Le problème est plus compliqué qu'il n'y paraît. Il est indispensable que l'éclairage utilisé ne doit comporter aucune dominante. Donc que la température de couleur des lampes utilisées soit celle de la lumière du jour (je crois environ 5700° Kelvin, à vérifier).

    La dominante de la couleur du tapis devra être nettement verte ou bleue. La question ayant été posée, la méthode en VB 6 pour connaître la couleur d'un point est Point(x,y) qui retourne un entier long. D'où une décomposition de la valeur obtenue par les puissances de 0 à 2 de 256. On peut peut-être grignoter un peu de temps avec les API 32 bits, mais rien ne vaudra un bout de code machine pour assurer les 25-30 trames/seconde d'une vidéo normale.

    C'est vrai que le fil date, mais la reconnaissance optique est toujours très intéressante. Mais là, on fait joujou. Les appareil photo numériques d'aujourd'hui font la différence entre une jeune mariée qui sourit et un enfant récalcitrant qui fait la g.....e. Et un avion de chasse entre un T 80 et un char Leclerc.

  23. Publicité

Discussions similaires

  1. Probleme de couleur sur camera paluche!
    Par jjr1 dans le forum Électronique
    Réponses: 6
    Dernier message: 07/01/2009, 15h23
  2. Lentille filtrant l'infra-rouge sur caméra CCTV couleur ?
    Par jepoirrier dans le forum Technologies
    Réponses: 3
    Dernier message: 18/01/2006, 19h12
  3. reconnaissance antigène par LT
    Par eije dans le forum Biologie
    Réponses: 2
    Dernier message: 07/10/2005, 19h13
  4. caméra couleur sur écran PC
    Par mahfoud dans le forum Électronique
    Réponses: 1
    Dernier message: 08/08/2003, 08h24
  5. image tres moche sur mini camera couleur
    Par Novice00 dans le forum Électronique
    Réponses: 5
    Dernier message: 06/05/2003, 13h06
Découvrez nos comparatifs produits sur l'informatique et les technologies.