• Tidak ada hasil yang ditemukan

PRESENTASI TUGAS AKHIR KI091391

N/A
N/A
Protected

Academic year: 2021

Membagikan "PRESENTASI TUGAS AKHIR KI091391"

Copied!
66
0
0

Teks penuh

(1)

IMPLEMENTASI SUPPORT VECTOR MACHINE

UNTUK KLASIFIKASI PIKSEL PADA SEGMENTASI

CITRA

(Kata kunci:

segmentasi citra, gabor filter, local homogeneity, fuzzy c-means,

support vector machine

)

PRESENTASI TUGAS AKHIR – KI091391

Penyusun Tugas Akhir :

Irawati Nurmala Sari

(NRP : 5108.100.030)

Dosen Pembimbing

:

Yudhi Purwananto, S.Kom, M.Kom

Rully Soelaiman, S.Kom, M.Kom

(2)

Segmentasi citra adalah suatu metode dari pengolahan citra

digital yang bertujuan untuk membagi citra menjadi beberapa

region yang homogen berdasarkan kriteria kemiripan tertentu.

Segmentasi

citra

merupakan

masalah

klasifikasi,

yaitu

bagaimana memprediksikan suatu piksel termasuk edge atau

non-edge.

Pada umumnya, suatu metode segmentasi citra hanya

menggunakan classifier yang linier sehingga menghasilkan

boundary citra yang kurang optimal.

Dibutuhkan suatu metode segmentasi citra yang dapat

memisahkan

piksel

secara

non-linear

sehingga

dapat

menghasilkan boundary citra yang optimal dapat mengurangi

noise disekitar objek yang diamati.

(3)

RUMUSAN MASALAH

1.

Bagaimana memahami metodologi segmentasi citra berdasarkan

metode

Support Vector Machine.

2.

Bagaimana cara membedakan antara piksel

edge

dan

non-edge

.

3.

Mengidentifikasi

parameter-parameter

yang

dapat

mempengaruhi hasil segmentasi citra berdasarkan metode

Support Vector Machine.

4.

Berapa tingkat keberhasilan yang dihasilkan dari segmentasi

citra dengan menggunakan metode

Support Vector Machine

jika

(4)

BATASAN MASALAH

1.

Prinsip kerja SVM pada sistem ini hanya menangani klasifikasi dua

kelas, yaitu edge dan non-edge.

2.

Menggunakan nilai convergence error = 1e-5 pada proses clustering

piksel dengan metode FCM.

3.

Menggunakan kernel polynomial pada proses klasifikasi.

4.

Pada proses klasifikasi dengan metode support vector machine

menggunakan toolbox Steve R Gunn [Steve02].

5.

Hanya mendeteksi edge pada citra berwarna yang statis pada

database berkeley [Berke06].

6.

Sistem perangkat lunak yang digunakan dalam melakukan sistem ini

adalah Matlab versi 7.6.0.

(5)

1. Mengetahui bentuk objek dari suatu citra dengan

cara melakukan proses segmentasi citra

menggunakan metode support vector machine.

2. Mengidentifikasi parameter-parameter yang dapat

mempengaruhi hasil segmentasi citra.

(6)

GAMBARAN UMUM APLIKASI

(a)

Citra Berwarna

(b)

Citra Ground Truth

(c)

Citra boundary

(d)

Citra hasil segmentasi

d

c

b

a

(7)

DESAIN MODEL APLIKASI

Ekstraksi Fitur Tekstur

Clustering Piksel

Pemilihan Training Set

Dan Testing Set

Training Model Classifier

Citra asal

Citra hasil segmentasi

Ekstraksi Fitur Warna

(8)

PROSES CLUSTERING PIKSEL

DENGAN METODE FUZZY C-MEANS

MULAI Menentukan matriks mambership secara random sesuai dengan batasan Menentukan pusat cluster pada setiap cluster

Hitung nilai fungsi objektif pada iterasi ke-t Memperbaiki nilai membership setiap piksel terhadap semua cluster Menentukan anggota setiap cluster SELESAI Menentukan training sample Menggabungkan training sample dari semua cluster

Training set Inisialisasi parameter jumlah cluster, w, t, dan convergence error Fungsi objektif menghasilkan nilai yang konstan pada

iterasi ke-t iya Menentukan testing sample Training sample Testing sample Menggabungkan testing sample dari semua cluster

Testing set Data piksel dari gabungan hasil ekstraksi fitur warna dan ekstraksi fitur tekstur

Data piksel yang memiliki atribut (L, A, B, M) 1. Training set yang memiliki atribut (L, A, B, M) 3. Testing set yang memiliki atribut (L, A, B, M) 2. Training set dengan label kelas edge dan non-edge

Hasil ekstraksi fitur warna

(L, A, B)

Hasil ekstraksi fitur tekstur (M)

(9)

PROSES INISIALISASI KURVA

PROSES TRAINING MODEL CLASSIFIER

(HYPERPLANE OPTIMAL) DENGAN METODE

SUPPORT VECTOR MACHINE

Memetakan training set dari input space ke feature space dengan menggunakan fungsi kernel polynomial

Menemukan nilai margin yang maksimal

Mencari hyperplane yang optimal

1. Training set yang

memiliki atribut (L, A, B, M)

Nilai alpha, bias, dan support vector 2. Training set dengan

label kelas edge dan non-edge

(10)

PROSES INISIALISASI KURVA

PROSES TESTING KLASIFIKASI PIKSEL DENGAN

DENGAN METODE SUPPORT VECTOR MACHINE

Memetakan training set dari input space ke feature space dengan menggunakan fungsi kernel polynomial

Mengklasifikasikan testing set dengan menggunakan hyperplane optimal

1. Testing set dengan label kelas edge dan non-edge

4. Nilai alpha, bias, dan support vector

2. Training set yang

memiliki atribut (L, A, B, M) 3. Training set dengan label kelas edge dan non-edge

Hasil klasifikasi testing set ke dalam kelas edge dan non-edge

(11)

PROSES DEFORMASI

Piksel edge dan non-edge

Training set (hasil FCM)

Citra hasil segmentasi

PROSES MENGGABUNGKAN PIKSEL EDGE DAN

NON-EDGE DARI TRAINING SET DAN TESTING SET

Piksel edge dan non-edge

Testing set (hasil SVM)

(12)

1.

Perbandingan ukuran local window yang akan digunakan pada

proses ekstraksi fitur warna dengan menggunakan ukuran

yang berbeda-beda, yaitu 3x3, 5x5, dan 7x7.

2.

Perbandingan nilai scale yang akan digunakan pada proses

ekstraksi fitur tekstur, yaitu dengan menggunakan nilai 0, 0.5,

1 ; 0.5, 1, 2 ; dan 3, 4, 5.

3.

Perbandingan nilai orientation yang akan digunakan pada

proses ekstraksi fitur tekstur, yaitu dengan menggunakan nilai

0, 15, 20, 30 ; 0, 45, 90, 135 ; dan 90, 120, 180, 270.

4.

Perbandingan jumlah scale yang akan digunakan pada proses

ekstraksi fitur tekstur, yaitu dengan menggunakan jumlah scale

1, 3, dan 6.

(13)

5.

Perbandingan jumlah orientation yang akan digunakan pada

proses ekstraksi fitur tekstur, yaitu menggunakan jumlah

orientation 2, 4, dan 6.

6.

Perbandingan jumlah cluster yang akan digunakan pada proses

clustering piksel, yaitu menggunakan jumlah cluster 3, 4, dan

6.

7.

Perbandingan derajat polinom sebagai parameter dari kernel

polynomial pada proses klasifikasi piksel, yaitu menggunakan

derajat polinom 1 dan 3.

8.

Perbandingan parameter toleransi C yang digunakan untuk

menentukan besar penalti akibat kesalahan dalam klasifikasi

piksel (misclassification), yaitu menggunakan parameter C

1000, 1e-9, dan 1e-999

(14)

9. Perbandingan threshold training set dengan menggunakan nilai

0.9 dan 0.8, sedangkan threshold testing set

dengan

menggunakan nilai 0.9, 0.8, 0.7, 0.6, 0.5, 0.4. 0.3, 0.2, 0.1, 0,

-0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9. Kedua

perbandingan ini sangat berkaitan erat dan tidak dapat

dipisahkan satu dengan yang lain. Perbandingan ini digunakan

untuk menentukan boundary citra yang optimal.

(15)

TINGKAT KEBERHASILAN (1)

Gambar 1 merupakan citra ground truth dan batasan obyek yang akan

dihitung akurasinya adalah Gambar 2.

Mencari error rate dari citra hasil segmentasi terhadap citra ground

truth dengan persamaan dibawah ini :

2

1

(16)

TINGKAT KEBERHASILAN (2)

Apabila error rate telah diketahui maka nilai tingkat kebenaran

dapat dihitung dengan persamaan :

(17)

SKENARIO 1

Perbandingan ukuran local window

Perbandingan dilakukan pada citra bunga.jpg

dengan ukuran 289x193 dengan ukuran local

window 3x3, 5x5, dan 7x7.

Parameter yang digunakan adalah threshold

training set = 0.8, threshold testing set 0.6

Local window ukuran 3x3 (akurasi = 93.24% ; 27 menit)

Hasil analisa: Ukuran local window

mempengaruhi hasil citra boundary dan

waktu komputasi dari proses

segmentasi citra. Semakin besar

ukuran local window, maka akan

semakin memiliki waktu komputasi

yang lebih cepat tetapi memiliki hasil

citra boundary yang terputus-putus.

Sedangkan, jika ukuran local window

semakin kecil, maka memiliki waktu

komputasi yang lama tetapi memiliki

citra boundary yang terhubung dengan

lebih baik.

Local window ukuran 5x5 (akurasi = 93.24% ; 26 menit)

Local window ukuran 3x3 (akurasi = 93.04% ; 23 menit)

Citra Asal

Citra Ground Truth

(18)

SKENARIO 2

Perbandingan nilai scale

Perbandingan dilakukan pada citra bunga.jpg

dengan ukuran 289x193 dengan nilai scale

(0, 0.5, 1), (0.5, 1, 2), dan (3, 4, 5).

Parameter yang digunakan adalah threshold

training set = 0.9, threshold testing set = 0.6

Nilai scale = 0, 0.5, 1 (akurasi = 92.07%)

Hasil analisa: Nilai scale

mempengaruhi hasil citra boundary dari

proses segmentasi citra. Nilai akurasi

yang tinggi tidak menjamin suatu citra

menghasilkan citra boundary yang

sempurna. Semakin kecil nilai scale,

maka semakin menghasilkan citra

boundary yang terputus-putus, namun

apabila nilai scale telah mencapai nilai

optimal maka menghasilkan citra

boundary yang terhubung dengan lebih

baik.

Citra Asal Citra Ground Truth Nilai scale = 0.5, 1, 2 (akurasi = 92.1%) Nilai scale = 3, 4, 5 (akurasi = 92.09%)

(19)

SKENARIO 3

Perbandingan nilai orientation

Perbandingan dilakukan pada citra gereja

putih.jpg dengan ukuran 289x193 dengan nilai

orientation (0, 15, 20, 30), (0, 45, 90, 135),

dan (90, 120, 180, 270).

Parameter yang digunakan adalah threshold

training set = 0.9, threshold testing set = 0.6.

Nilai orientation = 0, 15, 20, 30 (akurasi = 93.16% ; 25 menit)

Hasil analisa: Nilai orientation

mempengaruhi hasil citra boundary

dari proses segmentasi citra.

S

emakin

besar nilai orientation, maka akan

semakin menghasilkan nilai akurasi

yang tinggi , namun hal itu tidak

menjamin suatu citra menghasilkan

citra boundary yang terhubung dengan

sempurna. Apabila nilai orientation

telah mencapai nilai optimal maka

menghasilkan citra boundary yang

terhubung dengan lebih baik.

Citra Asal Citra Ground Truth Nilai orientation = 0, 45, 90, 135 (akurasi = 93.16%) Nilai orientation = 90, 120, 180, 270 (akurasi = 93.24%)

(20)

SKENARIO 4

Perbandingan jumlah scale

Perbandingan dilakukan pada citra gereja

putih.jpg dengan ukuran 289x193 dengan

jumlah scale 1, 3, dan 6.

Parameter yang digunakan adalah threshold

training set = 0.8, threshold testing set = 0.8.

Jumlah scale = 1 (akurasi = 93.26%)

Hasil analisa: Jumlah scale

mempengaruhi hasil citra dari proses

segmentasi citra.

S

emakin besar

jumlah scale, maka akan semakin

menghasilkan nilai akurasi yang tinggi ,

namun hal itu tidak menjamin suatu

citra menghasilkan citra boundary yang

sempurna. Apabila jumlah scale telah

mencapai nilai optimal maka

menghasilkan citra boundary yang

terhubung dengan lebih baik.

Citra Asal Citra Ground Truth Jumlah scale = 3 (akurasi =93.27%) Jumlah scale = 6 (akurasi = 93.27%)

(21)

SKENARIO 5

Perbandingan jumlah orientation

Perbandingan dilakukan pada citra gereja.jpg

dengan ukuran 289x193 dengan jumlah

orientation 2, 4, dan 6.

Parameter yang digunakan adalah threshold

training set = 0.8, threshold testing set = 0.8.

Jumlah orientation = 2 (akurasi = 97.24%)

Hasil analisa: Jumlah orientation

mempengaruhi hasil citra boundary

dari proses segmentasi citra.

S

emakin

besar jumlah orientation, maka akan

semakin menghasilkan nilai akurasi

yang tinggi , namun hal itu tidak

menjamin suatu citra menghasilkan

citra boundary yang terhubung yang

sempurna. Apabila jumlah orientation

telah mencapai nilai optimal maka

menghasilkan citra boundary yang

terhubung dengan lebih baik.

Citra Asal Citra Ground Truth Jumlah orientation= 4 (akurasi =97.25%) Jumlah orientation = 6 (akurasi = 97.25%)

(22)

SKENARIO 6

Perbandingan jumlah cluster

Perbandingan dilakukan pada citra burung.jpg

dengan ukuran 215x195 dengan jumlah cluster

3, 4, dan 6.

Parameter yang digunakan adalah threshold

training set = 0.8, threshold testing set = -0.7.

Jumlah cluster = 3 (akurasi = 97.07% ; 25 menit)

Hasil analisa: Jumlah cluster

mempengaruhi hasil citra boundary

dan waktu komputasi dari proses

segmentasi citra.

S

emakin besar

jumlah cluster, maka akan semakin

menghasilkan nilai akurasi yang

rendah dan citra boundary yang

terputus-putus. Selain itu, juga

memiliki waktu komputasi yang lebih

lama . Namun , hal itu tidak dapat

digeneralisasi untuk semua citra

warna lainnya karena setiap citra

Citra Asal Citra Ground Truth Jumlah cluster= 4 (akurasi =97.06% ; 30 menit) Jumlah cluster = 6 (akurasi = 96.95% ; 60 menit)

(23)

SKENARIO 7

Perbandingan derajat polinom

Perbandingan dilakukan pada citra bunga.jpg

dengan ukuran 289x193 dengan derajat

polinom 1, 3, dan 4.

Parameter yang digunakan adalah threshold

training set = 0.8, threshold testing set = 0.8.

Derajat polinom = 1 (akurasi = 93.24% ; 20 menit)

Hasil analisa: Derajat polinom

mempengaruhi hasil citra boundary dan

waktu komputasi dari proses

segmentasi citra. Semakin kecil derajat

polinom, maka memiliki waktu

komputasi yang semakin cepat namun ,

memiliki nilai akurasi yang lebih rendah

dan citra boundary yang terputus-putus.

Sebaliknya, semakin ke besar derajat

polinom, maka memiliki waktu

komputasi yang semakin lama tetapi

memiliki nilai akurasi yang lebih tinggi

dan citra boundary yang lebih baik.

Citra Asal Citra Ground Truth Derajat polinom = 3 (akurasi =93.28% ; 25 menit) Derajat polinom = 4 (akurasi = 93.29% ; 120 menit)

(24)

SKENARIO 8

Perbandingan parameter toleransi C

Perbandingan dilakukan pada citra elang.jpg

dengan ukuran 235x218 dengan parameter

toleransi C 1e-999, 1e-9, dan 1000.

Parameter yang digunakan adalah threshold

training set = 0.8, threshold testing set = 0.8.

Parameter toleransi C = 1e-999 (akurasi = 98.14% ; 22 menit)

Hasil analisa: Parameter toleransi C

hanya mempengaruhi waktu komputasi

dari proses segmentasi citra. Semakin

besar parameter toleransi C, maka akan

semakin memiliki waktu komputasi yang

lama namun tidak mempengaruhi hasil

citra boundary dan nilai akurasi.

Citra Asal

Citra Ground Truth

Parameter toleransi C = 1e-9 (akurasi =98.14% ; 23 menit)

(25)

SKENARIO 9 (Bagian 1)

Perbandingan threshold training set dan threshold

testing set

Perbandingan dilakukan pada citra

gereja.jpg dengan ukuran 289x193.

Parameter yang digunakan adalah nilai

scale = 0.5, 1, 2 dan nilai orientation = 0,

45, 90, 135.

Threshold training set = 0.95 dan threshold testing set = 0.1

(akurasi = 92.36%)

Hasil analisa: Threshold training set

dan threshold testing set

mempengaruhi hasil segmentasi citra

untuk menentukan citra boundary. Nilai

akurasi yang tinggi tidak menjamin

suatu citra menghasilkan citra

boundary yang terhubung yang

sempurna. Setiap citra memiliki nilai

threshold training set dan threshold

testing set yang berbeda untuk

menghasilkan boundary yang optimal.

Citra Asal

Citra Ground Truth

Threshold training set = 0.8 dan threshold testing set = 0.9

(akurasi = 92.17%)

Threshold training set = 0.9 dan threshold testing set = -0.1

(26)

SKENARIO 9 (Bagian 2)

Perbandingan threshold training set dan threshold

testing set

Threshold training set = 0.9 dan threshold testing set = -0.7

(akurasi = 92.16%)

Citra Asal

Citra Ground Truth

Threshold training set = 0.8 dan threshold testing set = -0.6

(akurasi = 93.09%)

Threshold training set = 0.9 dan threshold testing set = -0.2

Citra Asal

Citra Ground Truth

Threshold training set = 0.9 dan threshold testing set = -0.6

(akurasi = 92.15%)

Threshold training set = 0.9 dan threshold testing set = 0.6

(akurasi = 93.48%)

Threshold training set = 0.8 dan threshold testing set = 0.8

(27)

1.

Segmentasi dengan metode

Support Vector Machine

dapat

melakukan seluruh proses segmentasi citra secara otomatis. Hal

ini dibuktikan dengan tidak dibutuhkannya keterlibatan pengguna

selama proses segmentasi.

2.

Untuk membedakan suatu piksel termasuk

edge

dan

non-edge

ditentukan oleh parameter

threshold training set

dan

threshold

testing set

. Setiap citra memiliki nilai

threshold training set

dan

threshold testing set

yang berbeda untuk menghasilkan citra

boundary

yang optimal.

(28)

3. Ekstraksi fitur warna dengan menggunakan metode

Local

Homogeneity

dipengaruhi oleh parameter ukuran

local window

dalam menentukan citra

boundary

yang sempurna. Selain itu,

ukuran

local window

juga mempengaruhi waktu komputasi pada

proses segmentasi citra. Semakin besar ukuran

local window

,

maka akan semakin memiliki waktu komputasi yang lebih cepat

tetapi memiliki hasil citra

boundary

yang terputus-putus.

Sedangkan, jika ukuran

local window

semakin kecil, maka memiliki

waktu komputasi yang lama tetapi memiliki citra

boundary

yang

terhubung dengan lebih baik.

(29)

4.

Ekstraksi fitur tekstur dengan menggunakan metode

Gabor Filter

dipengaruhi oleh parameter nilai

scale

, nilai

orientation,

jumlah

scale

dan jumlah

orientation

dalam menentukan citra

boundary

yang sempurna. Parameter tersebut dapat dinaikkan apabila

belum mencapai nilai optimal. Apabila sudah optimal, maka akan

menghasilkan citra

boundary

yang terhubung dengan baik.

5.

Proses

clustering

piksel dengan menggunakan metode

Fuzzy

C-Means

dipengaruhi oleh jumlah

cluster

dalam menentukan citra

boundary

yang sempurna. Selain itu, jumlah

cluster

juga

mempengaruhi waktu komputasi pada proses segmentasi citra.

Jika hasil citra

boundary

yang diperoleh masih kurang sesuai,

maka perlu dilakukan penambahan jumlah

cluster.

Sedangkan,

jika jumlah

cluster

berlebih atau besar, maka hasilnya akan

mengikuti hasil segmentasi dengan jumlah

cluster

yang hasilnya

paling baik.

(30)

6. Proses training SVM dipengaruhi oleh parameter derajat polinom

dalam menentukan citra

boundary

yang sempurna. Selain itu,

derajat polinom juga mempengaruhi waktu komputasi pada proses

segmentasi citra. Parameter derajat polinom dibutuhkan pada

proses pemetaan

training set

dari

input space

ke

feature space

dengan menggunakan kernel

polynomial.

Jika hasil citra

boundary

yang diperoleh masih kurang sesuai, maka perlu dilakukan

penambahan derajat polinom. Jika jumlah derajat polinom

berlebih atau besar, maka hasilnya akan mengikuti hasil

segmentasi dengan derajat polinom yang hasilnya paling baik.

Selain itu, pada proses ini juga dipengaruhi oleh parameter

toleransi C yang digunakan untuk menentukan besar penalti akibat

kesalahan dalam klasifikasi piksel

(misclassification).

Parameter

toleransi C hanya mempengaruhi waktu komputasi dari proses

segmentasi citra. Semakin besar parameter toleransi C, maka akan

semakin membutuhkan waktu komputasi yang lama.

(31)

7. Tidak dapat dipastikan bahwa semakin besar hasil akurasi dari

parameter-parameter yang telah diujicobakan, maka semakin baik

pula hasil citra

boundary

. Karena nilai akurasi juga dipengaruhi oleh

error

dari segmentasi citra yang dihasilkan. Untuk mendapatkan

hasil yang akurat, pengguna dapat melakukan beberapa uji coba

dengan variasi parameter yang berbeda-beda. Sehingga didapatkan

citra segmentasi yang bagus secara visual. Nilai akurasi digunakan

untuk memastikan apakah citra segmentasi yang dihasilkan sudah

sesuai dengan

ground truth

yang ada atau tidak.

8. Dari hasil uji coba terhadap metode ini memiliki tingkat akurasi

hingga mencapai 98%.

(32)

1.

Perlu dikembangkan metode deteksi tepi yang lebih baik untuk

mereduksi noise yang ada pada sekitar objek yang diamati

sehingga akan menghasilkan segmentasi citra yang baik dan

tidak terganggu oleh objek lain di sekitarnya.

2.

Perlu dikembangkan metode yang dapat mengeneralisasi

parameter-parameter yang dibutuhkan secara otomatis,

sehingga user tidak perlu mencari nilai parameter yang paling

optimal.

3.

Perlu dilakukan uji coba yang lebih variatif dan mendalam

untuk mengetahui hasil segmentasi citra yang lebih optimal

berdasarkan metode SVM.

(33)

SELESAI

(34)

α

: Parameter lagrange multiplier yang digunakan untukmenentukan jumlah

support vector.

b

: Posisi bidang relatif terhadap pusat koordinat.

nsv : Jumlah support vector pada kedua kelas.

C

: Parameter yang menentukan besar penalti akibat kesalahan dalam klasifikasi

piksel (misclassification). Parameter C ini ditentukan oleh pengguna.

X

: Training set yang memiliki atribut berupa hasil ekstraksi fitur warna dan

ekstraksi fitur tekstur yang digunakan untuk memprediksi piksel termasuk

edge atau non-edge.

Y

: Training set yang memiliki atribut hasil prediksi klasifikasi berupa edge dan

non-edge yang digunakan sebagai data input untuk mencari hyperplane yang

optimal.

tstX : Testing set yang memiliki atribut berupa hasil ekstraksi fitur warna dan

ekstraksi fitur tekstur yang digunakan untuk memprediksi piksel termasuk

edge atau non-edge

(35)

KONVERSI RGB KE CIELAB

Dalam melakukan konversi warna RGB ke CIELAB terlebih dahulu dilakukan

proses konversi model warna RGB ke CIEXYZ, yaitu :

R’ = R / 255 G’ = G / 255 B’ = B / 255

Konversi dari CIEXYZ ke CIELAB, yaitu :

(36)

MENGHITUNG STANDAR DEVIASI

Standar deviasi dari komponen warna seperti CIELAB dapat

dirumuskan sebagai berikut ini :

Dimana :

M x N = ukuran citra

i,j = indeks piksel citra ; 0 ≤ i, m ≤ M–1 ; 0 ≤ j, n ≤ N-1 d x d = ukuran local window

m,n = indeks piksel pada local window

(k = L,a,b) = piksel pada local window dengan indeks m,n pada komponen CIELAB color space. (k = L,a,b) = nilai rata-rata pada piksel citra dengan indeks i,j pada komponen CIELAB color space

.

Nilai rata-rata pada piksel citra dengan indeks i,j pada komponen warna

CIELAB dapat dirumuskan sebagai berikut :

(37)

Menggunakan operator sobel dengan rumus seperti berikut ini :

Untuk menentukan magnitude dari gradien horisontal dan vertikal pada citra

dengan persamaan seperti berikut ini :

MENENTUKAN DISCOUNTINUITY

Perbedaan hasil deteksi edge menggunakan operator sobel dan canny.

Citra Asal

Citra dengan operator Sobel

(38)

MENGHITUNG EKSTRAKSI FITUR WARNA

DENGAN METODE LOCAL HOMOGENEITY

Hasil dari standar deviasi dan discountinuity dinormalisasikan :

Sehingga, dapat ditentukan hasil ekstraksi fitur warna dengan

menggunakan metode local homogeneity, yaitu :

(39)

KONVERSI RGB KE YCBCR

YCbCr color space mengubah nilai RGB menjadi Luminance (Y) dan

Chrominance (CbCr). Formulasi konversi RGB ke YCbCr ditunjukkan

sebagai berikut :

(40)

MENENTUKAN KOEFISIEN

GABOR WAVELET

Menentukan koefisien gabor wavelet dengan cara dilatasi dan rotasi,

yaitu :

Dimana :

n = nilai orientation m = nilai scale

(41)

Gabor filter 2D dapat dinyatakan sebagai ruang sinusoida dari frekuensi, scale dan

orientation yang dimodulasikan dengan fungsi gaussian 2D, sehingga gabor filter 2D

dengan frekuensi W dapat dirumuskan sebagai berikut :

Dimana :

= fungsi gaussian 2D (envelope)

= sinusoida kompleks (carrier)

Sehingga, gabor filter 2D dapat dinyatakan sebagai berikut :

MENGHITUNG GABOR FILTER

BILANGAN REAL DAN IMAJINER (Bagian 1)

(42)

Dengan menerapkan persamaan Euler yang ada pada domain frekuensi,yaitu :

Jadi, persamaan sinusoida kompleks dapat menjadi seperti berikut ini :

Sehingga, persamaan Gabor Filter 2D menjadi :

MENGHITUNG GABOR FILTER

BILANGAN REAL DAN IMAJINER (Bagian 2)

Mengingat bahwa adalah bilangan imajiner, maka bentuk persamaan

diatas adalah bilangan kompleks dengan bentuk Oleh karena itu,

koefisien pada output gabor filter adalah bilangan kompleks.

Gabor filter bilangan real :

(43)

Menghitung gabor wavelet untuk gabor fulter bilangan real dan imajiner menggunakan

koefisien gabor wavelet yang telah diperoleh pada proses sebelumnya, sehingga dapat

dinyatakan sebagai berikut ini :

Gabor wavelet pada komponen bilangan real, yaitu :

Gabor wavelet pada komponen bilangan imajiner, yaitu :

MENGHITUNG GABOR WAVELET UNTUK GABOR FILTER

BILANGAN REAL DAN IMAJINER

(44)

KONVOLUSI CITRA INPUT DENGAN GABOR WAVELET

Pada konsep konvolusi menggunakan operator (*) sebagai tanda proses

konvolusi antara input berupa citra dengan gabor wavelet .

Hasil konvolusi citra dengan gabor wavelet menggunakan operator (*), yaitu :

Agar operator (*) dapat diganti dengan operator perkalian (x), maka dan

dimasukkan ke dalam domain frekuensi dengan cara mentransformasikan

(45)

MENGHITUNG NILAI MAGNITUDE

PADA HASIL CITRA KONVOLUSI

Karena output pada gabor filter merupakan bilangan kompleks, maka output

pada juga merupakan bilangan kompleks sehingga harus diabsolutkan

melalui operator magnitude untuk menjadi bilangan nyata dan menggunakan

persamaan seperti berikut :

(46)

ALGORITMA CLUSTERING PIKSEL

DENGAN METODE FCM (Bagian 1)

1. Tentukan :

a. Matriks input Y yang berukuran m x n, dimana m adalah jumlah piksel dan n adalah jumlah atribut (kriteria).

b. Jumlah cluster yang akan dibentuk (C ≥ 2). c. Pangkat pembobotan (m > 1).

d. Iterasi awal (t = 1).

e. Kriteria penghentian iterasi / convergence error (ξ = nilai positif yang sangat kecil).

2. Membuat matriks partisi awal yaitu matriks yang berisi nilai membership setiap piksel terhadap semua cluster secara random sesuai dengan batasan.

3. Tentukan pusat cluster untuk setiap cluster

(47)

ALGORITMA CLUSTERING PIKSEL

DENGAN METODE FCM (Bagian 2)

5. Update nilai membership setiap piksel terhadap semua cluster (matriks partisi )

6. Cek kondisi berhenti,

a. Jika fungsi objektif menghasilkan nilai yang tidak berubah lagi (konstan) yaitu maka iterasi akan berhenti.

b. Jika fungsi objektif menghasilkan nilai yang masih berubah (continue), yaitu maka ulangi langkah ke-3.

(48)

MENENTUKAN PERSAMAAN

MEMBERSHIP (Bagian 1)

Pada algoritma FCM, fungsi objektif diminimalkan dengan tujuan untuk mencari parameter

membership dan pusat cluster. Dalam meminimalkan suatu fungsi objektif diperlukan suatu metode yang dapat meminimalkan fungsi tersebut, yaitu dengan menggunakan metode Langrange Multiplier. Fungsi objektif yang digunakan FCM adalah

Dengan batasan :

(49)

Sehingga, fungsi minimum dari fungsi objektif tersebut adalah :

Persamaan Lagrange Multiplier diatas, diminimumkan terhadap u dan dimaksimalkan terhadap λ (1)

(2)

Dari persamaan (1) diatas, maka diperoleh persamaan :

(3)

MENENTUKAN PERSAMAAN

MEMBERSHIP (Bagian 2)

-= - --=

(50)

Substitusi persamaan (2) terhadap persamaan (3), maka diperoleh persamaan :

(4)

Substitusi persamaan (4) terhadap persamaan (3), maka diperoleh persamaan membership :

MENENTUKAN PERSAMAAN

MEMBERSHIP (Bagian 3)

=

-

(51)

--Hasil dari persamaan

Lagrange Multiplier

harus diminimalkan terhadap

Maka, diperoleh persamaan :

Sehingga, diperoleh persamaan pusat cluster, yaitu :

MENENTUKAN PERSAMAAN PUSAT CLUSTER

=

-

(52)

--Nilai margin antara bidang pembatas kedua kelas, dapat dicari dengan cara perhitungan jarak dari titik x terhadap hyperplane (w,b), yaitu :

Dengan batasan, yaitu :

Karena margin merupakan jarak bidang pembatas antara piksel terdekat (support vector) dari kedua kelas, maka diperoleh persamaan margin seperti berikut ini :

MENCARI NILAI MARGIN YANG MAKSIMAL

=

-

(53)

--Memaksimalkan sama dengan meminimumkan .Oleh karena itu, hyperplane yang memisahkan data piksel secara optimal dapat diperoleh dengan meminimalkan persamaan berikut ini :

(1)

Dengan batasan :

Persoalan minimalisasi pada persamaan (1) dapat diselesaikan dengan menggunakan lagrange multiplier. Sehingga, diperoleh persamaan :

(2)

Persamaan lagrangian diatas harus diminimalkan terhadap w, b dan dimaksimalkan terhadap : (3)

(4)

MENCARI HYPERPLANE YANG OPTIMAL PADA DATA PIKSEL

YANG DIPISAHKAN SECARA LINIER (Bagian 1)

(54)

-Primal lagrangian pada persamaan (2) memungkinkan untuk diubah ke bentuk dual lagrangian (quadratic programming) agar lebih mudah dalam penyelesaiannya. Sehingga, diperoleh dual lagrangian problem, yaitu :

(5)

Dari persamaan (2), (3), (4), dan (5), maka diperoleh persamaan dual lagrangian seperti berikut ini :

Sehingga, diperoleh solusi dari persamaan dual lagrangian diatas, yaitu mendapatkan nilai yang digunakan untuk menentukan nilai w.

Dengan batasan :

Dimana :

Piksel yang memiliki nilai adalah support vector.

MENCARI HYPERPLANE YANG OPTIMAL PADA DATA PIKSEL

YANG DIPISAHKAN SECARA LINIER (Bagian 2)

-Setelah diperoleh nilai , maka fungsi klasifikasi pada piksel yang dapat dipisahkan secara linier dapat dirumuskan seperti berikut ini :

(55)

Kedua bidang pembatas, harus diubah sehingga lebih fleksibel dengan menambahkan variabel ξ. Sehingga, menghasilkan batasan baru, yaitu :

Pencarian hyperplane optimal dengan penambahan variabel sering disebut juga sebagai soft margin hyperplane. Dengan demikian, formula pencarian hyperplane optimal dapat berubah menjadi:

Meminimumkan variabel ekuivalen dengan meminimumkan error pada training set

MENCARI HYPERPLANE YANG OPTIMAL PADA DATA PIKSEL

YANG DIPISAHKAN SECARA NON-LINEAR (Bagian 1)

(56)

Selanjutnya, bentuk primal lagrangian pada permasalahan data piksel yang dipisahkan secara linier berubah menjadi :

Pengubahan persamaan primal lagrangian diatas ke dalam bentuk dual lagrangian dilakukan dengan cara yang hampir sama dengan kasus data piksel yang dipisahkan secara linier tetapi bedanya pada rentang nilai adalah 0 ≤ ≤

C

. Sehingga, menghasilkan solusi dari dual lagrangian, yaitu :

MENCARI HYPERPLANE YANG OPTIMAL PADA DATA PIKSEL

YANG DIPISAHKAN SECARA NON-LINEAR (Bagian 2)

-Setelah diperoleh nilai , maka fungsi klasifikasi pada piksel yang dapat dipisahkan secara linier dapat dirumuskan seperti berikut ini :

(57)

Contoh data piksel yang tidak dapat dipisahkan secara linier :

SVM menggunakan kernel trick. Dengan demikian, fungsi klasifikasi pada masalah data piksel yang dipisahkan secara

non-linear

dapat dirumuskan menjadi :

Metode kernel yang digunakan untuk memetakan dari

input space

ke

feature space

pada proses klasifikasi adalah metode kernel

polynomial

. Fungsi kernel

polynomial

memiliki persamaan seperti berikut ini :

dimana adalah

support vector

, adalah data piksel yang diklasifikasikan

MEMETAKAN DATA PIKSEL

DARI INPUT SPACE KE FEATURE SPACE

(58)

-CONTOH PROSES TRAINING SVM

-x

(i,1)

x

(i,2)

x

(i,3)

y

i

α

i

0.09691

0.09691

0.22185

+1

0

0.09691

0.12608

0.22185

+1

5

0.09691

0.09691

0.22185

+1

0

0.12608

0.09691

0.22185

-1

5

0.09691

0.09691

0.22185

+1

0

w

1

= 5 x (+1) x

0.09691

+ 5 x (-1) x

0.12608

=

-0.14585

w

2

= 5 x (+1) x

0.12608

+ 5 x (-1) x

0.09691

=

0.14585

w

3

= 5 x (+1) x

0.22185

+ 5 x (-1) x

0.22185

=

0

b

(1)

= (+1) – {

-0.14585

x 0.09691 +

0.14585

x 0.12608 +

0

x 0.22185} = 0.9957506

b

(2)

= (-1) – {

-0.14585

x 0.12608 +

0.14585

x 0.09691 +

0

x 0.22185} = -0.9957456

2.5216E-06

(59)

IMPLEMENTASI

Ekstraksi Fitur Warna

1 functionfitur=homogeneity(rgb)

2 cform = makecform('srgb2lab');

3 lab = applycform(rgb,cform);

4 nPad = 2;

5 d = (nPad*2+1);

6 padding=uint8(zeros(x+nPad*2,y+nPad*2, z));

7 fori=nPad+1 : x+nPad

8 forj=nPad+1 : y+nPad

9 padding(i,j,:)=lab(i-nPad,j-nPad,:);

10 end 11 End

12 fori=nPad+1 : x+nPad

13 forj=nPad+1 : y+nPad

14 localWindow = uint32( padding(i-nPad:i+nPad,j-nPad:j+nPad,:) );

15 rata=sum(sum(localWindow(:,:,:)))/(d^2); 16 form=1:d 17 forn=1:d 18 sumV(1)=sumV(1)+(localWindow(m,n,1) - rata(1)) ^2; 19 sumV(2)=sumV(2)+(localWindow(m,n,2) - rata(2)) ^2; 20 sumV(3)=sumV(3)+(localWindow(m,n,3) - rata(3)) ^2; 21 end 22 end 23 stDv(i-nPad,j-nPad,1)= sqrt(sumV(1)/(d^2)); 24 stDv(i-nPad,j-nPad,2) = sqrt(sumV(2)/(d^2)); 25 stDv(i-nPad,j-nPad,3) = sqrt(sumV(3)/(d^2)); 26 end 27 end

(60)

IMPLEMENTASI

Ekstraksi Fitur Tekstur

1 function newMatrix = GaborfilterBaru(image)

2 image = 0.2989*R + 0.5866*G + 0.114*B;

3 scale = [0.5 , 1.0 , 2.0];

4 orientation =[0 , 1/4*pi , 1/2*pi , 3/4*pi];

5 for m=1: K 6 for n=1: L 7 teta = (orientation(n)*pi)/L; 8 Xbar=a^((scale(m)))*(x*cos(teta)+y*sin( teta)); 9 Ybar = a^(-(scale(m)))*(x*-sin(teta) + y*cos(teta)); 10 GaussianReal=(1/(2*pi*stdx*stdy))*exp(-0.5*((Xbar^2/stdx^2)+ (Ybar^2/stdy^2))); 11 real = cos(W*Xbar); 12 GaborReal = real*GaussianReal; 13 GaussianImag=(1/(stdx*stdy))*exp(-0.5*((Xbar^2/stdx^2)+ (Ybar^2/stdy^2))) 14 imag = sin(W*Xbar); 15 GaborImag = imag.*GaussianImag; 16 gReal = a^(-(scale(m)))*GaborReal; 17 gImag = a^(-(scale(m)))*GaborImag; 18 WReal=conv2(double(image),gReal,'same' ); 19 WImag=conv2(double(image),gImag,'same' );

20 for i=1: xImage

21 for j=1 :yImage 22 magnitude=abs(sqrt((WReal(i,j)^2 + WImag(i,j)^2))) ; 23 if(magnitude > newMatrix(i,j)) 24 newMatrix(i,j) = magnitude; 25 end 26 end 27 end 28 end 29 end

(61)

IMPLEMENTASI

Clustering Piksel

1 function [trainLABM,testLABM] = fcmtes(fitur, magnitudeMatrix) 2 for x=1:xSize 3 for y=1:ySize 4 matDataset(counter,1) = counter; 5 matDataset(counter,2:4)=fitur(x,y,1:3); 6 matDataset(counter,5)=magnitudeMatrix(x,y); 7 counter = counter+1; 8 end 9 end 10 [center,U,objFcn] = fcm(matDataset,3); 11 maxU = max(U);

12 cluster1 = find(U(1,:) == maxU);

13 cluster2 = find(U(2,:) == maxU);

14 cluster3 = find(U(3,:) == maxU);

15 sumCluster1 = length(cluster1); 16 sumCluster2 = length(cluster2); 17 sumCluster3 = length(cluster3); 18 ceilDiv1 = ceil(sumCluster1/10); 19 ceilDiv2 = ceil(sumCluster2/10); 20 ceilDiv3 = ceil(sumCluster3/10); 21 for i = 1: sumCluster1 22 poscluster1(1,i) = cluster1(1,i); 23 poscluster1(2,i) = U(1,i); 24 end 25 for j = 1 :sumCluster2 26 poscluster2(1,j) = cluster2(1,j); 27 poscluster2(2,j) = U(2,j); 28 end 29 for k = 1 :sumCluster3 30 poscluster3(1,k) = cluster3(1,k); 31 poscluster3(2,k) = U(3,k); 32 end 33 sortpos1 = sortrows(poscluster1,2); 34 sortpos2 = sortrows(poscluster2,2); 35 sortpos3 = sortrows(poscluster3,2); 36 bigtrain1 = sortpos1(sumCluster1-ceilDiv1+1:sumCluster1, :); 37 bigtrain2 = sortpos2(sumCluster2-ceilDiv2+1:sumCluster2, :); 38 bigtrain3 = sortpos3(sumCluster3-ceilDiv3+1:sumCluster3, :); 39 trainingset= [bigtrain1; bigtrain2;bigtrain3]; 40 testingset1 = sortpos1(1:sumCluster1-ceilDiv1, :); 41 testingset2 = sortpos2(1:sumCluster2-ceilDiv2, :); 42 testingset3 = sortpos3(1:sumCluster3-ceilDiv3, :);

43 testset = [testingset1 ; testingset2; testingset3];

(62)

IMPLEMENTASI

Training Hyperplane SVM

1 function [nsv, alpha, b0] = svc(X,Y,ker,C)

2 n = size(X,1);

3 % mengeset toleransi (C) untuk mendeteksi adanya support vector

4 epsilon = svtol(C);

5 % memetakan piksel dari input space ke feature space dengan menggunakan metode kernel polynomial

6 fprintf('Constructing ...\n'); 7 for i=1:n 8 for j=1:n 9 H(i,j)= Y(i)*Y(j)*svkernel(ker,X(i,:),X(j,:)); 10 end 11 end 12 c = -ones(n,1); 13 H = H+1e-10*eye(size(H));

14 % menentukan parameter untuk perhitungan optimasi 15 vlb = zeros(n,1); 16 vub = C*ones(n,1 17 x0 = zeros(n,1); 18 neqcstr = nobias(ker); 19 if neqcstr 20 A = Y';, b = 0; 21 else 22 A = [];, b = []; 23 end

24 % menyelesaikan masalah optimasi untuk mencari hyperplane yang optimal

25 fprintf('Optimising ...\n')

26 st = cputime

27 [alpha lambda how] = qp(H, c, A, b, vlb, vub, x0, neqcstr);

28 fprintf('Execution time: %4.1f seconds\n',cputime - st)

29 fprintf('Status : %s\n',how)

30 w2 = alpha'*H*alpha;

32 fprintf('Margin : %f\n',2/sqrt(w2))

33 fprintf('Sum alpha : %f\n',sum(alpha))

34 % menghitung jumlah support vector

35 svi = find( alpha > epsilon);

36 nsv = length(svi);

37 fprintf('Support Vectors : %d (%3.1f%%)\n',nsv,100*nsv/n);

38 % implisit bias

39 b0 = 0;

40 % eksplisit bias

41 if nobias(ker) ~= 0

42 svii = find( alpha > epsilon & alpha < (C - epsilon));

43 if length(svii) > 0

44 b0 = (1/length(svii))*sum(Y(svii) -H(svii,svi)*alpha(svi).*Y(svii));

45 else

46 fprintf('No support vectors on margin - cannot compute bias.\n');

47 end

48 end

(63)

IMPLEMENTASI

Testing Klasifikasi Piksel dengan SVM

1 function predictedY =

svcoutput(trnX,trnY,tstX,ker,alpha,bias, actfunc)

2 n = size(trnX,1);

3 m = size(tstX,1);

4 % memetakan piksel dari input space ke

feature space dengan menggunakan metode kernel polynomial 5 H = zeros(m,n); 6 for i=1:m 7 for j=1:n 8 H(i,j)= trnY(j)*svkernel(ker,tstX(i,:),tr nX(j,:)); 9 end 10 end

11 % klasifikasi testing set ke dalam kelas edge atau non-edge

12 if (actfunc) 13 % soft classifier 14 predictedY = softmargin(H*alpha + bias); 15 else 16 % hard classifier

17 predictedY = sign(H*alpha + bias);

18 end

(64)

IMPLEMENTASI

Menghitung Tingkat Keberhasilan (Akurasi)

1 tp = 0; 2 fn = 0; 3 tn = 0; 4 fp = 0; 5 for i=1:xImg 6 for j=1:yImg

7 if himage(i,j) == 1 && img(i,j) == 1 8 tp = tp + 1; 9 end 10 end 11 end 12 for i=1:xImg 13 for j=1:yImg

14 if himage(i,j) == 0 && img(i,j)

== 1 15 fp = fp + 1; 16 end 17 end 18 end 19 for i=1:xImg 20 for j=1:yImg

21 if himage(i,j) == 1 && img(i,j)

== 0 22 fn = fn + 1; 23 end 24 end 25 end 26 for i=1:xImg 27 for j=1:yImg

28 if himage(i,j) == 0 && img(i,j)

== 0 29 tn = tn + 1; 30 end 31 end 32 end 33 34 akurasi = (tp+tn)/(tp+tn+fp+fn)*100;

(65)

IMPLEMENTASI

Perhitungan Nilai Alpha dengan Library

Quadratic Programming

1 vlb = zeros(n,1); 2 vub = C*ones(n,1); 3 x0 = zeros(n,1); 4 neqcstr = nobias(ker); 5 if neqcstr 6 A = Y';, b = 0; 7 Else 8 A = [];, b = []; 9 End 10 st = cputime;

11 [alpha lambda how] = qp(H, c, A, b, vlb,

(66)

IMPLEMENTASI

Kernel Polynomial

1 function k = svkernel(ker,u,v) 2 global p1; 3 k = (u*v' + 1)^p1; 4 end

Sehingga, kode dimplementasikan pada training set adalah

1 n = size(X,1); 2 epsilon = svtol(C); 3 H = zeros(n,n); 4 for i=1:n 5 for j=1:n 6 H(i,j)=Y(i)*Y(j)*svkernel(ker,X(i,:),X(j,:)); 7 End 8 End

Gambar

Gambar 1 merupakan citra ground truth dan batasan obyek yang akan  dihitung akurasinya adalah Gambar 2.

Referensi

Dokumen terkait

Kebijakan yang dikeluarkan oleh pemerintah Australia dalam menangani pencari suaka ini diduga melanggar hak asasi manusia karena para pencari suaka yang seharusnya

Antara yang berikut, yang manakah berkaitan dengan hak Yang di-pertuan berdasarkan sistem tersebut. I Bertindak atas nasihat

Indah Kiat Pulp &amp; Paper secara garis besar yaitu awalnya pabrik yang berada di Perawang memproduksi bubur kertas, lalu setelah itu hasilnya dikirim ke pabrik yang berada di

Dalam kedudukannya sebagai pengelola barang, dan dihubungkan dengan amanat pasal 6 ayat (2) Undang-undang nomor 17 tahun 2003, Gubernur juga berwenang mengajukan usul untuk

Dengan memanfaatkan perubahan frekuensi dan amplitudo pada gelombang osilasi akibat pengurangan nilai impedansi belitan, tes respon osilasi mendeteksi terjadinya turn fault

Performa klasterisasi yang dihasilkan oleh metode KD-Tree K- Means Clustering pada data set non dokumen yaitu Image Segmentation dan Pen-Based Recognition of Handwritten Digits

Hasil penelitian ini sesuai dengan penelitian Putra (2011) maka dapat disimpulkan tidak terdapat hubungan antara jenis lantai dengan kejadian TB Paru dan responden

Secara umum jenis-jenis yang terkait penempatan iklan dibagi menjadi empat yaitu klasifikasi iklan yang bersisi pengelompokkan iklan berdasarkan jenis iklan yang akan