アイコン

佐藤さとる

梶研 [ST-GCN 判別して欲しい]

2024年06月25日

thumbnail

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. ST-GCN 動いた
  2. 全部同じ動作と判定された
  3. 回転を与えた後の骨格が正しくなさそう

原因さがす

ベクトルの回転方法が悪い

[1, 0, 0][0, 90, 0] (deg) 回転させてみた

1vec = np.array([1, 0, 0]) 2rot = Rotation.from_euler('xyz', [0, 90, 0], degrees=True) 3print(rot.apply(vec))
image.png (148.0 kB)

悪く無い

デフォルトの姿勢が悪い

image.png (21.8 kB) スクリーンショット 2024-06-20 15.19.59.png (99.5 kB) image.png (21.3 kB) スクリーンショット 2024-06-20 15.19.47.png (86.7 kB)

悪く無い

やっぱり回転みすってるかも

BVHの中身確認

MOTION部 を書き換えてみる
1行目: 元の1行目
2行目: 全て0

0 93.2929 0 -0 0 -0 0 5.07867 -1.15138 -0 0 -0 0 5.61661 1.07143 -0 0 -0 -1.02604e-17 5.98978 0.11501 -0 0 -0 -1.10457e-17 6.50583 -0.443523 -0 0 -0 -1.97295e-17 7.60548 -1.50593 -0 0 -0 -2.53307e-17 9.49737 -0.914492 -0 0 -0 -2.90401e-17 10.5513 1.57691 -0 0 -0 -1.29193e-17 4.78644 0.715339 -0 0 -0 -1.8116e-17 4.82109 0.421791 -0 0 -0 -2.00958e-17 4.83041 0.765062 -0 0 -0 1.23299 -7.60731 7.53374 -0 0 -0 12.9547 3.2495 -3.26872 -0 0 -0 29.2081 0.0598081 0.137039 -0 0 -0 24.234 0.0496219 0.113701 -0 0 -0 -1.23299 -7.60729 7.53365 -0 0 -0 -12.9547 3.2495 -3.26872 -0 0 -0 -29.2081 0.0598081 0.137039 -0 0 -0 -24.234 0.0496218 0.113702 -0 0 -0 9.23673 -4.20556 2.0327 -0 0 -0 -0.852353 -38.7721 -0.655187 -0 0 -0 -2.32622 -40.4017 -6.04875 -0 0 -0 0.779096 -9.8844 12.4959 -0 0 -0 -9.23673 -4.20556 2.0327 -0 0 -0 0.852353 -38.7721 -0.655187 -0 0 -0 2.32622 -40.4017 -6.04875 -0 0 -0 -0.779096 -9.8844 12.4959 -0 0 -0 
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 

←1行目
2行目→

スクリーンショット 2024-06-20 15.26.48.png (131.4 kB) スクリーンショット 2024-06-20 15.27.16.png (106.3 kB)

全て0 の場合、関節の位置が全て0になるらしい...
(OFFSETの存在意義はなに)

root の OFFSET 0 93.2929 0
root の1フレーム目 0 93.2929 0

OFFSET == 1フレーム目.position && 1フレーム目.rotation == [-0, 0, 0]
ぽい。

(OFFSET + nフレーム目.position) * nフレーム目.rotation = nフレーム目の関節位置&向き だと思ってた

回転の向き

全パターン試す!

[x_rotate, 0, 0]

animation-0-1_0x.gif (818.7 kB) animation-1-2_0x.gif (574.2 kB)

[y_rotate, 0, 0]

animation-0-1_0y.gif (835.9 kB) animation-1-2_0y.gif (670.4 kB)

[z_rotate, 0, 0]

animation-0-1_0z.gif (795.0 kB) animation-1-2_0z.gif (566.7 kB)

[0, x_rotate, 0]

animation-0-1_1x.gif (779.8 kB) animation-1-2_1x.gif (492.1 kB)

[0, y_rotate, 0] *

animation-0-1_1y.gif (821.4 kB) animation-1-2_1y.gif (556.0 kB)

[0, 0, y_rotate] *

animation-0-1_2y.gif (933.0 kB) animation-1-2_2y.gif (510.6 kB)

[0, 0, x_rotate] *

animation-0-1_2x.gif (904.8 kB) animation-1-2_2x.gif (458.5 kB)

体を動かそうという意志を感じる

[x_rotate, y_rotate, z_rotate]

animation-0-1_xyz.gif (873.9 kB) animation-1-2_xyz.gif (705.4 kB)

[z_rotate, y_rotate, x_rotate]

animation-0-1_zyx.gif (908.6 kB) animation-1-2_zyx.gif (717.8 kB)

回転のまとめ

index を [0, 1, 2] とした時...
0: 体を横から見た時の回転 (消去法的に)
1: 頭上から見た時の回転
2: 体を正面から見た時の回転

bvhの...
x_rotate:
y_rotate: 頭上から見た時の回転
z_rotate:

進路関係

余談

ラーメンたべた

IMG_6965.JPG (3.0 MB)

toyamaさんありがとう

BBQした

IMG_7013.JPG (2.7 MB)

60人規模のイベントですごく疲れた