【OpenPose】インストールして体を認識してみただけの記事

遅いですが手元でOpenPoseを動かしてみました。

腕の角度とか取得できるんだろうか…?(今回はここまでいってません)

Ubuntu

anacondaインストールしてJupyter Notebookをインストールする

いろんな記事をみていると、どうやらubuntuで実装した方がよさそうなので、EC2立てるか…

AWSでJupyter Notebook使うの、セキュリティグループ面倒そうだが、これー!

ただ、prefixは指定しないとダメだったが…他の方法があったんだろうか…

そして、jupyter notebook --no-browserと書いてあったのですが、外部からアクセスするには、jupyter notebook --ip=* --no-browserでないとダメだった…

これでipアドレスをブラウザに入力すると、token入力画面が表示されるので、jupyter立ち上げた時のtokenを入力すればアクセスできるようになる。

CUDAのインストール

自分の環境に進んでいく。

今回は、

Linux -> x86_64 -> Ubuntu -> 16.04 -> deb [local]

因みにUbuntuのバージョンを調べるのはlsb_release -aでおk。

最後のインストール方法は、参考にしているサイトがそれっぽかったからという理由で適当に決めてしまった。

とりあえず、ローカルにCudaダウンロードしたので、scpで送る。よく忘れるので、一応記載しておく。

scp -i 秘密鍵のパス cuda-repo-ubuntu1604-9-2-local_9.2.148-1_amd64.deb  ubuntu@ドメイン:/home/ubuntu/

そして、遂にCUDAのインストール!

sudo dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.148-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

cuDNNをインストール

ここから、CUDA9.2を選択したので、そこからcuDNN v7.2.1 Runtime Library for Ubuntu16.04 (Deb)cuDNN v7.2.1 Developer Library for Ubuntu16.04 (Deb)をダウンロードして、再度scpで送る。

scp -i 秘密鍵のパス libcudnn7_7.2.1.38-1+cuda9.2_amd64.deb  ubuntu@ドメイン:/home/ubuntu/
scp -i 秘密鍵のパス libcudnn7-dev_7.2.1.38-1+cuda9.2_amd64.deb  ubuntu@ドメイン:/home/ubuntu/

OpenCVとAtlasのインストール

sudo apt-get install libopencv-dev
sudo apt-get install libatlas-base-dev

したんですが、

E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

apt-get -f installせんかい!って怒られたので、

sudo apt-get -f install
Errors were encountered while processing:
 /var/cuda-repo-9-2-local/./cuda-visual-tools-9-2_9.2.148-1_amd64.deb
 /var/cuda-repo-9-2-local/./cuda-samples-9-2_9.2.148-1_amd64.deb
 /var/cuda-repo-9-2-local/./cuda-documentation-9-2_9.2.148-1_amd64.deb
 /var/cuda-repo-9-2-local/./nvidia-396_396.37-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

不吉すぎるんだが…

Unpacking nvidia-396 (396.37-0ubuntu1) ...
dpkg: error processing archive /var/cuda-repo-9-2-local/./nvidia-396_396.37-0ubuntu1_amd64.deb (--unpack):
 cannot copy extracted data for './usr/lib32/nvidia-396/libnvidia-glcore.so.396.37' to '/usr/lib32/nvidia-396/libnvidia-glcore.so.396.37.dpkg-new': failed to write (No space left on device)
No apport report written because MaxReports is reached already
                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Errors were encountered while processing:
 /var/cuda-repo-9-2-local/./cuda-visual-tools-9-2_9.2.148-1_amd64.deb
 /var/cuda-repo-9-2-local/./cuda-samples-9-2_9.2.148-1_amd64.deb
 /var/cuda-repo-9-2-local/./cuda-documentation-9-2_9.2.148-1_amd64.deb
 /var/cuda-repo-9-2-local/./nvidia-396_396.37-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

もう少し遡ってみると、No space left on device

無料版では無理なのか…

一旦swapを開放してみようではないか…(これもいつもやり方を忘れるんだが…)

まず確認する。

cat /proc/swaps

設定されていないっぽいので、

sudo mkdir /var/swap
sudo dd if=/dev/zero of=/var/swap/swap0 bs=1M count=2048
sudo chmod 600 /var/swap/swap0
sudo mkswap /var/swap/swap0
sudo swapon /var/swap/swap0

として、swapを設定する。
そしてそして、echoだけsuper userじゃないとできなかったから、

sudo su
echo '/var/swap/swap0 swap swap defaults 0 0' >> /etc/fstab

として自動でswap割当にしておく。
が、これでも容量が足りず…Ubuntuでの実装を断念した

(普通にプラン上げろよw)

まぁだいたいの流れを理解したので、ローカルでもう一度やってみよう!

Mac

実はめちゃくちゃ簡単に構築できるのでは…

caffeのインストール

とりあえず、condaで環境を作る。

conda create -n caffe
conda activate caffe

なんでこんなcaffeインストールできないんだろうか…

ん?こんなにもインストールしにくいのに、caffeしか使えないっておかしいよな?

と思って調べたら、やはり…

あるじゃねぇか!ってなった…

tensorflowのインストール

まずは世のエンジニアをもっと信用するところからはじめねばなるまい。

conda remove -n caffe --all
conda create -n tensorflow
conda activate tensorflow
conda install tensorflow

エラー!

ModuleNotFoundError: No module named 'tf_pose'

you need to set PYTHONPATH.
$ export PYTHONPATH=/path_to_tf-pose-estimation/:$PYTHONPATH
you may write it in .bashrc

さ、パスを追加を追加するか。

AttributeError: module 'pandas' has no attribute 'rolling_count'

に苦しむ…

uninstall and reinstall dask worked for me…

daskを再度インストールしたが変わらず…

Or install pandas <=0.22, it’s only the most recent version (0.23) that has removed the rolling_x methods.

pandasのバージョンを変更するか。

0.23だとrolling_xメソッドはremoveされているそうなので、0.22をインストールします。

conda install pandas=0.22

そして、なぜかpipでもインストールしていたみたいだからこっちもアンインストールしておきます。

pip uninstall pandas

これでなんとか解決できたが、違うエラーに悩まされる

InvalidArgumentError (see above for traceback): NodeDef mentions attr 'dilations' not in Op...

...


とりあえず、tensorflowの1.6.0のバージョンにしてみる。

pip install tensorflow==1.6.0

と、無事に解決できた…

openpose

が、なんかpipcondaが共存?しているような…

この辺は解決したい…

因みに、こっちのコマンドでもできる。

python ./run.py --image=./images/p1.jpg

リアルタイム

リアルタイムもやってみたw

python run_webcam.py --model=mobilenet_thin --resize=432x368 --camera=0

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です