ailia Tech BLOG

ailia SDKをJetsonNanoやChromeBookで動かす

ailia SDKをJetsonNanoやChromeBookで動作させる解説です。ailia SDKを利用することでディープラーニングの推論をクロスプラットフォームで行うことができます。ailia SDKについて詳しくはこちらをご覧ください。

JetsonNano

ailia SDK 1.2.3以降の場合

下記のチュートリアルにJetsonを追加しましたので、こちらを参照してください。

ailia SDK チュートリアル(Python)ailia SDKをPythonで使用するチュートリアルです。Pythonを使用することで様々なモデルの動作を簡単に試すことができます。medium.com

ailia SDK 1.2.1の場合

JetsonNanoではailia SDKのJetsonバイナリを実行することができます。JetsonNanoでailia SDKを使用することで、ONNXから直接、GPU推論することができ、ailia-modelsに公開されている多様なモデルを使用することができます。

Jetsonバイナリはailia SDK 1.2.1以降のlibrary/experimental/jetsonに含まれています。下記のチュートリアルはUbuntu 18.04 LTSに向けたものです。

ailia SDKをダウンロードします。

python/ailiaを/usr/local/lib/python3.6/dist-packagesに、library/experimental/jetson/libailia.soとlibrary/experimental/jetson/libailia_pose_estimate.soとlibrary/experimental/jetson/libailia_cuda.soを/usr/local/lib/python3.6/dist-packages/ailiaにコピーします。

cd ailia_sdk_1_21
sudo cp -r python/ailia /usr/local/lib/python3.6/dist-packages
sudo cp library/experimental/jetson/libailia.so /usr/local/lib/python3.6/dist-packages/ailia
sudo cp library/experimental/jetson/libailia_pose_estimate.so /usr/local/lib/python3.6/dist-packages/ailia
sudo cp library/experimental/jetson/libailia_cuda.so /usr/local/lib/python3.6/dist-packages/ailia

dist-packagesが存在しない場合は、下記のコマンドでパスを確認します。

python3 -c “import site; print (site.getsitepackages())”

ailiaフォルダに実行権限を付与します。

sudo chmod 757 /usr/local/lib/python3.6/dist-packages/ailia

opencv-pythonはプリインストールされています。

install OpenCV for python3 in Jetson Nano - NVIDIA Developer ForumsEdit descriptiondevtalk.nvidia.com

numpyはapt経由でインストールします。

sudo apt install python3-numpy

Problem installing numpy for python3 on fresh JetPack install - NVIDIA Developer ForumsEdit descriptiondevtalk.nvidia.com

samples/models/download_model.shを実行してモデルをダウンロードします。ダウンロードに必要なcurlをインストールします。

sudo apt install curl

モデルをダウンロードします。

cd samples/models
chmod +x download_model.sh
./download_model.sh

ailia SDKのサンプルを実行します。

cd ../../samples/python
python3 ailia_classifier.py

推論結果が出力されます。

class_count=3
+ idx=0
category=409[ analog clock ]
prob=0.7738379836082458
+ idx=1
category=892[ wall clock ]
prob=0.1796753704547882
+ idx=2
category=826[ stopwatch, stop watch ]
prob=0.03009628877043724

この状態では、推論はCPUで実行されています。cuDNNを使用して高速なGPU推論を利用するには、samples/pythonフォルダにlibrary/experimental/jetson/libailia_cuda.soをコピーします。

cp library/experimental/jetson/libailia_cuda.so samples/python

推論環境を列挙します。

python3 ailia_environment.py

cuDNNが使用できる場合、下記が列挙されます。

env[1]=Environment(id=1, type=’GPU’, name=’cuDNN-NVIDIA Tegra X1 (5.3)’, backend=’CUDA’, props=’NORMAL’)

この状態で、ailia_classifier.pyを実行すると、cuDNNを使用した高速なGPU推論が可能です。

ChromeBook

ChromeBook(Intel CPU)ではailia SDKのLinuxバイナリを実行することができます。ChromeBookでailia SDKを使用することで、教育用途でもディープラーニングを使用することができます。

まず、公式の手順に従って、Linuxモードを有効にします。

Chromebook で Linux(ベータ版)をセットアップするLinux(ベータ版)は、Chromebook を使用してソフトウェアを開発できる機能です。Linux のコマンドライン ツール、コードエディタ、IDE を Chromebook…support.google.com

ailia SDKをダウンロードします。ダウンロード後、Linuxファイルに内容をコピーします。

python/ailiaを/usr/local/lib/python3.5/dist-packagesに、library/linux/libailia.soとlibrary/linux/libailia_pose_estimate.soを/usr/local/lib/python3.5/dist-packages/ailiaにコピーします。

cd ailia_sdk_1_21
sudo cp -r python/ailia /usr/local/lib/python3.5/dist-packages
sudo cp library/linux/libailia.so /usr/local/lib/python3.5/dist-packages/ailia
sudo cp library/linux/libailia_pose_estimate.so /usr/local/lib/python3.5/dist-packages/ailia

ailiaフォルダに実行権限を付与します。

sudo chmod 755 /usr/local/lib/python3.5/dist-packages/ailia

ChromeBookはPython3.5がデフォルトでインストールされていますが、pipはインストールされていませんので、下記のコマンドでインストールします。

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

必要な依存関係をインストールします。

pip3 install opencv-python numpy

samples/models/download_model.shを実行してモデルをダウンロードします。

cd samples/models
chmod +x download_model.sh
./download_model.sh

ailia SDKのサンプルを実行します。

cd ../../samples/python
python3 ailia_classifier.py

推論結果が出力されます。

class_count=3
+ idx=0
category=409[ analog clock ]
prob=0.7738379836082458
+ idx=1
category=892[ wall clock ]
prob=0.1796753704547882
+ idx=2
category=826[ stopwatch, stop watch ]
prob=0.03009628877043724

現状、ChromeBookでは、CPUモードの推論のみ実行可能です。将来的にChromeOSがVulkanやOpenCLに対応したタイミングで、GPU対応を計画しています。


アイリア株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。アイリア株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。