gpt4 book ai didi

geometry - 3D 旋转分布的平均值和测量

转载 作者:行者123 更新时间:2023-12-03 06:26:03 30 4
gpt4 key购买 nike

我见过几个类似的问题,并且对我可以尝试的内容有一些想法,但我不记得看到过任何有关传播的内容。

所以:我正在开发一个测量系统,最终基于计算机视觉。

我进行了 N 次捕获,并使用一个库来处理它们,该库以平移和旋转的 4x4 仿射变换矩阵的形式输出姿势估计。

这些姿势估计中有一些噪音。每个旋转轴的欧拉角的标准偏差小于 2.5 度,因此所有方向都非常接近(对于所有欧拉角都接近 0 或 180 的情况)。小于 0.25 度的标准误差对我来说很重要。但我已经遇到了欧拉角特有的问题。

我想对所有这些非常接近的姿势估计进行平均,以获得单个最终姿势估计。我还想找到一些传播的衡量标准,以便我可以估计准确性。

我知道“平均”实际上并没有很好地定义轮换。

(郑重声明,我的代码是使用 Numpy-heavy Python 编写的。)

我可能还想对这个平均值进行加权,因为已知某些捕获(和某些轴)比其他捕获更准确。

我的印象是,我可以只取平移向量的平均值和标准差,对于旋转,我可以转换为四元数,取平均值,并以良好的精度重新归一化,因为这些四元数非常接近。

我还听说过所有四元数中的最小二乘法,但我对如何实现这一点的大部分研究都以惨败告终。

这可行吗?在这种情况下是否有一个合理明确的传播衡量标准?

最佳答案

如果没有有关几何设置的更多信息,很难回答。无论如何,对于轮换,我会:

  1. 创建 3 个单位向量

    x=(1,0,0),y=(0,1,0),z=(0,0,1)

    对它们应用旋转并调用输出

    x(i),y(i),z(i)

    它只是应用位置为(0,0,0)matrix(i)

  2. 对您拥有的所有测量值执行此操作

  3. 现在对所有向量进行平均

    X=avg(x(1),x(2),...x(n))
    Y=avg(y(1),y(2),...y(n))
    Z=avg(z(1),z(2),...z(n))
  4. 修正矢量值

    所以再次制作每个X,Y,Z单位向量,并取距离旋转轴更近的轴作为主轴。它将保持原样,并重新计算剩余两个轴作为主轴和另一个向量的叉积,以确保正交性。注意乘法顺序(错误的操作数顺序将使输出无效)

  5. 构造平均变换矩阵

    参见transform matrix anatomy作为原点,您可以使用测量矩阵的平均原点

关于geometry - 3D 旋转分布的平均值和测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348318/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com