6D rotation representation
- Aussi appelé: 6D rotation, continuous 6D rotation representation
- Catégorie: Foundations & spatial maths › Frames & transforms
- Mots-clés: rotations, pose-estimation, deep-learning, spatial-math, so3
Encodage d'une rotation 3D sous forme de deux vecteurs 3D, les deux premières colonnes de sa matrice de rotation, afin que les réseaux de neurones puissent prédire des rotations sans les discontinuités des angles d'Euler ou des quaternions.
Définition
La représentation 6D des rotations (6D rotation representation) encode une rotation 3D par six nombres : deux vecteurs 3D qui, après orthonormalisation, deviennent les deux premières colonnes de la matrice de rotation. Elle a été introduite par Zhou et al. en 2019 pour les réseaux de neurones qui prédisent des rotations ou les prennent en entrée. Pour transformer les six sorties d'un réseau en rotation, on normalise le premier vecteur, on retire du second sa composante selon le premier et on normalise le résultat, comme dans l'orthogonalisation de Gram-Schmidt, et la troisième colonne est le produit vectoriel des deux premières. Six nombres quelconques dont les deux vecteurs sont non nuls et non parallèles correspondent à une matrice de rotation valide.
La motivation est la continuité. Zhou et al. ont montré que toute représentation des rotations 3D en quatre dimensions réelles ou moins est discontinue : quelque part, des rotations proches les unes des autres correspondent à des représentations éloignées, ou inversement. Les angles d'Euler sautent au repliement des angles et souffrent du blocage de cardan ; la représentation axe-angle se replie pour une rotation de π ; les quaternions présentent le double recouvrement, dans lequel q et −q décrivent la même rotation, et les restreindre à un hémisphère pour lever cette ambiguïté introduit un saut à la frontière. Un réseau entraîné à régresser de telles cibles doit approcher une fonction discontinue, ce qui tend à produire de grandes erreurs pour certaines rotations. La représentation 6D, comme la matrice de rotation 9D complète, est continue, et dans leurs expériences les réseaux entraînés avec elle apprenaient les rotations avec plus de précision.
La forme 6D est redondante plutôt que minimale, et son étape de Gram-Schmidt traite la première colonne différemment de la seconde. Une alternative courante prédit les neuf coefficients de la matrice et les projette sur la rotation la plus proche par une décomposition en valeurs singulières, ce qui est symétrique entre les colonnes. Les pertes sont généralement calculées sur la matrice de rotation reconstituée, par exemple sous forme d'angle géodésique ou de distance de Frobenius, plutôt que sur les six nombres bruts. La représentation est un outil d'apprentissage : l'estimation et l'optimisation classiques travaillent généralement directement sur le groupe des rotations avec des quaternions ou des mises à jour dans l'algèbre de Lie.
Pourquoi c'est important
De nombreux systèmes d'apprentissage robotique et de perception prédisent des orientations : poses d'objets et de mains, rotations articulaires humaines, actions de l'effecteur terminal. Le choix de la représentation des rotations influe sur la qualité de l'entraînement de ces réseaux, et la représentation 6D est devenue un choix par défaut courant pour les sorties et les entrées qui sont des rotations.
Applications principales
- Estimation de pose d'objets et de mains par réseaux de neurones
- Modèles de pose et de corps humains qui prédisent des rotations articulaires
- Orientation de l'effecteur terminal dans les politiques robotiques apprises et les espaces d'action
- Régression de pose de caméra et estimation de pose relative
- Modèles génératifs de mouvements et de saisies
En pratique
Une équipe entraîne un réseau qui estime la pose du bras d'une personne à partir de capteurs portés au poignet. Au lieu de produire des angles d'Euler pour l'épaule et le coude, le réseau produit six nombres par articulation. Une petite couche convertit chaque groupe de six en matrice de rotation par Gram-Schmidt et un produit vectoriel, et la perte compare ces matrices à la vérité terrain issue de la capture de mouvement au moyen de l'angle géodésique qui les sépare. Le même encodage sert pour les entrées d'orientation provenant des capteurs, si bien que le réseau ne voit jamais de repliement d'angle. Au déploiement, les matrices de rotation prédites sont converties en quaternions ou en angles articulaires pour le contrôleur du robot.
Idées reçues
- 6D désigne une pose complète à 6-DoF — la représentation ne couvre que la rotation, qui a trois degrés de liberté, encodée avec six nombres
- Les six sorties d'un réseau sont déjà une rotation — elles doivent être orthonormalisées et complétées par un produit vectoriel avant de former une matrice de rotation valide
- Les quaternions sont toujours le meilleur choix pour l'apprentissage — leur double recouvrement et le saut introduit par la restriction à un hémisphère les rendent discontinus comme cibles de régression
- La représentation 6D remplace partout les quaternions — elle a été conçue pour les entrées et sorties des réseaux de neurones, tandis que les filtres et les optimiseurs travaillent généralement directement sur le groupe des rotations
Qui devrait le savoir
- Chercheurs en apprentissage robotique qui conçoivent des espaces d'action et d'observation
- Ingénieurs en vision par ordinateur travaillant sur l'estimation de pose
- Chercheurs en mouvement humain et en animation
- Ingénieurs qui entraînent des réseaux de saisie et de manipulation
Technologies associées
- Matrice de rotation (Rotation Matrix)
- Quaternions
- Orthogonalisation de Gram-Schmidt (Gram-Schmidt Orthogonalization)
- Orthogonalisation par SVD
- PyTorch3D
Termes associés
Projets associés
- pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- manif: Header-only C++ Lie theory library for robotics state estimation
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- Intrinsic Core: Intrinsic's open industrial robot stack: real-time control, planning and perception
- PULP-Dronet: Visual navigation for nano-drones with CNN inference onboard a PULP processor.