0

我一直在开发一个多 kinect 人脸跟踪系统,我想知道如何更改人脸跟踪结果的参考框架?

我尝试使用 XYZ 约定从面部旋转角度(由 Kinect SDK 提取)计算旋转矩阵,使用面部位置向量制作平移向量,并将该变换矩阵与从该 kinect 到全局框架的变换矩阵相结合。这是公式:

   T = T_local_to_global*T_face 

最后使用类似的方法将组合的 T 转换回旋转角度

https://truesculpt.googlecode.com/hg-history/38000e9dfece971460473d5788c235fbbe82f31b/Doc/rotation_matrix_to_euler.pdf

但是,结果在某种程度上是错误的。相对于 Z 轴的旋转角度有时会翻转。我是不是在某个地方弄错了?感谢您的帮助,在此先感谢!


更新:

我发现旋转矩阵的不同约定会产生不同的结果。Kinect SDK 给出的旋转角度的约定是什么?或者角度实际上不是欧拉角?

如此迷茫。

4

1 回答 1

0

rotationXYZ您可以通过传递into的测试值来对 Face Tracking API 使用的约定进行逆向工程IFTModel::Get3DShape()。我相信它的角度顺序是先绕 Z 旋转,然后是 Y,然后是 X。换句话说,R = R_x R_y R_z 作为矩阵。

请注意,相比之下,您链接到的 PDF 使用约定 R = R_z R_y R_x,这意味着首先围绕 X 旋转,然后是 Y,然后是 Z。

于 2013-08-04T01:40:37.040 回答