Jetson TX2 環境構築 リベンジマッチ(JetPack3.2.1) ~Openposeを導入するまで~
環境構築と戦う男
半年ぶりくらいにですが、リベンジする機会があったので。というのも、半年前に構築した環境ではOpenposeが中途半端に動く(gstremerをつかってカメラでモデル実行はできるが動画を読み込ませて解析させるとエラーで落ちる)ということで、改善を試したのですがあんまり良くならなかったので一から入れ直すことに。
前記事同様、アーキテクチャがaarch64
であるため一筋縄ではいかないため、工夫する必要が。
Jetsont TX2のインストール環境
host環境
TX2 環境
VMにUbuntuをインストールからJetpackをTX2にインストールまで
前回記事を参考にしながら勧めていきます。
Tensorflowのインストール
半年前の記事からだいぶ時間も立ってJetPack3.2用に作成されたwhlが配布されていたりしたため、このへんはbazelを使わずともスムーズに行けました。
【2018年8月22日編集】
以下nvidiaのTopicより1.7から1.9までのtensorflowのwhlが配布されていますのでダウンロードして
https://devtalk.nvidia.com/default/topic/1031300/tensorflow-1-8-wheel-with-jetpack-3-2-/devtalk.nvidia.com
sudo pip3 install てんそるふろーのwheel.whl
することで、pipの中にtensorflowが入ります。圧倒的感謝・・・!
OpenCV3.4.0のインストール
ご丁寧に細かい説明や必要ライブラリから導入してくれるわかりやすいサイトでした。これを見ながらOpenCV3.4をMake・Installしていきます。
【2018年8月22日追記】
ちなみにpipでpythonを管理している方は、そのままだと /usr/local/lib/
下のpythonのsite-packageにインストールされるので、自分の使っているバージョンで使用する場合には ln -s /usr/local/lib/python3.5/site-packages/cv2.cpython-35m-aarch64-linux-gnu.so /home/ユーザ名/.pyenv/versions/3.5.2/lib/python3.5/site-packages/cv2.cpython-35m-aarch64-linux-gnu.so
の一手間を加えるとpyenv管理下のpythonでcv2が使えるようになります。
caffeのインストール
同様にcaffeも入れていきます。途中でrequirement.txt
をつかってpip3にインストールする手順があるのですが、scikit-imageがうまく入らない方は、sudo apt-get install -y python-skimage Cython
でscikit-imageとCythonを入れてからpip3に入れてみましょう。
【2018年8月23日追記】
openposeの3rdparty内のcaffeを入れる場合boostが必要になるため、apt-getをつかってboostに関連するライブラリをインストールする必要があります。なので、boost 関連で躓いた方は以下のサイトを参考にすると良いかと思います。
openposeのインストール
installation.mdを見ながら環境構築を進めますが、このときに
- Make.config の
CAFFE_DIR
をインストールしたcaffeのディレクトリに設定する
caffeのときにオプション周りを細かく設定しているので、それをopenposeに適用させるだけなので難しい話ではなかったです。あとは、
cd build cmake .. ccmake .. # オプション周りが出ますが、基本[c]onfigure して [g]enerateすればok make -j`nproc` sudo make install
と手順を踏んで行くことでビルドできます。
openposeにembed cameraを認識させる。
jetsonの壁ですね。opencvのcv2.VideoCapture(0)
でembed cameraを認識してくれず、
Error: No camera found.
となってしまうわけです。これを改善するために調べてみたのですが、
どうやら相性が良くないらしい。OpenCVで数値指定(defaultなら0)するやつは、全部ダメ臭くソースから細かくコマンドを入れなきゃいけない模様。動かないわけではないけど、ビルドするたびにソースを書き換えるのは億劫。
海外のnvidia質問サイトをみても、声を揃えて「面倒だからusbカメラつけてやったほうがええで」という感じ。
どうしてもやりたければ、上記サイトから変更する感じですね。
まとめ
今回はしっかりリベンジできたのではないかと。半年たった今だと環境構築記事が増えていたおかげか、だいぶ楽に構築することができました。onboardカメラを使わなければ動作はするので、今の所どうしてもカメラを使わなければ行けないという状況ではないため、ここに時間をさくのはやめようかと。
というわけでお次あたりは、
こんな面白いものが発表されたのでこちらも環境構築してみようかなって感じです。