ST-GCN動いて欲しい-入力データを変換
出席率
- 3年セミナー:??%
スケジュール
短期的な予定
- mocopi と お料理センシング
- シーンとランドマークを決める(~2月上旬)
- SVM で動作判別する
- 機械学習を深める
- お料理センシング
- お料理でどんな動作があるかを知る
- レシピを決める
- 関節を3次元座標に変換する
-
関節を2次元座標に変換する - ST-GCN を大体理解
- ST-GCN で動作推定
- 伊達巻きで動作推定する
- レシピ(手順書)を元に動作推定を補う
- 論文書く
- 発表
- BookWorm
- Pasori と デスクトップアプリを接続する(技術検証)
- nfc読み込み機能 & 画面を作る
- API と連携させる
- 管理者画面を作る
長期的な予定
- 6月 精度は置いておき、動作認識を完成させる
- 7月 リファクターと精度を向上させる
- 8月 仕上げ
- 9月 論文書き始め
- 10月末 論文提出
- 12月 WiNF当日
進捗報告
目的
料理中の動作を mocopi を使ってセンシングする。
このデータから最終的に位置推定を行う。
- 一定の区間でどの動作をしているかを当てる (クラス分類)
- 料理の手順を元にシーン検知を補正する
- 例) 焼く動作 → 卵割る動作 はおかしい
- 位置とシーンを相補的に補正する
- 例) 冷蔵庫の前で焼く動作 はおかしい
目標
12月頃の WiNF に出たい
(10月末 論文完成)
適当なデータ取った
お料理は何度もデータ取るのが大変なため、
データが取りやすい動作を1分ずつ行った
体を曲げる運動
両手を上げ下げ
体を捻る
ジャンプ
何もしない
扱いやすいように結合&csvに変換する
1bending_exercise_bvhp = BVHparser("./data/bending_exercise.bvh") 2bending_exercise_motion_df = bending_exercise_bvhp.get_motion_df() 3bending_exercise_motion_df["label"] = 1 4 5hands_updown_bvhp = BVHparser("./data/hands_updown.bvh") 6hands_updown_motion_df = hands_updown_bvhp.get_motion_df() 7hands_updown_motion_df["label"] = 2 8 9... 10 11# 全ての motion_df を結合 12motion_df = pd.concat( 13 [ 14 bending_exercise_motion_df, 15 hands_updown_motion_df, 16 twist_your_body_motion_df, 17 jump_motion_df, 18 do_nothing_motion_df, 19 ] 20) 21 22# csv に保存 23motion_df.to_csv("csv/train.csv", index=False)
※ テスト用も同様
自作BVHパーサライブラリでエラー吐いた
アップデートの影響で形式が微妙に変わっていた
半角スペースで split して frame time を取り出していたので Time:0.016667 となって数値化に失敗してた
1骨格のデータ 2... 3- Frame Time: 0.016667 4+ Frame Time:0.016667 5... 6モーションのデータ
: で判定するように直した
前にBVH用に改変した ST-GCN に入れてみる
脳内デバッグなので当然エラーが出まくった → いい感じに修正
現在のエラー
ValueError: not enough values to unpack (expected 4, got 2)
入力した tensor の次元が違うらしい(本来:4次元, 実際:2次元)
問題点
- 各関節が相対座標なのを世界座標にするやつ使ってなかった
- そもそも '"各関節の座標の配列"(フレーム)' の配列(+時間軸) という形(少なくとも3次元) にしてない
- 高次元になってくるため入力はcsvにするべきではないかも
- npy 形式等がよさそう
# イメージ
[
[
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
...
], // 1フレーム分のデータ
[
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
...
],
[
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
[関節の座標(x), 関節の座標(y), 関節の座標(z)],
...
]
] // 一定時間分のデータ
サンプルコードより

修正した

(フレーム数, 関節数, 次元数) になっていてサンプルの配列の順番(?) が違うが、機械学習側で対応する
TODO
- 入力データの変更に対応して ST-GCN ができるようにする
進路関係
気が向いたので、ゆめみパスポートに応募してみた
ゆめみのコーディング試験を受けれるやつ. 腕試しとしてやってみる
https://hrmos.co/pages/yumemi/jobs/101000000010
↓
ゆめみパスポートげっとした
(YUMEMIを受ける場合、コーディングテストスキップできる)
お金もらえなかった(終了済み)
余談
焼肉たべた
pluszero組で食べた
ローカル5G触ってます
中村先生からサークルへの依頼で、ローカル5Gを学生目線で伝えるプロジェクト(?)をやってます
with makino先輩

オーキャンに出すので makino先輩 と僕が交互に梶研エリアから消える可能性があります