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

Mathématiques Discussion :

Mesure tridimensionnelle à partir d'une depth map


Sujet :

Mathématiques

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Mesure tridimensionnelle à partir d'une depth map
    Bonjour à tous,

    Je travaille dans une entreprise qui réalise des inspections visuelles par caméra avec mesures dimensionnelles. J'aimerais savoir si il est possible de faire des mesures tridimensionnelles (entre deux points) sur une carte de profondeur (depth map). J'obtiens cette carte de profondeur à partir d'une vidéo d'une caméra monoculaire par traitement d'image.

    Mon raisonnement est le suivant :
    On connaît les angle associés aux points de l'espace, vus par l'objectif, par connaissance de ses propriétés (champ de vision vertical et horizontal). Ces angles se situent entre l'axe optique et l'axe reliant la caméra au points de l'espace choisis. On connait ensuite la distance entre les points choisis et la caméra grâce à la carte de profondeur. On peut alors calculer en 3 dimensions, la distance reliant 2 points de l'espace vus par la caméra.

    Pour vous aider à saisir mon idée, j'ai fait un petit schéma. Les distances d1 et d2 sont obtenues grâce à la depth map et les angles alpha et beta sont obtenus par connaissance de l'optique en effectuant un changement de coordonnées : Image(x,y) --> coordonnées sphériques(alpha,beta).

    Pensez vous que c'est possible ? Quelle précision puis-je espérer ?

    Merci à vous et passez une bonne soirée
    Images attachées Images attachées  

  2. #2
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Mesure tridimensionnelle à partir d'une depth map
    Bonjour,

    Non, malheureusement, car il te faudrait disposer des images de deux segments de longueur connue, normaux à l'axe optique et situés à des distances connues du centre optique.

    On ne dispose de rien de semblable sur la photo qui est donnée.

    L'image ci-dessous est celle de deux objets de même forme et de même dimension: bien que ce cas paraisse plus favorable, il est impossible de déterminer la profondeur à laquelle ils se trouvent, ni la distance qui les sépare.

    Nom : 2 verres.png
Affichages : 310
Taille : 377,3 Ko

    Nom : 2 verres_Point fuite_700x490.png
Affichages : 323
Taille : 213,8 Ko

    De plus, on ne tarde pas à découvrir des incertitudes importantes dès que l'on cherche à tester la cohérence du tracé, à cause des distorsions optiques qui interviennent lors de la formration de l'image.

    Nom : 2 verres_700x490.png
Affichages : 314
Taille : 212,7 Ko

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse super complète !

    Citation Envoyé par wiwaxia Voir le message
    Bonjour,

    Non, malheureusement, car il te faudrait disposer des images de deux segments de longueur connue, normaux à l'axe optique et situés à des distances connues du centre optique.

    On ne dispose de rien de semblable sur la photo qui est donnée.
    Mais je suppose qu'avec la depth map que j'obtiens, je peux en extraire les longueurs des deux segments non ? Je suppose qu'une depth map donne des profondeurs relatives mais j'ai la possibilité de rajouter un laser infrarouge pour avoir une référence, et donc les longueurs absolues des segments.

    Citation Envoyé par wiwaxia Voir le message
    De plus, on ne tarde pas à découvrir des incertitudes importantes dès que l'on cherche à tester la cohérence du tracé, à cause des distorsions optiques qui interviennent lors de la formation de l'image.
    Pour ce qui est de la distorsion de l'image, j'avais prévu de suivre un tuto du genre : https://docs.opencv.org/2.4/doc/tuto...libration.html

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Ici, on connait plein de choses : d1, d2, alpha1, alpha2 ...

    Ici, on a 3 droites qui partent de la caméra. Si ces 3 droites sont coplanaires, on a des équations, et il y a une seule solution. Quasi sûr de ça, même si je ne sais pas donner ces équations.
    Mais, ces 3 droites ne sont pas parfaitement coplanaires. Et donc il y a un (petit) correctif à appliquer.

    Je ne suis pas sûr à 100%, mais je suis assez confiant.

  5. #5
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Mesure tridimensionnelle à partir d'une depth map
    La connaissance des distances auxquelles se trouvent les points visés, par exemple
    d1 = CA , d2 = CB ,
    permet en effet d'en connaître d'autres.
    Le centre optique (C) de l'objectif correspondant à l'origine du repère, les coordonnées des points objets vérifient:
    zA = d1Cos(u) ; yA = d1Sin(u) ;
    zB = d2Cos(v) ; yB = d2Sin(v) ;
    et conduisent à la longueur du segment correspondant:
    AB = ((zB - zA)2 + (yB - yA)2)1/2 .
    Nom : Schéma_01.png
Affichages : 329
Taille : 15,4 Ko
    un problème intervient au niveau de la connaissance indispensable des angles:
    Tan(u) = -yA'/f ; Tan(v) = -yB'/f ;
    parce que l'on travaille sur une image numérique que l'on peut agrandir à volonté, et non sur le tirage argentique d'une pellicule dont le plan aurait été situé, lors de l'exposition à la lumière, à la distance (f) du centre optique.

    L'indétermination peut être levée si l'on dispose d'une autre photographie, réalisée avec le même appareil, de deux points objets (A°, B°) disposés de telle sorte que le segment (A°B°) soit perpendiculaire à l'axe (z'z) et (c'est encore mieux) coupe celui-ci en son milieu; de la longueur (L°) de ce segment, on pourra déduire la distance focale fictive (f), et tout le reste.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    C'est vraiment adorable de m'aider autant avec vos superbes schéma. Merci infiniment !

    Citation Envoyé par wiwaxia Voir le message
    Un problème intervient au niveau de la connaissance indispensable des angles:
    Tan(u) = -yA'/f ; Tan(v) = -yB'/f ;
    parce que l'on travaille sur une image numérique que l'on peut agrandir à volonté, et non sur le tirage argentique d'une pellicule dont le plan aurait été situé, lors de l'exposition à la lumière, à la distance (f) du centre optique.
    Tu ne penses pas qu'après suppression de la distorsion avec OpenCV, chaque pixel est associé à un couple d'angles dans les plans horizontaux et verticaux. Je peux obtenir empiriquement la formule me permettant de passer des coordonnées en pixels (x,y) aux coordonnées réels (alpha, beta). Je ne sais pas si je suis clair.

    Nom : Schéma mesure tridimensionnelle depth map.jpg
Affichages : 312
Taille : 77,5 Ko

  7. #7
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Mesure tridimensionnelle à partir d'une depth map
    La distorsion est relativement limitée, si l'on en juge par l'incurvation apparente des bords de la balustrade, et une correction doit pouvoir la réduire (quoique je ne connaisse pas les fonctions utilisées).

    Nom : 2 pigeons_00.png
Affichages : 294
Taille : 452,2 Ko

    Le problème vient de ce que les images (M') des points objets (M) sur lesquels la mise au point a été faite se situent pratiquement dans le même plan (P') perpendiculaire à l'axe optique, à une distance du centre optique (C) voisine de la focale (f); dans le cas de la photo précédente, si l'on en juge au flou du paysage, ce plan ne se confond pas exactement avec le plan focal image (Π'), quoiqu'il en soit très proche.

    La formation des images résulte donc de la projection centrale de (M) sur le plan (P') par le centre optique (C) de l'objectif, de sorte que les relations de similitude entre triangles amènent toujours moins de relations qu'il n'y a d'inconnues; on aura ainsi pour le couple objet/image (MM'):
    x/z = x'/f , y/z = y'/f , soit 4 inconnues, pseudo-focale comprise,
    celle-ci pouvant être déterminée si l'on a photographié un segment objet (A°B°) de dimension connue (L°) situé à une profondeur donnée (z = z = d°):
    L°/d° = (A'°B'°)/f
    pour le même grandissement de l'image étudiée, cela va de soi.
    Tu ne disposes donc à ce stade que les rapports des coordonnées (x, y, z).

    L'indétermination ne peut être complètement levée que par la connaissance d'une distance supplémentaire en profondeur, pour le point objet considéré (par ex. d = CM) à l'aide un appareil laser (si j'ai bien compris la précision que tu donnes):
    Citation Envoyé par Ayubowan Voir le message
    ... mais j'ai la possibilité de rajouter un laser infrarouge pour avoir une référence, et donc les longueurs absolues des segments ...
    La carte dont tu parles
    Citation Envoyé par Ayubowan Voir le message
    ... Mais je suppose qu'avec la depth map que j'obtiens, je peux en extraire les longueurs des deux segments non ? Je suppose qu'une depth map donne des profondeurs relatives ... ...
    te fournit-elle des données précises concernant les profondeurs ? Cela pourrait te sortir d'embarras.

    Il faut signaler qu'une autre difficulté surgira dès que tu amorcera des calculs: ceux-ci portent sur de petites distances déterminées sur l'image, et forcément entachées d'une forte incertitude en raison du flou des détails: cela risque de conduire à des résultats très décevants.
    Et je n'ai pas évoqué la complexité des calculs, pour un objet de dimensions connues, mais non perpendiculaire à l'axe optique (noyade assurée ): voir par exemple le segment (IJ).

    Nom : 2 Pigeons_02.png
Affichages : 290
Taille : 447,5 Ko

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Je pense que c'est plus simple que tout ça. Au moins pour obtenir une estimation très valable.

    On connait d1, d2, a1, et a2. C'est énorme. Je ne sais pas comment on a pu déterminer ces 4 valeurs, et si on a une grande précision sur ces 4 valeurs, mais ce n'est pas la question.

    On va faire 2 calculs différents, avec 2 hypothèses différentes. Et la vérité sera quelque part entre les 2 résultats obtenus.

    On a 3 droites D0, D1 et D2 qui partent de l'objectif.
    Première hypothèse, ces 3 droites sont coplanaires.
    On a donc un plan et on a M1(d1 cos(a1), d1 sin(a1) ) et M2( d2 cos (a2) , d2 sin(a2) ) Et calculer la distance entre M1 et M2 est facile.

    Deuxième hypothèse, Le plan défini par D0,D1 est orthogonal au plan défini par D0,D2.
    On a donc M1(d1 cos(a1), d1 sin(a1),0) et M2 ( d2cos(a1), 0, d2 sin(a2) ). Et là aussi , calculer la distance entre M1 et M2 est facile.

    A priori, les angles a1 et a2 sont petits, donc les 2 distances obtenues devraient être assez proches.

    Avec ces 2 valeurs , comment conclure ? peut-être la moyenne ? peut-être un truc intermédiaire, qui va privilégier la 1ère hypothèse ?
    Pas d'idée précise, mais je priviligierais la 1ère hypothèse (les 3 droites sont coplanaires)

    Et entre l'imprécision sur d1 d2 a1 et a2 et l'imprécision à ce niveau, je pense que la plus importante soit au niveau des mesures.

    PS :
    En regardant à nouveau la 1ère image, je vois qu'on a des angles b1 et b2 qui seraient connus aussi. Donc on a tous les éléments pour faire un calcul parfaitement exact.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    L'image avec les pigeons était une image sortie de nulle part, elle n'a rien à voir avec ce que je mesure, c'était pour l'exemple

    Sinon, je suis un peu perdu avec toutes ces lettres, je ne sais jamais vraiment de quels schémas vous parlez.

    Je pense que mathématiquement j'ai assez d'inconnues et d'équations mais finalement ce que j'aimerais savoir, c'est la faisabilité du projet. La précision, j'y crois moyen mais si elle est mauvaise, on pourra rajouter une caméra pour avoir de la vraie stéréoscopie.

    L'étape dont je doute fortement de la faisabilité, c'est de savoir si je peux récupérer les angles alpha et beta dont je parle dans mon post #6. Je ne suis pas sûr du tout que ça marche.

    Pour la depth map, je vous rappelle pour ne pas qu'on se perde, que je l'obtiens de cette façon : https://paperswithcode.com/task/mono...pth-estimation
    Je compte ensuite transformer ces informations relatives de profondeur en informations absolues, en projetant un laser infrarouge qui me donnera la distance d'un des pixels de la depth map et qui sera donc ma référence.

    PS : Je réalise en fait que ce que je veux faire en fait c'est tout simplement de la photogrammétrie mais en utilisant inutilement des méthodes complexes ? Si c'est bien ça, le projet reste intéressant pour nous avec deux caméras et un laser pour référencer la depth map.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je réalise que ce que je veux faire correspond à de la photogrammétrie mais en faisant compliqué alors que ça peut être bien plus simple. Pour ne pas avoir d'imprécisions sur l'estimation de la stéréoscopie, je pense que je devrais partir sur ce genre de capteurs : https://www.intelrealsense.com/depth-camera-d435/

    Qu'en pensez vous ?

  11. #11
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Mesure tridimensionnelle à partir d'une depth map
    Le problème est complètement transformé dès qu'il y a deux caméras.

    Voici quelques liens (anciens) concernant la vision stéréoscopique, et qui t'intéresseront peut-être:

    Stéréo-Club Français
    association pour l'image en relief : photo 3D, vidéo 3D
    http://www.stereo-club.fr/SCFWiki/index.php/Accueil

    http://www.stereomaker.net/fra/stphmkr/index.html

    https://www.image-en-relief.org/ster...scfwikiAccueil

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour ces liens. Je vais potasser tout ça.

    J'ai trouvé une vidéo qui illustre exactement ce que je voudrais faire, mais à une précision plus faible.
    https://www.youtube.com/watch?v=Xa_S...youtu.be&t=130

    J'ai cru comprendre que la technique qui permet d'obtenir la plus grande précision est celle de la "lumière structurée". Intel vend des caméras de ce type qui me semblent super intéressantes.
    https://store.intelrealsense.com/
    On aurait besoin de la même chose mais plus précis (5% d'erreur max sur une mesure environ).

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Connaîtriez vous des caméras stéréo à lumière structurée ou autre en dessous de 3000-4000€ qui nous permettrait de mesurer des distances entre 2 points de l'espace avec une précision de 5% environ ?

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/04/2015, 23h20
  2. Nuage de points à partir d'une depth map
    Par on2101 dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 21/12/2011, 19h27
  3. Génération d'une shadow gradient map à partir d'une image
    Par bappy dans le forum Traitement d'images
    Réponses: 11
    Dernier message: 22/03/2010, 18h55
  4. Changer le background d'un div à partir d'une image map.
    Par Daï2 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 03/08/2009, 11h02
  5. Map à partir d'une matrice
    Par Aldur dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/08/2005, 21h45

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