2019年4月22日月曜日

Jetson Nano に Openpose 入れてみる

jetson nano 買ったからにはガンガン使わなくてはという謎の使命感から、僕でも知ってる超有名シリーズ「nightmare」「yolo」に続き、「Openpose」を入れてみることにしました。


セットアップ


セットアップは、こっちの前半に書いてあります。

https://toramamma.blogspot.com/2019/04/jetson-nano-darknet.html


インストール


基本はここを参考に、実際に打ったコマンドを書き残しておくスタンス。

https://qiita.com/myoshimi/items/cf64c91cd22c516bb49b


cmakeをインストール


$ sudo apt-get install qtbase5-dev build-essential gdebi libopencv-dev
$ wget https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4.tar.gz
$ tar xzvf cmake-3.13.4.tar.gz
$ cd cmake-3.13.4
$ ./configure --qt-gui
$ ./bootstrap
$ make -j6
$ sudo make install


GPGPU関連


GPGPU関連のセットアップは終わってるものとしてスルー


Openposeのビルド


今までのもHome直下に入れてるので、若干パスをいじって入れる。

$ git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
$ cd openpose
$ sudo bash ./scripts/ubuntu/install_deps.sh
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ sudo make install


実行


まずはサンプル動画をやってみまあす

$ cd ~/
$ ./build/examples/openpose/openpose.bin --write_json outputJSON/ --display 0 --model_folder ./models --video "./examples/media/video.avi" --write_video outputVideo.avi
OpenPose demo successfully finished. Total time: 1198.628352 seconds.

20分かかりました(汗)


では、リアルタイムをば・・・

$ ./build/examples/openpose/openpose.bin --model_folder ./models
Starting OpenPose demo...
Configuring OpenPose...
Starting thread(s)...
Auto-detecting camera index... Detected and opened camera 0.
Auto-detecting all available GPUs... Detected 1 GPU(s), using 1 of them starting at GPU 0.
Gtk-Message: 12:50:18.435: Failed to load module "canberra-gtk-module"

なんか、落ちたのでライブラリ入れます。

$ sudo apt install canberra-gtk*

実行してみます。

$ ./build/examples/openpose/openpose.bin --model_folder ./models

出ました!
0.2FPS!!

メモリ食いつぶしてますね。


解像度を下げてやってみます。

$ ./build/examples/openpose/openpose.bin --model_folder ./models --net_resolution 320x176

これで、2.3FPS達成!!
このくらい出ると、まあまぁ遊べるかな。


ホネホネが自分に合わせて動くサマを見ていると、あらためてすごい技術だなぁと思いました。

ちなみに、--face と --hand はリアルタイムでは動作しませんでした。
というのも、--face_net_resolution、--hand_net_resolutionを低めに設定しないと読み込まれず、低くすると精度悪くて検出できないようです。

次は何動かしてみようかな。

0 件のコメント:

コメントを投稿