Top > Kinect > KinectForWindowsSDK > Tips > TransformSmoothParametersDocInJapanese
Last-modified: Tue, 26 Nov 2013 14:29:19 JST
Counter:1925 Today:1 Yesterday:2 Online:8
このエントリーをはてなブックマークに追加

TransformSmoothParameters の日本語訳

About

TransformSmoothParameters 構造体について言及されている記事は多くありません。TransformSmoothParameters は骨格情報のジッター(Jitter)を制御するためのパラメータです。公式のドキュメントを読む限りでは、平滑化処理によってジッターを軽減するようです。ここでは公式のドキュメントの簡単な日本語訳と解説を掲載します。

  • ジッター(ジッタ・Jitter)とは
    • 信号の乱れのことです。ここでは連続して取得する骨格情報の乱れのことを指します。体をほとんど動かしていなくても、Kinect から得られたフレーム n に含まれる Joint の座標と、フレーム n+1 に含まれる Joint の座標には若干のズレがあります。

float Correction

補正の正確性を設定するパラメータです。[0.0 ~ 1.0] の範囲で設定します。デフォルトの値は 0.5 です。設定値が大きいほど得られる値は生のデータに近くなり高速に処理されます。設定値が小さいほど得られる値は滑らかになりますが、動作は遅くなります。

  • 補足
    • 公式には "The range is [0.0, 1.0] and the default value is 0.5 meters." とありますから、単位はメートルなんでしょうか。
    • Smoothing との違いが分かり難いです。単語から推測するに、Smoothing は平滑化の強度を設定するのに対し、Correction は平滑化に際し、正確性をどの程度維持するかを設定するパラメータのようです。
      • 公式の "a lower value corrects more slowly and appears smoother." から、訂正(Correct)に時間をかけると、より平滑化された値が得られる。というように読めます。

float JitterRadius

ジッタを軽減する半径(範囲)を設定するパラメータです。単位はメートルです。設定される値は 0 以上で(ある必要があり)、デフォルトの値は 0.05(5cm) です。設定された半径を超えるジッターは JitterRadius にクランプされます。

  • 補足
    • Property Value の項目に jitter reduction radius との表記があることから、ドキュメント中の jitter reduction radius を JitterRadius に置き換えて翻訳しています。

float MaxDeviationRadius

修正された座標(値)が、生のデータから逸脱できる最大の半径を設定します。設定される値は 0 以上で(ある必要があり)、デフォルトの値は 0.04(4cm)です。修正された値が、設定された値(半径)を超えるとき、修正された値(位置)の方向に向かって、設定された値にクランプされます。

float Prediction

フレーム間予測するフレーム数を設定します。設定される値は 0 以上で(ある必要があり)、デフォルトの値は 0.0 です。0.5 より大きい値を設定すると、データがすぐに変更されるようなときに、オーバーシュート(overshoot)のような現象が引き起こします。MaxDeviationRadius の小さいほうの値を使用してオーバーシュートを軽減させます。

  • オーバーシュートとは
    • フレーム間予測において先を読みすぎて極端な値をサンプリングしてしまう現象です。詳細や正確な情報については別途調査されたい。

float Smoothing

平滑化(スムージング)の値を設定します。[0.0 ~ 1.0] の範囲で設定します。デフォルトの値は 0.5 です。設定された値が大きいほど平滑化されます。0 を設定するとき、生のデータが返されます。設定する値が大きいほど生のデータに対する応答性が低下するので、レイテンシ(待ち時間)が増えるようになります。

  • 補足
    • 公式には "The range is [0.0, 1.0] and the default value is 0.5 meters." とありますから、単位はメートルなんでしょうか。

設定できる範囲は [0.0 ~ 1.0] とされていますが、1.0 を指定するとき、SkeletonStreamEnable メソッドの実行で ArgumentOutOfRangeException が発生します。0 を指定するときは発生しません。