Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
架空のコンペ_スクワットフォーム判別コンペの解法
Search
cpptake
March 02, 2024
Programming
0
1.1k
架空のコンペ_スクワットフォーム判別コンペの解法
2024年関西Kaggler会冬でのLT発表資料
cpptake
March 02, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
1k
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
890
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
2
230
可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables
gunji
0
200
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
36
13k
AWS Summit Japan 2024と2025の比較/はじめてのKiro、今あなたは岐路に立つ
satoshi256kbyte
1
200
生成AI時代のコンポーネントライブラリの作り方
touyou
1
290
MySQL9でベクトルカラム登場!PHP×AWSでのAI/類似検索はこう変わる
suguruooki
1
160
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
140
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
180
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
22k
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
1
210
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Documentation Writing (for coders)
carmenintech
72
4.9k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
How GitHub (no longer) Works
holman
314
140k
Transcript
自己紹介 名前 :しぃたけ(@cpp_take) 専攻 :機械工学修士(歩行解析 → 画像処理) 仕事 :生産技術 →
データサイエンティスト 趣味 :筋トレ Kaggle(1年半やってない) その他:半年前子供生まれました
発表内容 背景 無限さんからのDM 実現しようと思って真面目に考えた が下記の理由で断念 ・データ少ない ・採点基準が曖昧 ・年度によってレベルが違う でも何かしたい
架空のコンペ スクワットフォーム判別コンペ 解法共有
スクワットのフォーム判別コンペ バーベルを用いたスクワットは、しゃがみ込みが甘いとと ジムにいる厳しいマッチョ(通称 可動域警察)に攻撃さ れてしまう事で広く知られている。スクワットのフォーム を定量的に把握する手法を作りたい。 コンペ期間:2024年2月18日〜2024年2月23日 参加者 :しぃたけ 主催者
:しぃたけ コンペ概要
データ内容・評価指標 下記の3種のスクワット動画を入力とする(被験者:しぃたけ n数:各1件) ハーフスクワット 浅いスクワット ジムでこれをする と知らないマッチ ョに怒られる フルスクワット 深いスクワット
膝の角度が地面と 水平以下になるの が特徴 脚トレの神、トム・ プラッツ流スクワット 大腿四頭筋にめちゃ効くとん でもスクワット 「俺がジムについた時、既に スクワットは終了してい る。」の名言はあまりにも有 名 評価指標:分析結果がそれっぽくなっていること (データ数少なくて分類問題にできなかったため)
データ取得方法 ・アップ (60kg × 10) ・フルスクワット (100kg×8) ・ハーフスクワット (90kg×8) ・トムプラッツスクワット
(80kg×7) データ取得条件 近所の体育館でスクワットの様 子を横からカメラで撮影 撮り直し ・フルスクワット (シャフトのみ×7) ・ハーフスクワット (シャフトのみ×7) ・トムプラッツスクワット (シャフト のみ×7) →分析対象データ シャフトのみでデータ再取得
解法:姿勢推定 Yolo v8 pose 横向きでもおおむね正確 に姿勢推定ができている
解法:特徴量抽出(大腿角度、膝角度) 大腿角度 膝角度 膝角度時系列推移 大腿角度[deg] 膝角度[deg] 大腿角度時系列推移 下半身の角度定義 大腿角度、膝角度 ・上限値
・下限値 を抽出
解法:大腿角度、膝角度の分析結果 大腿角度の上限下限値 膝角度の上限下限値 大腿角度[deg] 膝角度[deg] •:上限値 :下限値 ・膝、大腿角度を特徴量化するだけでそれなりの結果が得られそう→分類できそう ・トムプラッツ流が最も膝の屈伸が深く、大腿四頭筋への刺激が強そう トムプラッツ流が最も
膝角度の下限値が小さい =最も屈伸が深い 膝、大腿角度共に下 限値が大きい Full Half TomPlatz Full Half TomPlatz
やりたかったけど失敗したこと
筋骨格モデル的なものが作りたかった 筋骨格モデルとは? ヒトの骨格を直線などで単純 化して表現した仮想人体モデ ルのこと。(OpenSIMなどが 有名) 普通は3Dトラッキングデータ に対して使うが、2Dデータに 対してもたまに適用できる ◆できること
・骨格の動きから筋肉の長さ、 張力の推定 ・筋肉のトルクから骨格の位 置を推定 :Yoloの Keypoint 代表的な筋肉につ いて、筋骨格モデ ル的なものを作れ ば、筋肉の伸縮を 可視化できない か? 大腿四頭筋 大腿二頭筋 腓腹筋 やりたいこと
大腿直筋(大腿四頭筋)長さ推定モデルの構築 膝蓋骨 (膝のお皿) 停止部 脛骨粗面 (脛の上の方) 起始部 下前腸骨棘 (股関節の上) 起始部停止部っぽいところを推定
キーポイントの位置から 起始停止部分(筋肉が付 いている所)を推定し それらをつなげた 赤線の長さ=筋肉長さ と仮定する。 大腿直筋
筋長さ推定モデル適用結果 大 腿 直 筋 推 定 長 さ 膝
角 度 大腿直筋長さと膝角度の時系列推移 膝角度による筋肉長さの理論値 ◆屈曲時 ・膝角度 ・・・最小 ・筋肉長さ・・・最大 ◆伸展時 ・膝角度 ・・・最大 ・筋肉長さ・・・最小 理論的には逆位相になるはず ピークの位置が一致しており、同位相になっている :大腿直筋長さ :膝角度 大腿直筋
原因分析 伸展時の姿勢推定 屈曲時の姿勢推定 屈曲時(ガニ股にな った時)に大腿部に 角度ができて、太も もの長さが短くなっ ている 大腿部の長さで正規化する、大腿部角度を補正するなど、試行錯誤したが直らなかった やはり筋骨格の推定には3Dデータが必要
まとめ • 一人でデータを取って、一人でコンペ開催して、一人で参戦した。途中で 強烈な虚しさに駆られたのでオススメできません。Kaggleでもこの手のコ ンペして欲しい。 • Yoloの姿勢推定で関節角度を利用したスクワットのフォーム判別はできそ うな結果は得られた。自作の筋長さ推定モデルは2次元データでは限界があ りそう。 •
Tom Platzは偉大。
None