HMR(Human Mesh Recovery) をつかってみた

参考にしたのはこちらのプロジェクト
End-to-end Recovery of Human Shape and Pose
akazawa/hmr

Python2.7が推奨されています
サポートは切れていますがとりあえず動きがみたいので2.7で環境設定していきます

環境設定

macOS 10.14.4

サイトを見るとLinuxとWindowの設定が記述されていたのでWindowsを設定していたのですが、環境が作れなかったため、macで環境設定することになりました
macでもデモが動きました

手順

  1. Anaconda3を入れます
    公式ページの下の方に Installersリンク があります
    (前の記事でAnacondaのコマンドをまとめてます)

  2. 環境を作ります
    $ conda create -n [env_name] python=2.7

  3. Tensorflowをいれる
    公式ページに入れ方が載っています

  4. モデルをダウンロード
    $ wget https://people.eecs.berkeley.edu/~kanazawa/cachedir/hmr/models.tar.gz && tar -xf models.tar.gz

  5. デモを動かす
    $ python -m demo --img_path data/im1954.jpg
    これで動くと思います

エラー

私はデモ実行で複数のエラーがでました

ImportError: No module named absl

abls-pyを入れます
$ sudo pip install abls-py
私はpipで入れてしまったのですがpipとcondaが入るのはよくないので
condaで入れた方がよかったと思います

$ conda install -c anaconda absl-py

一度pip uninstallをしてcondaで入れ直しましたが問題なくデモは動きました

ImportError: No module named cv2

absl-pyを入れたあと、さらにエラーが発生しました

pythonでopencvを使うときによくみるやつです
$ conda install opencv
こちらで入ります

ImportError: No module named opendr.camera

次のエラーはopendrです
$ conda install opendr==0.77

デフォルトチャンネルのままだと入らないようでした

PackagesNotFoundError: The following packages are not available from vurrent channels

このときpipではいるという記事をみてpipでインストールしてしましました
$ pip install opendr==0.77
無事 "Successfully installed opendr-0.77" となりましたが
インストール先のチャンネル追加ができるコマンドを見つけたので
そちらで入れた方がよかったかもしれません

ダウンロード先を追加
$ conda config --append channels [channel_name]
ダウンロード先を確認
$ conda config --get channels

次のエラーです

TypeError: load() got on unexpected keyword argument 'encoding'

このエラーの上の行に
File "src/tf_smpl?batch_smple.py" line 32, in __init_
とありました

dd = pickle.load(f, encoding="latin-1")
このpickle.loadの引数がpython2とpython3で変わってしまったようです
32行目を
dd = pickle.load(f)
と書き直して
デモ実行!

デモ実行

無事実行されました

f:id:filot_nextd2:20200925153522p:plain

名称 バージョン
abls-py 0.5.0
opencv 3.4.2
opendr 0.77

windows10で設定をやめた理由

windowsが推奨されていたため、Anaconda3を入れて環境をつくっていました
python2.7はサポートがないと思ってpython3.6でやってみてました
macと同じようにエラーが発生
cv2がないとかscikit-imageがないとか、、、
macより色々でましたがだいたいモジュールが見つからないエラーでした
ただ、致命的なのがopendrがpython3に用意されていないということです

そこでpython2.7にしようと環境をつくりなおしました
今までと同じようにエラーを一つずつ潰していきます
そしてTensorflowが対応していないことに気づきました、、
https://www.tensorflow.org/install/pip?lang=python2#windows_1
なるほど。
python2.7を推奨しているのに

Windows Setup with python 3 and Anaconda

と書いてあるわけです

python2.7の環境を消そうとしたらAnacondaが起動しなくなりました、、

anaconda-navigator 起動しない

結構検索でてきます

https://github.com/ContinuumIO/anaconda-issues/issues?q=anaconda-navigator+
結果win64bit版のインストーラーが壊れているらしいという、、
そこでmacでやってみることにしました

anaconda-navigatorが動かないことに関しては
minicondaなどを試してみてもよかったかもです
condaコマンドが使えたら良いと思うので。

初めてさわるものばかりで
あとでこうした方が良かったと思うことがちらほらですが、
デモが動いたので次はpython3で動かしたいのと動画で実行してみたいです