IBM Maximo Application Suite — Visual Inspection on Openshift

(a.k.a) IBM Visual Insight — An AI-based Visual Inspection platform

Cahyati S. Sangaji, Solution Specialist IoT and AI — Sinergi Wahana Gemilang

Dengan perkembangan teknologi yang sedemikian pesatnya, setiap software, aplikasi, atau library dari open source melakukan update product atau versi secara berkesinambungan. Perubahan dilakukan jika terdapat fitur baru atau fungsi baru yang dapat ditambahkan di dalamnya sehingga menjadi lebih baik dan lebih lengkap, yang juga merubah versi atau bahkan nama produk tersebut.

Artikel ini akan membahas tentang update dari produk IBM software yang merupakan salah satu produk di area AI (Artificial Intelligence). Produk ini adalah IBM PowerAI Vision yang per September 2021 berubah nama menjadi IBM Maximo Application Suite-Visual Inspection.

Dari PowerAI Vision menjadi MAS Visual Inspection

Histori awal dari produk AI yang berjalan pada mesin Power 9 (AC922) yang merupakan mesin server yang dirancang untuk implementasi AI.

Awalnya — IBM PowerAI Vision

  • Aplikasi ini awalnya disebut PowerAI Vision 1.1.3 yang merupakan bagian dari produk IBM Hardware, karena aplikasi ini hanya dapat berjalan di atas mesin Power AC922.
  • Fitur yang ada pada aplikasi ini pada awalnya hanya ada Image Classification dan Object Detection. Untuk Image Classification opsi untuk optimize model yang dapat digunakan adalah system default (GoogLeNet) dan Custom Model (Tensorflow/Keras). Kemudian untuk Object Detection dapat digunakan Faster R-CNN, Detectron, tiny YOLO V2 dan Custom Model (Tensorflow/Keras).
  • Berlanjut ke PowerAI Vision 1.1.4 yang memiliki penambahan fitur terdapat fasilitas untuk membuat model untuk Action Detection. Dengan opsi pilihan untuk optimize model yang sama untuk fitur Image Classification dan Object Detection dari versi sebelumnya, yaitu pada PowerAI Vision 1.1.3. Kemudian untuk Action Detection optimize model yang dapat digunakan hanya dengan Structured Segment Network (SSN).
  • Kemudian produk melakukan update kembali dan menjadi PowerAI Vision 1.1.5 dengan opsi untuk optimize model untuk Image Classification masih sama dengan versi 1.1.4 yaitu System default (GoogLeNet) dan Custom Model. Namun pada versi ini custom model tidak hanya mendukung penggunaan Tensorflow/Keras tetapi juga dapat menggunakan pytorch, untuk Image Classification maupun Object detection. Lalu untuk Object Detection terdapat penambahan opsi yaitu Single Shot Detector (SSD), sehingga pilihan opsi menjadi Faster R-CNN, Detectron, tiny YOLO V2, Single Shot Detector (SSD) dan Custom Model (Tensorflow/Keras dan Pytorch). Untuk Action Detection opsi yang dapat digunakan masih sama dengan versi sebelumnya. Fitur tambahan lain pada versi ini adalah terdapat tab project yang mendukung untuk penggunaan satu API key yang menjalankan lebih dari satu model. Selain itu juga dapat terintegrasi dengan Maximo Asset Monitor dan untuk pilihan optimize model GoogLeNet dan tiny YOLO V2 mendukung penggunaan Core ML.

Kemudian — IBM Visual Insight

Update produk berikutnya nama PowerAI Vision berubah menjadi Visual Insight 1.2 dengan opsi untuk optimize model untuk Image Classification, Object Detection dan Action Detection sama dengan PowerAI Vision 1.1.5 namun produk ini sudah menjadi produk dari IBM Software yang masih tetap berjalan di atas mesin Power AC922.

Visual Insight 1.2 dapat di-install secara stand-alone atau dengan IBM Cloud Private (ICP).

Akhirnya — IBM Maximo Application Suite Visual Inspection

Kemudian produk ini berganti nama lagi menjadi IBM Maximo Visual Inspection 1.3 yang berjalan di atas mesin Power9 (AC22) dan menggunakan OS RHEL/Ubuntu sama seperti versi sebelumnya mulai dari PowerAI Vision 1.1.3.

Berbeda dengan versi sebelumnya yaitu Visual Insight 1.2, untuk proses instalasi IBM Maximo Visual Inspection 1.3 hanya dapat dilakukan dengan metode stand-alone. Namun ketika kita melakukan instalasi IBM Maximo Visual Inspection 1.3, tidak dapat dilakukan instalasi IBM Data Science Experience (DSX), IBM Cloud Private, IBM Watson Studio Local Edition, dan aplikasi Kubernetes lain pada mesin yang sama.

Fitur lain yang ada pada versi ini adalah dapat terintegrasi dengan IBM Maximo Visual Inspection mobile yang sebelumnya bernama IBM Visual Inspector yang saat ini hanya dapat berjalan pada Iphone.

Pada bulan September 2021, direncanakan akan dilakukan update produk kembali, yang akan dijabarkan dengan nama product baru yaitu “IBM Maximo Application Suite|Visual Inspection”.

Ilustrasi -1 : IBM Maximo Application Suite Home

Visual Inspection yang running pada Openshift merupakan salah satu aplikasi IBM Maximo Application Suite. Penjelasan kali ini akan fokus pada aplikasi Visual Inspection yang merupakan update produk dari IBM Maximo Visual Inspection yang sebelumnya berjalan pada OS RHEL/Ubuntu dan menggunakan mesin Power 9 (AC922).

Ilustrasi-2 merupakan tampilan awal untuk login aplikasi IBM Maximo Visual Inspection.

Ilustrasi-2 : Login IBM Maximo Visual Inspection

IBM Maximo Visual Inspection pada Openshift ini berubah versi menjadi 8.0.0 yang sebelumnya versi 1.3 pada RHEL/Ubuntu. Ilustrasi-3 merupakan tampilan login dari IBM Maximo Application Suite yang nanti akan masuk ke tampilan awal dari aplikasi Visual Inspection.

Ilustrasi-3: Login IBM Maximo Application Suite

Dari proses login sampai ke tampilan Home dari aplikasi visual inspection yang berbeda pada proses Ilustrasi-3. Untuk tampilan Home masih sama dengan IBM Maximo Visual Inspection 1.3 sebelumnya, namun title dari aplikasi tersebut menjadi “IBM Maximo Application Suite|Visual Inspection”.

Ilustrasi-4: IBM Maximo Application Suite|Visual Inspection Home

Akan dijabarkan untuk fitur apa saja yang ada pada aplikasi visual inspection yang nantinya akan diketahui apa saja update dari versi sebelumnya dengan versi yang baru.

Image Classification adalah salah satu fitur yang ada pada IBM maximo Visual Inspection. fitur ini sebenarnya sudah ada dari versi awal yang berjalan di atas mesin Power AC922 dengan nama produk PowerAI Vision. Opsi untuk optimize model ada 2 yaitu GoogleNet dan Custom model yang mendukung penggunaan Tensorflow/Keras dan Pytorch.

Ilustrasi-5: Optimize Model for Image Classification

Proses untuk membuat model Image Classification masih sama seperti langkah-langkah pada versi sebelumnya. Cara yang dilakukan adalah select all image dari kategori pertama kemudian klik “Assign category” dan beri nama label yang sesuai, kemudian input kembali image dari kategori selanjutnya. Kemudian pilih pilihan di “Categories dan select pada opsi “uncategorized”, lalu pada image dataset select all dan beri nama label yang sesuai. Pada contoh demo yang dilakukan terdapat 2 kategori, yaitu van dan car yang total dataset dari kedua kategori tersebut adalah 232 total image.

Ilustrasi-6: Image Classification Labeling

Untuk menghasilkan model dengan accuracy yang bagus, maka dilakukan augment data dengan tujuan agar dapat menambah dataset. Proses yang dilakukan dengan kilik bagian “Augment data”, pilih opsi augment yang dibutuhkan kemudian create nama dataset dari data-data hasil augment nantinya.

Ilustrasi-7: Augment Data from Dataset
Ilustrasi 8: Creat New Dataset for Augment Data

Perlu diberikan catatan untuk proses augment data hanya dibutuhkan ketika dataset yang ada tersedia dalam jumlah yang sedikit, namun akan lebih baik jika dataset asli yang ada sudah cukup banyak. Kemudian untuk opsi yang dipilih untuk augment sebaiknya menyesuaikan dari masing-masing usecase, misalnya color merupakan kriteria penilaian untuk membedakan object makan opsi tersebut tidak di-select, atau posisi object tidak boleh terbalik atau berubah posisi makan opsi untuk membalik atau merubah sudut pandang object tidak di-select.

Setelah proses augment selesai makan jumlah dataset akan bertambah, pada demo ini jumlah dataset menjadi 8.816 image.

Ilustrasi-9: Result Augment Data

Setelah proses “Augment Data” selesai dilajutkan dengan proses training, pada demo digunakan default hyperparameter dari visual inspection untuk proses training dari Image Classification Model.

Ilustrasi-10: Training Process for Image Classification

Ketika proses training sudah selesai maka akan ada button untuk melihat detail model, kemudian klik “detail model” untuk melihat hasil training. Pada ilustrasi-11 merupakan hasil dari training model untuk Image Classification. Terdapat hasil accuracy, precision dan recall beserta grafik dari perbandingan Loss dan Iteration.

Ilustrasi-11: Image Classification Model Result

Ketika model yang dihasilkan dari proses training sudah sesuai dengan yang diharapkan, dapat dilakukan deploy model pada Visual Inspection.

Seperti versi sebelumnya, Visual Inspection menyediakan dashboard untuk melakukan test model dengan data test yang baru untuk melihat ketepatan dalam mendeteksi object.

Ilustrasi-12: Deploy Image Classification Model

Cara yang dilakukan untuk melihat hasil adalah dengan Drag and Drop data test pada komputer anda ke dashboard Visual Inspection pada box test model yang ada di browser, atau dengan klik tombol import pada bagian bawah box test model dan pilih data dari komputer anda.

Ilustrasi-13: Test Image Classification Model (Image 1)
Ilustrasi-14: Test Image Classification Model (Image 2)

Berdasarkan hasil dari ilustrasi-13 dan ilustrasi-14, model Image Classification yang sudah di-training dapat membedakan atau mengklasifikasikan object antara car atau van.

Fitur Object Detection sama seperti Image Classification yang merupakan fitur yang sudah ada mulai dari versi PowerAI Vision 1.1.3 namun untuk IBM Maximo application suite-visual inspection opsi untuk optimize model lebih banyak. Pada versi PowerAI Vision 1.1.3 hanya terdapat opsi FRCNN, Detectron, tiny YOLO V2 dan custom model yang mendukung untuk penggunaan Tensorflow/Keras.

Pada IBM Maximo application suite-visual juga terdapat Single Shot Detector (SSD), YOLO v3 dan custom model yang mendukung Tensorflow/Keras dan Pytorch

Ilustrasi-15: Optimize Model for Object Detection

Langkah-langkah yang dilakukan untuk membuat model masih sama seperti versi IBM Maximo Visual Inspection sebelumnya.

Langkah pertama dilakukan proses labeling, pada demo yang dilakukan labeling dilakukan dengan menggunakan bentuk label polygon. sebenarnya ada 2 bentuk label yang dapat dibuat, yaitu menggunakan box atau polygon. Untuk Object Detection juga memungkinkan untuk menggunakan fasilitas Augment Data jika diperlukan.

Ilustrasi-16: Object Detection Labeling

Setelah semua proses labeling sudah selesai, dilanjutkan dengan proses training. Karena bentuk label menggunakan polygon berdasarkan pengalaman yang sudah dilakukan opsi terbaik adalah menggunakan Detectron, maka pada demo ini digunakan opsi untuk optimize model dengan Detectron.

Ilustrasi-17: Training Object Detection Dataset with Detectron

Kemudian untuk hyperparameter yang digunakan, dengan menambah Max Iteration menjadi 10.000 yang awalnya secara default sudah di set 4.000. Hal tersebut dilakukan untuk mendapatkan hasil accuracy yang baik berdasarkan jumlah dataset yang ada.

Ilustrasi-18: Training Process for Object Detection

Sama seperti proses Image Classification setelah proses training selesai, kita dapat melihat detail dari hasil training tersebut. Untuk model dari Object Detection terdapat hasil accuracy, mAP, precision, recall dan IoU beserta grafik dari perbandingan Loss dan Iteration.

Ilustrasi-19: Object Detection Model Result

Kemudian dilanjutkan dengan proses deploy model dan melakukan test model menggunakan data image untuk test yang sudah disiapkan sebelumnya. Langkah yang dilakukan sama dengan Image classification, dengan cara drag and drop atau import file image.

Ilustrasi-20: Deploy Object Detection Model

Pada ilustrasi-21 dapat dilihat contoh hasil uji dari model Object Detection yang telah dibuat, yang hasilnya dapat dilihat pada dashboard Visual Inspection.

Ilustrasi-21: Test Object Detection Model
Ilustrasi-22: Optimize Model for Action Detection

Action Detection adalah fitur yang ada mulai dari versi PowerAI Vision 1.1.4 yang sampai update produk paling baru tetap hanya menggunakan Structured Segment Network (SSN) untuk opsi optimize model. Untuk Action Detection tidak ada fasilitas untuk dapat menggunakan custom model.

Langkah awal sama seperti fitur lainnya, dilakukan labeling pada video yang merupakan dataset untuk membuat model dari Action Detection. Cara untuk labeling adalah menentukan label dari action, yang nanti akan digunakan untuk opsi dari “Action name”. Kemudian tiap durasi video yang akan di label pilih “Action name” dan tentukan “start time” dan “end time” dari label tersebut.

Ilustrasi-23: Labeling for Action Detection

Action Detection tidak memiliki fasilitas untuk Augment data, sehingga kita harus menyiapkan data label yang cukup banyak agar hasil accuracy model hasilnya cukup baik. Pada demo ini disiapkan 80 video yang berdurasi rata 3 sampai 5 menit dan action yang dianalisa adalah bermain gitar atau “playing_guitar”. Untuk aturannya durasi label tidak boleh lebih dari 40 detik, sehingga dari total durasi label yang ada dibagi menjadi beberapa label dalam 1 video, walaupun misalnya sepanjang durasi melakukan action yang sama, maka label dibuat dengan durasi kurang lebih 10 sampai 20 detik.

ilustrasi-24: Action Detection Dataset

Setelah semua data sudah diberi label, lanjutkan dengan proses training model. Untuk action detection menggunakan Structured Segment Network (SSN) sebagai optimize yang digunakan untuk training.

ilustrasi-25: Action Detection Training
Ilustrasi-26: Action Detection Training Process

Setelah proses training selesai kita bisa melihat nilai dari hasil training pada detail model. Training telah dilakukan dengan 20 epoch dan sekitar 876.000 iterasi yang prosesnya berjalan selama kurang lebih 4 hari.

Ilustrasi-27: Training Result Action Detection Model

Kemudian deploy model untuk dapat menguji hasil model yang sudah di-training sebelumnya.

Ilustrasi-28: Deploy Action Detection Model

Ilustrasi-29 merupakan hasil dari model Action Detection yang terdeteksi ada 159 action.

Ilustrasi-29: Action Detection Test Result

Dari sini dapat disimpulkan bahwa untuk penggunaan fitur-fitur didalam Visual Inspection sama dengan IBM Maximo Visual Inspection sebelumnya yang berjalan di atas mesin Power AC922. Namun untuk update dari produk tersebut adalah Visual Inspection menjadi bagian dari aplikasi IBM Maximo Application Suite.

Aplikasi lain yang juga ada pada IBM Maximo Application Suite adalah Manage, Health, IBM Digital Twin Exchange, Predict Monitor dan aplikasi IoT yang terhubung ke IBM Watson IoT Platform.

Referensi