NVDIA Jetson Nano: Getting Started

, , Leave a comment

Setelah OS berjalan pada Jetson Nano selanjutnya kita perlu menginstall Deep Learning framework dan library yaitu TensorFlow, Keras, NumPy, Jupyter, Matplotlib, dan Pillow, Jetson-Inference dan upgrade OpenCV 4.  Hal yang langsung terbesit dalam benak kita adalah waktu yang lama untuk menginstall semua itu. Ya, benar jadi perlu bersabar, siapkan kopi, setengah hari untuk instalasi hingga rampung. Ini adalah akhir dari proses instalasi yang kita harapkan.

 

 

Install Deep Learning Framework dan Library

Tahap awal, kita lakukan instalasi dependensi.

sudo apt install -y git \
cmake \
libatlas-base-dev \
gfortran \
python3-dev \
python3-pip \
libhdf5-serial-dev \
hdf5-tools

Setelah itu arahkan semua instalasi dengan Python 3 karena support Python 2 akan berakhir tahun 2020.

echo "export PATH=$PATH:/$HOME/.local/bin" >> .bashrc
echo "alias python=python3" >> .bashrc
echo "alias pip=pip3" >> .bashrc
source .bashrc

Dan setelah itu kita install pip untuk mendownload python modules

cd ~
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Setelah itu kita lanjutkan dengan melakukan instalasi. Khusus tensor flow, jangan menggunakan perintah yang lebih mudah seperti pip install tensorflowgpu karena NVDIA memiliki official release https://devtalk.nvidia.com/default/topic/1048776/official-tensorflow-for-jetson-nano-/

pip install -U pip setuptools --user
pip install --user numpy
pip install --user --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.3
pip install --user scipy
pip install --user keras
pip install --user jupyter
pip install --user pillow

Bersabarlah saat instalasi tersebut dilakukan, karena tanpa menggunakan swap memori, instalasi tersebut membutuhkan waktu sekitar 2 jam. Jika hendak mempersingkat waktu, tambahakan memori dengan membuat swap file. Saya cenderung tidak menggunakan swap memori karena akan memperpendek usia pakai micro sd card.

Jika kita menginstall matplotlib dengan perintah pip install –user matplotlib, maka akan ada error yang muncul karena kompatibilitas. Sebagai solusi kita perlu menginstall dari sourcenya.

sudo cp /etc/apt/sources.list /etc/apt/sources.list~
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update
cd ~/.local/lib/python3.6/site-packages
git clone -b v3.1.1 --depth 1 https://github.com/matplotlib/matplotlib.git
cd ~/.local/lib/python3.6/site-packages/matplotlib
sudo apt-get build-dep python3-matplotlib -y
sudo pip install . -v
sudo mv /etc/apt/sources.list~ /etc/apt/sources.list
sudo apt-get update

 

Install Jetson-Inference

Jetson-inference adalah library dari NVIDIA yang memudahkan kita untuk langsung berinteraksi dengan object recognition, detection dan segmentation yang langsung dapat digunakan dengan pre-trained network. Library ini memudahkan kita untuk membuat script dengan python maupun C dan juga melakukan transfer learning dengan pytorch. Berikut ini pre-trained network yang bisa didownload pada saat melakukan instalasi Jetson-Inference.

Image Recognition

Network CLI argument NetworkType enum
AlexNet alexnet ALEXNET
GoogleNet googlenet GOOGLENET
GoogleNet-12 googlenet-12 GOOGLENET_12
ResNet-18 resnet-18 RESNET_18
ResNet-50 resnet-50 RESNET_50
ResNet-101 resnet-101 RESNET_101
ResNet-152 resnet-152 RESNET_152
VGG-16 vgg-16 VGG-16
VGG-19 vgg-19 VGG-19
Inception-v4 inception-v4 INCEPTION_V4

Object Detection

Network CLI argument NetworkType enum Object classes
SSD-Mobilenet-v1 ssd-mobilenet-v1 SSD_MOBILENET_V1 91 (COCO classes)
SSD-Mobilenet-v2 ssd-mobilenet-v2 SSD_MOBILENET_V2 91 (COCO classes)
SSD-Inception-v2 ssd-inception-v2 SSD_INCEPTION_V2 91 (COCO classes)
DetectNet-COCO-Dog coco-dog COCO_DOG dogs
DetectNet-COCO-Bottle coco-bottle COCO_BOTTLE bottles
DetectNet-COCO-Chair coco-chair COCO_CHAIR chairs
DetectNet-COCO-Airplane coco-airplane COCO_AIRPLANE airplanes
ped-100 pednet PEDNET pedestrians
multiped-500 multiped PEDNET_MULTI pedestrians, luggage
facenet-120 facenet FACENET faces

Semantic Segmentation

Dataset Resolution CLI Argument Accuracy Jetson Nano Jetson Xavier
Cityscapes 512×256 fcn-resnet18-cityscapes-512x256 83.3% 48 FPS 480 FPS
Cityscapes 1024×512 fcn-resnet18-cityscapes-1024x512 87.3% 12 FPS 175 FPS
Cityscapes 2048×1024 fcn-resnet18-cityscapes-2048x1024 89.6% 3 FPS 47 FPS
DeepScene 576×320 fcn-resnet18-deepscene-576x320 96.4% 26 FPS 360 FPS
DeepScene 864×480 fcn-resnet18-deepscene-864x480 96.9% 14 FPS 190 FPS
Multi-Human 512×320 fcn-resnet18-mhp-512x320 86.5% 34 FPS 370 FPS
Multi-Human 640×360 fcn-resnet18-mhp-512x320 87.1% 23 FPS 325 FPS
Pascal VOC 320×320 fcn-resnet18-voc-320x320 85.9% 45 FPS 508 FPS
Pascal VOC 512×320 fcn-resnet18-voc-512x320 88.5% 34 FPS 375 FPS
SUN RGB-D 512×400 fcn-resnet18-sun-512x400 64.3% 28 FPS 340 FPS
SUN RGB-D 640×512 fcn-resnet18-sun-640x512 65.1% 17 FPS 224 FPS

 

Untuk menginstall Jetson-Inference pertama kita perlu mendownload dari repository

sudo apt-get install git cmake
cd ~
git clone https://github.com/dusty-nv/jetson-inference
cd jetson-inference
git submodule update --init

Dan selanjutnya adalah compile dan install

cd ~/jetson-inference
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

Selama proses instalasi kita juga bisa memilih network mana yang akan didownload. Pastikan masih ada free space dari micro sd card sebelum ingin mendownload semua network yang besarnya mencapai 2.2 GB. Kita juga bisa skip download model pada waktu instalasi dan dapat mendownloadnya di lain waktu.

cd ~/jetson-inference/build
./download-model

Meskipun dalam proses instalasi Jetson-Inference kita juga disuguhi pilihan untuk menginstall pytorch, namun sebaiknya skip saja terlebih dahulu dan install terpisah karena membutuhkan perintah sudo. PyTorch adalah open source machine learning library berdasarkan on the Torch library, yang digunakan untuk aplikasi computer vision dan natural language processing. PyTorch dikembangkan oleh Facebook’s artificial intelligence research group. PyTorch adalah numpy tetapi yang menggunakan GPU power.

Setelah instalasi Jetson-Inference selesai, kita bisa melanjutkan instalasi PyTorch

cd ~/jetson-inference/build
sudo ./install-pytorch.sh

 

Install OpenCV 4

Meskipun JetPack sudah menyertakan OpenCV, sayangnya versi 3.3 tersebut belum dioptimalkan untuk GPU. Sehingga kita perlu menginstall OpenCV 4 yang sudah dioptimalkan untuk CUDA cores dari Jetson Nano dan tidak ada cara yang lebih cepat untuk itu selain melakukan kompilasi dari source. Namun demikian ada cara yang sedikit lebih mudah karena ada batch file yang sudah dibuat dan kita tinggal mengeksekusinya saja.

wget https://raw.githubusercontent.com/AastaNV/JEP/master/script/install_opencv4.0.0_Nano.sh
bash install_opencv4.0.0_Nano.sh $HOME/.local

Setelah sekitar 2 jam compiling OpenCV rampung dan bisa kita cek apakah sudah terinstall

~$ python -c "import cv2; print(cv2.__version__)" 
4.0.0

Dan dengan Jetson stats (sudo -H pip install jetson-stats) kita bisa memastikan apakah versi OpenCV 4 sudah dioptimasi oleh CUDA.

Perlu dicatat Caffe hanya bisa berjalan dengan OpenCV 3.6 dan tidak (lebih tepatnya belum) dengan OpenCV 4.0. Jadi proses instalasi Caffe akan terhenti saat melakukan compiling dengan fungsi-fungsi OpenCV seperti imread.

Sekian dari sharing yang cukup panjang untuk getting started dengan Jetson Nano Developer Kit. Saat semua sudah terinstall, sekarang kita bisa leluasa untuk mempelajari AI. Saya sarankan untuk mengikuti tutorial HELLO AI WORLD https://github.com/dusty-nv/jetson-inference/blob/master/docs/imagenet-console-2.md

dan DIGITS (https://github.com/dusty-nv/jetson-inference/blob/master/docs/digits-workflow.md). Semoga bermanfaat dan mohon like, subscribe dan share untuk mendukung blog ini. Terima kasih.

 

Referensi:

“https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit”

“https://thenewstack.io/tutorial-configure-nvidia-jetson-nano-as-an-ai-testbed/”

“https://www.pyimagesearch.com/2019/05/06/getting-started-with-the-nvidia-jetson-nano/”

“https://devtalk.nvidia.com/default/topic/1052317/jetson-nano/jetson-nano-how-can-install-matplotlib-/”

“https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html”

Facebook Comments
 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.