モーションキャプチャデータの動作判別

本ページでは、MCDC ツールを利用した応用例として、モーションキャプチャデータを用いて人物の動作を判別する手順を紹介します。

この実験では、CMU Graphics Lab Motion Capture Database にて公開されているデータを利用します。

The data used in this project was obtained from mocap.cs.cmu.edu.
The database was created with funding from NSF EIA-0196217.

実験データ一覧

実験では、下記の 4 種類の subject に該当するデータを利用しました。

Subject #Session Description# of trials
3walk on uneven terrain4
5modern dance20
7walk12
9run12
Total48

モデル推定

それぞれのデータ系列に対して、モデル推定を行います。モデル推定を行う際のパラメータは以下のように設定しました。

項目設定値
状態空間の次元数2
状態空間のグリッドの範囲各軸について -30 から 30 まで 2.0 刻みに設定
状態遷移の平均値関数の初期値 (アンカーモデル)
@(x) x(1, :), ...
@(x) x(2, :)  ...
状態遷移の分散共分散関数状態空間の x1 軸方向について RBF カーネルを利用。x2 軸方向は独立とした
観測の平均値関数の初期値 (アンカーモデル)
@(x) zeros(1, size(x, 2)), ...
@(x) zeros(1, size(x, 2)), ...
@(x) zeros(1, size(x, 2))  ...
観測の分散共分散関数状態空間の x1 軸方向について RBF カーネルを利用。x2 軸方向は独立とした
粒子フィルタで用いる粒子数500
MCMC 反復回数200

本実験用のソースコードは samples/MotionCapturePMCMC2Estimation.m です。

実験プログラムを起動するには、Matlab で以下のように実行します。

addpath('samples');
MotionCapturePMCMC2Estimation;

モデル推定の実行結果

推定モデルを用いて観測データ系列を推定した結果の例を以下のグラフに示します。グラフは Subject #3, Trial #1 のデータに対するモデル推定の結果です。赤色の実線が観測データ、青色の実線が推定モデルによる推定平均です。青色の破線は推定平均±標準偏差の幅を表します。

観測データ系列の推定結果 (順に y1, y2, y3)

MCMC iteration ごとの推定モデルの対数尤度を次のグラフに示します。

推定モデルの対数尤度

判別実験

推定モデルをデータ系列に当てはめることで、そのデータに対する推定モデルの尤度を計算できます。 モデル推定に用いたデータ系列と、そのモデルを当てはめるデータ系列が互いに似た動作であれば、そうでない場合に比べて、高い尤度となることが期待されます。 このことから、事前に推定されたそれぞれのモデルを判別対象のデータ系列に当てはめて尤度を求め、尤度が最大となった推定モデルの subject を判別結果とします。

今回の実験では、利用した 48 系列のデータを用いて判別を行います。自分自身から学習された推定モデルは判別の際には除外します。

判別実験用のソースコードは samples/MotionCapturePMCMC2Test.m です。

判別実験を行うには、Matlab で以下のように実行します。

addpath('samples');
MotionCapturePMCMC2test;

判別結果

判別実験の結果の confusion matrix を以下の表に示します。 行方向が真の subject, 列方向が推定された subject で、行列の値は、該当する trial の数を表します。 対角線上の trial が判別に正解したものになります。

Subject #推定された値
3579
真の値31210
505312
70174
901011

Subject ごとの正解率、全体の正解率を以下にまとめます。

Subject #Session Description正解数トライアル数正解率
3walk on uneven terrain1425.0%
5modern dance52025.0%
7walk71258.3%
9run111291.7%
合計244850.0%

考察

この実験では、モデル推定の際に反復回数を 200 回と比較的小さく設定しましたが、尤度がまだ上昇していることから、反復回数を大きく設定することでよりよいモデルが得られる可能性があります。

Modern dance の判別率が他と比較して低い理由は、trial ごとに動作の内容が大きく異なることが考えられます。

モデル推定の所要時間

この実験を行った計算機環境は以下のとおりです。

項目
CPUIntel Xeon X5680 @ 3.33GHz
Memory48GB

各 trial のモデル推定において MCMC iteration 一回に要した平均処理時間は以下のとおりです。 モーションキャプチャデータの系列長は trial ごとに異なるため、長い系列の trial ほど処理時間が長くなります。 フレームあたりの所要時間は、どの trial でも概ね同じになっています。

Subject #Trial #frames所要時間フレームあたり所要時間
030143214.52210.033616
030236512.40190.0339778
03034563103.5820.0227004
03044722106.320.0225159
050159813.7020.022913
0502112325.41270.0226293
050343410.30580.0237461
0504119927.18220.0226707
050591520.79310.0227247
050688520.12520.0227403
0507119127.09270.0227479
050872116.46320.0228338
0509114326.00430.0227509
051081718.8930.0231248
051159114.01090.0237071
0512135431.18170.0230293
0513109525.55330.0233363
051464215.25260.0237579
051554012.39130.0229469
051652512.06920.022989
0517104323.60230.0226292
0518182941.38140.0226252
051986019.56480.0227498
0520109524.82680.0226729
07013167.395750.0234043
07023297.680290.0233443
07034159.577670.0230787
070444910.40970.0231842
070551711.94790.0231101
07064179.69210.0232424
07073798.750530.0230885
07083628.436580.0233055
07093067.146540.0233547
07103017.088250.023549
07113157.472080.0237209
07122445.73470.0235029
09011483.633280.0245492
09021303.239820.0249217
09031283.179460.0248395
09041373.397880.024802
09051433.530430.0246883
09061413.484760.0247146
09071383.424330.024814
09081283.187250.0249004
09091523.725420.0245093
09101323.279590.0248454
09111653.962840.0240172
0912191843.31770.0225848