Implementasi Deep Machine Learning untuk Segmentasi Gambar

By | July 11, 2021
2,692 Views

Deep Machine Learning untuk Segmentasi Gambar –  Berbicara mengenai teknik segmentasi gambar dari mulai menggunakan teknik pengambangan ataupun dengan teknik fuzzy ataupun teknik waterseed ataupun menggunakan color palette,Hasillnya kurang memuaskan. Pada artikel ini, saya akan membahas mengenai implementasi model UNET, augmentation gambar pada project yang sedang kami kerjakan.

Deep Machine Learning

Kalian pernah mencoba melakukan remove background melalui aplikasi https://www.remove.bg/ tanpa repot-repot menggunakan photoshop, aplikasi diatas menggunakan teknik deep machine learning lho! sehingga hasilnya akurat walaupun menggunakan beragam background! bahkan saking canggihnya bisa bedakan pengguna yang pakai baju warna putih dengan backgroundnya putih.

Deep machine learning yang mendukung di mobile device seperti buatan google yaitu MLK machine learning kit seperti berikut

https://softscients.com/2021/05/26/segmentation-with-mobile-device/

hasilnya

Namun demikian sampai saat ini pihak google belum membuka source code trainingnya, sehingga sangat sulit bagi kita untuk membuat custom.

Model Unet

Setelah searching sana sini, image segmentation yang paling mudah digunakan yaitu model UNET – U-Net: Convolutional Networks for Biomedical Image Segmentation. Berikut hasil uji coba saya untuk melakukan segmentasi, hasilnya sangat memuaskan sekali dibandingkan dengan teknik konvensional sebelumnya

UNet diatas masih menggunakan input berupa grayscale dan sedikit variasinya, perbaikan model yang kami gunakan mengacu pada ternausnet. Dengan teknik augmentation pytorch-albumentation hasilnya sangat baik. Deep Machine Learning untuk Segmentasi Gambar bisa diandalkan

Mengapa Model UNET?

Unet merupakan model deep machine learning berbasis autoencoder yang sangat mudah diaplikasikan pada mobile device dibandingkan dengan fast-mask RCNN karena hanya mengandalkan pure Pytorch berbasis convolutional. Kalian bisa bandingkan dengan fast-mask RCNN yang menggunakan teknik selective search dan PNN sebagai hasil akhir untuk mendapatkan ROI nya

See also  Kompabilitas versi keras dengan Tensorflow 2.0

Agumentation untuk meningkatkan akurasi data

Deep machine learning yang mempunyai keunggulan begitu baik tapi disisi lain juga bikin pusing! Yup kalian harus punya dataset yang sangat banyak agar hasil akurasi bagus! tentu mendapatkan dataset yang banyak butuh kesabaran dan modal waktu tidak sedikit

Do more with less data

Merupakan slogan untuk mengatasi keterbasan dataset serta variasi yang akan ditemui didunia nyata dihadapi oleh deep learning. Bila kalian menggunakan pytorch maka gunakan saja albumentation


melalui augmentation maka secara otomatis akan hemat dataset dan meningkatkan akurasi data, https://albumentations-demo.herokuapp.com/

Augmentation pada tensorflow menggunakan ImageDataGenerator

Mobile Device

Saat ini pengguna mobile device lebih besar dibandingkan dengan PC/laptop, sehingga arah perkembangan implementasi deep machine learning diutamakan di OS seperti android ataupun IOS. Nah framework deep machine learning yang bisa kalian gunakan bisa dari google – tensorflow ataupun facebook-pytorch. Namun saya lebih suka menggunakan pytorch karena simple nya menggunakan dataset untuk membungkus dataset training dan testing daripada menggunakan tensorflow yang kebanyakan format ini dan itu bikin pusing lagian juga ada 2 versi yang digunakan dan itu berbeda yaitu tensorflow 1.0 dan tensorflow 2.0.

Pakai tensorflow bikin jengkel saja, karena masih berkembangnya framework tersebut jadi ketika kita sudah baca dokumentasi serta git clone source codenya pun masih saja error karena kebanyakan dependecies sangat banyak dan bentroknya versi.

Oiya bia kalian Deep Machine Learning untuk Segmentasi Gambar, saya sarankan untuk menggunakan OpenCV mengingat OpenCV tersebut sangat baik digunakan di Java SE, kalian bisa baca ini

GPU dan CPU

Deep machine learning membutuhkan proses  belajar yang sangat lama bahkan berhari-hari, hal ini bisa saja terjadi. Pengalaman saya yang menggunakan model UNET dengan dataset ukuran gambar cukup besar yaitu 480 x 640 pt dan 100 record, 50 epoch membutuhkan setidaknya 10 jam! Maklum saja karena hanya menggunakan CPU i3 generasi 3 tanpa GPU!

See also  Machine Learning dengan PlaidML

Untuk pytorch minimal menggunakan GPU Nvidia dengan Cuda 10.0, bila kalian tidak punya uang untuk membeli komputer dengan spek tinggi, gunakan saja google colab!