RoMa完整指南:PyTorch 3D旋转工具箱,一站搞定四元数、旋转矩阵与欧拉角互转
RoMa完整指南PyTorch 3D旋转工具箱一站搞定四元数、旋转矩阵与欧拉角互转【免费下载链接】romaRoMa: A lightweight library to deal with 3D rotations in PyTorch.项目地址: https://gitcode.com/gh_mirrors/roma1/romaRoMa是一个轻量级的PyTorch 3D 旋转操作库Rotation Manipulation为机器学习与梯度优化提供可微分的 3D 旋转表示转换四元数、旋转矩阵、旋转向量与欧拉角互转还内置旋转空间度量、SLERP 球面插值、6D 旋转回归和刚体点云配准让姿态估计、三维重建与机器人学任务一步到位。 什么是 RoMa为什么需要它在 3D 视觉、SLAM、机器人控制中一个物体怎么转可以用多种数学形式描述旋转矩阵rotmat3×3 正交矩阵直观但冗余单位四元数unitquat4 维向量无万向锁GPU 批量运算高效旋转向量rotvec3 维向量角度 × 轴最紧凑欧拉角 / Tait-Bryan 角人类可读但存在万向锁。RoMa 把这些表示之间的转换全部实现为可微分函数——也就是说神经网络可以直接输出这些量并做反向传播小角度等数值边界情况也经过专门处理避免了学术代码里常见的 NaN 梯度问题。 快速安装一条命令完成最简单的方式是通过 pip 直接安装pip install roma如果想使用最新源码版本可以克隆仓库后本地安装git clone https://gitcode.com/gh_mirrors/roma1/roma cd roma pip install .项目元信息见 pyproject.toml源码采用 3-Clause BSD 许可证见 LICENSE。安装后验证一下python -m unittest即可运行完整的单元测试套件位于test/目录。 RoMa 支持的 4 种旋转表示表示张量形状特点旋转向量 rotvec...x3最紧凑轴角形式单位四元数 unitquat...x4XYZW 约定计算稳定旋转矩阵 rotmat...x3x3列向量约定R x欧拉角 euler...x3支持任意旋转约定如xyzRoMa 的所有函数都支持任意数量的批次维度batch dims——无论你的数据形状是(3,)、(2,3)还是(B,H,W,3)同一套 API 都能直接批量处理这在大规模训练中非常省心。 核心功能一四种表示自由互转RoMa 在 roma/mappings.py 和 roma/euler.py 中提供了完整的互转矩阵rotvec_to_unitquat/unitquat_to_rotvec旋转向量 ↔ 四元数unitquat_to_rotmat/rotmat_to_unitquat四元数 ↔ 旋转矩阵rotvec_to_rotmat/rotmat_to_rotvec旋转向量 ↔ 旋转矩阵euler_to_unitquat/rotmat_to_euler欧拉角与其余表示互转支持degreesTrue度数模式quat_xyzw_to_wxyz不同四元数分量约定的转换典型流程示例更多可参考 examples/snippets/rotvec_to_unitquat.pyimport torch, roma rotvec torch.randn(2, 3, 3) q roma.rotvec_to_unitquat(rotvec) # 转四元数 R roma.unitquat_to_rotmat(q) # 转旋转矩阵 euler roma.unitquat_to_euler(xyz, q, degreesTrue) # 转欧拉角度 核心功能二从任意输出回归合法旋转Procrustes / 6D 表示做姿态回归时网络输出往往不是合法旋转。RoMa 在 roma/mappings.py 中提供了三种从欧氏空间到旋转空间的可微映射函数输入形状说明special_procrustes...x3x3将任意 3×3 矩阵投影到最近旋转矩阵推荐special_gramschmidt...x3x26D 旋转表示转换Zhou et al. 的流行方案symmatrixvec_to_unitquat...x1010 维对称矩阵向量 → 四元数对偶# 把网络输出的任意 3x3 矩阵修正为合法旋转矩阵 R roma.special_procrustes(torch.randn(4, 3, 3))procrustes还支持前向模式微分torch.func.jvp/jacfwd/vmap方便做高阶导数研究。相关数值精度讨论可见test/test_procrustes_derivatives.py。 核心功能三旋转空间度量与 SLERP 插值roma/utils.py 内置了旋转空间的常用工具距离度量rotmat_geodesic_distance测地距离比朴素实现精度高得多小角度下也不产生 NaN 梯度、rotvec_geodesic_distance、unitquat_geodesic_distance、rotmat_cosine_angle四元数运算quat_product、quat_conjugation、quat_normalize、quat_action旋转作用到向量组合与求逆rotmat_composition、rotvec_inverse等SLERP 球面插值unitquat_slerp、rotvec_slerp最短路径、rotmat_slerp还有 GPU 加速版unitquat_slerp_fast随机采样random_rotmat、random_unitquat、random_rotvec便于数据增强与测试。# 两个旋转向量之间按最短路径做 5 步球面插值 steps torch.linspace(0, 1.0, 5) rotvecs roma.rotvec_slerp(rotvec0, rotvec1, steps)完整示例见 examples/snippets/rotvec_slerp.py 与 examples/snippets/metrics.py。 核心功能四刚体变换与点云配准roma/transforms.py 提供了面向应用的变换类Rigid旋转矩阵 平移向量的刚体变换支持组合、.inverse()求逆、.to_homogeneous()导出 4×4 齐次矩阵RigidUnitQuat用四元数参数化的版本可直接与Rigid互转Orthogonal/ScalingOrthogonal/Scale等中间变换类按需组合。配合 roma/utils.py 中的rigid_points_registration与rigid_vectors_registration可以一键对齐两组点云经典 ICP 预处理、Sim(3) 对齐# 用 Procrustes 对齐两组点 T, s roma.rigid_vectors_registration(x, y, compute_scalingTrue)示例参考 examples/snippets/rigid_registration.py 与 examples/snippets/transforms.py。 项目结构速览roma/ # 核心库源码 mappings.py # 表示互转 Procrustes/6D 回归 euler.py # 欧拉角映射 utils.py # 度量、四元数运算、SLERP、配准 transforms.py # Rigid / RigidUnitQuat 等变换类 internal.py # 批量维度等内部工具 examples/ # 各功能的最小示例 snippets/ # 按主题拆分的代码片段 test/ # 单元测试test_mappings.py、test_euler.py 等 docsource/ # Sphinx 文档源码官方 API 文档由 Sphinx 生成构建脚本为 build_doc.shexamples/下还有mapping_benchmark.py转换效率基准与geodesic_distance_comparison.py距离实现精度对比等进阶示例。✅ 总结RoMa 适合谁3D 视觉 / 姿态估计从业者网络直接回归旋转Procrustes 一步洗出合法旋转矩阵机器人 / 控制工程师四元数运算、变换组合求逆、点云配全都备齐研究生与学习者API 简洁、批次维度自由、数值处理严谨是 PyTorch 生态里最省心的 3D 旋转工具箱。一句话装好 RoMa四元数、旋转矩阵、旋转向量、欧拉角从此随便换反向传播一路畅通。【免费下载链接】romaRoMa: A lightweight library to deal with 3D rotations in PyTorch.项目地址: https://gitcode.com/gh_mirrors/roma1/roma创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

从十字星到多边形:chartjs-plugin-annotation的point、polygon、ellipse注解全解析

从十字星到多边形:chartjs-plugin-annotation的point、polygon、ellipse注解全解析

从十字星到多边形:chartjs-plugin-annotation的point、polygon、ellipse注解全解析 【免费下载链接】chartjs-plugin-annotation Annotation plugin for Chart.js 项目地址: https://gitcode.com/gh_mirrors/ch/chartjs-plugin-annotation 如果你想在 Chart.…

2026/8/25 10:41:46 阅读更多 →
OpenClaw开源AI智能体框架:技能化开发与Docker部署实战

OpenClaw开源AI智能体框架:技能化开发与Docker部署实战

1. 项目概述:OpenClaw(小龙虾)与它的“技能”生态最近在AI应用开发圈里,OpenClaw(大家更习惯叫它“小龙虾”)的热度持续走高。如果你正在寻找一个能让你快速构建、部署和管理AI智能体(Agent&…

2026/8/25 10:40:45 阅读更多 →
allowAnyone 漏洞:黑客如何转走任意用户余额?awesome-buggy-erc20-tokens 揭示 81 个中招合约的内幕

allowAnyone 漏洞:黑客如何转走任意用户余额?awesome-buggy-erc20-tokens 揭示 81 个中招合约的内幕

allowAnyone 漏洞:黑客如何转走任意用户余额?awesome-buggy-erc20-tokens 揭示 81 个中招合约的内幕 【免费下载链接】awesome-buggy-erc20-tokens A Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected 项目地址: https:/…

2026/8/25 10:40:45 阅读更多 →

最新新闻

【2026版】MongoDB 8.0 下载、安装与初步连接(超详细图文版)

【2026版】MongoDB 8.0 下载、安装与初步连接(超详细图文版)

MongoDB 是一款非常流行的开源 NoSQL 数据库,以其灵活的文档模型和高效的性能被广泛应用于现代软件开发中。本文将手把手教你如何在 Windows 系统上下载、安装 MongoDB 8.0,并使用 Navicat 进行初步的连接测试。 一、下载 MongoDB安装包下载地址&#…

2026/8/25 11:24:16 阅读更多 →
LLM智能体上下文污染:重试机制中的隐蔽陷阱与解决方案

LLM智能体上下文污染:重试机制中的隐蔽陷阱与解决方案

1. 项目概述:当LLM智能体“重试”反而让事情更糟在构建基于大语言模型的智能体工作流时,我们常常会引入一个看似万能的“安全网”——重试机制。当智能体执行某个工具调用失败,或者返回的结果不符合预期时,我们很自然地会想到&…

2026/8/25 11:24:16 阅读更多 →
医疗多模态智能体Meissa:架构、挑战与应用场景解析

医疗多模态智能体Meissa:架构、挑战与应用场景解析

1. 项目概述:当医学遇上多模态智能体最近在医疗AI圈子里,一个叫“Meissa”的概念讨论度挺高。它不是一个具体的软件或产品,而更像是一个技术愿景或架构范式:多模态医疗智能体智能。简单来说,它试图解决一个核心痛点&am…

2026/8/25 11:24:16 阅读更多 →
DBA删库跑路还顺手清了日志?我用国密SM2+哈希链手搓了一套DMJOB日志防篡改引擎,安全审计员看后直接给了满分!

DBA删库跑路还顺手清了日志?我用国密SM2+哈希链手搓了一套DMJOB日志防篡改引擎,安全审计员看后直接给了满分!

是一个拥有 DBA 权限的实习生,在手动执行 SQL 时不小心把生产表 truncate 了。为了掩盖失误,他利用 DBA 权限,直接 DELETE 了 SYSJOB.SYSJOBHISTORIES 里的那条报错日志,然后伪造了一条成功日志插了进去! 第二天复盘&a…

2026/8/25 11:24:16 阅读更多 →
从静默死亡到进程崩溃:C# BackgroundService 在信创环境的 5 个夺命坑,你踩过几个?

从静默死亡到进程崩溃:C# BackgroundService 在信创环境的 5 个夺命坑,你踩过几个?

🔥关注墨瑾轩,带你探索编程的奥秘!🚀 🔥超萌技术攻略,轻松晋级编程高手🚀 🔥技术宝库已备好,就等你来挖掘🚀 🔥订阅墨瑾轩,智趣学习不…

2026/8/25 11:24:16 阅读更多 →
Windows 10系统还原点:从原理到实战的完整指南

Windows 10系统还原点:从原理到实战的完整指南

1. 为什么你的Windows 10需要一个“后悔药”?如果你用过Windows 10,大概率遇到过这种情况:心血来潮更新了一个驱动,结果声卡不响了;或者手滑删了一个系统文件,某个软件再也打不开了;又或者某次系…

2026/8/25 11:23:15 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →