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

Traitement d'images Discussion :

Detection d'objets avec une ombre sur une image


Sujet :

Traitement d'images

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut Detection d'objets avec une ombre sur une image
    je cherche à récuperer a partir d'une image en niveaux de gris les objets qui ont une ombre par exemple une main. j'ai pensé a faire une correspondance entre deux blocs(objet , ombre) et calculer la correlation entre ces derniers vu que l'ombre est une sorte de transformation de l'objet Mais je ne suis pas sur que ca marche
    Concretement, sur l'image j'ai une main surelevée qui projette une ombre et une autre posée sur la surface qui ne produit aucune.Comment faire pour récuperer juste celle avec une ombre


    quelqu'un aurait une idée de la façon de proceder?

    Merci
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    mets une image s'il te plait.

    Euh la je pense que la composante de luminescence n'est pas utilisable.... va falloir faire des morpho peut être.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par parp1
    mets une image s'il te plait.

    Euh la je pense que la composante de luminescence n'est pas utilisable.... va falloir faire des morpho peut être.
    oui je pense que ca serait plus clair.
    Mon but etant de differencier les mains ayant une ombre de celles qui n'en ont pas.
    Images attachées Images attachées  

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    Peut etre tracer deux lignes paralleles horizontales et voir une similitude dans l'aternance d'amplitude de la valeur des pixels.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par craryb
    Peut etre tracer deux lignes paralleles horizontales et voir une similitude dans l'aternance d'amplitude de la valeur des pixels.
    Excusez moi mais je n'ai pas tout à fait compris votre idée .
    Je tiens a préciser que ca doit etre rapide en plus car je dois faire tourner cet algo en temps réel sur une séquence d'images

  6. #6
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    En fait il te propose de comparer deux profils parallèles.

    Le gros soucis, le manque de couleur. J'imagine que tu souhaite commander un pc a l'aide d'une camera filmant un écran sur lequel est projeté l'écran du pc? Une application de ce genre?

    Tu es obligé d'avoir les data en gris? Tu ne peux pas avoir de la couleurs?

    Parce que la ... je pense que ça va être chaud. Pour l'image jointe tu n'as pas en plus gros format et au format png ou gif? pas de jpeg s'il te plais. merci.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  7. #7
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut

    *En effet ça m'a tout l'air d'une application de réalité augmentée ou de réalité virtuelle, par contre au dela de la conception, il m'est venu une idée...

    Pourquoi ne pas utiliser de gant ? ou par exemple des gants de la même couleur que ton fond ou d'un couleur bien précise comme on l'utilise en incrustation d'image (vert, bleu..)
    Ce qui fait que tu n'aura de "main d'ombre" que si elle est décalée par rapport au fond.

    Par exemple ici, un gant bien blanc te permettrai de faire une detection de contour sur les ombres en fait.
    Mais je ne pense pas que cela soit utile pour toi car si tu souhaite vraiment faire la différence entre deux mains, cela ne marchera pas, mais peut etre mon idée de gant blanc t'aiguillera vers une solution alternative

    C'est le signe d'un fou, qu'avoir honte d'apprendre
    Ubuntu 10.04 Lucid Lynx @home
    LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu

  8. #8
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Bien vue, mais avec un gant blanc la projection (si c'est bien l'utilisation), la retro projecteur enverra l'image sur le gant et il servira d'écran a son tour...seul une distorsion sera visible.

    On detectera surement l'ombre mais moins bien le gant.
    Tout ceci merite d'être étudié.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par parp1
    En fait il te propose de comparer deux profils parallèles.

    Le gros soucis, le manque de couleur. J'imagine que tu souhaite commander un pc a l'aide d'une camera filmant un écran sur lequel est projeté l'écran du pc? Une application de ce genre?

    Tu es obligé d'avoir les data en gris? Tu ne peux pas avoir de la couleurs?

    Parce que la ... je pense que ça va être chaud. Pour l'image jointe tu n'as pas en plus gros format et au format png ou gif? pas de jpeg s'il te plais. merci.
    c a peu prés ca le but faire de la réalité augmentée
    mais je peux avoir les images en couleur c possible
    l'image c t juste pour illustrer. J'ai remis une photo en couleur
    Ma problematique réside en fait à détecter un pointage de la main et differencier cela de tout autre geste .
    C'est pour cela que si je detecte rien que les mains avec une ombre me permet de dire deja que c'est un geste de pointage plutot qu'une action sur la table

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par craryb
    Peut etre tracer deux lignes paralleles horizontales et voir une similitude dans l'aternance d'amplitude de la valeur des pixels.
    Bonne idée. Je vois bien un algo du genre:

    1. Filtrage + Seuillage

    2. Boucle: pour chaque ligne parallele
    2a. Calcul de l'Argmax de l'autocorrelation 1D (avec une fenetre glissante de taille environ egale a la distance main/ombre)

    => on obtient un tableau des Argmax d'autocorrelation

    3. recherche dans ce tableau de la plus grande suite de valeurs egales. Les indices de debut/fin de cette suite et la valeur donnent la zone dans laquelle se trouve l'objet ombré.

    (Le tout avec des seuils partout pour eviter les fausses detections)
    Enfin, tout ca reste tres theorique. Aucune idée si ca marche

    Edit: A noter que cette approche est tres novatrice. Generalement, pour les problemes des "finger tracking" on fait juste un pattern matching avec une simple SSD. Evidement, ca doit poser des problemes dans le cas présent (double detection image main / vrai main)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    salut

    je pense que dans le cas présent il serait possible de faire un algo qui sépare l'image en 3 parties: détection de l'ombre et de son contour,
    du fond et de son contour,
    du reste de l'image et de son contour

    ensuite il sera plus simple d'analyser d'une part l'ombre seule, et d'autre part l'image sans l'ombre et sans le fond

    a+

  12. #12
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par djsid
    c a peu prés ca le but faire de la réalité augmentée
    mais je peux avoir les images en couleur c possible
    l'image c t juste pour illustrer. J'ai remis une photo en couleur
    Ma problematique réside en fait à détecter un pointage de la main et differencier cela de tout autre geste .
    C'est pour cela que si je detecte rien que les mains avec une ombre me permet de dire deja que c'est un geste de pointage plutot qu'une action sur la table
    en couleur, l'ombre ne devrait faire changer que la luminance, pas la chrominance ni la saturation (en gros, sous l'ombre, tu as la même couleur du fond que tu connais, en plus sombre). donc changement de luminance seule = ombre, changement de tous les canaux = la main.

    maintenant, si tu décris plus en détail ton problème, on pourra peut-être t'aider à trouver une stratégie adaptée car, pour faire du temps réel, il faut souvent adopter des raccourcis malins qui dépendent du détail des objectifs à atteindre.
    OL
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  13. #13
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par ol9245
    en couleur, l'ombre ne devrait faire changer que la luminance, pas la chrominance ni la saturation (en gros, sous l'ombre, tu as la même couleur du fond que tu connais, en plus sombre). donc changement de luminance seule = ombre, changement de tous les canaux = la main.

    maintenant, si tu décris plus en détail ton problème, on pourra peut-être t'aider à trouver une stratégie adaptée car, pour faire du temps réel, il faut souvent adopter des raccourcis malins qui dépendent du détail des objectifs à atteindre.
    OL
    Voila à la base , je suis parti sur un simple seuillage qui m'a obtenu la main par rapport au fond. J'ai fait de la morpho pour obtenir un squelette de ma main que j'ai seuillé juste pour obtenir les doigts . Mon but étant de detecter des directions de pointage. Malheureusement, je me suis apercu que le fait qu'un objet du fond soit sombre faussait mon seuillage et donc mon squelette.

    J'ai donc besoin de faire un prétaitement qui me separera le fond de ma ou mes mains. Je suis dans une configuration ou je n'ai qu'une camera. Si jen avais deux qui filmaient la scene le probleme serait plus facile vu que je saurais la profondeur de mes objets.
    c'est pour cela que je me suis dis que si j'arrivai à récuperer rien que les objets ayant une ombre je devrais régler le probleme tout en exploitant ce que j'ai deja codé auparavant

  14. #14
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    est-ce que tu peux avir une mémoire du fond ? (sous l'hypothèse que ta main bouge plus vite que le fond) dans ce cas, la différence entre le fond connu et l'image courrante te donne la main. et là ou la crominance n'a pas bougé mais la luminance a diminué, c'est l'ombre de la main. C'est exploitable pour toi comme heuristique ou pas ?
    N'oublie pas que la morphomath en temps réel, c'est chaud...
    OL
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  15. #15
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut, moi je suis novice et j'ai pas toute vos connaissance alors désolé si je suis hors propos:
    le résultat que je propose est ci-dessous en pièce jointe.
    voici ce que j'ai fait:
    l'objectif étant de récupérer la direction de pointage je ne recherche pas à retirer l'ombre.
    ombre => geste de pointage
    ombre => l'image partielle du geste mais avec la direction de pointage.

    donc 1er étape: j'ai selectionné les pixels de l'image ayant la couleur de l'ombre avec une certaine tolérance pour récupérer l'ombre.
    2eme étape: utiliser un filtre accentuant les traits de l'image. dans cet exemple j'ai utilisé photoshop cs2/filtres/artistiques/découpage/niveau 4, simplicité 4, fidélité 2.
    l'image résultant donne une ligne suffisamment franche pour extraire la direction.

    ca c'est l'idée... j'espère que ca aidera à avancer dans la solus.

  16. #16
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par vodiem
    salut, moi je suis novice et j'ai pas toute vos connaissance alors désolé si je suis hors propos:
    le résultat que je propose est ci-dessous en pièce jointe.
    voici ce que j'ai fait:
    l'objectif étant de récupérer la direction de pointage je ne recherche pas à retirer l'ombre.
    ombre => geste de pointage
    ombre => l'image partielle du geste mais avec la direction de pointage.

    donc 1er étape: j'ai selectionné les pixels de l'image ayant la couleur de l'ombre avec une certaine tolérance pour récupérer l'ombre.
    2eme étape: utiliser un filtre accentuant les traits de l'image. dans cet exemple j'ai utilisé photoshop cs2/filtres/artistiques/découpage/niveau 4, simplicité 4, fidélité 2.
    l'image résultant donne une ligne suffisamment franche pour extraire la direction.

    ca c'est l'idée... j'espère que ca aidera à avancer dans la solus.
    Effectivement ta solution parait attrayante mais comme c sur photoshop ca m'aide pas . Le must sera de programmer le filtre qu'utilise photoshop encore faut il esperer que les temps de calcul ne soient pas immenses.J'ai une contrainte de temps réel je pense pas que ca puisse marcher mais Merci comme meme.
    A vrai dire je n'esperai pas que mon post susciterait tant d'interet.
    Je vous tiens au courant des que j'aurais quelquechose de concret.

    Continuez de poster vos idées ca minteresse toujours

  17. #17
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    je sais bien c'est pas forcément exploitable avec photoshop mais c'était l'idée voici une autre image réalisé avec des traitements plus classique:
    après étape 1: selection des pixels proches de l'ombre
    étape 2bis: flou gaussien+réglage de niveau (ils ne doivent pas être trop difficile à obtenir ou sont intégrés dans plusieurs logiciels)
    le résultat est join en bas
    une recherche de l'extremité du doigt et du début de bras n'est pas trop difficile. je pense que cela donne une bonne approximation de la direction.
    et cela devrait être assez rapide.
    autrement il est possible encore de rééchantillonner pour réduire le calcul.

  18. #18
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut Detection d'une main sur fond variable
    Toujours dans l'optique de detection une direction de pointage. Je me demandais s'il exsite pas des métriques pas très compliquées pour correspondre un point de la main avec son homologue de l'ombre de cette facon on extrairait les mains puis on ne garderait que celles reposant sur le critere. Qu'est ce que vous en pensez
    Faites moi part de vos idées ?
    Merci

  19. #19
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 18
    Points
    18
    Par défaut Detection de la direction
    Bonjour tout le monde
    Ca fait longtemps que je n'ai pas donné de mes nouvelles.
    En fait tout compte fait , aujourdhui j'ai recentré mon probleme , j'arrive à récupérer les mains avec une ombre avec comme seuil la taille de la composante connexe. Mon problème alors est de déduire la direction de pointage.
    Pour cela , je voudrais savoir s'il ya des algo qui detectent des lignes ou des axes dans une direction donnée?
    Que me conseillez vous ?

    Merci

  20. #20
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Bien que je ne l'ai jamais utiliser, et que je ne sais meme pas comment ca fonctionne, je vais te dire Hought ou un truc dans le genre. Je l'ai vu beaucoup de fois sur ce forum avec des detections d'ellispe... etc etc.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. Réponses: 7
    Dernier message: 22/10/2009, 17h43
  3. Réponses: 9
    Dernier message: 09/12/2008, 00h07
  4. probleme avec l'appui sur une touche sur une jframe ou jdialog
    Par jeanfeu dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 05/08/2008, 16h14
  5. Problème avec l'ajout d'une partition sur une table
    Par marvelromy dans le forum Administration
    Réponses: 1
    Dernier message: 30/06/2008, 08h57

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