An Illustrated Use-Case for Object Detection on IBM Maximo Visual Inspection (Product Update)

cahyati sangaji (cahya)
9 min readJan 21, 2022

Cahyati S. Sangaji, Solution Specialist IoT and AI — PT. Sinergi Wahana Gemilang with Andi Sama,CIO — PT. Sinergi Wahana Gemilang

Manusia memiliki beberapa indra yang dapat merasakan hal-hal di sekitarnya seperti indra penglihatan yaitu mata, indra pendengar yaitu telinga, indra penciuman yaitu hidung, dan indra perasa yaitu kulit. Kemampuan-kemampuan tersebut memang dimiliki manusia dan hanya digunakan secara tidak sadar. Berbeda dengan mesin tidak bisa memiliki hal serupa seperti yang bisa dilakukan manusia normal. Bertahun-tahun penelitian telah dikhususkan untuk ini, dan banyak perkembangan baru yang maju telah muncul hanya dalam beberapa tahun terakhir. Penemuan algoritma baru, metode optimasi baru dan perangkat keras baru semakin cepat di bidang studi ini dengan banyak aplikasi praktis yang potensial. Seperti yang telah di pelajari dari perkembangan beberapa tahun terakhir agar mesin dapat melakukan fungsi seperti indra manusia, yaitu dengan mempelajari data dan contoh yang digambarkan pada artikel ini adalah seperti indra penglihatan yaitu mata.

Gambaran sederhananya sewaktu kecil kita berkali-kali bertanya apa benda yang kita lihat, misalnya benda tersebut adalah meja. Begitu juga dengan mesin kita harus memberikan pembelajaran dari data image atau video untuk benda meja tersebut. Kemudian data yang dibutuhkan agar mendapatkan hasil yang benar adalah ribuan data per-class object.

Pada artikel ini akan dibahas bagaimana proses prepare data, training sampai deploy model menggunakan IBM Maximo Visual Inspection yang merupakan salah satu aplikasi praktis untuk keperluan teknologi terkait artificial intelligence. Aplikasi ini membatu para data scientist untuk mempercepat proses pembuatan model, kemudian berikut pembahasan terkait object detection model.

Object Detection Model

Banyak pendekatan dalam melakukan klasifikasi gambar telah ada selama 8+ tahun sejak tantangan ImageNet pertama dengan Alexnet pada tahun 2012, menggali lebih banyak untuk mengenali objek dalam gambar (atau video stream) baru saja muncul dalam beberapa tahun terakhir. Arsitektur Neural Network untuk pengenalan objek yang telah tersedia antara lain RCNN (2014), FRCNN (2015), SSD (2016), Yolo — You Only Look Once (versi 1–5, YoloV1–2016, YoloV2–2017, YoloV3–2018, YoloV4–2020, YoloV5–2020), RetinaNet (2017), dan Detektor (2018).

Kemudian pada IBM Maximo Visual Inspection menyediakan beberapa opsi optimize model untuk membuat model object detection yaitu FRCNN, Tiny YOLO v2, YOLO v3, Detectron, SSD dan custom model yang dapat menggunakan Tensorflow atau Pytorch sebagai pilihan opsi optimize model yang ingin digunakan. Pada artikel ini demo dilakukan menggunakan Detectron dan menggunakan segmentation.

Object Detection Use-Case

Seperti dijelaskan sebelumnya demo ini akan fokus tentang contoh use-case object detection pada IBM Maximo Visual Inspection (Nama sebelumnya Visual Insight). Object yang dilakukan pada demo adalah membedakan kendaraan antara Car, Truck dan Bus dengan jumlah image menyesuaikan jumlah hasil label object per-class object.

IBM Maximo Visual Inspection

IBM Maximo Visual Inspection adalah salah satu aplikasi yang digunakan untuk keperluan teknologi terkait artificial intelligence. Mulai bulan September 2021 IBM Maximo Visual Inspection merupakan bagian dari package aplikasi dari platform IBM Maximo Application Suite 8.3 yang berjalan di atas ReadHat Openshift. Kemudian dapat digunakan pada mesin yang menjalankan RedHat Openshift serta mengakses GPU, yang artinya masih belum bisa berjalan di atas mesin power seperti versi IBM Maximo Visual Inspection sebelumnya. Kemudian untuk License yang awalnya product unit perhitungannya berdasarkan Virtual Server menjadi AppPoint.

Source : https://i1.wp.com/www.mavenasset.com/wp-content/uploads/2021/06/MAS_4.png?resize=936%2C392&ssl=1

Namun kedepan IBM Maximo Visual Inspection yang merupakan bagian dari IBM Maximo Application Suite akan berjalan di atas mesin IBM Power. Masuk kepembahasan demo, pada ilustrasi-1 merupakan tampilan Login dari IBM Maximo Visual Inspection.

Illustration-1: Login page

Login pada IBM Maximo Visual Inspection diakses dengan domain https://<ip server>/visual-inspection/ dan menggunakan username “admin” kemudian untuk password menggunakan “passw0rd” yang merupakan setting awal default dari login IBM Maximo Visual Inspection. Setelah proses login berhasil kita akan masuk pada halaman home seperti pada ilustrasi-2. Dari halaman home digambarkan bagaimana proses yang dapat dilakukan pada IBM Maximo Visual Inspection yaitu Create Dataset, Prepare Data, Train Model dan Deploy Model.

Illustration-2:Home page

Create Dataset

Langkah awal yang harus dilakukan adalah create dataset, data yang digunakan merupakan 80% dari seluruh data yang telah di kumpulkan. Kemudian 20% data sisanya menjadi data test dari model yang telah di buat nantinya.

Illustration-3:Create Dataset

Dalam proses pembuatan model artificial intelligence, biasanya salah satu tahap yang membutuhkan waktu paling lama adalah mengumpulkan data selain proses labeling. Setelah proses create dataset, lakukan proses import data dari data yang telah disiapkan sebelumnya atau dengan cara drag and drop file image atau video yang telah disiapkan.

Illustration-4: Import data

Tunggu proses import selesai dan pastikan hasil import sudah berhasil. Seperti pada demo digambarkan pada ilustrasi-4 digunakan sebanyak 273 data image yang di dalam satu image terdapat satu atau beberapa object.

Prepare Data

Masuk ke langkah selanjutnya yaitu rangkaian proses untuk prepare data, diawali dengan menambahkan nama label yang akan kita buat. Sesuai dengan penjelasan sebelumnya kita perlu menambahkan nama label Car, Truck dan Bus seperti pada ilustrasi-5.

Illustration-5: Add name label

Kemudian lakukan proses labeling pada data yang telah di-import sebelumnya. Proses labeling dapat dilakukan dengan dua cara, yaitu menggunakan cara polygon seperti pada ilustrasi-6 dan menggunakan box seperti pada ilustrasi-7

Illustration-6: Labeling with polygon
Illustration-7: Labeling with box

Lakukan labeling hingga seluruh data yang telah di-import memiliki label object. Dari 273 image sebelumnya di-import, didapatkan sebanyak 1516 object label kategori “Car”, 1512 object label kategori “Truck” dan 1514 object label kategori “Bus”. Sebagai catatan pastikan hasil object label antar kategori atau class itu cukup seimbang (balance), selisih antar kategori diusahakan paling maksimal sekitar 10%, jadi makin sedikit selisih antar kategori akan lebih baik.

Illustration-8: Labeling (complete)

Setelah proses labeling selesai dilakukan, lanjutkan pada proses augment data. proses ini dilakukan karena data real pada demo tidak terlalu banyak, karena untuk dataset untuk training AI sebaiknya terdiri dari ribuan data real. Namun IBM Maximo Visual Inspection meyediakan fasilitas untuk kita dapat memperkaya data dari data terbatas yang kita miliki. Proses ini memiliki beberapa opsi untuk manipulasi gambar secara otomatis sekaligus memperkaya data dengan hanya memilih opsi untuk augment data yang kita inginkan. Opsi yang dapat di select adalah blur, color, sharpen, rotate, crop, noise, vertical flip dan horizontal flip. Opsi ini menyesuaikan kategori untuk menentukan object label, misalnya kategori label berdasarkan warna maka opsi warna tidak perlu dipilih pada proses augment data tersebut.

Illustration-9: Augment data (option)

Kemudian klik “continue” jika kita sudah menentukan opsi augment data yang perlu kita gunakan untuk memperkaya dataset. Lalu create dataset untuk augment data.

Illustration-10: Create augment data

Tunggu proses augment data selesai, kembali pada tab “Data sets” dan buka augment dataset yang telah kita buat sebelumnya. Seperti pada ilustrasi-11 hasil augment data menjadi 10.374 dataset atau data image.

Illustration-11: Augment Data (complete)

Train Model

Setelah langkah prepare data selesai, kita masuk pada tahap train model. Pada dataset yang sudah di augment sebelumnya klik button “Train model”, kemudian akan masuk ke halaman untuk setting tipe training, opsi optimize model dan hyperparameter sebelum proses training berjalan seperti pada ilustrasi-12.

Illustration-12: Training (Select type of training)

Pertama tentukan nama model, memilih tipe model yang pada demo kali ini adalah object detection. Kemudian seperti telah dijelaskan sebelumnya optimize model yang digunakan adalah detectron sehingg opsi yang di pilih adalah detectron. Selanjutnya setting nilai hyperparamater dengan jumlah max iteration atau bisa juga di sebut sebagai epoch menjadi 50.000 untuk setting parameter lainnya tetap default. Sebenarnya IBM Maximo Visual Inspection sudah menyediakan default dari pengaturan hyperparameter dengan max iteration 4000 namun menyesuaikan lagi hasil akurasi terbaik yang didapatkan.

Illustration-13: Training (Setting hyperparameters)

Setelah setting hyperparameter sudah selesai klik button “Train model” yang kemudian proses training akan berjalan seperti ilustrasi-14.

Illustration-14: Training Proses

Untuk iterasi sebanyak 50.000 dibutuhkan waktu sekitar 7 jam waktu training, lalu lihat detail model yang telah selesai di training.

Illustration-15: Training (Complete)

Setelah proses training selesai dan melihat bagian detail model kita mendapatkan beberapa nilai dari proses training, yaitu Accuracy, mAP, Precision, Recall dan IoU untuk hasil dari training object detection. Untuk hasil demo didapatkan nilai accuracy 93%, nilai mAP 91%, nilai precision 98%, recall 94% dan IoU 87%.

Illustration-16: Training (Result)

Setelah training, IBM Maximo Visual Inspection menghasilkan beberapa metrik untuk di periksa. Untuk sebagian besar pemodelan, terkadang kita perlu memilih arsitektur neural network mana untuk jenis dataset dan kasus penggunaan dan tujuan model, apakah itu akan dioptimalkan untuk kecepatan atau akurasi. Biasanya, semakin tinggi akurasi yang ingin dicapai, waktu respons model akan semakin lambat. Demikian pula, jika kita ingin model menjadi secepat mungkin selama waktu berjalan (misalnya, memaksimalkan frame per detik untuk pengenalan video), akurasi biasanya akan lebih rendah daripada jika kita mengoptimalkan model untuk akurasi. Ini adalah trade-off yang perlu kita pilih dan putuskan untuk kasus penggunaan tertentu. Ilustrasi-16 juga menunjukkan kurva loss vs kurva iteration. Menurut dokumentasi IBM Maximo Visual Inspection, grafik ini menunjukkan “the relative performance of the model over time. The model should converge at the end of the training with low error and high accuracy.”

Deploy Model

Illustration-17: Deploy Model

Langkah selanjutnya atau langkah terakhir adalah proses deploy model. Pada halaman model yang ingin kita deploy, klik button “Deploy model”, tentukan nama model yang di deploy kemudian klik “Deploy”. Tunggu proses deploy selesai sampai status model “Ready”, kemudian klik model yang sudah ter-deploy dan akan masuk ke halaman dashbord dari model yang sudah di deploy serta halaman untuk tes model seperti pada ilustrasi-19.

Illustration-18: Model Ready to Test
Illustration-19: Dashboard to Test Model

Terakhir kita dapat melakukan pengujian dari model yang sudah di deploy dengan cara import data dari data tes yang sudah kita siapkan sebelumnya, atau dengan cara drag and drop data ke dashboard pengujian model tersebut. Seperti yang ditunjukkan pada ilustrasi-20, ilustrasi-21 dan ilustrasi-22 merupakan hasil pengujian model yang sudah kita training dengan menggunakan data tes yang sudah kita siapakan. Sebagai catatan data tes ini merupakan dataset yang disiapkan selain data training yang sudah di import dan diberikan label sebelumnya pada IBM Maximo Visual Inspection.

Illustration-20: Model Test Result (1)
Illustration-21: Model Test Result (2)
Illustration-22: Model Test Result (3)

Bagi model yang sudah di training, kita dapat melakukan export model juga. Hasil export ini dapat dijalankan pada perangkat yang memiliki GPU (Graphic Processing Unit) untuk menjalankan model, contohnya adalah NVidia Jetson family. Kemudian untuk model yang telah di deploy, kita juga dapat mengakses menggunakan API key dari model yang di deploy. Misalnya di akses melalui custom application selain menginputkan data yang akan di proses untuk mendapatkan hasil deteksi pada dashbord IBM Maximo Visual Inspection.

What’s Next?

Seperti yang disampaikan sebelumnya, per September 2021 IBM Maximo Visual Inspection merupakan bagian dari package aplikasi IBM Maximo Application Suite 8.3. Kemudian karena IBM Maximo Application Suite 8.3 berjalan di atas Openshift, maka IBM Maximo Visual Inspection belum dapat berjalan pada mesin IBM Power seperti versi sebelumnya. Hal ini disebabkan karena Openshif belum dapat mengakses GPU yang terdapat pada mesin IBM Power. Namun kedepan Produk ini akan dapat berjalan diatas mesin IBM Power, karena para tim research IBM sedang memproses agar Openshift dapat mengakses GPU pada mesin IBM Power. Jika hal tersebut telah berjalan dengan baik maka IBM Maximo Application Suite 8.3 dapat berjalan di atas mesin IBM Power dan tentu saja IBM Maximo Visual Inspection dapat mengakses GPU mesin IBM Power.

Referensi

Cahyati Supriyati Sangaji, 2020. “IBM Maximo Application Suite — Visual Inspection on Openshift”.

Andi Sama, 2019. “Image Classification & Object Detection on IBM PowerAI Vision

IBM, 2020. “IBM Maximo Visual Inspection Guide

IBM Maximo Application Suite Architecture Image

--

--