我正在尝试使用四元数形式而不是旋转矩阵。
我已经训练了我的模型,但是当我需要测试模型时,我必须从四元数形式计算欧拉角,就像这个人所做的那样从旋转矩阵计算欧拉角。
例如,对于 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 的输出;它不是一帧或一张图像。
你能帮我看看我们如何从四元数形式计算欧拉角吗?