#1 Sun 03 February 2008 11:38
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
[aide] Recalage 3D sur n points
Bonjour,
Après pas mal de recherches, je n'ai trouvé moyen de recaler un systéme local vers un systéme objet qui n'est pas gravitaire.
J'ai bien Helmert ou les moindres carrés en 2D mais rien lorsqu'il s'agit de trouver les paramètres de rotation 3D... me semble qu'Helmert existe aussi pour trouver les paramètres qu'il faut (Tx, Ty, Tz, Rx, Ry, Rz... pas besoin d'echelle dans mon cas) mais n'en suis même plus sûr. Enfin bon, si qq'un pouvait venir a mon secours, lui en serai bien reconnaissant.
Hors ligne
#2 Sun 03 February 2008 11:47
Re: [aide] Recalage 3D sur n points
Il s'agit d'un outil que tu cherches, ou bien simplement la description de la méthode ?
Si ce n'est que la méthode, je ne vois pas où est la difficulté de passer d'un moindres carrés 2D à moindres carrés 3D, il y a juste des matrices plus grandes.
Si c'est l'outil que tu cherches, il faudrait donner un peu plus de précisions : qu'est-ce que tu veux recaler, dans quel format...
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#3 Sun 03 February 2008 14:00
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
Re: [aide] Recalage 3D sur n points
C'est la methode que je cherche... et tant qu'a faire, j'aimerai autant eviter les moindres carrés pour deux raisons :
- Pas les compétences mathématiques suffisantes : le calcul matriciel me dépasse.
- Pas besoin d'une précision redoutable et je voudrais pouvoir faire ca sous excel sans y passer six mois.
Ce que je veux recaler : des coordonnées xyz d'un systême inconnu sur des coordonnées XYZ des même points dans un système connu => trouver les paramètres de transformation d'un systême a l'autre (translations + rotations).
Pour la petite histoire, je fais ca avec Axyz pour le moment mais nous n'avons qu'une seule licence et les lieux d'intervention se multiplient donc je voudrais pouvoir me defaire de ce logiciel en gérant cette etape du travail sur excel.
Hors ligne
#4 Sun 03 February 2008 14:26
Re: [aide] Recalage 3D sur n points
Excel fait du travail matriciel très rapidement. Helmert, c'est un système d'équation qu'on résout par moindres carrés, donc c'est pareil. Les principaux TP lors de ma formation d'ingénieur où il y avait du moindre carré se faisaient avec Excel. Le problème avec Excel, c'est qu'il faut adapter la taille des matrices selon les données. (n=3, 4 ou 12) Pour le faire en moins de 5 secondes à chaque fois, il faut passer quelque temps sur le VBA. Sinon, Je dirais qu'une fois qu'on comprends ce qu'il faut faire avec Excel et qu'on adapte les tableaux à chaque fois, en moins de 20 minutes c'est plié.
Et ce n'est pas une question de précision redoutable. D'ailleurs, si tu veux de la fiabilité, il faut abandonner les moindres carrés, et passer à plus compliquer.
Pour un tel problème, le plus simple est du moindre carré. Mais c'est vrai qu'il faut maitriser un minimum. Et si le calcul matriciel te dépasse...
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#5 Sun 03 February 2008 15:29
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
Re: [aide] Recalage 3D sur n points
Merci pour la réponse. Je vois ce qu'il me reste a faire : vais me remettre aux matrices de ce pas... reviendrai d'ici quelques semaines/mois^^.
Hors ligne
#6 Sun 03 February 2008 15:37
Re: [aide] Recalage 3D sur n points
Pas besoin de savoir calculer un déterminant ou l'inverse d'une matrice, c'est Excel qui s'en occupe, hein ! Si tu veux comprendre les moindres carrés, il faut juste comprendre les notations où une lettre symbolise un tableau entier. Le plus dur, c'est la notation, après la théorie et les calculs, tu peux t'en passer si tu veux juste appliquer le calcul (le problème dans ce cas, c'est d'être sûr du calcul, mais tu pourras toujours tester tes premières tentatives avec ton logiciel uni-licenses :p)
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#7 Tue 05 February 2008 10:42
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
Re: [aide] Recalage 3D sur n points
Bon, puisque nous sommes sur un forum, autant faire profiter de mes recherches... donc voici ou j'en suis : http://jeux.developpez.com/faq/matquat/ … formations
A priori (a priori seulementm ne m'y suis pas encore beaucoup attardé mais l'espoir est grand) il devrait y avoir tout ce qu'il me faut.
Hors ligne
#8 Thu 07 February 2008 09:20
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
Re: [aide] Recalage 3D sur n points
Bon, ca avance pas forcement dans la direction de départ mais ca avance... mais ca va plus beaucoup avancer : j'arrive comme un grand a calculer ma matrice de rotation pour me recaler sur trois points mais pas plus (sauf bien sûr si les jeux de coordonnées se correspondent parfaitement) et pour cause : pour le moment, je me contente de faire une moyenne des angles de rotation.
Du coup, mes écarts sur les points restent trop importants (de l'ordre de 10mm alors que je peux avoir un RMS de l'ordre de 0.5mm)...
Je ne comprends pas bien ce qui va me permettre d'ameliorer tout ça alors si quelqu'un pouvais vaguement me guider...
Hors ligne
#9 Thu 07 February 2008 09:49
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: [aide] Recalage 3D sur n points
Bonjour,
Quelques vagues indices: le calcul par les moindres carrés.
Comme Jérôme te l'a déjà expliqué.
Utilise la recherche sur ce forum avec "helmert" en mot clef, tu auras déjà une vision des moindres carrés en 2D.
Bon courage
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#10 Thu 07 February 2008 10:05
Re: [aide] Recalage 3D sur n points
Benjamin, je t'ai dit depuis le début, les MMC, il n'y a que ça de bon si tu veux ajuster tes n points
En bref :
+ Former ton système d'équation du type B = A.X
- B est une matrice colonne (X1, Y1, Z1, X2, Y2.......)
- X est ta matrice (colonne aussi d'inconnues : Tx, Ty, Tz, R1, R2...
- A est une matrice de coefficient qui ici vont être Xancien1, Yancien1...
Si tu as X1 = Tx + R1X + R2Y + R3Z, la première ligne de la matrice A est 1 X Y Z
Est-ce que tu arrives à former ton système de matrices ?
+Résolution :
Dans le cas nombre d'équation = nombre d'inconnus, A est une matrice carré et tu peux résoudre avec un pivot de Gauss, ou simplement X = A^-1.B (^-1 = inversion de matrice, fonction d'Excel)
Dans les autres cas, qui nous intéressent, il y a une formule à la con que je ne retrouve pas. À midi, on va faire simple, je regarde chez moi, je mets la formule, et je joins une feuille Excel avec des calculs de moindres carrés que tu pourras prendre en exemple...
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#11 Thu 07 February 2008 16:01
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
Re: [aide] Recalage 3D sur n points
Ai bien l'impression que c'est effectvement la formule dite "à la con" qui me manque...
- Former le système de matrice : OK
- Pivot de Gauss : OK
- Faire intervenir les résidus (ie. MMC) : OK sur le principe, mais seulement le principe... j'imagine que c'est ici que vient la fameuse formule.
En tous cas, merci pour les réponses, aussi claires que rapides.
Hors ligne
#12 Thu 07 February 2008 19:41
Re: [aide] Recalage 3D sur n points
Enfin ! la tant désirée formule matricielle pour résoudre par MC :
Et comme promis en pièce jointe, un joli TP avec les formules, une matrice de poids pour pondérer les données et quelques tests statistiques (cas linéaire).
S'il y a des questions, je suis toujours là :p
Dernière modification par Jérôme C (Thu 07 February 2008 19:44)
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#13 Tue 12 February 2008 19:17
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
Re: [aide] Recalage 3D sur n points
Tout bon, m'en sors a peu près maintenant... en tous cas, j'ai bien tout ce qu'il me faut. Merci a tous.
Hors ligne
#14 Fri 15 February 2008 13:58
- Benjamin L.
- Juste Inscrit !
- Lieu: Brazzaville
- Date d'inscription: 3 Feb 2008
- Messages: 9
Re: [aide] Recalage 3D sur n points
Me croyais déjà arrivé... un peu trop vite semble-t-il. La feuille excel ci-jointe présente le problème en détails (un peu trop long à expliquer sur un post). Help !
Au passage, je laisse l'adresse de ce memoire ESGT qui est pile poil dans le sujet (mais ne m'a pas suffit manifestment) http://www.esgt.cnam.fr/fr/tfe/memoires … is_mem.pdf
Hors ligne
#15 Sat 16 February 2008 03:18
Re: [aide] Recalage 3D sur n points
Je dirais que (simplement) tu n'as pas assez de points. La distribution géométrique de certains points fait que tu ne peux déterminer correctement tes paramètres. Mais Excel, tu lui demandes de calculer quelque chose, il le fait, il n'est pas compliqué !
C'est comme si tous tes points étaient sur une même droite et tu essayais de déterminer le plan formé par tous tes points. C'est quand même bizarre que ça foute autant la merde, j'aurais cru que certaines coordonnées serait fixées. Enfin, ce n'est pas l'heure de regarder ça plus longtemps...
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#16 Thu 21 February 2008 20:31
- rerefr
- Participant occasionnel
- Date d'inscription: 21 Jan 2008
- Messages: 17
Re: [aide] Recalage 3D sur n points
Complément d'information, avec seulement 2 points d'appui:
Je vais être un peu contradictoire avec ce que vous avez fait, mais si vous ne voulez pas prendre plus de points que nécessaire, alors c'est possible de résoudre facilement les équations avec un système de cramer:
et puisque tu ne voulais pas de facteurs d'échelle, on aurait donc:
X' = X +Rz.Y + -Ry.Z + Tx
Y' = -Rz.X + Y + Rx.Z + Ty
Z' = Ry.X +-Rx.Y + Z + Tz
3 rotations, 3 translations : 6 inconnues donc vous avez besoin de seulement 2 couples de points.(XYZ)
Hors ligne
#17 Thu 21 February 2008 20:52
Re: [aide] Recalage 3D sur n points
rerefr, si tu lisais au moins le sujet en entier, tu remarqueras que c'est ce qu'a commencé à faire Benjamin, mais que les résultats ne le satisfaisait pas. (cf post n°8)
Et aussi, il faut apprendre à faire un peu de physique, car les maths, ce n'est pas tout. Tu as peut-être 6 équations et 6 inconnues, mais ta matrice n'est pas inversible ! Tu as une information redondante, et il te faut un troisième point pour résoudre. C'est le positionnement en mécanique. C'est l'orientation des clichés en photogrammétrie.
C'est aussi ce que j'appelle dans ce sujet le pivot de Gauss, car je connais Gauss et pas Cramer : peux-tu citer de tête une autre contribution mathématique de M. Cramer après son système d'équations ?
C'était donc un complément de non-information.
Merci.
p.s : Avec ce système tu as ton facteur d'échelle, ce qui n'est pas gentil.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#18 Thu 21 February 2008 23:37
- rerefr
- Participant occasionnel
- Date d'inscription: 21 Jan 2008
- Messages: 17
Re: [aide] Recalage 3D sur n points
pas la peine de s'énerver, ça arrive
Hors ligne
#19 Thu 21 February 2008 23:52
Re: [aide] Recalage 3D sur n points
Mais je ne m'énerve pas, je fais juste une mise au point sur ce qui semblait être une information...
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne