Cork

大学生スプリンターの考えすぎる練習日誌

どこにでもいる大学2年生の短距離練習日誌

4/6 (月) 【陸上】 練習動画から走りの速さを計算する

だれもが、「自分の速度」を知りたいと思う。

スポーツを科学する、が流行る今、誰一人として練習の速度変化を計測した者はいない


なるほど確かに、トップ選手の速度を計測した事例は目にする。

f:id:ryutaromiya:20200406013008p:plain
東洋経済 ONLINEより引用
(https://toyokeizai.net/articles/-/285087)


ただ、あれには立派な設備と高級なカメラや、モーションキャプチャが必要になる。
一般人が使えるもんじゃない

きっかけ

前からやってみたいと思っていたけど、確実にめんどくさいニオイがしたので後回しにしていた。
ただ、この前、200mの練習を終えて、作るモチベが沸騰した。

いい感覚といいタイム。350mを走った後で22"98。
ただ、ゴール付近にいた一部の人が、「計測ミスじゃね?」と言った。

マネージャーを信じない発言以上に、そもそも、手動タイムの信頼度の低さにやる気を失いそうになった。

そして思った。
練習のタイム計測を絶対化したい。

それと同時に、どうせなら、速度変化も求められるようにしたい。
これがきっかけだ。




方法は二つある。

ひとつは、練習動画から速度を出す方法。
画像解析をゴリゴリすれば何とかなりそうだ。


もうひとつは、センサを使う方法。
これも頭で何となくイメージがわいてきた。きっと作れる。

動画解析

解析する対象は、この動画。


20200325 200③ 22"98



ディープラーニングを用いて、動画像から距離を計測する方法が世の中にはある。
残念だが、そうとう時間がかかりそうだし、ブレッブレの練習動画では非現実的だった。


そこで作戦はこうだ。
あらかじめ、距離の情報を載せたトラックデータを作っておく。
それを、動画像に3次元回転させて照らし合わせる。

きっと何言ってるかわからないと思う。

さっそく作業に取り掛かる。

タータンの規格をもとに作成

調べてみると、日本の陸上トラックっていうのは一種類しかないらしい。
それも、結構簡単な、直線と半円を組み合わせただけの奴。

f:id:ryutaromiya:20200405205103j:plain
Kofu-Field さんのブログより引用

www.kofu-field.com
わかりやすいように画像を引用させていただいた。問題があったら消さなくてはいけない。

1レーンだけ、半径が37.898m+0.2m。それ以降は、39.318m+1.22nm(n=0,1,..)。
あとは、弧度法の考えに基づいて、1mおきに線を引く。中心角cを
c=\frac{180}{r\pi}
r=中心半径
で求め、角度に対応した線を200m9レーン分合計1800本引けばいい。

で、できたのがこれ。

f:id:ryutaromiya:20200405205909p:plain

動画からフレームを切り出して重ねる

先ほどの練習動画から、一部分を試しに切り抜いてみる。


f:id:ryutaromiya:20200405210520j:plain

そこに、さっき作ったデータをイラストレーター上で重ねる。三次元回転。

f:id:ryutaromiya:20200405210623p:plain

サイズを切り抜いた画像に合わせる。
。。。。あれ?

f:id:ryutaromiya:20200405210658p:plain

RAMが足らないだと、、?
64GB積んでるんだが、、、。調べてみると、どうやらソフトに使用できる物理メモリに上限があるらしい。
やってくれたなイラレCS4。

しょうがないので、データを切り抜いて再度実行。


f:id:ryutaromiya:20200405210951p:plain

これでできるはず。

残念なお知らせ。

3D回転を始めて1時間ほど経過したところで、とあることに気が付いた。
当初、練習動画を回転させて、トラックを真上から見ているように変換し、それと先ほど作ったデータを重ねるつもりだった。

しかし、どうやってもうまく合わない。

f:id:ryutaromiya:20200405211435p:plain


そこで残念なお知らせ。
言葉では説明が難しいのだが、二次元のカメラで撮ったデータをいくら回転させたところで、ほぼ90度視点を変えて真上から見ることはできないことにわかってしまった。

というのも、200mを動画で撮ると、撮影の都合上、ほとんどトラックは映らない。ほぼ地面と平行になり、薄っぺらくなる。
どう回転させても、一致しないのだ。

そんなことに、机の上の紙二枚を使ってシミュレーションしたら気が付いて萎えた。

直線練習なら測れるかも

200mのカーブが無理なら直線ならどうだろうか?

後日、自主練で走った加速練習を動画で撮った。
計測する前から不吉な予感。

なぜなら、たった80mをレンズに収めるためには、走路からカメラを77.616m離さなくてはいけなかったのだ。
とても非現実的だ。iphoneXRのカメラではこれが限界だ。

f:id:ryutaromiya:20200405213224j:plain

貸し切り競技場のおかげで、それでも何とか撮影できたから、角度を計算して、距離を求めていく。
f:id:ryutaromiya:20200406180944j:plain
iphone XRの水平画角を67度として計算して、遠近法の計算をしていく。
arctanのあとにsinとcosの計算。

f:id:ryutaromiya:20200406175053p:plain

ところが、この方法でつくったモノサシを実際の動画像に重ねるところで躓いた。
遠近法に従って滑らかにゆがませる必要がでてきた。
結局破綻。

走り出し位置情報

せっかくなので、作ったトラックのデータを公開したい。

練習中、よくあることだが、どこが350mの走りはじめだっけ?みたいな。
作ったのは200m分だけだけど。

実際に作ってみるとわかることだが、201m以降は、作成が発狂するほど難しくなる。




pngデータ 200m全体
drive.google.com

pngデータ 200mカーブらへん
drive.google.com

pngデータ 200mカーブ 拡大
drive.google.com


aiデータ(イラストレータ用)
https://drive.google.com/open?id=1wq0WakHigRbnQjYEOvNxDZca5mNMTdB-


ここで終われない

画像解析は、ビデオで2次元情報として撮影した時点で、非常に困難になることが分かった。
副産物として、トラックの1mレベルの詳細なモデルが200m9レーン分できたわけだが、これじゃ終われない。

次の作戦に移ろう。
文明の利器を振り回して速度を測ることにする。