Quantcast
Channel: Ngoprek Archives - Jul Ismail
Viewing all articles
Browse latest Browse all 61

Klasifikasi Gambar dengan SVM

$
0
0

Saya lagi baca tulisan Vegi Shanmukh tentang klasifikasi gambar dengan SVM. Jadi dia pake algoritma SVM (support vector machine) buat klasifikasi gambar. Di SVM data di plot dalam ruang n-dimensi. N adalah jumlah fitur. Nilai setiap fitur digambarkan dalam koordinat tertentu. Klasifikasi dilakukan dengan mencari hyperplane yang dapat memisahkan titik-titik data tadi menjadi dua kelas misalnya. Contohnya kayak gambar berikut:

dari blognya shanmukh

Disana terlihat dicari garis (hyperplane) yang dapat memisahkan titik2 merah dan titik2 hijau. Di SVM ada beberapa parameter berikut:
Gamma : menentukan seberapa jauh pengaruh dari sebuah training mencapai nilai-nilai yang menghasilkan hasil yang bias

C : Cost dari salah klasifikasi (missclassification)
nilai C kecil — membuat biaya misclassification rendah
nilai C besar— membuat biaya misclassification tinggi

Kernel : algoritma SVM menggunakan fungsi matematika sebagai kernel. Jenis kernel: Linear, RBF(Radial Basis Function), Polynomial Kernel. Contohnya ada di gambar diatas.

Dalam klasifikasi gambar, komputer melihat gambar sebagai array dari sekumpulan angka. Misalnya gambar dengan ukuran 200×200, maka oleh komputer akan diubah jadi array 200 X 200 X 3. 200 pertama adalah lebar, 200 kedua adalah tinggi, sementara 3 adalah chanel RGB. Nilai angka ini akan berkisar antara 0–255.

Di blognya dia pake library SKlearn namanya GridSearchCV. Dia ngasih contoh klasifikasi gambar dalam 3 kelas, mobil, eskrim, dan bola kriket. Kodenya bisa dilihat di blognya . Di codingannya semua gambar di ubah ukurannya, karena SVM hanya menerima gambar dengan ukuran yang sama.

Tahapan kodingan yang dia bikin:

  1. Bikin model SVM : -> svc=svm.SVC()
  2. Bikin model dengan GridSearchCV dan parameters grid: →model=GridSearchCV(svc,parameters_grid)
  3. Data dibagi 2: training dan testing. -> train_test_split() 
  4. Training→ model.fit(training_data,expected_output)
  5. Testing -> model.predict(testing_data)
  6. Hitung akurasi: -> accuracy_score() method from sklearn.metrics
  7. Evaluasi

kode lengkapnya bisa dilihat disini:

https://github.com/ShanmukhVegi/Image-Classification

versi lainnya:

https://github.com/whimian/SVM-Image-Classification/blob/master/Image%20Classification%20using%20scikit-learn.ipynb

Semoga Bermanfaat!


Viewing all articles
Browse latest Browse all 61

Trending Articles