というのも、CPUでも2FPS位出るみたいな記事を見かけたので、GPUにしたらもちょっと出るんじゃないかなという単純な発想です。
セットアップ
セットアップは、これらやった前提で。
https://toramamma.blogspot.com/2019/04/jetson-nano-darknet.html
https://toramamma.blogspot.com/2019/04/jetson-nano-openpose.html
インストール
tf-pose-estimationのインストール
とりあえず言われるまま入れてみます。
https://github.com/ildoonet/tf-pose-estimation
ただ、この通りにやると失敗するもんで、先に必要なライブラリを入れたほうが良いです。
ものっそい時間かかるので、コレを先に・・・
$ pip3 install --upgrade cython $ sudo apt-get -yV install libopenblas-dev $ sudo apt-get -yV install liblapacke-dev $ sudo apt-get -yV install gfortran $ sudo apt-get -yV install llvm-7* $ echo 'export PATH="/usr/lib/llvm-7/bin:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile
参ります。
$ git clone https://github.com/ildoonet/tf-pose-estimation.git $ cd tf-pose-estimation $ pip3 install -r requirements.txt
失敗したログしかないけど、正しくできてれば、Failedがないものが出力されると思います。
Successfully built dill fire matplotlib numba psutil pycocotools scikit-image msgpack numpy pyzmq tabulate termcolor kiwisolver PyWavelets networkx pillow Failed to build scipy llvmlite Installing collected packages: argparse, dill, six, fire, cycler, setuptools, kiwisolver, numpy, pyparsing, python-dateutil, matplotlib, llvmlite, numba, psutil, pycocotools, urllib3, idna, chardet, certifi, requests, PyWavelets, pillow, imageio, decorator, networkx, scipy, scikit-image, slidingwindow, tqdm, msgpack, msgpack-numpy, pyzmq, tabulate, termcolor, tensorpack
次はコレをやれというので
https://github.com/ildoonet/tf-pose-estimation/tree/master/tf_pose/pafprocess
$ cd tf_pose/pafprocess $ sudo apt install swig $ swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace
素直に実行。
TensorFlowのインストール
で、ここでTensorFlow入れてないの思い出して、入れてみます。
$ pip3 install tensorflow-gpu Could not find a version that satisfies the requirement tensorflow-gpu (from versions: )
嘘だろ。。
※ サックっとスルーしますが、ここで相当ヤラレタ。。
色々漁ってたら、ぴったりな記事あったので参考に。
https://qiita.com/tsutof/items/77b49f71ed81344b9d16
$ sudo apt-get install libhdf5-serial-dev hdf5-tools $ sudo apt-get install python3-pip $ sudo apt-get install zlib1g-dev zip libjpeg8-dev libhdf5-dev $ sudo pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker grpcio six mock requests gast h5py astor termcolor $ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu
で、TensorFlowの動作確認まで。
$ python3 Python 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf >>> print(tf.__version__) 1.13.1 >>>exit()
学習済みモデルのダウンロード
次は、学習済みモデルをダウンロード。
見出しと同じことをもう一度書くスタイル。
$ cd ~/tf-pose-estimation $ cd models/graph/cmu $ bash download.sh
実行
やっと実行ですが、ライブラリ足りず落ちたのでコレを先に。
$ pip3 install tqdm $ pip3 install slidingwindow $ pip3 install pycocotools
※ でもコレ最初の pip3 install -r requirements.txt で入ってるっぽいんだけどな。。
ここに来るまでTensorFlow関連で色々いじったので普通にやってれば再現しないかも。
やっと実行!!!
$ python3 run_webcam.py --model=mobilenet_thin --resize=432x368 --camera=1
ガーン!!
動いたけど・・・まさかの2FPS。
パフォーマンス変わらず。。。
まだだ、諦めるのは早い!
モデルを「mobilenet_v2_small」に変えてみよう!
$ python3 run_webcam.py --model=mobilenet_v2_small --resize=432x368 --camera=1
でたーっ!3.5FPS!
なかなか良いね!
お前の力はこんなモンじゃないはずだ。
前回のOpenposeに読み込み画像サイズを合わせてみよう。
$ python3 run_webcam.py --model=mobilenet_v2_small --resize=320x176 --camera=1
出ました。
7〜8FPS!
でも、精度だいぶ落ちるんよね〜
あと、--camera=1はラズパイカメラ同居しているので、ロジクールのを使う設定です。
通常は0です(だと思います)
感想
サイズ合わせて3.5倍達成しました。
精度重視でも1.5倍は早くなりました。
労力はこの比ではありませんでしたw
でも、折角TensorFlow入れたので、ネタが増えました。
サンプルたたきマンでももう少しなにか出来るかな。
Virtualenv?知らん、何かあればイメージ焼き直す!!
メモ
TensorFlow入んなくて、ほんと色々イジったので、メモ程度に現状残しておく。
$ pip3 list --format=columns Package Version ----------------------------- ------------------- absl-py 0.7.1 apt-clone 0.2.1 apturl 0.5.2 asn1crypto 0.24.0 astor 0.7.1 beautifulsoup4 4.6.0 blinker 1.4 Brlapi 0.6.6 certifi 2019.3.9 chardet 3.0.4 cryptography 2.1.4 cupshelpers 1.0 cycler 0.10.0 Cython 0.29.7 defer 1.0.6 devscripts 2.17.12ubuntu1.1 dill 0.2.9 distro-info 0.18ubuntu0.18.04.1 feedparser 5.2.1 fire 0.1.3 gast 0.2.2 gpg 1.10.0 graphsurgeon 0.3.2 grpcio 1.20.0 h5py 2.9.0 html5lib 0.999999999 httplib2 0.9.2 idna 2.8 Keras-Applications 1.0.7 Keras-Preprocessing 1.0.9 keyring 10.6.0 keyrings.alt 3.0 kiwisolver 1.0.1 language-selector 0.1 launchpadlib 1.10.6 lazr.restfulclient 0.13.5 lazr.uri 1.0.3 llvmlite 0.28.0 louis 3.5.0 lxml 4.2.1 macaroonbakery 1.1.3 Mako 1.0.7 Markdown 3.1 MarkupSafe 1.0 matplotlib 3.0.3 mock 2.0.0 numpy 1.16.3 oauth 1.0.1 oauthlib 2.0.6 olefile 0.45.1 PAM 0.4.2 pbr 5.1.3 Pillow 5.1.0 pip 9.0.1 portpicker 1.3.1 protobuf 3.7.1 psutil 5.6.1 py-cpuinfo 5.0.0 pycairo 1.16.2 pycocotools 2.0.0 pycrypto 2.6.1 pycups 1.9.73 pygobject 3.26.1 PyICU 1.9.8 PyJWT 1.5.3 pymacaroons 0.13.0 PyNaCl 1.1.2 pyparsing 2.4.0 pyRFC3339 1.0 python-apt 1.6.3+ubuntu1 python-dateutil 2.8.0 python-debian 0.1.32 python-magic 0.4.16 pytz 2018.3 pyxdg 0.25 PyYAML 3.12 requests 2.21.0 requests-unixsocket 0.1.5 scipy 1.2.1 SecretStorage 2.3.1 setuptools 41.0.1 simplejson 3.13.2 six 1.12.0 slidingwindow 0.0.13 ssh-import-id 5.7 system-service 0.3 systemd-python 234 tensorboard 1.13.1 tensorflow-estimator 1.13.0 tensorflow-gpu 1.13.1+nv19.4 tensorrt 5.0.6.3 termcolor 1.1.0 tqdm 4.31.1 ubuntu-drivers-common 0.0.0 uff 0.5.5 unattended-upgrades 0.1 unidiff 0.5.4 unity-scope-calculator 0.1 unity-scope-chromiumbookmarks 0.1 unity-scope-colourlovers 0.1 unity-scope-devhelp 0.1 unity-scope-firefoxbookmarks 0.1 unity-scope-manpages 0.1 unity-scope-openclipart 0.1 unity-scope-texdoc 0.1 unity-scope-tomboy 0.1 unity-scope-virtualbox 0.1 unity-scope-yelp 0.1 unity-scope-zotero 0.1 urllib3 1.24.2 wadllib 1.3.2 webencodings 0.5 Werkzeug 0.15.2 wheel 0.30.0 xkit 0.0.0 zope.interface 4.3.2
0 件のコメント:
コメントを投稿