6D连续旋转表示(On the Continuity of Rotation Representations in Neural Networks)

出自论文:On the Continuity of Rotation Representations in Neural Networks

毕业设计用到机械臂,复现的论文提到采用6D旋转表示更适合神经网络学习。此前一直没弄清楚所谓的6D旋转表示是什么,为什么不直接用旋转矩阵或者四元数。今天查了些资料(其实是问了AI)简单总结一下,但其背后还涉及到更深层次的数学知识(例如群论)还远超出我的知识范围,希望在未来的一天弄明白。


文章提出6D旋转表示的关键点

  • 研究表明,旋转表示的连续性对神经网络学习至关重要
  • 传统四元数和欧拉角在4维或更低维空间中可能不连续,影响学习效果
  • 论文提出5D和6D的连续表示,适合神经网络学习,实验显示效果更好

论文提出的连续表示

论文提出5D和6D的连续表示:

  • 5D表示通过立体投影(stereographic projection)实现
  • 6D表示通过类似Gram-Schmidt过程实现

这些表示保留了SO(3)的拓扑结构,实验证明在自动编码器、点云姿态估计和人体逆运动学任务中表现优异。

连续表示的定义与背景

论文中提出了连续表示的正式定义,旨在确保神经网络在训练和推理时,旋转空间中的小变化能够对应到表示空间中的小变化。具体定义如下:

  • 原始空间,例如3D旋转空间SO(3),它是一个紧致的拓扑空间。
  • 是表示空间,是实向量空间的子集,带有欧几里得拓扑。
  • 存在两个映射:
    • ,将原始空间映射到表示空间。
    • ,将表示空间映射回原始空间,且的左逆,即对于每个,有.
  • 如果是连续的,则表示被称为连续表示

在神经网络的上下文中:

  • 网络输出的是表示空间中的一个点。
  • 通过将其映射回原始空间
  • 的连续性确保中连通的集合在中保持连通,这为神经网络提供了连续的训练信号,利于学习。

此外,如果都是连续的,则的一个拓扑嵌入(topological embedding)到中。这与拓扑学中的同胚和嵌入概念相关,确保表示空间保留了原始空间的拓扑结构。

传统表示的不连续性:四元数和欧拉角

论文指出,对于3D旋转(即SO(3)),在4维或更低维的实欧几里得空间中,所有表示都是不连续的。这是因为3D旋转空间SO(3)的拓扑结构(与实射影空间同胚)要求至少5维空间才能连续表示。这意味着:

  • 四元数:四元数是一个4维表示,但由于SO(3)的拓扑结构(它与实射影空间同胚)无法在4维欧几里得空间中连续表示。
  • 欧拉角:欧拉角是一个3维表示,更低维,更加不连续

具体来说,四元数的不连续性体现在某些旋转(如180度旋转)附近:

  • 当旋转轨迹的迹(trace)为-1(对应180度旋转)时,四元数表示会出现跳变。例如,接近180度旋转的不同方向极限可能给出不同的四元数值。
  • 这是因为SO(3)不能再4维或更低维的欧几里得空间中连续嵌入,拓扑学中的一个标准结果支持这一结论:SO(3)同胚于RP3,而RP3只能在5维或更高维的欧几里得空间中连续嵌入。

欧拉角同样存在不连续性,尤其在“万向节锁”问题中,当两个旋转轴对齐时,欧拉角表示会出现奇异点,导致学习困难。这种不连续性使得神经网络在学习和泛化时遇到困难,尤其是在需要跨震哥哥旋转空间进行平滑插值的任务中。四元数和欧拉角的低维性导致不连续性,实验显示它们在任务中误差较高,例如四元数最大误差可达179.93°

论文提出的连续表示

为了解决上述问题,论文提出了3D旋转的连续表示,这些表示位于更高维空间中:

  • 5D表示:通过立体投影(stereographic projection)从SO(3)到5维空间中实现。这种方法利用了拓扑学的投影技术,确保映射是连续的。
  • 6D表示:通过类似Gram-Schmidt过程从SO(3)到6维空间实现。这种方法是通过正交化过程构造连续的表示,保留了旋转的拓扑结构。

这些表示是连续的,因为它们满足论文定义的连续性条件,即是连续的映射。理论上,这与SO(3)需要至少5维空间才能连续嵌入的拓扑性质一致。

6D连续旋转表示的实现方式

关键点:

通过一个6维向量(由两个三维向量组成)来表示旋转矩阵的前两列,然后通过正交化过程生成完整的旋转矩阵。

这里假设旋转矩阵形式为:

6D旋转表示为:

从6D连续旋转表示到旋转矩阵

整个过程类似施密特正交化,基本逻辑是:

  • 第一列:从开始,标准化得到,确定第一个基向量。
  • 第三列:使用生成,确保与正交(叉积保证垂直)。
  • 第二列:通过计算,确保三列形成右手正交基。

详细步骤:

  1. 将6D向量分为两个三维向量

  2. 标准化得到第一列

  3. 通过的叉积,标准化得到第三列

  4. 通过的叉积得到第二列

  5. 最终形成旋转矩阵,保证其属于SO(3):

最终形成的矩阵满足:

  • 正交性:
  • 行列式:

从旋转矩阵到6D连续旋转表示

直接提取旋转矩阵的前两列,组成一个6维向量::


6D连续旋转表示(On the Continuity of Rotation Representations in Neural Networks)
https://misaka0502.github.io/2025/04/21/6D-rotation-representation/
作者
YuMio
发布于
2025年4月21日
许可协议