Jetson NanoでPose Estimation
Jetson Nanoで骨格検出の技術を動かしてみます。「tf-pose-estimation」というソフトを使うと単眼カメラで人間の骨格検出をすることができます。詳しくは以下ブログ記事を参照下さい。
単眼カメラでKinectのように骨格検出する技術「Realtime Multi-Person Pose Estimation」を試してみた
Jetson Nanoで「tf-pose-estimation」のセットアップ
ほとんど以下の記事を参考にさせていただきました。おかげで詰まることなくセットアップできたので、本当に感謝です。
Jetson Nano に TensorFlow版のOpenpose入れてみる
そのままだと付加価値がないので、上記のセットアップをコマンド一発で実行できるようにスクリプトにした上で、Raspberry Piカメラに対応するソフトを作成しました。
JetPackのバージョンによってコマンドが変わりますので注意してください。JetPackのそれぞれのバージョンのダウンロード先は、以下ページ参照下さい。
Jetson Nanoで使えるSDカードのイメージファイルまとめとイメージ書き込み方法
JetPack4.5の場合は、以下4行のコマンドを実行するだけで「tf-pose-estimation」のセットアップができます。
$ git clone https://github.com/karaage0703/jetson-nano-tools
$ cd jetson-nano-tools
$ ./install-tensorflow-v45.sh
$ ./install-pose-estimation-v45.sh
install-tensorflow_xxx.sh
で「tf-pose-estimation」に必要なTensorFlowをセットアップして、install-open-pose_xxx.sh
で「tf-pose-estimation」のセットアップ(関連ライブラリのインストール等含む)を行っています。
JetPack4.4の場合は、以下コマンドを実行することでセットアップできます。
$ git clone https://github.com/karaage0703/jetson-nano-tools
$ cd jetson-nano-tools
$ ./install-tensorflow-v44.sh
$ ./install-pose-estimation-v44.sh
「jetson-nano-sd-r32.1.1-2019-05-31.zip」の場合は、以下コマンドを実行することでセットアップできます。
$ git clone https://github.com/karaage0703/jetson-nano-tools
$ cd jetson-nano-tools
$ ./install-tensorflow.sh
$ ./install-pose-estimation.sh
Jetson Nanoでの「tf-pose-estimation」の実行方法
ラズパイカメラ v2を繋いで以下コマンドを実行します。
$ cd ~/tf-pose-estimation
$ python3 run_jetson_nano.py --model=mobilenet_v2_small --resize=320x176
私の環境だと7〜8fpsの速度でした。
ラズパイカメラではなくて、Webカメラで動かす場合は、以下コマンドを実行すればOKです。
$ python3 run_webcam.py --model=mobilenet_v2_small --resize=320x176
ラズパイカメラが繋がっている場合は、以下コマンドとなります。
$ python3 run_webcam.py --model=mobilenet_v2_small --resize=320x176 --camera=1
tf-pose-estimationのMacでの動かし方
補足(個人的メモ)です。基本的にはJetson Nanoと同じです。
Pythonのセットアップは以下参照下さい。
Pythonで機械学習をするための環境を雑にセットアップする方法(Jupyter notebook環境、ディープラーニング環境含む)on Mac/Linux
TensorFlow、OpenCVあたりをインストールしておけば良いと思います。
swigに関しては、Homebrewで以下コマンドでインストールしました。
$ brew install swig
テストは以下のコマンドでOKです。
$ python run_webcam.py --model=mobilenet_v2_small --resize=320x176
まとめ
Jetson Nano(ついでにMac)で骨格検出をする方法をまとめました。骨格検出を使って、身体を楽器にするアプリを作ったりしています。興味ありましたらこちらもごらんになってみてください。
Jetson Nanoとディープラーニングを使って身体を楽器にする「Skeleton Sequencer」に関して趣味TECHオンラインに寄稿しました
関連ページ
Jetson Nano関係のTIPSまとめ
Jetson Nano関係の情報は、上記ページにまとめていますのでよければ参照下さい。
変更履歴
- 2020/05/31 JetPack4.4に関して追記