如何从四元数形式计算欧拉角?

问题描述 投票:0回答:0

我正在尝试使用四元数形式而不是旋转矩阵。

我已经训练了我的模型,但是当我需要测试模型时,我必须从四元数形式计算欧拉角,就像这个人所做的那样从旋转矩阵计算欧拉角

例如,对于 B = batch_size = 2 (-> Bx4),四元数形式的输出是:

tensor([[ 0.0725, -0.0645,  0.0308,  0.9948],
        [-0.5235, -0.2456,  0.0824,  0.8117]], device='cuda:0')

并且,B = batch_size = 2 (-> Bx3x3) 的旋转矩阵形式的输出:

tensor([[[ 0.9933, -0.0871,  0.0755],
         [ 0.0850,  0.9959,  0.0316],
         [-0.0779, -0.0250,  0.9966]],

        [[ 0.7244, -0.0551, -0.6871],
         [ 0.2493,  0.9503,  0.1866],
         [ 0.6427, -0.3065,  0.7021]]], device='cuda:0')

注意: 这是 batch_size 的输出;它不是一帧或一张图像。

你能帮我看看我们如何从四元数形式计算欧拉角吗?

python quaternions euler-angles
© www.soinside.com 2019 - 2024. All rights reserved.