知能情報科学セミナーⅠ — レポート
モーションキャプチャによる
歩行・走行・スキップの定量解析
— 自己相関・相互相関による動作パターン解析と、最適移動法の考察 —
知能情報科学セミナーⅠ — レポート
— 自己相関・相互相関による動作パターン解析と、最適移動法の考察 —
本レポートは、知能情報科学セミナーⅠで学んだ 高速フーリエ変換(FFT: Fast Fourier Transform)に基づく自己相関関数(ACF: Auto-Correlation Function)と相互相関関数(CCF: Cross-Correlation Function) の理論を実データに適用する実践演習である。
mocopi(ソニー製モーションキャプチャ)で取得した 4名 × 3動作 = 12サンプル のBVHファイルを解析対象とする。前回のレポート(2名)から被験者を2名追加し、より統計的な裏付けを目指した。
| ファイル | 被験者 | 動作 | フレーム数 | 計測時間 |
|---|---|---|---|---|
| Sora_walking.BVH | 青空 | 歩く | 815 | 13.6 s |
| Sora_running.BVH | 青空 | 走る | 1213 | 20.2 s |
| Sora_skip.BVH | 青空 | スキップ | 1145 | 19.1 s |
| Shota Walkin.BVH | 翔太 | 歩く | 3181 | 53.0 s |
| Sho_run.bvh.BVH | 翔太 | 走る | 1759 | 29.3 s |
| Shota_skip.BVH | 翔太 | スキップ | 1729 | 28.8 s |
| Ruki_walk.BVH | 瑠希 | 歩く | 1032 | 17.2 s |
| Ruki_run.BVH | 瑠希 | 走る | 1518 | 25.3 s |
| Ruki_skip.BVH | 瑠希 | スキップ | 1700 | 28.3 s |
| Nori.walk.BVH | 宣久 | 歩く | 1142 | 19.0 s |
| Nori.run.BVH | 宣久 | 走る | 1643 | 27.4 s |
| Nori.skip.BVH | 宣久 | スキップ | 1831 | 30.5 s |
Root(腰)を中心に、頭・両足首・両手首・両膝・両肘など 27関節 の位置(X,Y,Z) と回転(Z,X,Y) を毎フレーム記録。
ACF(τ) = IFFT(|X(f)|²) (ウィーナー=ヒンチン定理、IFFT: Inverse FFT)
2N ゼロパディングで循環畳み込み由来のエイリアシングを除去し、最初の有意ピーク(ACF > 0.15)をストライド周期 T とする。
cadence = 1 / T [Hz] steps = (duration / T) × 2
CCF(τ) = IFFT(X*(f) · Y(f))
Score = 0.6 × RMS比(Root Mean Square 比) + 0.3 × 位相差スコア + 0.1 × CCF ピーク
Root位置 (X, Z) のフレーム間移動量を積算した 経路長、および 始点→終点の直線距離 を計測時間で割って km/h に換算。
ここから先、本レポートには 12 サンプル × 各 3 枚(overview / ACF / symmetry) = 36 枚以上の解析グラフが登場する。 いきなり全部見ても何が大事かわかりにくいので、このセクションでは「平松瑠希・歩く」を題材に、グラフを 6 ステップで読み解く方法 を示す。 ここで読み方を身につければ、後続の 11 サンプルも同じ要領で読めるようになる。
歩行中、腰(モコピーで root ジョイントとして記録される)は常に上下に揺れ続けている。これは人間の歩行が 倒立振子モデルとして動いているため、軸足の真上に重心が乗った瞬間(=立脚中期)に最も高くなり、両足支持期に最も低くなる、という運動を繰り返すからだ。
このグラフは 2 〜 7 秒の 5 秒間を切り出している(最初の 2 秒はキャリブレーション中のため除外)。規則的なピークが 9 個並んでおり、これが「踵接地ごとに腰が最高点に来る」リアルな様子。
0.56 s。これが 半ストライド(T/2)に相当する。腰は 1 ストライド(左右 1 歩ずつ)の間に 2 回上下している。
同じ時間帯で、左足首 Xrotation(つま先の上げ下げ=背屈・底屈)を重ねた。紫が腰の Y 位置、青が左足首の回転角。
明らかに 青の波長が紫の 2 倍になっている。これは当然で、左足は 1 ストライドに 1 回しか「振り上げ→着地」しないが、腰は左右それぞれの踵接地で上がるので 1 ストライドあたり 2 回ピークが来る。
同じ時間帯で 左足首 と 右足首 の Xrotation を重ねた。波形は同じ形・同じ周期だが、位相がぴったり半周期ずれている。
左の山の真ん中に右の山が来て、右の山の真ん中に左の山が来る。最初のピーク同士の間隔は約 0.58 s ≒ T/2。
視覚的に見えるリズムを 数式で取り出す のが自己相関(ACF)。ACF は「信号を τ 秒ズラして、自分自身とどれくらい似ているか」を −1 〜 +1 で測る関数。
横軸 τ は「何秒ズラしたか」、縦軸は相関の強さ。τ = 0 では当然 1.0(自分自身は完全一致)。τ を増やしていくと一度大きく下がってから、τ = 0.53 s でピークが立つ。
これは「0.53 秒ズラすと信号が自分自身とそっくり重なる」という意味 ─ これがストライド周期 T の正体。歩調 = 1/T = 1.87 Hz = 112 BPM(Beats Per Minute, 1 分間の拍数)。
CV = 0.016(変動係数, Coefficient of Variation:標準偏差 ÷ 平均で「揺らぎの大きさ」を表す指標)の根拠。
ACF が「自分 vs 自分」を比べたのに対し、CCF は「左 vs 右」を比べる。左信号を τ 秒ズラして右信号と最も似る位置を探す。
グラフを見ると、τ = −0.517 sに大きなピークが立っている。理想値は −T/2 = −0.533 s(左を半周期だけ後ろにズラすと右と重なる)、その差はわずか 0.016 s。
これが「完璧な交互ステップ」の数学的証明。左右のピーク(緑点線:±T/2)と CCF のピーク位置(黄色線)が ほぼピッタリ重なっている ことを目で確認できる。
左右対称性スコアは 3 要素の重み付き合計で 100 点満点:
瑠希の歩くスコアは 84.3 点。内訳を読むと、タイミングは満点近く(28.1 / 30 点)、ただし RMS 比は 0.81 = 左右で約 19% の振幅差がある。
以降のセクションでは、4 名 × 3 動作 = 12 サンプル分の overview / ACF / symmetry グラフが順に並ぶ。 どのサンプルでも読み方は同じ:(1) 腰の上下動 → (2) 足首のリズム → (3) 左右の位相 → (4) ACF で周期 → (5) CCF で対称性 → (6) スコア内訳。 この順番を頭に入れて読み進めると、「青空の走るが 190 BPM で安定」「翔太の歩くは対称性が低い」といった発見がそのまま納得できるようになる。
ACF は「区間全体で見た平均的なリズム」を 1 つの数値(T = 0.53s 等)に落とすが、区間内でリズムがどう揺らいでいるかはわからない。 そこで 連続ウェーブレット変換(CWT)で、時間 × 周波数の 2 次元マップとして可視化する。 4 人それぞれの腰の鉛直加速度に CWT を適用 → 4 人分の正規化パワーを時間軸で揃えて平均 → 動作ごとに「人類共通のリズム帯」を抽出した。 以下、3 動作それぞれの結果を読む。
4 人平均の優位周波数中央値は 1.90 Hz(114 BPM)。ただし個人間の標準偏差は ±0.32 Hz と大きい。下段グラフを見ると 4 本の線が 1.5〜2.2 Hz の幅で広がっている。
歩行は最も日常的な動作だが、皮肉なことに 最も個性が出る動作 でもある。歩き方のクセ・体格・脚長すべてが反映されるため。
4 人平均の優位周波数は 3.06 Hz(184 BPM)に収束。個人差σ = 0.11 Hz と歩くの 1/3。
ヒートマップの 0〜5 秒は「加速期」、5 秒以降に 3 Hz の明るい横帯 がはっきり現れる。4 人とも同じタイミングで同じ周波数にロックオンしている。これが「人間は走るとき自然と同じリズムに収束する」現象。
4 人平均は 2.18 Hz。個人差σ = 0.08 Hz と全動作中最小。下段の 4 本の線が密集している。
ただしヒートマップを見ると、走る時のような単一の明確な帯ではなく、複数の周波数帯(基本リズム + 高調波)が見える。スキップは「ステップ+ホップ」の複合動作なので、力学的に複数のリズムが共存しているのが視覚化されている。
スキップの個人差 σ = 0.08 Hz は 3 動作中最小(歩く 0.32、走る 0.11)。
4 人とも同じリズム帯(約 2.18 Hz)に収束している。
これは「練習や訓練なしに、誰でも同じリズムでスキップできる」ことを意味する。
移動手段としての習得コストがゼロ ─ これがスキップ推奨の根拠④。
2 つの波形を「どれだけ伸び縮みさせれば一致するか」をスカラ距離で測る手法。CWT が「時間 × 周波数」を見ていたのに対し、DTW は1 ストライド内の波形そのものの形を直接比較する。 4 人 × 4 人ペアの全組み合わせで距離を計算し、動作別にマトリクスにまとめた。
左から「歩く・走る・スキップ」。色が薄い(黄)ほど波形が似ている、濃い(赤)ほど違う。
注目ポイント:走るの Sora ⇔ Nori セルだけ 216.3 と異常値。他のペアは 23〜37 なのに、この 1 ペアだけ波形が大きく違う ─ どちらかの走り方が「人類標準」から外れている可能性。動画を見直す価値あり。
棒グラフは平均距離 ± 標準偏差。標準偏差(エラーバー)の小ささで「4 人がどれだけ揃っているか」がわかる。
30.5 ± 14.578.2 ± 65.7(Sora⇔Noriの外れ値で大)35.3 ± 6.4 ← ばらつき最小スキップが最も 4 人で揃っている。CWT の周波数解析と完全に一致した結論。
左:2 人の波形と DTW が対応付けた点同士をグレー線で結んだ図。形が似ている部分は対応が密、違う部分は線が斜めに伸びる。
右:累積コスト行列。赤線が「最も似た対応関係」のパス。対角線に近いほど波形が時間的に揃って似ている。
スキップの DTW 距離のばらつき σ = ±6.4 は 3 動作中最小(歩く ±14.5、走る ±65.7)。
4 人とも同じ波形をなぞる動作になっている。
CWT(周波数)と DTW(波形)の 2 つの独立した手法が同じ結論を出したことは偶然ではない ─
スキップは「リズムも形も人類共通の動作」だと言える。これがスキップ推奨の根拠⑤。
| 動作 | 時間 | ストライド周期 T | 歩調 | 歩数 | 対称性スコア | 速度 | CV(安定度) |
|---|---|---|---|---|---|---|---|
| 歩く | 13.6 s | 0.467 s | 2.14 Hz (128 BPM) | 58 | 88.2 良好 | 6.43 km/h | 0.018 |
| 走る | 20.2 s | 0.317 s | 3.16 Hz (190 BPM) | 127 | 93.4 良好 | 11.63 km/h | 0.026 |
| スキップ | 19.1 s | 0.583 s | 1.71 Hz (103 BPM) | 65 | 92.6 良好 | 11.65 km/h ★ | 0.737 |
| 動作 | 時間 | ストライド周期 T | 歩調 | 歩数 | 対称性スコア | 速度 | CV(安定度) |
|---|---|---|---|---|---|---|---|
| 歩く | 53.0 s | 0.517 s | 1.94 Hz (116 BPM) | 205 | 65.8 ⚠️ | 1.97 km/h | 0.015 |
| 走る | 29.3 s | 0.317 s | 3.16 Hz (190 BPM) | 185 | 85.0 良好 | 10.37 km/h | 0.663 |
| スキップ | 28.8 s | 0.617 s | 1.62 Hz (97 BPM) | 93 | 90.0 良好 | 10.25 km/h | 1.894 |
| 動作 | 時間 | ストライド周期 T | 歩調 | 歩数 | 対称性スコア | 速度 | CV(安定度) |
|---|---|---|---|---|---|---|---|
| 歩く | 17.2 s | 0.533 s | 1.87 Hz (112 BPM) | 64 | 85.7 良好 | 7.21 km/h | 0.016 |
| 走る | 25.3 s | 0.350 s | 2.86 Hz (171 BPM) | 144 | 79.7 やや非対称 | 10.28 km/h | 0.017 |
| スキップ | 28.3 s | 0.667 s | 1.50 Hz (90 BPM) | 85 | 77.1 やや非対称 | 9.21 km/h | 0.012 |
| 動作 | 時間 | ストライド周期 T | 歩調 | 歩数 | 対称性スコア | 速度 | CV(安定度) |
|---|---|---|---|---|---|---|---|
| 歩く | 19.0 s | 0.483 s | 2.07 Hz (124 BPM) | 78 | 83.4 良好 | 4.91 km/h | 0.526 |
| 走る | 27.4 s | 0.317 s | 3.16 Hz (190 BPM) | 172 | 88.7 良好 | 9.45 km/h | 1.468 |
| スキップ | 30.5 s | 0.633 s | 1.58 Hz (95 BPM) | 96 | 84.3 良好 | 8.44 km/h | 0.334 |
左右の足首回転信号それぞれに対して自己相関を計算し、ピーク位置(=周期)と振幅形状を直接比較する。
周期非対称度 (%) = |T_左 − T_右| / 平均T × 100
左右の足首が同じ周期で動いているか。0%に近いほど対称。
左右信号差RMS — 正規化した左右信号の差の二乗平均
左右の波形がどれだけ似ているか。歩行は本来逆相なので RMS≈1.4 が自然。
| 被験者 | 動作 | 左足 T | 右足 T | 周期非対称度 | 左右信号差RMS | 所見 |
|---|---|---|---|---|---|---|
| 青空 | 歩く | 0.933s | 0.467s | 66.7% | 1.37 | 左右2倍関係(片足/ステップ) |
| 青空 | 走る | 0.633s | 0.650s | 2.6% | 1.85 | 左右ほぼ一致 |
| 青空 | スキップ | 1.183s | 1.167s | 1.4% | 1.62 | 非対称1.4% |
| 翔太 | 歩く | 0.517s | 0.467s | 10.2% | 1.27 | 左右10%差(癖あり) |
| 翔太 | 走る | 0.617s | 0.617s | 0.0% | 1.76 | 完璧な対称 |
| 翔太 | スキップ | 1.233s | 1.233s | 0.0% | 1.44 | 完璧な対称 |
| 瑠希 | 歩く | 1.050s | 1.050s | 0.0% | 1.63 | 完璧な対称 |
| 瑠希 | 走る | 0.700s | 0.700s | 0.0% | 1.64 | 完璧な対称 |
| 瑠希 | スキップ | 0.450s | 0.450s | 0.0% | 1.55 | 完璧な対称 |
| 宣久 | 歩く | 0.967s | 0.967s | 0.0% | 1.60 | 完璧な対称 |
| 宣久 | 走る | 0.633s | 0.633s | 0.0% | 1.63 | 完璧な対称 |
| 宣久 | スキップ | 0.417s | 0.417s | 0.0% | 1.48 | 完璧な対称 |
手首と足首の信号間の相互相関を計算し、腕振りと脚の動きの位相関係を可視化する。 自然な歩行では 対側(右腕⇔左足)が同相、同側(左腕⇔左足)が逆相 になるのが理想。
腕が「足の何倍のリズム」で動いているかを示す指標。歩行・走行では腕が足の半分のペースで前後に振れるのが自然(足2歩で腕1往復)。
※ 走るで「腕足周期比 —」となるのは、腕の信号がほぼ静止しており有意なピークが検出されない場合(計測スペースの狭さなど)。
| 被験者 | 動作 | 腕足周期比 (T腕/T足) | 所見 |
|---|---|---|---|
| 青空 | 歩く | 1.00 | 腕足同期 |
| 青空 | 走る | — | 腕振りほぼなし |
| 青空 | スキップ | 0.99 | 腕足同期 1:1 |
| 翔太 | 歩く | 2.00 | 腕は足の2倍周期(理想) |
| 翔太 | 走る | 0.95 | 腕足同期 |
| 翔太 | スキップ | 0.32 | 不規則 (0.32) |
| 瑠希 | 歩く | 0.98 | 腕足同期 1:1 |
| 瑠希 | 走る | 0.95 | 腕足同期 |
| 瑠希 | スキップ | 2.41 | 腕は足の約2.4倍周期 |
| 宣久 | 歩く | 0.98 | 腕足同期 1:1 |
| 宣久 | 走る | 0.97 | 腕足同期 |
| 宣久 | スキップ | 3.00 | 腕は足の3倍周期 |
ACFは周期信号に対して T, 2T, 3T... で繰り返しピークを持つ。 各ピークの相対高さ(2T/T, 3T/T)で 動作がどれだけ長時間にわたって同じパターンを繰り返しているか を定量化する。
各サンプルの動作特性を6つの軸で正規化し、レーダーチャートで個人プロファイルを可視化する。
→ 規則的で安定した動き
→ 動作ごとにモードを切り替えるタイプ
→ 機械的対称性とリズム維持力を兼備
→ 完璧な左右対称、リズム共通性も持つ
| 被験者 | 動作 | 計測時間 | 経路長 | 直線距離 | 経路速度 | 直線速度 |
|---|---|---|---|---|---|---|
| 青空 | 歩く | 13.6s | 24.28 m | 24.06 m | 6.43 km/h | 6.38 km/h |
| 青空 | 走る | 20.2s | 65.32 m | 1.68 m | 11.63 km/h | 0.30 km/h |
| 青空 | スキップ | 19.1s | 61.77 m | 2.04 m | 11.65 km/h ★ | 0.39 km/h |
| 翔太 | 歩く | 53.0s | 28.99 m | 17.10 m | 1.97 km/h | 1.16 km/h |
| 翔太 | 走る | 29.3s | 84.43 m | 2.36 m | 10.37 km/h | 0.29 km/h |
| 翔太 | スキップ | 28.8s | 82.02 m | 6.08 m | 10.25 km/h | 0.76 km/h |
| 瑠希 | 歩く | 17.2s | 34.44 m | 11.92 m | 7.21 km/h | 2.49 km/h |
| 瑠希 | 走る | 25.3s | 72.26 m | 11.20 m | 10.28 km/h | 1.59 km/h |
| 瑠希 | スキップ | 28.3s | 72.50 m | 10.90 m | 9.21 km/h | 1.39 km/h |
| 宣久 | 歩く | 19.0s | 25.98 m | 22.58 m | 4.91 km/h | 4.27 km/h |
| 宣久 | 走る | 27.4s | 71.92 m | 8.42 m | 9.45 km/h | 1.11 km/h |
| 宣久 | スキップ | 30.5s | 71.58 m | 3.90 m | 8.44 km/h | 0.46 km/h |
★ 青空ではスキップが走るより 0.02 km/h 速い。瑠希・宣久ではスキップが走るより約1 km/h 遅いが、それでも走るの90%程度の速度を維持している。
4人中3人が走るピッチ 3.16 Hz (190 BPM) で完全一致。残り1人(瑠希)も171 BPMで近接。これは身体能力差ではなく、人間共通の最適エネルギー消費ピッチに支配されていることを示唆する。170-190 BPM はランニング最適ピッチ域の研究結果と整合的。
左右ACFの周期非対称度・腕足周期比を見ると、歩く・スキップで個人差が大きく出る。一方走るは身体力学的制約が強く、4名で似通った特性となる。
本研究で得られた スキップの歩調 90〜103 BPM は、音楽のテンポとして偶然にも 「リラックスして聴きやすいミドルテンポ」 の範囲と一致する。
BPM 90〜110 は邦楽・洋楽問わず日常的に親しまれるテンポで、心地よく身体が同期しやすい範囲とされる。 つまり、スキップで移動することは、お気に入りの曲を口ずさみながら歩くのに最適とも言える。
| 被験者 | スキップBPM | 近いテンポの曲 |
|---|---|---|
| 瑠希 | 90 BPM | First Love / 宇多田ヒカル, アイノカタチ / MISIA |
| 宣久 | 95 BPM | 恋しさとせつなさと心強さと / 篠原涼子 |
| 翔太 | 97 BPM | マリーゴールド / あいみょん(約100) |
| 青空 | 103 BPM | 優しいあの子 / スピッツ, DM / fromis_9(107) |
ランニングの 180-190 BPM は スピーディーなEDM(例: BTS「Dynamite」≈114、激しめの曲は180超)に近い高速テンポ。 一方 スキップの 90-103 BPM は J-POP の「優しい曲」の典型値と一致する。 つまりスキップは「マリーゴールドを口ずさみながら移動できる速度」であり、身体的にも心理的にも快適と言える。
走るのがしんどい・歩くのは遅い、という場面において、
スキップは 合理的かつ楽しい 選択肢である。
本レポートで使用した解析手法および歩行・走行・スキップの生体力学に関する主要文献。