ML.NET Series: Membuat Model Klasifikasi Gambar dengan Model Builder

Hi Makers,

Kali ini kita akan membahas bagaimana kita dapat membuat model ML untuk melakukan klasifikasi gambar dengan ML.NET Model Builder. 

Sebelumnya rekan-rekan pastikan sudah menginstall Visual Studio 2017 ke atas dan ekstension VS untuk ML.NET, bisa diperoleh dari link berikut: https://marketplace.visualstudio.com/items?itemName=MLNET.07 

Dengan model builder kita bisa membuat model ML dengan mudah, yang perlu rekan-rekan siapkan hanya dataset, dan task yang akan dilakukan, saat ini task yang dapat dilakukan adalah : binary classification, multi-class classification, regression dan yang terbaru image classification. 

Untuk image classification, yang dilakukan adalah menggunakan model klasifikasi yang terkenal seperti Resnet, InceptionV3. Lalu dengan dataset baru yang kita berikan akan dilakukan transfer learning, yaitu melakukan re-training ke beberapa layer pada model untuk mengenali objek baru. Keuntungannya adalah tidak perlu dataset yang begitu banyak, proses re-training relatif lebih cepat. 

Hal ini dapat dilakukan karena ML.NET mengintegrasikan Tensorflow.NET untuk bisa melakukan retraining model tensorflow dengan .NET. Tensorflow.NET adalah bagian dari Data Science Open Source Stack berbasis .NET yaitu SciSharp : https://scisharp.github.io/SciSharp/ 

Oke, mari kita coba sendiri bagaimana menggunakannya:

  1. Create project baru di Visual Studio dengan nama “ImageClassificationVS” dengan tipe console (.NET Core). File > New > Project. 
  2. Lalu klik kanan pada nama project pada solution explorer, lalu pilih Add > Machine Learning.
  3. Pilih “Image Classification”
  4. Lalu buat folder dengan nama “Images” dan di dalamnya masukan beberapa folder dengan nama kategori gambar. Pada contoh ini saya bikin 3 folder dengan nama : “Siomay”, “Cireng”, “Cakwe”. Masing-masing folder saya isi dengan 10 gambar sesuai dengan kategorinya.
  5. Lalu pada “select folder” pilih folder images, maka image dalam masing-masing kategori akan diperlihatkan.
  6. Lalu scroll ke bawah, dan klik “train”
  7. Dan klik “Start Training”, pastikan koneksi internet cepat, tapi kalau tidak silakan download file dari url ini : https://tlcresources.blob.core.windows.net/image/ResNetV250TensorFlow/resnet_v2_50_299.meta dan masukan ke folder : C:\Users\[username]\AppData\Local\Temp\MLNET baru klik “Start Training”
  8. Ini akan membutuhkan waktu beberapa menit, sesuai dengan kecepatan proses pc rekan-rekan
  9. Setelah selesai akan tampil layar untuk menguji model yang sudah jadi, silakan masukan gambar contoh dan tekan “predict”
  10. Lalu klik code untuk memasukan contoh code dan model ke project rekan-rekan.
  11. Pada file ModelBuilder.cs terdapat contoh code untuk melakukan training model, sedangkan pada file “ConsumeModel.cs” terdapat contoh untuk melakukan inferensi dengan model yang sudah jadi. Sedangkan file MLModel.zip berisi model yang perlu disisipkan bersama aplikasi rekan-rekan. 
  12. Saya membuat contoh aplikasi winform dengan .NET Core 3.0 sebagai contoh sederhana penggunaan model yang sudah digenerate oleh model builder ini. Source codenya dapat dilihat dari repository ini : https://github.com/Gravicode/MLNETImageClassificationBuilder 

Selamat berkreasi, semoga bermanfaat.

Salam Makers ;D

Loading

You May Also Like