Bonjour,
Envoyé par
Alec6
... avec ma Webcam, j'arrive à détecter un carré, puis à calculer la direction des points de fuite, et enfin l'orientation du carré dans le repère de la caméra avec les angles d'Euler.
Même si le carré ne bouge pas, il y a des incertitudes de mesure pour obtenir la position des angles du carré (reconnu par la Webcam).
Par répercussion, il y a une imprécision sur le calcul des angles d'Euler. On se retrouve d'une capture d'image à une autre à avoir des angles d'Euler qui varie suffisamment pour poser problème.
Je viens de découvrir le filtre de Kalman qui semble bien correspondre à mon problème. Je comprends comment l'utiliser pour le déplacement d'un objet en 1 dimension, par contre je me demande comment je dois m'y prendre pour un objet qui peut se déplacer en 3D. C'est à dire qui peut tourner autour de son centre (Rotation), et se déplacer dans l'espace (Translation)
Est ce que pour les rotations je fais 3 filtres alpha - beta - gamma pour chaque angle d'Euler
avec gamma pour l'accélération de rotation angulaire, beta pour la vitesse, et alpha pour l'angle ?
Et est ce que c'est bien d'utiliser les angles d'Euler (et ce qu'il vaut mieux faire quelque chose avec les quaternions, j'ai du mal avec les matrices)
Est ce que ma logique est bonne ?
Simplement, quelques remarques:
1- (alpha - beta - gamma) ne correspond pas à la notation usuelle des angles d'Euler; on n'est nullement tenu au respect de la notation traditionnelle, mais tu t'exposes à des difficultés de transcription bien inutiles;
2- tu es en train de confondre allègrement ces angles (relatifs à l'orientation spatiale d'un objet tridimensionnel) avec des notions de cinématique impliquant des dérivations par rapport au temps:
β = α' = (dα/dt) ; γ = α" = (d2α/dt2) ...
et dans lesquelles (γ) ne représente pas un angle mais la dérivée seconde d'une coordonnée.
Je crains que tu te fourvoies complètement. Une rotation dans l'espace fait intervenir les dérivées temporelles des angles d'Euler θ' = (dθ/dt), θ" = (d2θ/dt2) ... etc.
3- Envisager la superposition d'une translation et d'une rotation dans l'espace va présenter de grandes difficultés, car la profondeur de l'objet devra être déduite des écarts de longueur entre (OA) et(OC), (OB) et (OD). Par ailleurs, les imprécisions sur les positions des sommets de l'images conduisent à un calcul de moyennes.
La projection centrale ne respectant que l'alignement des points, tu devras commencer par déterminer l'intersection (O) des segments (AC) et (BD), puis les vecteurs (OA, OB, OC, OD) ainsi que leur norme.
Je n'ai pas eu le temps de consulter la procédure indiquée (Kalman).
Partager