セットアップ環境の準備
前回、Jetpackをインストールしたが、Demoアプリは動かせるものの、自分の開発環境として使用するには環境が古い。具体的には、Pythonが3.6だったり、dlibのインストールでバージョンが一致しなかったり。なんとか動作環境を作ったつもりでも、face_recognitionを使用してみると、CUDAを認識しなかったりして・・・。
この調べにOSを入れ直すこと6回目。3日ぐらいかかってます…。
まだ迷走しており完成できてませんが、2022年も開けるので一回公開しようと思います…(´;ω;`)
よいお年を〜
- Python3.6 -> Python3.9
- OpenCV 4.6
- CUDA Toolkit
- cuDNN
- dlib
- face_recognition
OS・インストールアプリを最新化
最初に、以下のコマンドを実行して、OS環境を最新化します。
# ローカルパッケージインデックスの更新 sudo apt update # ポイントリリースの適用(アップデート) sudo apt upgrade -y
スワップ領域を作成する
Jetson Nanoは基本的にRAMが少ないです。そのため、後述のソフトのビルド・インストール中にOSがハングアップしたり、応答しなくなることがよくあるそうです。この事象の回避のため、スワップ領域を作成しておきます(これにより、SDカード容量中、6GB消費します)
# SWAP領域用のファイルを作成 sudo /bin/dd if=/dev/zero of=~/swap.1 bs=1M count=6144 sudo chmod 600 ~/swap.1 # SWAP領域作成 sudo mkswap ~/swap.1 # SWAP領域有効化 sudo swapon ~/swap.1
作業用アプリをインストール
作業に必要となる最低限のアプリをインストールします。
# テキストエディタnanoをセットアップ sudo apt-get install nano # curlをセットアップ sudo apt-get install curl
xrdpをセットアップ(リモートデスクトップ接続環境を構築)
Jetsonは、GPU性能以外は標準のPCよりスペックが低いので、普段は直接操作するよりも、WindowsやMacからリモートで操作した方が使い勝手がよいでしょう。
こちらの手順に従い、xrdpサービスをセットアップして、リモートデスクトップで接続できるようにします。
なお、リモートデスクトップから接続できない(パスワード入力後、すぐ切れてしまう)場合、Jetson Nano側を一度「Log Out」してから接続してみてください。
GPU AI構築を構築する。
OpenCV > Python > jetson-stats > CUDA > cuDNN > dlib > face_recognition の順で、深層学習の環境をインストールしていきます。
CUDA Toolkitをインストール
以下のサイトにアクセスし、環境に一致するCUDAを選択します。
Ubuntu18.04では、11.6.2が最後のようで、11.7からはUbuntu20.04にしか対応していないようです。アクセス先で、以下の「濃い緑」の選択をしていくと、インストールのためのコマンドが表示されます。
↓
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/sbsa/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda-repo-ubuntu1804-11-6-local_11.6.2-510.47.03-1_arm64.deb sudo dpkg -i cuda-repo-ubuntu1804-11-6-local_11.6.2-510.47.03-1_arm64.deb sudo apt-key add /var/cuda-repo-ubuntu1804-11-6-local/7fa2af80.pub sudo apt-get update sudo apt-get -y install cuda
OpenCVをセットアップ(併せて、Python3.8も入れる)
https://i7y.org/opencv-build-on-jetson-nano/
jetson-statsをセットアップ
sudo -H pip install jetson-stats
sudo jtop
Python3.8をデフォルトに設定
初期設定では、Pythonは2.7がデフォルトとなっており、Python3も3.6がインストールされている。alternvativesを使用して、Pythonのデフォルト環境を3.8に設定しておきます。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 3
python、pipでバージョンを確認して、3.8となっていればOK。
# pythonのバージョン確認 python --version >Python 3.8.0 # pipのバージョン確認 pip --version >pip 22.3.1 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)
dlibをインストール
以下のサイトの手順を参考に。
なお、cudaとcuDNNはあらかじめJetpackに入っているので入れる必要はない。これらに対してパスを通す必要がある。
sudo nano ~/.bashrc
以下の内容を、上の.bashrc
の最後に追記する。
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export CUDA_HOME=/usr/local/cuda
.bashrc
の内容を即時反映させる。
source ~/.bashrc
dlibセットアップ後、pythonから以下の内容をインポート出力してみて、Trueが帰ればセットアップ終了。
import dlib dlib.DLIB_USE_CUDA > True
Python3 設定
python3を実行する前に環境変数OPENBLAS_CORETYPEにARMV8だよって設定をしとけばよい。
sudo nano ~/.bashrc
以下の内容を、上の.bashrc
の最後に追記する。
export OPENBLAS_CORETYPE=ARMV8
.bashrc
の内容を即時反映させる。
source ~/.bashrc
webdriverをインストール
sudo apt-get install chromium-chromedriver
VsCode(Microsoft VisualStudio Code)をセットアップ
VsCodeのダウンロードページへアクセスして、以下の赤枠のリンクをクリックします。
ダウンロードしたdebファイルをクリックします。 認証情報を入力するとインストールが行われ、VsCodeがセットアップされます。