AI Model Deployment on Things (AIoT)

Object Detection with IBM PowerAI Vision on IBM AC922 On Edge Device: NVidia Jetson Nano/TX2/AGX Xavier

Cahyati S. Sangaji — PT. Sinergi Wahana Gemilang with Andi Sama, and Andrew Widjaja

Dengan semakin berkembangnya teknologi di bidang Artificial Intelligence (AI), perusahaan dituntut untuk dapat beradaptasi dan berinovasi sejalan dengan perkembangan tersebut. AI, dalam hal ini termasuk Machine Learning (ML) dan Deep Learning (DL) yang menjadi sub-field-nya.

Dalam melakukan penerapan di bidang AI — terutama dalam melakukan AI-modeling (belajar dari data, dan membuat model untuk melakukan suatu prediksi), memang akan lebih baik jika menggunakan platform komputasi (server) yang berbasis GPU (Graphic Processing Unit), baik secara on-premise maupun cloud. Salah satu platform komputasi untuk melakukan AI-modeling di on-premise adalah IBM POWER System AC922 (Accelerated Computing berbasiskan IBM POWER 9) yang memang khusus dirancang untuk AI (AC922 juga bisa sebagai platform untuk melakukan deployment, atau istilahnya — sebagai inference engine).

Namun jika ada kebutuhan untuk ratusan atau bahkan ribuan site yang terdistribusi, penerapan inference engine (yang diterapkan dalam suatu edge device yang khusus, dengan spesifikasi yang “cukup” sesuai kebutuhan, untuk menjalankan AI-model) merupakan salah satu cara untuk dapat mengefisienkan biaya, di mana nantinya bisa saja berbagai edge device tersebut terhubung ke suatu server terpusat.

Artikel kali ini akan membahas tentang AI-model deployment pada edge device (artinya, setelah dilakukan modeling (training) untuk tujuan memprediksi sesuatu, AI-model yang sudah jadi, diterapkan (deployment-nya) di luar dari platform komputasi di mana sebelumnya training dilakukan). Inilah hal yang kita kenal juga sebagai AIoT (AI on Things) atau juga Embedded IoT device with AI (Edge Computing dengan AI).

Ilustrasi-1 : Edge Computing (a) NVidia Jetson Nano (b) NVidia Jetson TX2 © NVidia Jetson AGX Xavier.

Edge device dengan GPU mengkombinasikan Internet of Things (IoT) dan Artificial Intelligence. Pembahasan pada artikel ini lebih ditekankan kepada AI-model yang telah di-train dengan IBM PowerAI Vision (PAIV) software pada IBM POWER AC922 hardware, dan di export ke luar server dan dijalankan di eksternal Inference Engine device, yang dilengkapi dengan GPU. Proses pembuatan model sendiri telah di bahas pada SWG Insight edisi Q3 2019 (Andi Sama et al., 2019b), yang dimuat dalam artikel tentang “Image Classification & Object Detection with IBM PowerAI Vision on IBM POWER AC922”.

Contoh inference engine device berbasis GPU yang mendukung untuk menjalankan trained-AI-model (AI-model) adalah platform NVidia Jetson. Beberapa device yang pernah penulis uji adalah Jetson Nano, Jetson TX2 dan Jetson AGX Xavier (ilustrasi-1). Spesifikasi dari ketiga device tersebut dapat dibedakan dari jumlah core GPU-nya, selain perbedaan lain dengan performa yang semakin meningkat, mulai dari Jetson Nano ke Jetson AGX Xavier. Rincian perbandingan antara Jetson Nano, Jetson TX2 dan Jetson AGX Xavier dapat dilihat pada tabel-1.

Dalam artikel ini penulis membagikan informasi tentang pengalaman menjalankan AI-model di perangkat NVidia Jetson dari model yang telah di training pada PAIV. Sebagai catatan, untuk semua model dapat melakukan tes hasil model dalam bentuk gambar. Sedangkan model yang ingin dijalankan menggunakan kamera yang artinya hasil akan terlihat secara realtime.

Tabel-1 : Perbandingn NVidia Jetson Nano, NVidia Jetson TX2 dan NVidia jetson AGX Xavier.

Karena keterbatasan kapasitas GPU dan memory, beberapa model hanya mampu dijalankan di Jetson TX2 atau Jetson AGX Xavier. Artikel ini menjelaskan tentang informasi AI-model yang di uji dengan gambar (test images), sehingga dapat dijalankan di semua jenis device. Dalam hal ini, kita menggunakan AI-model berbasis FRCNN dan Detectron. AI-model yang di gunakan adalah yang telah di-export dari PAIV yang merupakan contoh AI-model untuk medeteksi Object (berbasiskan FRCNN) dan mendeteksi jumlah object pada image nasi rames (object counting) untuk (berbasiskan detectron, ditunjukkan dari hasil counter). Model-model tersebut dijalankan menggunakan custom script python3 dan library dari python3.

AI-Model berbasiskan FR-CNN Neural Network Architecture

File yang di-export dari PAIV berupa file dengan format .zip yag berisikan contoh gambar dari dataset model yang telah di training, file json (format directory pada PAIV) serta file model FRCNN dengan format .tar.gz.

Ilustrasi-2 : File extract model FRCNN dari Power AI Vision.

Kemudian file yang di extract dari file dengan format .tar.gz berisikan file (berbasis deep learning framework: caffe), atribut, classname (jenis nama label) dan file prototxt. File-file yang di gunakan pada custom script pyhon3 adalah file caffe model, classname (jenis nama label) dan file prototxt.

Ilustrasi-3 : File extract dari file model FRCNN (.tar.gz).

Sebelum melakukan tes model dari PAIV, kia perlu melakukan instalasi library yang dibutuhkan. Untuk menjalankan FRCNN model pastikan seluruh library telah ter-install:

Setelah itu dapat dilakukan pengujian model yang dijalankan pada NVidia Jetson device. Ilustrasi-4 menunjukkan cara melakukan uji model dengan menggunakan costum script dengan nama file “demo_capture.py”; sedangkan ilustrasi-5 menunjukkan costum script yang digunakan.

Ilustrasi-4 : Pengujian model FRCNN pada PowerAI Vision
Ilustrasi-5 : Custom script python3 FRCNN Model.

Pengujian yang dilakukan untuk model berbasiskan FRCNN adalah mendeteksi Object dengan beberapa jenis label yang sebelumnya di-training pada PAIV. Ilustrasi-6 dan ilustrasi-7 merupakan beberapa contoh pengujian model FRCNN yang dijalankan pada edge device NVidia Jetson.

Ilustrasi-6 : Hasil 1 pengujian model berbasis FRCNN pada IBM PowerAI Vision
Ilustrasi-7 : Hasil 2 pengujian model berbasis FRCNN pada IBM PowerAI Vision.

AI-Model berbasiskan Detectron Neural Network Architecture

Model yang di export dari PAIV berupa file dengan format .zip yag berisikan contoh gambar dari dataset model yang di training, file json yang berisikan format directory pada Power AI Vision, dataset dari image classification dan file AI-model berbasiskan detectron dengan format .tar.gz. File-file yang di extract dari .tar.gz file berisikan file AI-model berbasis detectron (format .pkl), classname (jenis nama label) dan file yaml. File-file yang di gunakan pada custom script python3 adalah file model berbasis detectron dan file yaml; sedangkan untuk classname akan langsung dijabarkan pada costum script kerena contoh deteksi hanya beberapa jenis objek.

Ilustrasi-8 : File extract model Detectron dari Power AI Vision
Ilustrasi-9 : File extract dari file model Detectron (.tar.gz).

Sebelum melakukan tes model dari PAIV, kita perlu melakukan instalasi semua library yang diperlukan:

Dalam hal ini, digunakan contoh python script untuk AI-model berbasiskan detectron https://github.com/facebookresearch/Detectron.git).

Setelah contoh python script di clone, masuk ke directory detectron dan pastikan library yang di butuhkan telah ter-install. Library python yang perlu di install sebelumnya adalah numpy, pyyaml, matplotlib, opencv-python >=3.0, setuptools, Cython, mock dan scipy, kemudian build python modul (cd lib && make && cd ..). Setelah semua proses instalasi dan build dilakukan maka pengujian AI-model dapat dijalankan pada Jetson NVidia device. Ilustrasi-10 adalah cara melakukan uji model yang menggunakan costum script dengan nama file “infer_simple.py” dan ilustrasi-11 merupakan costum script yang digunakan.

Ilustrasi-9 : File extract dari file model Detectron (.tar.gz).
Ilustrasi-11 : Custom script python3 Detectron model.

Pengujian untuk AI-model berbasis detectron adalah mendeteksi jumlah object pada sebuah gambar dengan objek yang sebelumnya di-training pada PAIV. Hasil proses dari pengujian (ilustrasi-12) menampilkan hasil perhitungan jumlah object yang terdeteksi di gambar nasi rames; sedangkan contoh hasil pengujian AI-model berbasis detectron (ilustrasi-13) yang dijalankan pada device NVidia Jetson.

Ilustrasi-12 : Hasil pengujian model detectron pada PowerAI Vision untuk mendeteksi jumlah object pada gambar.
Ilustrasi-13 : Hasil pengujian model Detectron pada PowerAI Vision.

Bagaimana Selanjutnya ?

Keluarga NVidia Jetson merupakan perangkat yang mendukung kombinasi antara teknologi Internet of Things dan Artificial Intelligence. Perangkat ini juga dapat saling berkomunikasi langsung dengan server. Contohnya adalah proses face recognition yang di gunakan untuk akses pintu.

Device tersebut dapat terhubung dengan perangkat IoT (sensor atau aktuator) misalnya, yang menjalankan proses AI serta terhubung langsung ke database server secara bersamaan. Kedepannya, pasar untuk penerapan teknologi di bidang Internet of Things dan Artificial Intelligence dapat berjalan secara beriringan.

(Cahyati Supriyati Sangaji cahyati.sangaji@swgemilang.com)

Solution Specialist, Internet of Things & Artificial Intelligence — Sinergi Wahana Gemilang

References:

Andi Sama, 2019a, “AI Model Inferencing, Practical deployment approaches & considerations”, SWG Insight, Edisi Q4 2019, page 3–9, https://m.facebook.com/132977540118841/posts/2464496593633579/.

Andi Sama et al., 2019a, “Think like a Data Scientist”, https://medium.com/@andisama/think-like-a-data-scientist-d5d13c4d82fe.

Andi Sama et al., 2019b, “Image Classification & Object Detection”, https://medium.com/@andisama/image-classification-object-detection-6ed94c90ef6b.

Cyprien Noel, 2019, “BVLC/caffe”, http://github.com/BVLC/caffe.git.

Fastcompression.com, “Benchmarks comparison for Jetson Nano, TX1, TX2 and AGX Xavier”, https://www.fastcompression.com/blog/jetson-benchmark-comparison.htm.

IBM, 2019, “Moving AI from the Data Center to Edge or Fog Computing”, https://developer.ibm.com /linuxonpower/2019/01/17/moving-ai-from-the-data-center-to-edge-or-fog-computing/.

Jiun-Kuei Jung, 2018, “Faster R-CNN on Jetson TX2”, https://jkjung-avt.github.io/faster-rcnn/.

Nick Bourdakos, 2018, “How to use Detectron — Facebook’s Free Platform for Object Detectionhttps://hackernoon.com/how-to-use-detectron-facebooks-free-platform-for-object-detection-9d41e170bbcb.

NVIDIA, 2019, “TensorFlow For Jetson Platform”, https://docs.nvidia.com/deeplearning/frameworks /install-tf-jetson-platform/index.html.

Ross Girshick, 2018, “rbgirshick/py-faster-rcnn”, https://github.com/rbgirshick/py-faster-rcnn

Cocodataset, 2017, “Common Object in Context”, http://cocodataset.org/#home.