【问题标题】:how to find the rotation matrix from svd?如何从 svd 中找到旋转矩阵?
【发布时间】:2020-06-10 19:15:08
【问题描述】:

我曾经使用 svd 来找到两组点之间的旋转矩阵,一些理论说 R=Transpose(U)*V。但我不明白那个数学理论。就像 U 和 V 代表什么以及如何在多个 U 和 V 时获得旋转矩阵。

【问题讨论】:

  • 我投票结束这个问题,因为它属于 SignalProcessing 或 MathOverflow

标签: matrix computer-vision linear-algebra svd


【解决方案1】:

由于您的问题是理论上的,并且没有提及任何程序或特定问题,因此您最好将您的问题写在MathOverflow

不过,为了给您一个总体思路,(您绝对应该用确凿的事实来加强): 奇异值分解 (svd) 背后的线性代数本质上描述了(在最简单的情况下)当向量乘以矩阵时会发生什么。

在小范围内,如果将向量 (v) 与矩阵 (R) 相乘,则会得到第二个向量 (u)。除非矩阵“R”是单一的,否则您获得的新向量将具有与第一个不同的方向和大小。 换句话说,矩阵“R”在向量“v”上的乘积将产生向量“v”的旋转拉伸(或压缩),这将转换成向量'u'。

如果你让向量 'u' 是单一的,并乘以一个新的变量 (σ) 保持它的原始大小,你基本上是在做:R·v=u·σ

在更大的尺度上,当v和u不再是向量而是大矩阵时,公式为:R·V=U·∑

让 'u' 成为酉矩阵很有用的原因是酉矩阵有一个很酷的性质:转置等于它们的逆矩阵!

因此,您可以将公式重新排列为:R=U·∑·V(转置)

因此,您可以使用此公式获得“旋转矩阵”,其中 U 和 V(t) 是保存矢量方向的正交矩阵,而 ∑ 保存所述矢量方向的大小(或奇异值)。

更详细的解释,我建议你这个讲座:Lecture: The Singular Value Decomposition (SVD)

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 2019-07-17
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多