Mineral Klasifikasi Menggunakan Deep Learning

Said Rasidin
4 min readJun 17, 2020

--

Mineral klasifikasi merupakan hal yang biasa bagi seorang geologist, namun jumlah mineral yang sangat banyak membuat tidak semua geologist paham satu-satu termasuk saya (jadi ini berlatar belakang pribadi), oleh karena itu penggunaan deep learning dan computer vision bisa sangat bermanfaat dalam mengklasifikasi mineral langsung dari foto sampel lapangan.

As of March 2020, the IMA — CNMNC Master List of Minerals lists 5,562 valid minerals

sumber data pada projek ini berasal dari kaggle Minerals Identification Dataset Hand specimen images of minerals in seven classes

Berisi berjumlah 961 files foto dengan 7 kelas mineral yaitu : biotite, bornite, chrysocolla, malachite, muscovite, pyrite and quartz.

Projek ini menggunakan Framework Pytorch dan bahasa Python

Input Data

Input data menggunakan dataloader pytorch, kemudian melihat distribusi data setiap samplenya serta mengintip beberapa sampel foto dari datasets.

Distribusi Data Setiap Kelas
Contoh 20 sampel kelas Biotite

seperti terlihat distibusi data tidak merata untuk setiap sampelnya oleh karena itu perlu dipertimbangkan dalam spliting data validasi dan test agar model tidak bias terhadap satu kelas saja.

Pembagian data validasi dan test

Data validasi digunakan untuk evaluasi model selama training dan data test digunakan sebagai blind test bagi model untuk diprediksi. Pembagian data validasi dan test dilakukan dengan tetap mempertahankan distribusi data setiap labelnya menggunakan modul train_test_split dari sklearn. Sehingga data train berjumlah 862 data, validasi 48 data dan test berjumlah 46 data dengan distibusi yang sama.

Training distribusi
Validasi distribusi
Test distribusi

Dataloader dan Model

Data kemudian di input ke dataloader untuk setiap hasil pembagian data train, validasi dan testing, karena dataset sangat terbatas (cuma 961 foto) maka pada dataloader saya lakukan transformasi RandomRotation(30), RandomVerticalFlip(p=0.5), RandomHorizontalFlip(p=0.5).

Dataloader untuk setiap data set

model yang saya training berjumlah dua yaitu model dengan 4 konvolusi layer dan 2 dense layer dan pretrained model VGG16.

Model Mineral
VGG16 Arsitektur

Training

Training dilakukan dengan menggunakan batch size 128 (setiap loop training dilakukan terhadap 128 foto), learning rate 0.0001, dan epoch 30. Mengunnakan negative log likelihood (NLLLoss) untuk menghitung loss dan Adam optimizer untuk memperbaharui weight pada setiap layernya.

Model Mineral Loss dan Accuracy
VGG16 Pretrained model

model mineral cukup baik dengan menggunakan jumlah 30 epoch akurasi dan loss antara training dan validasi tidak jauh berbeda. namun model VGG16 cepat mengalami kovergensi validasi loss dan akurasi sudah mendatar pada epoch 7 dan training terus melakukan fitting pada data training set sehingga terjadi overfitting.

Model Evaluasi dan Prediksi

model evaluasi dilakukan terhadap data test menggunakan confusion matrix dan klasifikasi report dari module sklearn.

Model Mineral

Klasifikasi Report Model Mineral
Model Mineral Confusion Matrix

model mineral mendapat akurasi 80 % dari total data (not bad though). kalau dicoba plot prediksi seperti gambar dibawah warna merah menandakan kesalahan label dan label dalam kurung merupakan label sebenarnya.

Hasil Prediksi

VGG16 Pretrained

Classification Report VGG16
Confusion Matrix VGG16

F1 score model VGG16 lebih dari 90% pada setiap kelas label dan akurasi mencapai 96%, sehingga sangat menjanjikan ( makin banyak training data makin bagus), tampak dibawah bahwa VGG16 mampu memprediksi 20 test set (total 46 foto) dengan hanya satu kesalahan label.

Hasil Prediksi VGG16 Model

Mencoba Model Hasil Training Mengunakan Gambar dari Google Image

saya mencoba menggunakan mineral bornite sebagai contoh bagi model

Bornite dari Google Image
Hasil Prediksi

dengan menggunakan gambar dari google image kedua model memprediksi label dengan benar yaitu bornite.

Kesimpulan

Projek ini merupakan salah contoh manfaat penerapan deep learning dalam identifikasi mineral, jika model dapat di deploy di cloud dan dapat langsung dijalankan di device tentu pekerjaan identifikasi mineral menjadi semakin murah dan cepat di lapangan.

Sign up to discover human stories that deepen your understanding of the world.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Said Rasidin
Said Rasidin

Written by Said Rasidin

Interest in Data and of course AI

No responses yet

Write a response