naver/roma
RoMa: A lightweight library to deal with 3D rotations in PyTorch.
What it solves
It simplifies the complex mathematical process of handling 3D rotations in PyTorch, providing a way to convert between different rotation representations and perform operations on them in a way that is differentiable, which is essential for training machine learning models.
How it works
RoMa provides a set of tools to map between various rotation formats (such as rotation vectors, unit quaternions, and rotation matrices) and maps Euclidean space to rotation space. It includes utilities for calculating geodesic distances, performing spherical interpolation (Slerp), and managing rigid transformations (rotation and translation) using homogeneous matrices.
Who it’s for
Researchers and developers working on 3D vision, robotics, and machine learning projects that require precise and differentiable 3D rotation manipulation.
Highlights
- Differentiable mappings between rotation representations.
- Support for arbitrary numbers of batch dimensions.
- Tools for rotation regression from arbitrary inputs using Special Procrustes and Special Gram-Schmidt orthonormalization.
- Built-in support for rigid transformations and homogeneous matrices.
Related
- Project
- Project
- Project
- Project
- Project