Jetson nanoで、オリジナルの学習モデルを使った物体検出[3/5]  〜Jetson nanoのインストール〜

スマートホーム
スポンサーリンク

はじめに

オリジナルモデルを使った物体検出をJetson nanoで行うべく、以下を実現しようとしています。

これを実現するために、5回に分けて記事を記載予定で、今回は3つ目の記事です。

 第1回:IBM Cloud Annotationsを用いたアノテーション
 第2回:Google Colabを用いたモデルの学習
 第3回:Jetson nanoの環境構築 ←この記事
 第4回:DeepStreamアプリを使いこなす
 第5回:学習モデルの変換と物体検出

第3回:Jetson nanoの環境構築

前回は無料でGPUを使えるGoogle Colabを使って、Tensorflowのモデルを学習する事をやってみました。今回は、物体検出に必要なソフトウェアをJetson nanoにインストールしていきます。Tensorflowは開発が早いので、各種ライブラリのバージョンを合わせてインストールする事がポイントです。

JetPackのインストール

まずは、Jetson nanoにJetPack(OS+CUDAなど)をインストールして初期設定をしていきます。JetPackのインストールは、ネットに情報が沢山ありますので、ポイントだけ説明していきますね。

①OSイメージのダウンロード

PCのWebブラウザから、JetPackのサイト「https://developer.nvidia.com/embedded/JetPack」にアクセスし、Jetson nano用のイメージファイルをダウンロードします。この記事執筆時点の最新版は4.4.1でした。

②SDカードへの書き込み

ダウンロードしたイメージファイルをSDカードに書き込みます。SDカードへのイメージの書き込みは、balenaEtcherを使うのが便利ですね。

③Jetson nanoの起動

Jetson nanoにSDカードを挿し電源を接続します。OSが起動すると、初期ウィザードが表示されるので、言語・ロケール・パスワードの設定・ネットワークの設定などを行います。

④パッケージの最新化

起動したらパッケージのアップデートを行います。この辺りはさらっと書いていますが、時間かかりますね💦

$sudo apt-get update
 ・・・省略・・・
$sudo apt-get upgrade
 ・・・省略・・・

⑤JTOPのインストール

まずは、Jetson用のリソースモニタであるJTOPをインストールしていきます。JTOPのインストールにはpipが必要ですので、まずはpipをインストールして、次にJTOPをインストールします。

$sudo apt-get install python3-pip
 ・・・省略・・・

$sudo pip3 install jetson-stats
Collecting jetson-stats
  Downloading https://files.pythonhosted.org/packages/6c/1b/d926995bee8983cbd4176c5c3f103f8e5198292057c45d82198baccd1077/jetson-stats-3.0.2.tar.gz (85kB)
    100% |████████████████████████████████| 92kB 2.3MB/s 
Building wheels for collected packages: jetson-stats
  Running setup.py bdist_wheel for jetson-stats ... done
  Stored in directory: /root/.cache/pip/wheels/10/b8/2b/ef6fb5ee6a93798ea12e7fd2eb24f87526543f30428ab4a54c
Successfully built jetson-stats
Installing collected packages: jetson-stats
Successfully installed jetson-stats-3.0.2
$

⑥環境の確認

JTOPがインストールできたら、JTOPを実行して環境を確認しましょう。カーソルキーの右を押して「6.INFO」のタブを表示すると環境が確認できます。

$sudo jtop

私の環境は以下の通りでした。JetPackでインストールすると、CUDAやTensorRTが自動的にインストールされるので、楽ちんですね!

以上でJetPackのインストールは完了です。

DeepStreamのインストール

ここからは、Jetson nanoでGPUを使って高速にDeep Leaningを処理するライブラリであるDeepStreamをインストールしていきます。なぜかJetPackにはDeepStream入っていないんですよね😭

①DeepStreamSDKのダウンロード

nvidiaのDeepStreamSDKのサイト「https://developer.nvidia.com/deepstream-getting-started」にアクセスします。ここで、右側にDeepStreamに必要なCUDAやTensorRTのバージョンが記載されているので、確認します。

画面を下にスクロールしていくと、ソフトウェアライセンスへの承諾のチェックボックスがあるので、これにチェックするとダウンロードボタンが表示されます。この中からJetson用のdebパッケージをダウンロードします。

②必要パッケージのインストール

DeepStreamのインストールの前に、必要なパッケージをインストールします。私の環境では、全てインストール済でしたがが、念のため。

$sudo apt install libssl1.0.0 libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstrtspserver-1.0-0 libjansson4=2.11-1
・・・省略・・・・

③DeepStreamのインストール

それでは、DeepStreamをインストールしましょう。debパッケージなので、aptコマンドでインストールできます!

$sudo apt install ./deepstream-5.0_5.0.1-1_arm64.deb
・・・省略・・・
---------------------------------------------------------------------------------------
NOTE: sources and samples folders will be found in /opt/nvidia/deepstream/deepstream-5.0
---------------------------------------------------------------------------------------
libc-bin (2.27-3ubuntu1.3) のトリガを処理しています ...
#$

④インストールディレクトリの確認

「/opt/nvidia/deepstream/deepstream」にDeepStreamがインストールされいるはずなので確認しましょう。

$cd /opt/nvidia/deepstream/deepstream
$ls -l
total 488
-rw-r--r--  1 root root 280935  9月 29 05:42 LICENSE.txt
-rw-r--r--  1 root root 160892  9月 29 05:42 LicenseAgreement.pdf
-rw-r--r--  1 root root   9643  9月 29 05:42 README
drwxr-xr-x  2 root root   4096 11月 29 17:13 bin
drwxr-xr-x  3 root root   4096 11月 29 17:12 doc
-rwxr-xr-x  1 root root   5752  9月 29 05:42 install.sh
drwxr-xr-x  4 root root   4096 11月 29 17:13 lib
drwxr-xr-x  6 root root   4096 11月 29 17:13 samples
drwxr-xr-x 10 root root   4096 11月 29 17:12 sources
-rw-r--r--  1 root root   4622  9月 29 05:42 uninstall.sh
-rw-r--r--  1 root root     70  9月 29 05:42 version

⑤DeepStreamアプリの起動確認

それでは「deepstream-app」と入力して、DeepStreamのアプリを起動してみましょう。設定ファイルを指定していないためエラーになりますが、ちゃんとCUDAのライブラリを読み込んで起動できています。

$deepstream-app
2020-11-29 17:16:29.283360: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.2
** ERROR: <main:605>: Specify config file with -c option
Quitting
App run failed
$

これでDeepStreamのインストールは完了です。

Tensorflowのインストール

Google Colabで作成したTensorflowのモデルを変換するにはNVIDIA版のTensorflowが必要ですので、これをインストールしていきます。ポイントとしては、v2系ではなくv1.15をバージョンを指定してインストールする点です。

①必要パッケージのインストール1

まずは、Tensorflowに必要なパッケージをapt-getコマンドでインストールします。

$sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
・・・省略・・・

②必要パッケージのインストール2

次にPython系のパッケージについてもpip3コマンドでインストールします。ここで、以下のようにバージョンを指定してインストールする点に注意して下さい。numpyのビルドが必要なので20分ぐらいかかります💦

$sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 Cython h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11
・・・省略・・・

③必要パッケージのインストール3

公式ドキュメントには書いてありませんが、これを入れないとエラーになるので、更に必要なパッケージをインストールします。こちらもgrpciのビルドに10分ほどはかかるので気長に待ちましょう。

$sudo pip3 install tensorboard==1.15 tensorflow-estimator==1.15.1 opt-einsum astor google-pasta termcolor wrapt

・・・省略・・・

④Tensorflowのインストール

それでは、本命のTensorflowのインストールです。ここでは、NVIDIAのレポジトリを指定して「1.15.4+nv20.10」版のTensorflowをインストールします。v1.15系を指定することがポイントです。

$sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow==1.15.4+nv20.10
・・・・省略・・・
Installing collected packages: tensorflow
Successfully installed tensorflow-1.15.4+nv20.10
$

⑤Tensorflowのバージョン確認

それでは、ちゃんとインストールできたか確認しましょう。Python3コマンドを実行して、対話モードに入り「import tensorflow as tf; print(tf.__version__)」と入力しましょう。するとバージョンが一番下に表示されます‼️

$python3 
Python 3.6.9 (default, Oct  8 2020, 12:12:24) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf; print(tf.__version__)
2020-11-29 18:39:11.577017: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.2
WARNING:tensorflow:Deprecation warnings have been disabled. Set TF_ENABLE_DEPRECATION_WARNINGS=1 to re-enable them.
1.15.4
>>> 

以上でTensorflowのインストールは完了です。

V4L2のインストール

ここからはJetson nanoで、カメラを利用するためのV4L2のインストールを行なっていきます。

①V4L2のインストール

V4l2のインストールは簡単で、以下のようにapt-getコマンドでインストールできます。

$sudo apt-get install v4l-utils
・・・省略・・・
v4l-utils (1.14.2-1) を展開しています...
libv4l2rds0:arm64 (1.14.2-1) を設定しています ...
v4l-utils (1.14.2-1) を設定しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...
libc-bin (2.27-3ubuntu1.3) のトリガを処理しています ...
$

②NVIDIA V4L2 GStreamer pluginのインストール

次に、NVIDIA V4L2 GStreamer pluginについてもインストールしておきます。

$sudo apt-get install --reinstall nvidia-l4t-gstreamer
.../nvidia-l4t-gstreamer_32.4.4-20201016124427_arm64.deb を展開する準備をしています ...
nvidia-l4t-gstreamer (32.4.4-20201016124427) で (32.4.4-20201016124427 に) 上書き展開しています ...
nvidia-l4t-gstreamer (32.4.4-20201016124427) を設定しています ...
$

以上でカメラを利用するための準備も完了です!!

おわりに

今回は、Jetson nanoにJetpackを使ってOSやCUDAなどをインストールし、DeepStreamやTensorflowなどの必要ソフトウェアをインストールして環境構築を行いました。次回は、このJetson nanoを用いて、オリジナルモデルを使った、物体検出を行ってみます。

 第1回:IBM Cloud Annotationsを用いたアノテーション
 第2回:Google Colabを用いたモデルの学習
 第3回:Jetson nanoの環境構築
 第4回:DeepStreamアプリを使いこなす ←次の記事
 第5回:学習モデルの変換と物体検出

関連記事

記事が参考になったら、ブログランキングに協力(クリック)して貰えると嬉しいです。

昼間はIT企業に勤めてますが、プライベートでは「育児×家事×IoT」をテーマに家のスマートホーム化に取り組んでいます。Androidアプリも作っているので使って下さい。質問・コメントは、↓のコメント蘭でもFacebookメッセンジャーでもどちらでも大丈夫です。
E-mail:naka.kazz.d@gmail.com

naka-kazzをフォローする
スマートホーム開発者向け
スポンサーリンク
naka-kazzをフォローする
スマートホーム×DIY

コメント