0

マルチキネクトの顔追跡システムを開発していますが、顔追跡結果の参照フレームを変更するにはどうすればよいでしょうか?

顔の回転角度 (Kinect SDK で抽出) から XYZ 規則を使用して回転行列を計算し、顔の位置ベクトルを使用して並進ベクトルを作成し、この変換行列とこの 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

のテスト値を に渡すことで、Face Tracking API で使用される規則をリバース エンジニアリングできrotationXYZます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 に答える