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 :

Retrouver les coordonnées 3D de 4 points avec contraintes


Sujet :

Mathématiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 49
    Points
    49
    Par défaut Retrouver les coordonnées 3D de 4 points avec contraintes
    Bonjour,

    Je cherche à retrouver les coordonnées dans l'espace de 4 points (A, B, C, D), sachant que je connais leurs coordonnées 2D sur l'image, et un certain nombre de contraintes spatiales liant ces 4 points entre eux.

    Je dispose des equations permettant de passer des coordonnées 3D aux coordonnées 2D, je me retrouve donc à ce stade avec un ensemble de 8 equations et 12 inconnues.
    Les equations pour chaque point sont de la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ua = { [ ( xa - xcam ) *  (- zcam) ] / ( za - zcam)  } + xcam.
    va = { [ ( ya - ycam ) *  (- zcam) ] / ( za - zcam)  } + ycam.
    où ua et va sont les coordonnées 2D du point A, xa, ya, za sont les coordonnées 3D que je recherche, et xcam, ycam et zcam sont les coordonnées de la caméra, connues.


    Les contraintes additionnelles qui (j'espère) doivent me permettre de déterminer les 12 inconnues (si le système est solvable) sont les suivantes:

    1 - Les 4 points sont coplanaires.
    2 - Les 4 points forment un rectangle dans ce plan.

    Autant prévenir de suite, mes notions de géométrie dans l'espace sont anciennes et limitées, mais je compte en profiter pour progresser sur le sujet

    Pour la contrainte 1, j'ai deux possibilités:
    a - Faire le produit vectoriel de AB et AC puis le produit vectoriel de AC et AD. Si les deux vecteurs obtenus sont colinéaires, les 4 points sont coplanaires...

    - J'ai commencé à travailler la dessus, mais j'ai l'impression que cela me rajoute des inconnues au niveau de l'équation du plan...

    b - Calculer la distance du point D au plan formé par ABC. celle ci doit être nulle.


    Pour la contrainte 2, mesurer les angles formés par les segments deux à deux. Les angles ABC, BCD, CDA et DAB doivent tous être 90°.


    Quelques questions :
    - D'après vous quelle est la meilleure piste ?
    - Voyez vous une autre technique ?
    - Sachant qu'ils sont coplanaires pourrais-je exprimer les coordonnées d'un point en fonction des 3 autres sans ajouter d'inconnue ?


    Merci pour toute info ou suggestion !

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    passer des coordonnées 3D à la 2d... donc tu connais juste la projection des points sur le plan de visualisation.

    Est ce que tu connais la distance entre la caméra et le plan de visualisation. Parce que même si les points forment un rectangle, ils peuvent se trouver sur n'importe quel plan à n'importe qu'elle distance de la caméra et du plan de visualisation.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Le plan de visualisation est le plan définit par les axes XY et de coordonnée Z=0.
    Les coordonnées de la caméra sont connues (et son z est toujours négatif)

    J'ai tenté d'explorer la contrainte 'rectangle' en utilisant les relations du produit scalaire. Je me retrouve avec quatre nouvelles équations de la forme

    cos(90) = produit scalaire / produit des normes.

    Donc peut-être que cela suffit pour résoudre le système ? (12 eq. 12 inconnues)

    Par contre j'éprouve des difficultés à organiser les équations pour exprimer le tout sous la forme d'un système d'équations, en isolant les inconnues et leur coéfficients...

    Pour préciser un peu mieux et pourquoi pas vous donner d'autres idées, voici un exemple concret de ce que je cherche à faire.

    Dans cette image:
    - Le plan de visualisation est à Z=0. confondu avec celui définit par les axes X et Y.
    - On connait les coordonnées 3D de la caméra.
    - On connait les coordonnées 2D sur le plan de visualisation des points A, B, C, et D.
    - On sait que, dans l'espace, les points A, B, C, et D sont coplanaires et forment un rectangle.

    - On cherche les coordonnées 3D des points A, B, C, et D.

    Merci pour toute idée ou éclairage !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut
    Tu veux trouver les coordonnées 3D des points A,B,C,D par rapport au repère caméra ?
    Si tu dis que le plan de l'image est confondu au repère XY ceci veut dire que tes points on un Z nulle par rapport au repère image.

    Si ce que je dis est vrai tu devrais avoir plus de spécifications concernant le repère caméra : les axes sont ils parallèle au axes du repères image ? sinon les angles entre les axes caméra et les axes images ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Désolé, je me rend compte que le schéma n'est pas si clair que ça.
    - Les points ABCD sur le schéma sont les projections sur le plan de visualisation des points réels A'B'C'D' du 'repère objet'. (dont on cherche les coordonnées et qui ne sont pas visibles sur le schéma)
    - Il n'y a pas de repère camera, le repère objet est tracé en noir sur le schéma, on connait la position de la caméra dans ce repère, et la position du plan de visualisation dans ce repère.

    Quoi qu'il en soit, je peux d'ores et déjà calculer la position sur le plan de visualisation de n'importe quel point du repère objet.
    => Je sais retrouver ABCD à partir de A'B'C'D'.
    Je cherche à faire l'opération inverse en fonction des contraintes, c'est à dire retrouver A'B'C'D' à partir de ABCD, sachant que A'B'C'D' est un rectangle sur un plan de l'espace objet.

    Je sais que le système n'aura pas toujours de solution, 4 points quelconques sur le plan de visualisation ne forment pas toujours un rectangle dans un plan du repère objet.

  6. #6
    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 : 52
    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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par jobigoud Voir le message
    Je cherche à faire l'opération inverse en fonction des contraintes, c'est à dire retrouver A'B'C'D' à partir de ABCD, sachant que A'B'C'D' est un rectangle sur un plan de l'espace objet.
    A priori, je dirais que si tu ne connais pas la distance au plan focal, tu as une infinité de solution possible... En gros tu ne peux pas savoir si le terrain est loin ou proche si tu ne connais pas le facteur de zoom de la camera.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    A priori, je dirais que si tu ne connais pas la distance au plan focal, tu as une infinité de solution possible... En gros tu ne peux pas savoir si le terrain est loin ou proche si tu ne connais pas le facteur de zoom de la camera.
    Bonjour,

    Dans la représentation mentale que je m'en fais, les solutions pour A'B'C'D' sont situées quelque part sur une droite passant par la caméra et le point projeté concerné.
    Si A'B'C'D' pouvait être un quadrilatère quelconque, je conçoit aussi qu'il y ait une infinité de solutions.
    (en prenant A'B' et C' au hasard sur leur droite, on pourra toujours trouver un D' qui soit coplanaire.)

    Cependant, comme il y a la contrainte pour A'B'C'D' d'être un rectangle, et donc les 4 angles formés par les segments (dans l'espace) sont droits, je pense qu'il n'y a au maximum qu'une solution... et qu'il peut n'y en avoir aucune...

    (par exemple sur cette image, on ne pourrait pas trouver de quadruplet A'B'C'D' qui formerait un rectangle dans l'espace... enfin je crois.)

    L'utilisation du produit scalaire sur les côtés du rectangle me permet d'ajouter 4 relations pour contraindre les inconnues.
    Cela dit, je n'arrive pas à progresser et à transformer les 12 relations en un système bien propre (linéaire ou non)...

    Je peux poster les 12 equations si ça peut aider à trouver une erreur de raisonnement ou avancer vers une méthode de résolution...

  8. #8
    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 : 52
    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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par jobigoud Voir le message
    Cependant, comme il y a la contrainte pour A'B'C'D' d'être un rectangle, et donc les 4 angles formés par les segments (dans l'espace) sont droits, je pense qu'il n'y a au maximum qu'une solution... et qu'il peut n'y en avoir aucune...
    Certe, mais comment savoir si ton rectangle fait 24mx8m ou 12mmx4mm ou 36cmx12cm ou ...

    A moins qu'on connaisse effectivement la longueur/largeur réelle du rectangle ? Est-ce vraiment un terrain de tennis ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Certe, mais comment savoir si ton rectangle fait 23mx8m ou 12mx4m ou 36x12m ou ...
    Oh, mais c'est pas très grave
    Si jamais je peux effectivement avoir les coords 3D du rectangle, je pourrais faire des mesures relatives de distances et d'angles sur ce plan et ça me suffit largement.
    (L'échelle pourra toujours être spécifiée après)

  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 : 52
    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 084
    Points
    16 084
    Par défaut
    Citation Envoyé par jobigoud Voir le message
    Oh, mais c'est pas très grave
    Si jamais je peux effectivement avoir les coords 3D du rectangle, je pourrais faire des mesures relatives de distances et d'angles sur ce plan et ça me suffit largement.
    Mais le problème c'est que tout ce qu'on sait, c'est que les 4 points du rectangle sont sur les 4 droites camera/pixels. A mon avis il n'y a pas qu'un seul rectangle possible...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    les 4 points du rectangle sont sur les 4 droites camera/pixels.
    Ok, en continuant sur cette idée, je me rends compte que l'on cherche finalement une section de pyramide qui soit rectangulaire.
    J'ai refait un schéma de principe, et effectivement il semble clair que s'il existe une section rectangulaire, il en existe une infinité...

    Cependant, je pense que cela n'est pas génant outre mesure pour l'objectif visé.
    En effet comme dit plus haut je peux travailler avec des coordonnées quelconques tant qu'elles sont cohérentes.
    Je pourrais par exemple fixer arbitrairement le Z d'un des 4 points et obtenir les valeurs correspondantes. Les mesures d'angles et de distances relatives sur ce plan seront encore justes.

    Donc disons que za est connu.
    Je vais tenter de voir ce que cela change pour le système d'équations...
    Le fait de penser le problème en terme de section de pyramide va peut-être également ouvrir d'autres pistes...

  12. #12
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    Citation Envoyé par pseudocode Voir le message
    A priori, je dirais que si tu ne connais pas la distance au plan focal, tu as une infinité de solution possible... En gros tu ne peux pas savoir si le terrain est loin ou proche si tu ne connais pas le facteur de zoom de la camera.
    Ouf... je me sens moins seul

    Dans ce genre de problème de recalage, il faut connaître la calibration de la caméra. Donc il faut que tu fasses ce genre de recherche avant Tu peux obtenir la calibration à partir de la matrice d'homographie (travaux de Ludovic Llucia et Sébastien Mavromatis sur le projet SimulFoot).

  13. #13
    Membre actif

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Points : 202
    Points
    202
    Par défaut
    Bonjour,

    il y a une personne qui posai la question du probleme de la calibration: ici


    Bon courage.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Suite à vos messages j'ai exploré un peu plus les matrices d'homographies, et je pense y avoir trouvé mon bonheur.
    N'ayant pas réellement besoin des coordonnées dans l'espace mais uniquement d'une grille en perspective pour pouvoir faire des mesures relatives sur ce plan, cela s'est avéré plus simple que ce que je pensais.
    merci !
    J'ai en particulier utilisé ce topic comme référence.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment retrouver les coordonnées X et Y d'un objet ?
    Par denisC dans le forum Téléchargez
    Réponses: 7
    Dernier message: 07/03/2018, 12h06
  2. Réponses: 2
    Dernier message: 15/04/2015, 11h01
  3. Comment récupér les coordonnées GPS d'un point sur la carte
    Par Rhino Onizuka dans le forum APIs Google
    Réponses: 2
    Dernier message: 10/01/2014, 14h42
  4. Réponses: 0
    Dernier message: 18/09/2009, 23h02
  5. Agrandissement/Réduction de rectangle, les uns par rapport aux autres avec contrainte
    Par zuzuu dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 17/01/2008, 17h34

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