Action Detection with IBM Visual Insights (PowerAI Vision) On IBM POWER AC922

Original article was published on Artificial Intelligence on Medium

Action Detection with IBM Visual Insights (PowerAI Vision) On IBM POWER AC922

Artificial Intelligence

Cahyati S. Sangaji — PT. Sinergi Wahana Gemilang with Andi Sama

Seperti layaknya manusia yang dapat mengenali tingkah-laku dengan mengamati gerakan, demikian pula halnya dengan mesin yang dapat “dilatih” untuk dapat mengenali tingkah-laku seperti melompat, berlari, bermain piano dan berbagai gerakan lainnya.

Dengan menganalisa gabungan dari serangkaian frame dari suatu video stream, machine learning akan dapat melakukan pengenalan gerakan singkat (melalui model yang dihasilkan) seperti yang dapat dilakukan oleh manusia. Model ini sebelumnya telah di-train terhadap beberapa gerakan tertentu melalui dataset yang kita sediakan.

Ilustrasi-1: Action Detection result dari deploy model action “Playing Guitar” yang di training dengan set hyperparameter default dari PowerAI Vision (20 epoch, 0.001 learning rate, 0.8 ratio, 10 test interval, 0.0005 weight decay, 0.9 momentum) dan 2109 label action dari 90 video dataset.

Ilustrasi-1 menunjukkan hasil dari suatu trained-model untuk melakukan Action Detection, yang telah di-label & di-train dataset-nya pada software: IBM Visual Insights pada hardware: IBM POWER AC922 dengan deep neural network framework bernama Structured Segment Network, SSN (Yue Zhao et al., 2017).

IBM Visual Insights atau IBM VI adalah Software yang dirancang untuk Artificial Intelligence (AI) Analytics dengan fokus di Vision. IBM VI merupakan nama baru di tahun 2020, nama sebelumnya adalah: IBM PowerAI Vision (PAIV).

IBM POWER AC922 (Performance Optimization with Enhanced RISC, Accelerated Computing on IBM POWER9 hardware architecture with 2 sockets and 2U rack-configuration) adalah mesin hardware IBM POWER yang dirancang khusus untuk AI: untuk melakukan Training & Inference (GPU: NVidia V100). IBM juga memiliki konfigurasi hardware dengan spesifikasi lebih rendah (GPU: NVidia T4) yang ditujukan khusus untuk melakukan inference: IBM IC922.

Training dalam AI adalah proses membuat model berdasarkan suatu dataset, sementara Inference adalah proses menjalankan (deploy) model yang telah dibuat — yang biasanya dalam suatu IT production environment (AIOps, menjalankan trained-model sebagai bagian dari IT Operation).

Image Classification, Object Detection & Action Detection

Seperti layaknya manusia yang dapat membedakan dua jenis object, pada AI ini dilakukan dengan apa yang disebut sebagai Image Classification.

AI juga dapat mengenali berbagai obyek yang biasanya dapat tertangkap oleh mata (melalui kamera) dengan melakukan pengenalan pada obyek sebelumnya seperti yang dibahas pada SWG Insight edisi Q3 2019 (Andi Sama et al., 2019) yang memuat artikel tentang “Image Classification & Object Detection with IBM PowerAI Vision on IBM Power AC922” menggunakan PowerAI Vision versi 1.1.3. Sebelum suatu (atau beberapa) obyek dapat dikenali, dilakukan proses pe-label-an dan training terhadap dataset-nya.

Pada artikel ini di bahas fitur IBM PowerAI Vision di versi terbaru (v1.1.5), yaitu “Action Detection”. Paper Temporal Action Detection with Structured Segment Networks (Yue Zhao et al., 2017) menyebutkan bahwa hasil dari SSN mengacu pada nilai mAP (mean Average Precision), sedangkan pada PAIV metrik pengukurannya sedikit berbeda, dimana hasil dari model mengacu pada akurasi untuk mengukur persentasi action yang terdeteksi dengan benar. Pengukuran metrik Akurasi diperoleh dari:

Dimana True Positive adalah ketika PAIV dengan benar memberi label atau mengklasifikasikan gambar, misalnya mengenali kucing sebagai kucing (predicted <hasil dari trained-model>: dideteksi positif <dalam hal ini misalnya: kucing>, dan ground-truth <actual/dataset-nya>: memang positif, memang benar di-label sebagai kucing). Untuk kasus action detection, ini berarti bahwa “tindakan bermain gitar” (actual) benar diklasifikasikan (predicted) sebagai “tindakan bermain gitar”.

False positive (Type-I error) adalah ketika PAIV memberi label atau mengklasifikasikan gambar yang tidak benar menjadi benar, misalnya mengenali gambar anjing sebagai kucing. (dideteksi positif <sebagai: kucing>, namun ground-truth <dataset-nya>: negatif, <bukan kucing: anjing misalnya> — red). Untuk kasus action detection, ini adalah saat model mengklasifikasikan (predicted) “ini adalah tindakan bermain gitar”, namun sebenarnya (actual), ini “bukan merupakan tindakan bermain gitar”.

True negative adalah ketika PAIV dengan benar tidak mengklasifikasikan gambar yang memang bukan merupakan klasifikasinya. Misal: gambar bukan kucing sebagai bukan kucing (dideteksi sebagai negatif <bukan kucing>, dan ground-truth sebenarnya memang negatif <bukan kucing: anjing misalnya>). Untuk kasus action detection, ini berarti bahwa “tindakan bukan bermain gitar” (actual) benar diklasifikasikan (predicted) sebagai “tindakan bukan bermain gitar”.

False negative (Type-II error) adalah ketika PAIV tidak memberi label atau mengklasifikasikan gambar yang seharusnya diberi label, misalnya tidak mengelompokkan gambar kucing sebagai kucing (predicted: negatif <selain kucing>, ground truth <dataset-nya>: positif, kucing). Untuk kasus action detection, ini adalah saat model mengklasifikasikan (predicted) “ini adalah tindakan bukan bermain gitar”, namun sebenarnya (actual), ini adalah benar “tindakan bermain gitar”.

Secara ringkas dapat dijelaskan sebagai berikut:

  • True Positives (TP) = Prediksi: Ya/Positif, kenyataan (dataset): Ya/Positif.
  • True Negatives (TN) = Prediksi: Tidak/Negatif, kenyataan (dataset): Tidak/Negatif.
  • False Positives (FP), Type-I Error = Prediksi: Ya/Positif, kenyataan (dataset): Tidak/Negatif.
  • False Negatives (FN), Type-II Error = Prediksi: Tidak/Negatif, kenyataan (dataset): Ya/Positif.

Hasil Accuracy model yang telah di-train pada PAIV untuk model actionPlaying Guitar” adalah 57% seperti yang ditunjukkan pada ilustrasi-2.

Selain nilai Accuracy, juga terdapat hasil Precision dan Recall, hasil ini akan fokus terhadap berbagai macam case yang berbeda. Pada beberapa case, akan dinilai baik jika hasil Precision cukup tinggi, namun ada juga beberapa case yang akan lebih baik jika nilai Recall-nya cukup tinggi.

Fokus untuk Precision atau Recall tergantung pada kebutuhan masing-masing case, lebih fokus akan Quality atau Quantity. Nilai Precision yang tinggi fokus pada kebutuhan untuk Exactness atau Quality. Sedangkan nilai Recall yang tinggi fokus pada kebutuhan untuk completeness atau Quantity.

Action Detection

Dalam perkembangan computer vision, melakukan action detection recognition merupakan sebuah tantangan dalam menganalisa suatu rangkain frame (video), seperti penelitian yang dilakukan dalam beberapa tahun terakhir ini.

Ilustrasi-2: Hasil Training/Modeling Action Detection dari video-video dataset “Playing Guitar” pada PowerAI Vision (PAIV) dengan set Epoch hyperparameter: 20, dan nilai default untuk nilai parameter yang lain.

Beberapa paper (research paper — red) melakukan penelitian dengan menggunakan dataset: THUMOS14 dan ActivityNet. Dengan menggunakan THUMOS14, SSN (Yue Zhao et al., 2017) mendapatkan hasil mAP yang lebih baik, dibandingkan dengan menggunakan ActivityNet.

Dengan dua tolak ukur menggunakan dataset THUMOS14 dan ActivityNet, SSN sangat mengungguli metode canggih sebelumnya. SSN menunjukkan akurasi yang unggul dan kemampuan yang kuat dalam menangani berbagai tindakan dengan berbagai struktur temporal.

Action detection dapat digunakan untuk sistem keamanan (berbasiskan Closed Circuit TelevisionCCTV) misalnya, pelacakan emosi dan gerakan, analitik acara olahraga, pengamatan perilaku dari suatu kegiatan, pengumpulan data statistik, dan lain-lain.

Model yang telah dihasilkan oleh PAIV, dapat di-export dan di-deploy di device dengan spesifikasi GPU yang lebih rendah dari IBM POWER AC922 (IBM POWER IC922 misalnya) atau dengan cara call API melalui REST-API, jika dijalankan (dilakukan inference) pada PAIV baik di AC922, IC922 atau platform hardware berbasis GPU lainnya.

Structured Segment Network (SSN)

SSN merupakan kerangka kerja baru yang memodelkan struktur temporal dari setiap contoh tindakan melalui piramida temporal terstruktur.

Di atas piramida, telah diperkenalkan model diskriminatif terurai yang terdiri dari dua pengklasifikasi, masing-masing untuk mengklasifikasikan tindakan dan menentukan kelengkapan. Ini memungkinkan kerangka kerja untuk secara efektif membedakan proposal positif dari latar belakang atau yang tidak lengkap, sehingga mengarah pada pengakuan dan lokalisasi yang akurat.

Komponen-komponen ini diintegrasikan ke dalam jaringan terpadu yang dapat dilatih secara efisien secara end-to-end. Selain itu, skema proposal tindakan temporal yang sederhana namun efektif, dijuluki Temporal Actioness Grouping (TAG) dirancang untuk menghasilkan proposal tindakan berkualitas tinggi.

Action Detection pada IBM Visual Insights (PowerAI Vision)

Salah satu fitur pada versi terbaru PAIV (v1.1.4) sejak Juni 2019 adalah action detection. PowerAI versi terbaru di-install pada mesin IBM POWER System AC922 dengan prosesor yang dirancang untuk AI menggunakan high-end GPU NVidia Tesla V100. Kemudian pada bulan oktober 2019, diperkenalkan PAIV versi 1.1.5 dengan berbagai fitur baru lainnya.

Pada artikel ini, penulis akan menjabarkan bagaimana implementasi penggunaan fitur action detection dari PAIV versi 1.1.5. Proses akan diawali dari data preparation menggunakan action berupa kegitan bermain gitar (Playing Guitar Dataset).

Ilustrasi-3: Login screen dari PowerAI Vision 1.1.5

Langkah-langkah yang dilakukan mirip dengan langkah-langkah pada proses image classification dan object detection. Namun, untuk action detection tidak dapat dilakukan proses data augmentation.

Langkah dari action detection diawali dengan pelabelan dataset, kemudian training model dengan menggunakan SSN dan set hyperparameter default (Hyperparameter dapat di rubah). Langkah selanjutnya adalah proses training model dan deploy model.

Ilustrasi-4: Welcome screen dari PowerAI Vision 1.1.5
Ilustrasi-5: Create dataset untuk video-video action bermain gitar

Seperti penjabaran PAIV sebelumnya, setelah PAIV ter-install kita harus login terlebih dahulu dengan username dan password (ilustrasi-3) dan akan terlihat welcome screen-nya. Di sini dapat kilta lihat AI-Workflow — mulai dari Data Preparation (Create Dataset & Prepare Data), Create Model (Train Model) & Deploy Model (ilustrasi-4).

a. Data preparation

Pada proses data preparation kita create model, penulis menggunakan dataset berupa action bermain gitar. Setelah create model, import dataset yang akan di lakukan pelabelan.

Ilustrasi -6: Import dataset dari video-video action bermain gitar
Ilustrasi-7: Dataset untuk video action bermain gitar sebanyak 90 video

Untuk melakukan pelabelan, langkah-langkah yang harus dilakukan adalah select video yang akan dilabeli kemudian klik “Label action”. Cara memberikan label pada dataset dari Action detection adalah dengan menentukan durasi dari waktu awal dan waktu akhir dari panjang video yang dijadikan label. Sebelumnya add label yang merupakan nama tindakan dari durasi yang ditentukan.

Pada ilustrasi-8 dapat terlihat panjang durasi rata-rata adalah 9 detik. Kerena pada video tersebut, kegiatan bermain gitar ada di hampir sepanjang durasi video secara keseluruhan, maka kita membagi panjang durasi sebagai label dengan rata-rata nilai durasi yang sama.

Sebagai catatan dari pengalaman saat melakukan pelabelan panjang maksimal durasi label adalah 40 detik dan video harus memiliki frame rate maksimal 30 f/s (frame per second). Format video yang dapat di-import ke PowerAI Vision adalah .ogg, .webm dan .mp4.

Untuk implement yang kita lakukan saat ini adalah dengan menggunakan 90 video yang akan dilabel dengan durasi rata-rata tiap label: 9 detik.

Ilustrasi-8: Proses labeling salah satu dataset

Label yang telah dibuat dapat dihapus atau di ubah kembali jika ingin melakukan perubahan durasi atau nama tindakan dari label. Caranya dengan klik label yang akan di hapus atau di ubah, kemudian akan terdapat pilihan tindakan yang ingin di lakukan pada sisi sebelah kanan dari dari durasi label. Klink ubah jika ingin merubah durasi atau nama label dan klik hapus jika ingin menghapus label yang telah dibuat. Lakukan-langkah yang sama untuk video dataset lain dimulai dari select video yang ingin diberi label action.

Dapat juga dilakukan auto labeling ketika ingin menambah jumlah dataset dan meningkatkan hasil dari akurasi dari model. Fitur ini dapat mempermudah dan mempersingkat proses pelabelan dataset, apalagi untuk suatu case yang membutuhkan dataset cukup banyak. Perlu diperhatikan juga hasil traning model yang digunakan untuk auto labeling memiliki tingkat akurasi yang sudah baik.

b. Modeling

Metode yang digunakan untuk melakukan training model pada fitur action detection hanya dengan Structured Segment Network (SSN), tidak seperti object detection yang memiliki beberapa metode untuk melakukan training model. Dengan metode yang berbeda dari fitur image classification dan object detection, sehingga beberapa set hyperparameter untuk training model action detection pun berbeda. Set hyperparameter ini terdapat pada advanced options, karena saat tampilan awal bagian itu belum ditampilkan.

Ilustrasi-9: 90 video dataset yang sudah selesai dilakukan pelabelan
Ilustrasi 10: Set metode dan hyperparameter untuk proses training model dari action detection

Lama dari proses training yang akan dilakukan terutama tergantung dari set epochs yang telah di tentukan sebelumnya. Pada percobaan yang dilakukan untuk pembuatan artikel ini, proses training membutuhkan waktu kira-kira selama satu hari.

Setelah proses training selesai, untuk melihat hasil model dapat dilihat pada bagian detail model. Pada ilustrasi-13 dapat terlihat, untuk hasil training model action detection adalah nilai accuracy, precision, dan recall. Dengan hasil accuracy 57%, precision 59% dan recall 94% dari 90 video dataset dan 2109 action.

Pada tiap case, kebutuhan akan berbeda-beda apakah lebih fokus ke accuracy atau precision. Jika case lebih mementingkan quality maka kita akan fokus pada hasil precision yang tinggi, sedangkan jika case lebih mementingkan quantity, maka kita akan fokus pada hasil recall yang lebih tinggi.

Dalam melakukan evaluasi performance dari suatu Machine Learning/ML (khususnya untuk supervised learning, dimana dataset terdiri dari input dan target label), kita menggunakan acuan yang disebut sebagai Confusion Matrix.

Confusion Matrix merepresentasikan hubungan antara prediksi yang merupakan hasil dari trainedmodel (predicted) dan kondisi dataset yang sebenarnya (actual). Berdasarkan Confusion Matrix, kita bisa menentukan beberapa metrik: accuracy, precision dan recall.

Ilustrasi-11: Proses training model dengan hyperparameter default dari PowerAI Vision
Ilustrasi-12: Proses training yang sudah selesai dari “Playing Guitar” dataset

Precision & Recall

Dalam pengenalan pola (pattern recognition) dan temu kembali informasi (information retrieval), precision dan recall adalah dua perhitungan yang banyak digunakan untuk mengukur kinerja dari system / metode yang digunakan.

Precision adalah tingkat ketepatan antara informasi yang diminta oleh pengguna dengan jawaban yang diberikan oleh sistem. Sedangkan recall adalah tingkat keberhasilan sistem dalam menemukan kembali sebuah informasi.

Ilustrasi-13: Hasil training model dengan nilai accuracy 57%, precision 59% dan recall 94%

Menurut pengertian dari dokumentasi PowerAI Vision, precision adalah suatu parameter untuk mengukur persentase tindakan yang diidentifikasikan dengan benar, yang didapatkan dari perhitungan:

Sedangkan recall adalah suatu parameter dari seberapa sering suatu tindakan diidentifikasikan dengan benar, yang di dapatkan dari perhitungan:

Accuracy

Dalam istilah statistika dikenal istilah accuracy yang didefinisikan sebagai tingkat kedekatan antara nilai prediksi dengan nilai aktual. Menurut pengertian dari dokumentasi PowerAI Vision, nilai accuracy digunakan untuk mengukur persentase tindakan yang terdeteksi dengan benar yang didapatkan dari perhitungan yang telah dijelaskan sebelumnya. Seperti contoh hasil accuracy pada ilustrasi-13 dapat diartikan hasil deploy model memiliki tingkat ketepatan untuk deteksi suatu tindakan sebesar 57%.

c. Deploy model

Model yang sudah di-training dapat di-deploy pada PAIV, kemudian dapat diuji menggunakan data video lain yang bukan merupakan video dari dataset. Dari video dataset, 80% merupakan data training dan 20% merupakan data testing. Pada PAIV dataset yang sudah di-import akan secara otomatis dibagi menjadi data testing dan data validation. Untuk contoh set ratio yang ditentukan pada proses training sebelumnya, maka 80% secara otomatis digunakan sebagai data testing dan 20% digunakan sebagai data validation.

Kita dapat langsung menguji model yang telah di training pada halaman deploy model dari PAIV dengan import video baru yang tidak termasuk data training atau drag and drop pada kolom tes model.­ Format video yang sesuai untuk di import pada bagian tes model adalah .ogg, .webm dan .mp4.

Untuk melihat hasil test model, awalnya kita dapat set terlebih dahulu nilai dari threshold dan durasi minimum dari kegiatan yang ingin di-test (frame) dari keseluruhan video yang di import. Selain itu kita dapat menggunakan API (Application Programming Interface) pada user inference dari PAIV, dengan format video yang didukung (.mkv, .avi,.mpg atau .mpeg2).

Ilustrasi-15 menujukan hasil dari test model dengan video testing yang sudah disiapkan. Hasil ini menggunakan set threshold 0.5 dan durasi minimum dari kegiatan yang ingin di-test (frame) adalah 10. Dengan model action detection yang memiliki nilai akurasi 57%, terdeteksi 1 action berawal pada durasi 00:00:133 sampai durasi 06:56:533 yang di analisa sebagai kegiatan bermain gitar. Kemudian kita dapat export result dari hasil tes video tersebut, yang memberikan hasil data dalam format JSON (Javascript Object Notation), begitu pula hasil test menggunakan API.

Model yang telah di training pada PowerAI Vision juga dapat di export untuk di deploy pada perangkat lokal GPU seperti Nvidia Jetson Nano, Nvidia Jetson TX2, Nvidia Jetson Xavier seperti yang penulis pernah coba sebelumnya dan keluarga Nvidia Jetson lainnya yang memiliki GPU di perangkatnya.

Ilustrasi-14: Halaman deploy model dengan hasil accuracy 57%

Pada PowerAI Vision sebelumnya (1.1.4), kita masih perlu untuk melakukan decrypt model. Sehigga proses sebelumnya harus melakukan instalasi inference server pada mesin AC922 untuk membantu proses dari decrypt model yang telah di export.

Mulai dari IBM Visual Insights (IBM PowerAI Vision) versi 1.1.5 kita tidak membutuhkan proses decrypt model lagi, sehingga model yang telah di export dapat langsung digunakan untuk run-time (inference).

Ilustrasi-15: Hasil dari tes video action detection model

Bagaimana Selanjutnya?

Seiring dengan perkembangan perangkat Hardware yang mendukung untuk berkembangnya teknologi di bidang Artificial Intelligence (AI), Machine Learning (ML) dan Deep Learning (DL), maka penelitian di bidang tersebut mulai meningkat, juga dengan berbagai penemuan algoritma dan metode-metode baru untuk dapat diterapkan di berbagai use-case.

Kedepannya terutama yang direncanakan akan ada di IBM Visual Insights, hasil penerapan AI tidak hanya melakukan deteksi berupa gambar dan video yang mirip seperti fungsi mata pada manusia. Akan memungkinkan juga dapat mendeteksi output suara misalnya, seperti fungsi telinga pada manusia. Ini dapat membantu melakukan analisa data berupa suara dengan lebih cepat dan akurat seperti pada bidang kesehatan dalam menganalisa detak jantung misalnya.

Salah satu contoh nyata dari perkembangan teknologi di bidang AI dapat dilihat dari fitur IBM Visual Insights yang terus berkembang. Ini menjadikan IBM Visual Insights terus memberikan kemudahan dalam melakukan penerapan dalam berbagai case yang berbeda untk menyesuaikan dengan kebutuhan pasar.

Di Indonesia, masih belum terlalu banyak yang mengaplikasikan teknologi action detection ini, untuk video analytic misalnya. Tentunya ini merupakan peluang bisnis bagi Perusahaan Teknologi Informasi untuk dapat ikut berperan dalam penerapan teknologi Artificial Intelligence, Machine Learning dan Deep Learning.

References:

IBM, 2019, “IBM Power AI Vision”.

Andi Sama et al., 2019, Image Classification & Object Detection”.

Kevin Duarte, Yogesh S Rawat, Mubarak Shah, 2018, “VideoCapsuleNet: A Simplified Network for Action Detection”.

Resika Arthana, 2019, “Mengenal Accuracy, Precision, Recall dan Specificity serta yang diprioritaskan dalam Machine Learning”.

Ren Jie Tan, 2019, “Breaking Down Mean Average Precision (mAP)”.

Ryan Thompson, 2019, “Action Detection Using Deep Neural Networks: Problems and Solutions”.

Serena Yeung, Olga Russakovsky, Greg Mori, Li Fei-Fei, 2016, “End-to-end Learning of Action Detection from Frame Glimpses in Videos”.

Wikipedia, “Precision and recall”.

Yubo Zhang et al., 2019, “A Structured Model For Action Detection”.

Yue Zhao et al., 2017, “Temporal Action Detection with Structured Segment Networks”.