Cork

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

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

8/19(月) 久々に友達に会った

8/19(月)ウェイト

GC)曇り時々雨
PC)軽い動きづくりならできそう。右足はだいぶ良くなった

ウェイト

ベンチプレス 50*10 60*10*2 (70*5)
ラットプルダウン ??*10*3
腹筋台 5kg*30*3

理工系まであと5日。今日は脚を使わないウェイトを軽くやっておいた。

ベンチ

これをやったから速くなる訳じゃない。楽しいからやってるだけだけど、胸筋群や背筋群が鍛えられるので、体幹厚くなり、結果として腕振りや加速時の上体の安定性に繋がるとは思う。

ベンチも動画を撮ったけど、大した発見はできなかった。やってて気づいたことは、

・やはり少し斜め上(頭部側)に持ち上げる(押し上げる)イメージだと、やりやすい

・トップで腕を伸ばしきると、プルプル震える。俗に言う肘の角度を120度くらいにするとそれがなくなる

ってことくらいかな。楽しかったからいいや。




ラットプルダウン

ベンチプレスのように、体幹と力の作用線をなるべく直交させようとして、だいぶ体を倒した。
そこまで追い込まなかったけど、上腕などを余計に使わないで、あと肩周りを使いすぎないで、広背筋周辺に集中して刺激を入れられたと思う。

ラットプルダウン、ってネットで調べれば、その全てが自分ほど体を寝かしていない。ちょっと傾ける程度。
自分のは明らかに寝かしすぎだ。下調べが足りてないし、自己流になっていた。適当なトレーニングをしてしまった。修正せねば。

f:id:ryutaromiya:20190819191547p:plain

引く方向が、マシンのロープの方向とずれている。

その原因は、ここまで体を倒しているからかもしれない。でも、直接的な原因は、の移動方向だ。

肘がそもそも後ろに引いているのではなく、下方向に引いてしまっている。

f:id:ryutaromiya:20190819193020p:plain

画像が大きいのは勘弁。大きさ変えられなくなった。

腹筋台

レーニングセンター名物の腹筋台。これをやらなきゃ終われない。5kgの重りを持って、軸を作って、その周りを往復させる。これは、腹直筋といよりも、大腰筋にくるので好きだ。

f:id:ryutaromiya:20190819192151p:plain
後半になってもそこまで体がぶれていない。




ハルのやってた腹筋が良かったので真似した。

人のメニューを積極的に取り入れる。自分の方法が正しいと信じて変えることをやめたあたりで成長は止まる。

人のやってたことをやるのは、はじめは恥ずかしいかもしれない。でも、真似まくれば、いつの日か抵抗がなくなって、面白くなっていく。
そして、周りが見えてきて、いつか誰かからいい話をもらえるかもしれない。




軽く済ませてしまったので、全体を通してそこまで得られたことはない。

ポールの上に立ったら転んだ

昨日、ストレッチポールに両足のせて立って、全体重かけてたら、漫画のワンシーンのように綺麗に転んだ。
他人が見ていたら最高に面白い絵になってたんだろうけど、自分は終わったと思った。


尻餅をついて、左手をとっさについた。骨にいったと思ったけど、どうやらセーフのようだ。骨がやられたら理工系どころか合宿が走れなくなる。

尻は押せば痛い。今後、ストレッチポールの上に立つことは二度とないだろう。

右足は良くなってきた。走っていなかったという焦りもない。走りたいと言う気持ちがあるのみ。

明日軽く動く。あとはそのまま理工系当日ぶっつけって感じ。


理工系

8/24
400予選
400決勝

8/25
4*400予選
4*400決勝

目標


共に予選は走らせてもらえる話。決勝に行けるかは実力次第。

例のごとく目標は定めない。PB更新できたらラッキー程度。



誰の真似だか知らないけど、いつの間にか、自分は目標に「〜〜できたらラッキー。できなかったらドンマイ。」って書くようになった。

15大あたりで、結果を出すことや決勝に上がることを意識しすぎて、思うようなパフォーマンスや精神維持ができなかったからだと思う。



何事においてもそうだけど、自信を持つことや自分を信じることは大切だ。でも、明確な目標や基準を定めると、それが自分を追い立てる。

だから、うまくいったらラッキー程度がいい。別に死ぬ訳じゃないんだし。受験だってそうのぞむべきだった。





HMR

簡単に言うと、動画とか写真とかから、人の3Dデータを作れる。

ドリルや練習時に、横から見ているだけじゃわからない情報はたくさんある。

接地の瞬間を前から見てみたり、マネージャーさんの撮るビデオじゃ見られない角度から分析できるようになる。

今日の朝ようやく成功したので、まだそこまで試せていないけど、陸上分析に使えるかもしれない。



f:id:ryutaromiya:20190819191458p:plain

こういう写真を読み込ませると下のように出力される。

f:id:ryutaromiya:20190819191501p:plain














このフレームワークをしっかり扱うのには十数時間かかった。openposeの時よりはマシだが、目がドライアイに近づいたの否めない。
それでも二次元データから三次元データを起こすことができるのはすごいし、陸上の分析にも使える。この時間の投資は悪くないはずだ。結局成功したし、あとは使いよう。
なにせ、日本どころか世界でも使用例がほぼ公開されていない。日本語のサイトは調べた限りじゃ1つだけで、誰かのメモって感じであんまり参考にならなかった。

とにかく時間がかかったので、そしてこれからやる人のために、何よりも自分のためのメモとして、ここに記す。


完全にマニアックな話になるので、読み飛ばしてください



End-to-end Recovery of Human Shape and Pose

のやり方(0からの説明)


GitHubのリンク
https://github.com/akanazawa/hmr/blob/master/README.md

ここでは必要条件が以下のように書かれている。

Python 2.7

・TensorFlow tested on version 1.3, demo alone runs with TF 1.12

配られているプログラムはPython2.7でしか動かない(正確にはpython2系)構文が入っている。python3系で実行するとxrange()など、python2にしかない構文が出てくる。

しかし、同時にこのプログラムを動かすにはopendrというモジュールが必要だけど、これがpython2系だと、どうやってもインストールできない。

そこで、プログラム自体をpython3の言語に書き換える。書き換えている際に、手で直さなくてはいけないところもあってやばい。




とりあえず仮想環境を作りたければpyenvで作れば良い。自分は仮想環境は作らなかった。(4つほど作ったけど全部上の理由でハマって捨てた。)

まずはpythonのバージョンを確認する。

$ python --version

これでpython3系出なければインストールする必要がある。(自分はpython 3.6.5)

$ pyenv install --list

でインストールできる一覧を表示して、欲しいのをインストールしよう。anacondaは入れないように。

入れたらインストールできたか一応確認しておく。

$ pyenv versions 

あったら、今度はそのバージョンで作業を始めるので、全てのシステムでそのバージョンが使えるように変える。

$ pyenv local 3.6.5
$ python --version
$ pyenv global 3.6.5
$ python --version

いちいち--versionでバージョンを確認したり、local からglobalの順でやっているのは、そうしないとバージョンの切り替えができないバグが必ず発生したから。そして、globalで変更したあと、cdコマンドでどこか他のディレクトリに移動して

$ python --version

をもう一度行って、しっかりバージョン変更がどのディレクトリでもできているかを確認しよう。もしダメならさっきの工程を繰り返すのみ。

そして、バージョンをpython3系に変えたら次に進む。

$ cd 
$ cd hmr

とか、適当なディレクトリを最下層のルートディレクトリに作っておくと良いかも。わかりやすいから。

まず、GitHubからソースをクローンしよう。
さっき作ったhmrディレクトリの中で

$ git clone https://github.com/akanazawa/hmr

を実行。これでさらにhmrというディレクトリができて、その中にクローンが作成される。そこに移動

$ cd hmr

次に、

$ pip install -r requirements.txt

で、今いるディレクトリ内にあるrequirements.txtに書かれているモジュールを順にインストールする。手動でやりたいなら

$ pip install opendr

みたいに一つ一つインストールしよう。
ちなみに、何がインストールされていて何がされていないのかは

$ pip list

で確認できるので、わからなくなった度に確認しよう。
opendr は 0.78でも動いた。chumpyが必要かもしれない。いらないかも。自分は入っていた。

加えて、tensorflowもインストールしなくちゃいけない。

$ pip install tensorflow==1.3.0

これでバージョンを1.3.0で指定してインストールできる、もしtensorflowがインストールできなかったら(couldnt found tensorflowみたいなエラーが出たら)

$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.13.1-py2-none-any.whl
$ pip install --upgrade $TF_BINARY_URL

を実行して、直接URLからインストールすれば良い。これでバージョン1.13が入る。これで動くかは知らないけど、こういう感じでやる。

次に、学習済みデータをwgetでダウンロードする。

$ wget https://people.eecs.berkeley.edu/~kanazawa/cachedir/hmr/models.tar.gz && tar -xf models.tar.gz

ここからが難題。python2をpython3に変えるけど、一部手動で直さなくちゃいけない。

まず、2to3コマンドを使って、変換する。.pyデータを直接変換もできるけど、ディレクトリごと変換できるから、そっちを使う。

hmrがあるディレクトリに行って、

$ 2to3 -w hmr

を実行。-wをつけないと、ただ変換後を見るだけで、上書きできないので注意。元データは.bakという拡張子で残される。これで、xrangeなどのpython2にしかない関数とかが全部変換された。
ちなみに、変換することがないデータに関しては
RefactoringTool: hmr/src/util/openpose.py
RefactoringTool: hmr/src/util/renderer.py
って感じで出力されるので、無視。


これだとまだエラーが起こる。以下のコマンドを実行して、エラーを一箇所ずつ直すしかない。

hmr に入って(scrとかがあるディレクトリで)

$ python -m demo --img_path data/coco1.png

を実行するとエラーがコマンドラインで出てくるから、そのうちの一番最後に表示されたエラーについて修正する。

colorについてのタイピングエラー。

File "/Users/****/hmr2/hmr/src/util/renderer.py", line 397, in draw_skeleton
-1)
TypeError: Scalar value for argument 'color' is not numeric

これに関しては、しょうがないので、エラー内の場所/Users/****/hmr2/hmr/src/util/に移動してrenderer.pyを編集する。vim使ってもいいのかもしれないけど、自分はxcodeで編集した。

$ open renderer.py

そして、エラー内の397行目を見て、以下のように修正する。

colors[ecolors[child]]

colors[ecolors[child]].tolist()

と、]の後に.tolist()をつける。参考にしたのは以下のサイト。
https://github.com/Cartucho/OpenLabeling/issues/4
https://github.com/Cartucho/OpenLabeling/pull/5/files

これを合計4箇所ほど行う。あとはその場で上書き保存する。

そしたら終わり。
hmrディレクトリで

$ python -m demo --img_path data/coco1.png

を実行すれば良い。
hmr/dataのディレクトリに画像を入れれば良い。その際、つけた名前と、そのデータの拡張子を調べておく。

$python -m demo --img_path data/画像名.拡張子

って感じで実行する。しっかり拡張子が必要。

実行すると、ウィンドウがどっかに開かれる。あとはそのウィンドウ内で適当に配置を変更して、右下のsaveでpngデータで保存できる。

その他の保存方法や、動画の読み込ませ方、解像度の変更などは後々やっていく。