Wahyudi_Setiawan

download Wahyudi_Setiawan

of 52

description

Wahyudi_Setiawan

Transcript of Wahyudi_Setiawan

  • 5

    SISTEM DETEKSI RETINOPATI DIABETIK MENGGUNAKAN SUPPORT VECTOR MACHINE

    Tesis untuk memenuhi sebagian persyaratan

    mencapai derajat Sarjana S-2 Program Studi Magister Sistem Informasi

    Oleh:

    Wahyudi Setiawan 24010410400060

    PROGRAM PASCA SARJANA UNIVERSITAS DIPONEGORO

    SEMARANG 2012

  • 6

    ABSTRAK

    Retinopati Diabetik merupakan salah satu penyakit komplikasi dari Diabetes Melitus. Penyakit ini dapat menyebabkan kebutaan menetap jika tidak ditangani sedini mungkin. Sistem yang dibangun pada tesis ini adalah deteksi tingkat retinopati diabetik dari citra yang didapatkan dari foto fundus. Terdapat tiga tahap utama untuk menyelesaikan permasalahan yaitu prapengolahan, ekstraksi ciri dan klasifikasi. Metode prapengolahan yang digunakan diantaranya citra kanal hijau, Filter Gaussian, Contrast Limited Adaptive Histogram Equalization dan Masking. Metode Two Dimensional Linear Discriminant Analysis (2DLDA) digunakan sebagai ekstraksi ciri. Support Vector Machine (SVM) dan k-Nearest Neighbour (kNN) digunakan sebagai metode klasifikasi . Hasil pengujian dilakukan dengan mengambil dataset MESSIDOR dengan sejumlah citra yang bervariasi untuk tahap pelatihan, sisanya digunakan untuk tahap pengujian. Hasil pengujian menunjukkan akurasi optimal sebesar 84% untuk metode 2DLDA-SVM dan 80% untuk metode 2DLDA-kNN.

    Kata Kunci : Retinopati Diabetik, Two Dimensional Linear Discriminant Analysis, Support Vector Machine, k-Nearest Neighbour, MESSIDOR.

  • 7

    ABSTRACT

    Diabetic Retinopathy is a complication of Diabetes Melitus. It can be a blindness if untreated settled as early as possible. System created in this thesis is the detection of diabetic retinopathy level of the image obtained from fundus photographs. There are three main steps to resolve the problems, preprocessing, feature extraction and classification. Preprocessing methods that used in this system are Grayscale Green Channel, Gaussian Filter, Contrast Limited Adaptive Histogram Equalization and Masking. Two Dimensional Linear Discriminant Analysis (2DLDA) is used for feature extraction. Support Vector Machine (SVM) and k-Nearest Neighbour (kNN) are used for classification. The test result performed by taking a dataset of MESSIDOR with number of images that vary for the training phase, otherwise is used for the testing phase. Test result show the optimal accuracy are 84% for 2DLDA-SVM and 80% for 2DLDA-kNN.

    Keywords : Diabetic Retinopathy, Support Vector Machine, Two Dimensional Linear Discriminant Analysis, k-Nearest Neighbour, MESSIDOR.

  • 8

    BAB I PENDAHULUAN

    1.1 Latar Belakang

    Penelitian dan pengembangan aplikasi dengan berbagai metode dalam pencitraan medis telah berkembang sangat luas. Salah satu penelitian dalam pencitraan medis adalah klasifikasi citra retina untuk deteksi penyakit. Pada citra retina dapat dianalisa untuk mendapatkan informasi penting misalnya informasi tentang tingkat resiko penyakit retinopati diabetik.

    Retinopati diabetik merupakan salah satu komplikasi Diabetes Melitus (DM) pada mata yang paling banyak menyebabkan kebutaan menetap, terjadinya seiring dengan lamanya menderita DM. Semakin lama DM diderita semakin tinggi kemungkinan terjadinya retinopati. Retinopati diabetik ditandai dengan adanya gangguan pembuluh darah di retina berupa kebocoran, sumbatan dan pada tahap selanjutnya timbul pembuluh darah tidak normal yang sangat rapuh dan mudah menimbulkan pendarahan dengan segala akibat yang merugikan (Siahaan, 2010).

    Retinopati diabetik tidak bisa dideteksi langsung secara kasat mata karena tanda-tandanya berada di bagian syaraf retina. Tanda-tanda penyakit ini hanya dapat dilihat menggunakan foto fundus tetapi memerlukan waktu yang relatif lama untuk mengetahui hasilnya. Permasalahan tersebut diselesaikan dengan membangun sebuah sistem yang dapat mendeteksi tingkat resiko retinopati diabetik dengan waktu yang relatif cepat.

    Sistem deteksi yang dibangun memerlukan sebuah model komputasi untuk mengubah piksel citra retina menjadi suatu ciri retina yang terindikasi retinopati diabetik. Tiga permasalahan utama pada sistem, yaitu prapengolahan, ekstraksi ciri dan teknik klasifikasi.

    Prapengolahan berfungsi mempersiapkan citra agar dapat menghasilkan ciri yang lebih baik pada tahap berikutnya. Pada tahap ini sinyal informasi ditonjolkan dan sinyal pengganggu (derau) diminimalisasi (Putra, 2010).

    1

  • 9

    Prapengolahan menggunakan metode citra kanal hijau, Filter Gaussian, Contrast Limited Adaptive Histogram Equalization (CLAHE), dan Masking.

    Ekstraksi ciri adalah tahapan untuk memunculkan ciri dan mereduksi dimensi citra dari dimensi tinggi ke dimensi lebih rendah. Teknik ekstraksi ciri yang handal merupakan kunci utama dalam penyelesaian masalah pengenalan pola (Purnomo dan Muntasa, 2010). Metode yang sering digunakan untuk ekstraksi ciri diantaranya adalah Analisa Komponen Utama (PCA). Metode PCA bertujuan untuk memproyeksikan data pada arah yang memiliki variasi terbesar, yang ditunjukkan oleh vektor eigen yang bersesuaian dengan nilai eigen terbesar dari matrik kovarian. Disamping itu PCA juga bertujuan untuk mereduksi dimensi dengan melakukan transformasi linier dari suatu ruang berdimensi tinggi ke dalam ruang berdimensi rendah. Kelemahan dari metode PCA adalah kurang optimal dalam pemisahan antar kelas (Yang et al, 2004) .

    Metode ekstraksi ciri selanjutnya adalah Analisa Diskriminan Linier (LDA). Metode ini mencoba menemukan subruang linear yang memaksimalkan perpisahan dua kelas pola menurut Fisher Criterion JF. Hal ini dapat diperoleh dengan meminimalkan jarak matrik sebaran antar kelas Sw dan memaksimalkan jarak matrik sebaran dalam kelas Sb secara simultan sehingga menghasilkan Fisher Criterion JF yang maksimal. Diskriminan Fisher Linier akan menemukan subruang dimana kelas-kelas saling terpisah linier dengan memaksimalkan Fisher Criterion JF. Jika dimensi data jauh lebih tinggi daripada jumlah data pelatihan akan menyebabkan Sw menjadi singular. Hal tersebut merupakan kelemahan dari metode LDA (Belhumeur et al, 1997)

    .

    Metode Two Dimensional Linear Discriminant Analysis (2DLDA) menilai secara langsung matrik sebaran antar kelas dari matrik citra tanpa transformasi citra ke vektor. 2DLDA mengatasi singular problem dalam matrik sebaran antar kelas (Gao et al, 2008). 2DLDA menggunakan fisher criterion untuk menemukan proyeksi diskriminatif yang optimal. (Kong et al, 2005).

    Dalam pengenalan sebuah citra, proses klasifikasi sama pentingnya dengan proses ekstraksi ciri. Setelah ciri-ciri penting data atau citra retina dihasilkan pada proses ekstraksi ciri, ciri-ciri tersebut nantinya akan digunakan

  • 10

    untuk proses klasifikasi. Metode klasifikasi yang digunakan adalah pengklasifikasi Support Vector Machine (SVM). Pengklasifikasi SVM menggunakan sebuah fungsi atau hyperplane untuk memisahkan dua buah kelas pola. Berbeda dengan jaringan syaraf tiruan yang hanya mencari hyperplane saja, SVM berusaha mencari hyperplane yang optimal dimana dua kelas pola dapat dipisahkan dengan maksimal (Nugroho dkk, 2003).

    1.2 Perumusan Masalah

    Berdasarkan latar belakang yang telah diuraikan sebelumnya maka masalah dari penelitian ini adalah bagaimana mengimplementasikan beberapa metode prapengolahan, ekstraksi ciri 2DLDA dan klasifikasi SVM dalam sistem deteksi retinopati diabetik.

    1.3 Batasan Masalah

    Batasan ruang lingkup permasalahan dari penelitian ini adalah sebagai berikut : 1. Data yang digunakan adalah dataset citra retina MESSIDOR. 2. Dataset terdiri dari 5 kelas, masing-masing kelas terdiri dari 25 citra. 3. Ukuran piksel dari tiap citra yang akan diujicobakan adalah sama yaitu 92x112

    piksel.

    4. Citra retina berformat BMP. 5. Verifikasi dilakukan dengan membandingkan hasil klasifikasi tahapan

    pengujian dengan data hasil diagnosis yang telah ada pada dokumen MESSIDOR.

    1.4 Keaslian Penelitian

    Beberapa kegiatan dan perkembangan mengenai penelitian dengan topik sejenis diantaranya penelitian yang membahas tentang deteksi hard execudates retinopati diabetik dengan metode segmentasi contextual clustering dan klasifikasi fuzzy art neural network. Penelitian ini menggunakan data 25 citra. Dari hasil penelitian didapatkan sensitivitas 93,4% , spesifisitas 80% (Jayakumari dan Santhanam, 2007).

  • 11

    Penelitian selanjutnya membahas tentang deteksi otomatis salah satu penyakit retinopati diabetik yaitu exudates dengan menggunakan klasifikasi FCM clustering , data terdiri dari 40 citra retina dari 32 pasien yang diambil dari data Thammasat University Hospital dengan format JPEG, ukuran citra 500752 piksel. Dari hasil penelitian didapatkan sensitivitas 92,18% dan spesifisitas 91,52% (Sopharak et al, 2009).

    Penelitian selanjutnya membahas tentang deteksi retinopati diabetik dengan menggunakan model segmentasi, ekstraksi ciri dan klasifikasi SVM. Data yang digunakan dari basis data MESSIDOR berjumlah 81 citra fundus. Dari hasil penelitian didapatkan sensitivitas 97,5% dan spesifisitas 100% (Zohra dan Mohamed, 2009).

    Beberapa penelitian tersebut, belum ada yang menunjukkan tingkat sensitivitas hingga 100%. Perbandingan metode sulit dilakukan karena beberapa penelitian menggunakan lingkungan pengujian yang berbeda, misalnya penggunaan data citra fundus yang tidak sama. Data pelatihan dan pengujian seharusnya menggunakan data yang berbeda sehingga dapat diketahui keakuratan sistem yang dibuat.

    Penelitian ini mengintegrasikan beberapa tahap dalam pengenalan pola yaitu pra-pengolahan, ekstraksi ciri menggunakan 2DLDA dan klasifikasi SVM.

    1.5 Manfaat Penelitian

    Penelitian ini memberikan kontribusi bagi pengembangan sistem diagnosa retinopati diabetik secara otomatis, sehingga dapat membantu dokter spesialis untuk mendiagnosa dan menganalisa penyakit tersebut. Pada ranah pengolahan citra, penelitian ini bermanfaat untuk mengembangkan aplikasi klasifikasi Support Vector Machine dalam bidang medis.

    1.6 Tujuan Penelitian Tujuan pada penelitian ini adalah merancang bangun perangkat lunak

    yang mampu melakukan klasifikasi tingkat resiko retinopati diabetik secara otomatis.

  • 12

    BAB II TINJAUAN PUSTAKA

    2.1 Tinjauan Pustaka Beberapa literatur tentang deteksi retinopati diabetik diantaranya deteksi

    retinopati diabetik menggunakan metode prapengolahan dengan utilize local contrast enhancement dan standarisasi warna. Deteksi abnormalitas menggunakan algoritma region growing, adaptive intensity thresholding dan operator edge enhancement. Metode klasifikasi dilakukan dengan model Jaringan Syaraf Tiruan, dataset yang digunakan berasal dari 1273 pasien untuk tahap pelatihan dan pengujian. Hasil pengujian menunjukkan sensitifitas 94,8% dan spesifisitas 52,8% (Usher et al, 2003).

    Penelitian selanjutnya adalah deteksi mikoanerisma pada citra fundus menggunakan top-hat transformation dan klasifikasi candidate lesion berdasarkan pada bentuk lesion dan warna. Hasil pengujian didapatkan sensitivitas 90% , spesifisitas 87,5% , namun dari 18 citra yang digunakan tahap pelatihan dan pengujian adalah citra yang sama (Raman et al, 2004).

    Penelitian selanjutnya adalah mendiagnosa retinopati diabetik dengan tahapan prapengolahan, segmentasi stage clusters citra kedalam dua kelas yang berbeda. Metode untuk diagnosa Red Spots, Bleeding dan deteksi Vein-Artery Crossover Points, menggunakan informasi warna, bentuk, ukuran dan lebar obyek. Data yang diuji terdiri dari 25 citra fundus dan didapatkan sensitivitas 98%, spesifisitas 61% (Iqbal et al, 2006).

    Penelitian selanjutnya adalah melakukan segmentasi retina untuk identifikasi retinopati diabetik proliferatif. Dataset terdiri dari 27 citra retina. Segmentasi menggunakan Gabor wavelet transform dan klasifikasi menggunakan ciri area, perimeter, dan lima morfologi ciri berdasar pada Gaussian wavelet. Metode wavelet mampu melakukan segmentasi pembuluh darah di retina dan mengklasifikasi citra retinopati proliferatif atau tidak (Jelinek et al, 2007).

    5

  • 13

    Penelitian selanjutnya adalah mendeteksi hard exudates dengan contextual clustering dan fuzzy art neural network, menggunakan dataset 25 citra. Hasil pengujian menunjukkan tingkat sensitivitas 93,4%, spesifisitas 80% (Jayakumari dan Santhanam, 2007).

    Penelitian selanjutnya adalah mendeteksi exudates dengan menggunakan klasifikasi fuzzy C means clustering , dataset terdiri dari 40 citra retina dari 32 pasien, citra diambil dari Thammasat University Hospital, format jpeg . Ukuran citra 500752 piksel. Dari hasil penelitian didapatkan tingkat sensitivitas 92,18 %, spesifisitas 91,52 % (Sopharak et al, 2009).

    Penelitian selanjutnya adalah melakukan deteksi retinopati diabetik dengan menggunakan model segmentasi, ekstraksi ciri dan klasifikasi SVM. Data yang digunakan dari dataset MESSIDOR berjumlah 81 citra fundus. Dari hasil penelitian didapatkan sensitivitas 97,5% dan spesifisitas 100% (Zohra dan Mohamed, 2009).

    Penelitian selanjutnya adalah melakukan segmentasi citra retina digital retinopati diabetik untuk membantu pendeteksian mikroaneurisma. Pada penelitian ini dilakukan kombinasi terhadap metode-metode seperti variasi skala keabuan (skala keabuan biasa, kanal merah, kanal hijau, kanal biru), filter gaussian, histogram modifikasi (ekualisasi histogram dan ekualisasi adaptif Histogram), binerisasi (iterasi dan pengambangan ganda), filter median dan pelabelan komponen terhubung. Pengujian masing-masing kombinasi dilakukan pada citra retina yang berasal dari dataset DIARETDB1. Dihitung akurasi dengan membandingkan hasil penandaan dokter antara citra asli dan citra hasil segmentasi. Hasilnya kombinasi metode dengan kanal hijau, filter gaussian, adaptif ekualisasi histogram 9 x 9, ambang ganda dengan t1=70 dan t2=90, dan filter median memberikan akurasi sistem yang paling tinggi yaitu sebesar 94% (Putra dan Suarjana, 2010).

  • 14

    2.2 Landasan Teori

    2.2.1 Pengenalan Pola

    Pengenalan pola adalah suatu ilmu untuk mengklasifikasikan atau menggambarkan sesuatu berdasarkan pengukuran kuantitatif citra atau sifat dari obyek. Pola sendiri merupakan suatu entitas yang terdefinisi, dapat diidentifikasi dan diberi nama. Pola dapat berupa kumpulan hasil pengukuran atau pemantauan dan dapat dinyatakan dalam notasi vektor atau matrik (Putra, 2009). Struktur sistem pengenalan pola terdapat pada Gambar 2.1, terdiri dari akuisisi citra, pra pengolahan, ekstraksi ciri dan klasifikasi.

    Gambar 2.1. Struktur sistem pengenalan pola

    2.2.2 Akuisisi citra

    Akuisisi citra merupakan cara untuk mendapatkan citra yang akan digunakan dalam proses pengolahan citra. Dalam penelitian ini citra retina yang akan dilatih dan diuji berasal dari foto kamera fundus.

    2.2.3 Pra-pengolahan

    Pra-pengolahan bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter-parameter citra. Dalam penelitian ini, proses pra

    pengolahan terdiri dari citra kanal hijau, filter Gaussian, Contrast Limited Adaptive Histogram Equalization (CLAHE) dan Masking.

    2.2.3.1 Skala Keabuan

    Citra retina yang diterima adalah citra berwarna, sehingga terlebih dahulu perlu dilakukan proses skala keabuan untuk mendapatkan citra dengan aras keabuan. Jumlah warna pada citra keabuan adalah 256, karena citra keabuan jumlah bitnya adalah 8, sehingga jumlah warnanya adalah 28=256, nilainya berada

    Akuisisi citra

    Pra pengolahan

    Ekstraksi ciri

    Klasifikasi

  • 15

    pada jangkauan 0-255. Untuk mendapatkan citra keabuan digunakan persamaan (1).

    BGRyxI ...),( ++= (1)

    dimana I (x,y) adalah level keabuan pada suatu koordinat yang diperoleh dengan mengatur komposisi warna R (merah), G (hijau), B (biru) yang ditunjukkan oleh nilai parameter , dan . Secara umum nilai , dan adalah 0.33. Nilai yang lain juga dapat diberikan untuk ketiga parameter tersebut asalkan total keseluruhan nilainya adalah 1 (Putra, 2009). Citra skala keabuan memiliki 4 jenis variasi yaitu skala keabuan biasa, kanal merah, kanal hijau dan kanal biru. Pada penelitian ini digunakan citra kanal hijau. Citra kanal hijau memiliki refleksi cahaya paling baik sehingga dapat dihasilkan informasi yang signifikan tentang pembuluh darah dan struktur retina lain (Kolar dan Harabis, 2009).

    2.2.3.2 Filter Gaussian

    Filter Gaussian adalah salah satu filter linier dengan nilai pembobotan untuk setiap anggotanya dipilih berdasarkan bentuk fungsi Gaussian. Filter ini sangat baik untuk menghilangkan derau yang bersifat sebaran normal. Secara alami derau juga memiliki sebaran Gaussian, sehingga secara teoritis akan menjadi netral jika dilawan dengan fungsi lain yang juga memiliki fungsi Gaussian, hal ini disebut sebagai zero mean. Zero mean dari fungsi Gaussian dengan nilai pembobotan 2 dimensi ditunjukkan pada persamaan (2) (Ahmad, 2005).

    (,)

    = e

    (2)

    dengan k = konstanta normalisasi dan menyatakan standar deviasi dari distribusi. Fungsi diatas diasumsikan memiliki zero mean (pusat distribusi pada garis x=0). Semakin besar nilai maka kurva distribusi Gaussian semakin

  • 16

    melebar dan puncaknya menurun. Bentuk 2-D dari fungsi gaussian ditunjukkan pada persamaan (3).

    (, ) = () (3)

    Tabel 2.1. Tapis distribusi Gaussian 2-D dengan ukuran tapis 5 x 5 (x,y) -2 -1 0 1 2 -2 0,0029 0,0131 0,0215 0,0131 0,0029 1 0,0131 0,0585 0,0965 0,0585 0,0131 0 0,0215 0,0965 0,1592 0,0965 0,0215 1 0,0131 0,0585 0,0965 0,0585 0,0131 2 0,0029 0,0131 0,0215 0,0131 0,0029

    2.2.3.3 Ekualisasi Histogram

    Histogram digunakan untuk mengetahui informasi frekuensi pemakaian tingkat keabuan dalam suatu citra. Ekualisasi histogram merupakan metode untuk memperbaiki kualitas citra dengan mengubah sebaran tingkat keabuan citra. Hal ini dimaksudkan agar sebaran tingkat keabuan lebih merata dibandingkan dengan citra aslinya (Gonzales dan Woods, 2002). Distribusi ulang terhadap histogram awal dilakukan dengan memetakan setiap nilai piksel pada histogram awal menjadi nilai piksel baru dengan persamaan (4).

    ( )

    = 1)(*1,0max)(

    NgcLroundgn

    (4)

    dengan n(g) adalah nilai piksel baru, N menyatakan banyaknya piksel pada citra (bila citra berukuran 8 x 8, maka N adalah 64), g menyatakan nilai level keabuan awal yang nilainya dari 1 L-1 (L menyatakan nilai level keabuan maksimum),

  • 17

    sedangkan c(g) menyatakan banyaknya piksel yang memiliki nilai sama dengan g atau kurang, yang secara matematis dapat dinyatakan pada persamaan (5).

    =

    ==

    g

    iLgihgc

    01,...,3,2,1),()(

    (5)

    dengan h(i) menyatakan histogram awal.

    2.2.3.4 Contrast-Limited Adaptive Histogram Equalization (CLAHE)

    CLAHE dapat digunakan sebagai alternatif pengganti ekualisasi histogram. Ekualisasi histogram bekerja pada seluruh citra, sedangkan CLAHE beroperasi pada daerah kecil di citra yang disebut blok. Setiap blok ditingkatkan nilai kontrasnya, sehingga histogram dari wilayah sekitar cocok untuk histogram tertentu. Setelah melakukan pemerataan, CLAHE menggabungkan blok tetangga menggunakan interpolasi bilinier untuk menghilangkan batas-batas artifisial. CLAHE juga dapat digunakan untuk menghindari derau yang ada pada citra dengan membatasi kontras pada daerah homogen. Ilustrasi pada Gambar 2.2 membandingkan antara ekualisasi histogram dan CLAHE dari citra yang sama. CLAHE menghasilkan output citra yang memiliki nilai merata di seluruh bagian citra (Zuiderveld, 1994).

    (a) (b)

    Gambar 2.2 Histogram hasil Ekualisasi Histogram(a),Histogram hasil CLAHE (b) dari citra pout.tif

  • 18

    2.2.3.5 Masking

    Citra hasil histogram dilakukan masking agar nantinya latar belakang (background) berwarna hitam pada citra retina, tidak dihitung sebagai obyek (Putra dan Suarjana, 2010).

    2.2.4 Ekstraksi ciri

    2.2.4.1 Analisa Diskriminan Linier (LDA)

    LDA bekerja berdasarkan analisa matrik penyebaran yang bertujuan menemukan suatu proyeksi optimal sehingga dapat memproyeksikan data input pada ruang dengan dimensi yang lebih kecil dimana semua pola dapat dipisahkan semaksimal mungkin. Karenanya untuk tujuan pemisahan tersebut maka LDA akan mencoba untuk memaksimalkan penyebaran data-data input diantara kelas-kelas yang berbeda dan sekaligus juga meminimalkan penyebaran input pada kelas yang sama. Perbedaan antar kelas direpresentasikan oleh matrik Sb dan perbedaan dalam kelas direpresentasikan oleh matrik Sw.

    Sekelompok n data pelatihan (x1, x2, , xm) yang memiliki nilai-nilai didalam ruang dimensi N (N-dimensional space). k adalah jumlah kelas dan ni adalah jumlah data pelatihan pada kelas ke-i, dimana i = 1, , k. Maka matrik Sb dan matrik Sw dibentuk sebagai berikut (Liang, 2008) :

    Sb==

    k

    i

    Tiii mmmmn

    100 ))(( (6)

    Sw== =

    k

    i

    n

    j

    Ti

    jii

    ji

    i

    mxmx1 1

    )()( ))(( (7)

    dimana )( jix adalah rata-rata kelas ke-i,dan m = n

    1

    =

    k

    i x ix

    1adalah rata-rata

    global. Metode LDA berusaha untuk menemukan proyeksi matrik yang

    memaksimumkan rasio antara jarak antar kelas dengan jarak dalam kelas dalam ruang proyeksi:

  • 19

    J1(W) = max )()(

    WSWtraceWSWtrace

    WT

    bT

    (8)

    dimana W adalah matrik N x q yang kolom-kolomnya terdiri dari q vektor-vektor diskriminan.

    Persamaan (8) memiliki semantik yang jelas untuk pembilang dan penyebut. Trace(WTSbW) mengukur pemisahan antar kelas-kelas dalam ruang proyeksi dan trace (WTSwW) mengukur kedekatan dari vektor-vektor didalam kelas pada ruang proyeksi.

    Sebagai pengganti dari persamaan (8), beberapa peneliti sering mencari vektor-vektor yang paling diskriminan dengan menggunakan patokan LDA yang klasik sebagai berikut :

    J2(W) = max trace((WTSwW)-1(WTSbW)) (9)

    Untuk menemukan diskriminan matrik W dengan mendiagonalkan secara simultan antara matrik Sb dan Sw (WTSwW=I, WTSbW= ,dimana I adalah matrik identitas dan adalah matrik diagonal yang elemen-elemennya adalah terurut turun). Persamaan (8) diselesaikan dengan menyamaratakan masalah nilai eigen SbWi=iSwWi, dimana adalah vektor eigen yang berhubungan dengan i nilai eigen terbesar i dan Wi merupakan i kolom dari matrik W.

    Berikut ini algoritma dari LDA (Damayanti dkk, 2010): 1. Input adalah matrik x 2. Menghitung rata-rata dalam kelas (mi) dan rata-rata keseluruhan kelas (m). 3. Menghitung matrik sebaran antar kelas. Matrik sebaran antar kelas (Sb) adalah

    jarak matrik antar kelas, sesuai dengan persamaan (6). 4. Menghitung matrik sebaran dalam kelas. Matrik sebaran dalam kelas (Sw)

    adalah jarak matrik dalam kelas yang sama, sesuai dengan persamaan (7). 5. Mencari vektor eigen (V) dan nilai eigen ( )

  • 20

    VSVS wb =

    (10)

    6. Mengurutkan vektor eigen sesuai dengan urutan nilai yang ada pada nilai eigen dari besar ke kecil. Selanjutnya untuk proses proyeksi menggunakan k-1 eigenvector (dimana k adalah jumlah kelas). Vector ini disebut Fisher Basis Vector.

    7. Memproyeksikan seluruh citra asal (bukan centered image) ke fisher basis vector dengan menghitung dot product dari citra asal ke tiap-tiap fisher basis vector.

    (11)

    2.2.4.2 Two-Dimensional Linear Discriminant Analysis (2DLDA)

    2DLDA adalah pengembangan dari metode LDA. Pada LDA matrik 2D terlebih dahulu ditransformasikan kedalam bentuk citra vektor satu dimensi, sedangkan pada 2DLDA atau disebut teknik proyeksi citra secara langsung, matrik citra 2D tidak perlu ditransformasikan kedalam bentuk citra vektor namun matrik sebaran citranya dapat dibentuk langsung dengan menggunakan matrik citra aslinya.

    {A1,.,An} adalah n matrik citra, dimana Ai (i=1,,k) adalah r x c matrik. Mi (i=1,,k) adalah rata-rata citra pelatihan dari kelas ke i dan M adalah rata-rata citra dari semua data pelatihan. 1l x 2l

    adalah ruang dimensi

    (dimensional space) L R, dimana menunjukkan tensor product, L menjangkau {u1,,u 1l } dan R menjangkau {v1,..,v 2l }, sehingga didefinisikan dua matrik L = [u1,,u 1l ] dan R = [v1,..,v 2l ] (Liang Z, 2008).

    Metode ekstraksi ciri adalah untuk menemukan L dan R sehingga ruang citra asli Ai dirubah ke dalam ruang citra dimensi rendah menjadi Bi=LTAiR. Ruang dimensi rendah diperoleh dengan transformasi linier L dan R, jarak antar kelas Db dan jarak dalam kelas Dw didefinisikan sebagai berikut :

    iTi xVx =~

  • 21

    Db = RMMLnk

    ii

    Ti )(

    1

    =

    2F (12)

    Dw = 2

    1)(

    Fi

    k

    i x

    T RMXLi

    =

    (13)

    dimana F merupakan Frobenius norm.

    Meninjau bahwa 2F

    A = Ptrace(ATA) = trace(AAT) untuk matrik A.

    Sedemikian sehingga persamaan (12) dan (13) dapat direpresentasikan lebih lanjut.

    Db = trace( ))()(1

    LMMRRMMLn TiT

    k

    ii

    Ti

    =

    (14)

    Dw = trace( ).)()(1

    LMXRRMXL TiT

    i

    k

    i x

    T

    i

    =

    (15)

    Sama halnya dengan LDA, metode 2DLDA adalah untuk menemukan matrik L dan R, sedemikian hingga struktur kelas dari ruang orisinil tetap didalam ruang proyeksi, sehingga patokan (criterion) dapat didefinisikan sebagai:

    J3(L,R) = max W

    b

    DD

    . (16)

    Hal tersebut jelas bahwa persamaan (16) terdiri dari matrik transformasi L dan R. Matrik transformasi optimal L dan R dapat diperoleh dengan memaksimalkan Db dan meminimumkan Dw. Bagaimanapun, sangat sulit untuk menghitung L dan R yang optimal secara simultan. Dua fungsi optimasi dapat didefinisikan untuk memperoleh L dan R. Untuk sebuah R yang pasti, L dapat diperoleh dengan menyelesaikan fungsi optimasi sebagai berikut :

    J4(L) = maxtrace((LTS RW L)-1(LTS Rb L)) (17)

  • 22

    dimana

    S Rb = TiT

    k

    iii MMRRMMn )()(

    1

    =

    (18)

    S RW = ,)()(1

    Ti

    Ti

    k

    i xMXRRMX

    i

    =

    (19)

    Dengan catatan bahwa ukuran matrik RWS dan S Rb adalah r x r yang lebih

    kecil daripada ukuran matrik Sw dan Sb pada LDA klasik. Untuk sebuah L yang pasti, R dapat diperoleh dengan menyelesaikan

    fungsi optimasi sebagai berikut :

    J5(R) = maxtrace((RTS LW R)-1(RTS Lb R)), (20) dimana

    S Lb = )()(1

    MMLLMMn iTT

    k

    iii

    =

    (21)

    dan

    S LW = ).()(1

    iTT

    i

    k

    i xMXLLMX

    i

    =

    (22)

    2.2.5 Support Vector Machine (SVM)

    Support Vector Machine (SVM) dikembangkan oleh Boser, Guyon, Vapnik. Pertama kali dipresentasikan pada tahun 1992 di Annual Workshop on Computational Learning Theory. Konsep dasar SVM sebenarnya merupakan kombinasi harmonis dari teori-teori komputasi yang telah ada puluhan tahun sebelumnya, seperti margin hyperplane (Duda dan Hart tahun 1973, Cover tahun 1965,Vapnik tahun 1964, dan sebagainya.), kernel diperkenalkan oleh Aronszajn tahun 1950, dan demikian juga dengan konsep-konsep pendukung yang lain.

  • 23

    Berbeda dengan strategi jaringan syaraf tiruan yang berusaha mencari hyperplane pemisah antar kelas, SVM berusaha menemukan hyperplane yang terbaik pada input space. Prinsip dasar SVM adalah pengklasifikasi linier, dan selanjutnya dikembangkan agar dapat bekerja pada permasalahan nonlinier. dengan memasukkan konsep kernel trick pada ruang kerja berdimensi tinggi. Perkembangan ini memberikan rangsangan minat penelitian di bidang pengenalan pola untuk investigasi potensi kemampuan SVM secara teoritis maupun dari segi aplikasi. Dewasa ini SVM telah berhasil diaplikasikan dalam problem dunia nyata dan secara umum memberikan solusi yang lebih baik dibandingkan metode konvensional seperti misalnya jaringan syaraf tiruan (Nugroho dkk, 2003).

    (a) (b) Gambar 2.3 SVM berusaha menemukan hyperplane terbaik yang memisahkan

    kedua class 1 dan +1

    2.2.5.1 Pengenalan pola menggunakan SVM

    Konsep SVM dapat dijelaskan secara sederhana sebagai usaha mencari hyperplane terbaik yang berfungsi sebagai pemisah dua buah class pada input space. Hyperplane dalam ruang vektor berdimensi d adalah affine subspace berdimensi d-1 yang membagi ruang vektor tersebut ke dalam dua bagian, yang masing-masing berkorespondensi pada kelas yang berbeda.

    Gambar 2.3 memperlihatkan beberapa pola yang merupakan anggota dari dua buah kelas : +1 dan 1. Pola yang tergabung pada class 1 disimbolkan dengan warna merah (kotak), sedangkan pola pada class +1, disimbolkan dengan warna kuning (lingkaran). Problem klasifikasi dapat diterjemahkan dengan usaha

  • 24

    menemukan garis (hyperplane) yang memisahkan antara kedua kelompok tersebut. Berbagai alternatif garis pemisah (discrimination boundaries) ditunjukkan pada Gambar 2.3 (a).

    Hyperplane pemisah terbaik antara kedua kelas dapat ditemukan dengan mengukur margin hyperplane tersebut. dan mencari titik maksimalnya. Margin adalah jarak antara hyperplane tersebut dengan pola terdekat dari masing-masing kelas. Pola yang paling dekat ini disebut sebagai support vector. Garis solid pada Gambar 2.3 (b) menunjukkan hyperplane yang terbaik, yaitu yang terletak tepat pada tengah-tengah kedua kelas, sedangkan titik merah dan kuning yang berada dalam lingkaran hitam adalah support vector. Usaha untuk mencari lokasi hyperplane ini merupakan inti dari proses pembelajaran pada SVM

    Data yang tersedia dinotasikan sebagai dix r

    , sedangkan label masing-

    masing dinotasikan { }1,1 +=iy untuk i=1,2,3 . l. Yang mana l adalah banyaknya data. Diasumsikan kedua class 1 dan +1 dapat terpisah secara sempurna oleh hyperplane berdimensi d , yang didefinisikan

    0=+ bxw rr (23)

    Pattern wr yang termasuk class 1 (sampel negatif) dapat dirumuskan sebagai pola yang memenuhi pertidaksamaan

    1+ bxw rr (24)

    Sedangkan pattern wr yang termasuk class +1 (sampel positif)

    1++ bxw rr (25)

    Margin terbesar dapat ditemukan dengan memaksimalkan nilai jarak

    antara hyperplane dan titik terdekatnya, yaitu wr1

    . Hal ini dapat dirumuskan

  • 25

    sebagai Quadratic Programming (QP) problem, yaitu mencari titik minimal persamaan (26), dengan memperhatikan constraint persamaan (27).

    2

    21)(min ww

    w

    r

    r=

    , (26)

    ( ) ibwxy ii + ,01rr (27)

    Problem ini dapat dipecahkan dengan berbagai teknik komputasi, di antaranya Lagrange Multiplier.

    ( ) =

    +=l

    iiii bwxywbwL

    1

    2 ))1)((21

    ,,

    rrrr

    (28)

    dengan i = 1, 2, , l .

    i adalah Lagrange multipliers, yang bernilai nol atau positif ( i0 ). Nilai optimal dari persamaan (28) dapat dihitung dengan meminimalkan L terhadap wr dan b, dan memaksimalkan L terhadap i. Dengan memperhatikan sifat bahwa pada titik optimal gradient L =0, persamaan (28) dapat dimodifikasi sebagai maksimalisasi problem yang hanya mengandung saja i, sebagaimana persamaan (29).

    ,

    21

    1,1

    ==

    l

    iijijiji

    l

    ii xxyy

    rr

    (29)

    dimana 0),...,2,1(01

    == =

    i

    l

    iii yli . (30)

  • 26

    Dari hasil dari perhitungan ini diperoleh i yang kebanyakan bernilai positif. Data yang berkorelasi dengan i yang positif inilah yang disebut sebagai support vector (Nugroho dkk, 2003).

    2.2.5.2 SVM untuk Data Nonlinier

    Untuk mengklasifikasikan data yang tidak dapat dipisahkan secara linier formula SVM harus dimodifikasi. Oleh karena itu, kedua bidang pembatas pada persamaan (24) harus diubah sehingga lebih fleksibel (untuk kondisi tertentu) dengan penambahan variabel i (i 0, i ; i = 0 jika xi diklasifikasikan dengan benar) menjadi xi .w + b 1 - i untuk kelas 1 dan xi .w + b 1 + i untuk kelas 2. Pencarian bidang pemisah terbaik dengan dengan penambahan variabel i sering juga disebut soft margin hyperplane (Burges,1998). Gambar 2.4 menunjukkan Gambar soft margin hyperplane, dengan penambahan variabel i.

    Gambar 2.4 Soft margin hyperplane.

    Dengan demikian formula pencarian bidang pemisah terbaik berubah menjadi:

    +

    =

    n

    iiCw

    1

    2

    21

    min , (31)

    hyperplane xi.w+b = 0

    xi.w+b = +1

    Kelas 2

    Kelas 1

    xi.w+b = -1

    m j

    i

    xj

    xi

    w

  • 27

    dimana iii bwxy + 1).( dan i 0. C adalah parameter yang menentukan besar penalti akibat kesalahan dalam klasifikasi data dan nilainya ditentukan oleh pengguna.

    Selanjutnya, bentuk primal problem sebelumnya berubah menjadi:

    { } ==

    +++=n

    iii

    n

    i

    n

    iiiii bwxyCwLp11 1

    2 1).(21

    (32)

    Dengan cara yang sama dengan penurunan persamaan dual problem pada data linier, maka persamaan dual problem untuk data nonlinier adalah sebagai berikut:

    ===

    =

    n

    jijijiji

    n

    iiD xxyybwL

    1,11 21),,(

    (33)

    dimana nilai i adalah 0 i C. Hal ini lebih dikenal dengan C-SVM. Metode lain untuk menyelesaikan permasalahan data nonlinier dalam SVM adalah dengan cara memetakan data ke ruang dimensi lebih tinggi (ruang ciri atau feature space) (Burges, 1998), dimana data pada ruang tersebut dapat dipisahkan secara linier, dengan menggunakan transformasi .

    ad: . (34)

    Dengan demikian algoritma pelatihan tergantung dari data melalui dot product dalam H. Sebagai contoh (xi). (xj). Jika terdapat fungsi kernel K, sedemikian hingga K(xi,xj) = (xi). (xj), dengan demikian dalam algoritma pelatihan hanya memerlukan fungsi kernel K, tanpa harus mengetahui

    transformasi secara pasti.

    Dengan mentransformasikan xk (xk), maka nilai w menjadi =

    =nsv

    iiii xyw

    1)(

    dan fungsi pembelajaran menjadi:

  • 28

    =

    +=nsv

    idiiid bxxyxf

    1)().()( . (35)

    Feature space biasanya mempunyai dimensi yang lebih tinggi, hal ini mengakibatkan komputasi pada feature space mungkin sangat besar. Untuk mengatasi hal ini, maka digunakan kernel trick atau K(xi,xj) = (xi). (xj), maka persamaan (35) menjadi :

    =

    +=nsv

    idiiid bxxKyxf

    1),()( , (36)

    dimana xi adalah support vector.

    2.2.5.3 SVM untuk Multiclass

    SVM pertama kali dikembangkan oleh Vapniks untuk klasifikasi biner, namun selanjutnya dikembangkan untuk klasifikasi multiclass (banyak kelas). Pada dasarnya terdapat dua pendekatan untuk menyelesaikan permasalahan SVM untuk multiclass. Pendekatan pertama adalah dengan menggabungkan semua data dalam suatu permasalahan optimasi, pendekatan kedua adalah dengan membangun multiclass classifier, yaitu dengan cara menggabungkan beberapa SVM biner. Pendekatan pertama menuntut penyelesaian masalah optimasi yang lebih rumit dan komputasi yang tinggi, sehingga pendekatan ini tidak banyak dikembangkan. Berikut adalah beberapa metode untuk mengimplementasi SVM untuk multiclass dengan menggunakan pendekatan kedua.

    1. Metode One Against All

    Metode ini akan membangun sejumlah k SVM biner, dimana k adalah banyaknya kelas (Hsu, 2002). SVM ke-i dilatih dengan seluruh sampel pada kelas ke-i dengan label kelas positif dan seluruh sampel lainnya dengan label kelas

    negatif. Jika diberikan l data pelatihan (xi,yi),,(xl,yl), dimana lix ni ,.....1, = dan ),...,1( kyi adalah kelas dari xi, maka SVM ke-i akan menyelesaikan permasalahan berikut:

  • 29

    =

    +l

    j

    ij

    iTi

    bwCww

    ii

    ii 1,,)(

    21

    min

    ,

    iybxw jijijTi =+ jika,1)()( ,

    iybxw jijijTi ++ jika,1)()( (37)

    ljij ,....,1,0 = . dimana data pelatihan xi dipetakan ke ruang dimensi yang lebih tinggi dengan menggunakan fungsi dan C sebagai parameter pinalti.

    Meminimisasi iTi ww )(21

    berarti memaksimalkan 22

    w atau margin antara

    dua kelompok data . Ketika data tidak tepisah secara linier, maka terdapat pinalti

    sebesar =

    l

    j

    ijC

    1

    yang dapat mengurangi jumlah error pelatihan. Ide dari SVM

    adalah menyeimbangkan regulasi iTi ww )(21

    dan error pelatihan.

    Setelah menyelesaikan permasalahan pada minimisasi, maka terdapat sejumlah k fungsi keputusan.

    kkk bxwxfbxwxf +=+= )()( , . . . ,)()( 111 Kelas data x akan ditentukan berdasarkan nilai fungsi keputusan yang

    tertinggi.Untuk pencarian solusi minimisasi diatas menggunakan quadratic programming.

    Tabel 2.2 Contoh 4 SVM biner dengan metode One-against-all

    yi = 1 yi = -1 Hipotesis Kelas 1 Bukan kelas 1 f 1(x) = (w1)x + b1 Kelas 2 Bukan kelas 2 f 2(x) = (w2)x + b2 Kelas 3 Bukan kelas 3 f 3(x) = (w3)x + b3 Kelas 4 Bukan kelas 4 f 4(x) = (w4)x + b4

  • 30

    Gambar 2.5 Contoh klasifikasi One Against All untuk 4 kelas

    2. Metode One Against One

    Metode ini akan membangun sejumlah k(k-1)/2 SVM biner (Hsu, 2002). Dimana setiap SVM biner akan dilatih dengan menggunakan data dari 2 kelas. Untuk data dari kelas ke-i dan kelas ke- j digunakan permasalahan klasifikasi biner sebagai berikut:

    +t

    jit

    jiTji

    bwCww

    jii

    jiji

    ,,,

    ,,

    )(21

    min,,,

    ,

    iybxw tjitjitTji =+ jika,1)()( ,,, ,

    jybxw tjitjitTji ++ jika,1)()( ,,, , (38)

    0, jit . Terdapat k(k-1)/2 fungsi keputusan. Untuk menentukan kelas dari data x

    biasanya dilakukan dengan metode voting. Gambar 2.6 merupakan contoh pelatihan untuk mengklasifikasi 4 kelas dengan menggunakan 6 SVM biner.

    f 1(x)

    f 2(x)

    f 3(x)

    f 4(x)

    Kelas 1

    Kelas 2

    Kelas 3

    Kelas 4 unknown

    xi

  • 31

    Tabel 2.3 Contoh 4 SVM biner dengan metode One-against-one

    yi = 1 yi = -1 Hipotesis Kelas 1 Kelas 2 f 12(x) = (w12)x + b12 Kelas 1 Kelas 3 f 13(x) = (w13)x + b13 Kelas 1 Kelas 4 f 14(x) = (w14)x + b14 Kelas 2 Kelas 3 F23(x) = (w23)x + b23 Kelas 2 Kelas 4 f 24(x) = (w24)x + b24 Kelas 3 Kelas 4 f 34(x) = (w34)x + b34

    Gambar 2.6 Contoh klasifikasi metode One Against One untuk 4 kelas

    Dari Gambar 2.6, karena kelas 1 mempunyai suara terbanyak, maka xi diklasifikasikan sebagai kelas 1. Pada Gambar 2.6 jika data xi dimasukkan ke dalam fungsi hasil pelatihan pada persamaan berikut :

    f(x) = (wij) T (x) + b. (39)

    Hasilnya menyatakan xi adalah kelas i, maka suara untuk kelas i ditambah satu. Kelas dari data xi akan ditentukan dari jumlah suara terbanyak. Jika terdapat dua buah kelas yang jumlah suaranya sama, maka kelas yang indeksnya lebih kecil

    (xi)

    f 12 (x) f 13 (x) f 14 (x) f 23 (x) f 24 (x) f 34 (x)

    Kelas 1 Kelas 1 Kelas 1 Kelas 3 Kelas 2 Kelas 4

    Kelas 1

  • 32

    dinyatakan sebagai kelas dari data. Jadi pada pendekatan ini terdapat k(k1)/2 buah permasalahan quadratic programming yang masing-masing memiliki 2n / k variabel (n adalah jumlah data pelatihan).

    2.2.6 k-Nearest Neighbour (k-NN) Metode k-Nearest Neighbour (k-NN) adalah sebuah metode untuk

    melakukan klasifikasi terhadap objek berdasarkan data pembelajaran yang jaraknya paling dekat dengan objek tersebut. Data pembelajaran diproyeksikan ke ruang berdimensi banyak, dimana masing-masing dimensi merepresentasikan ciri dari data. Ruang ini dibagi menjadi bagian-bagian berdasarkan klasifikasi data pembelajaran (Rismawan dkk, 2008). Dekat atau jauhnya tetangga biasanya dihitung berdasarkan jarak Euclidean dengan rumus umum sebagai berikut:

    = ( )!" (40)

    dengan: x1 = sampel data x2 = data uji i = variabel data d = jarak p = dimensi data

    2.2.7 Retinopati Diabetik

    Pada penderita diabetes melitus dapat terjadi kelainan retina yang disebut sebagai retinopati diabetik. Retinopati Diabetik akan menyebabkan gangguan ketajaman penglihatan, sehingga penglihatan penderita akan semakin menurun dan dapat menyebabkan kebutaan.

    Prosentase terjadinya retinopati diabetik pada penderita diabetes melitus cukup tinggi yaitu berkisar 40%-50%. Pada umumnya retinopati diabetik terjadi pada penderita diabetes melitus yang telah terjangkit selama 10 tahun. Pada usia lanjut sering terlihat retinopati diabetik sebelum penderita menyadari adanya diabetes melitus. Kelainan pada retina yang dapat terjadi akibat retinopati diabetik diantaranya (Kuivalainen dkk, 2005) :

  • 33

    1. Mikroaneurisma merupakan penonjolan dinding kapiler terutama daerah vena dengan bentuk berupa bintik merah kecil yang terletak dekat pembuluh darah.

    2. Hemorrhages biasanya tampak pada dinding kapiler dan terlihat bercak darah keluar dari pembuluh darah, terlihat berwarna merah gelap, lebih besar dari mikroaneurisma.

    3. Hard exudates merupakan infiltrasi lipid ke dalam retina. Gambarannya khusus yaitu tidak beraturan dan kekuning-kuningan.

    4. Soft exudates sering disebut cotton wool patches merupakan iskemia retina, terlihat bercak berwarna kuning bersifat difus dan berwarna putih.

    5. Neovaskularisasi atau pembuluh darah baru biasanya terletak di permukaan jaringan, tampak sebagai pembuluh darah yang berkelok-kelok, dalam, berkelompok dan tidak beraturan.

    Tabel 2.4 Tipe penyakit retina abnormal retinopati diabetik

    Jenis Ukuran Warna Bentuk Ket. lain Mikroaneurisma sangat kecil merah gelap bercak - Hemorrhage kecil hingga besar merah gelap titik atau

    flame -

    Hard Exudates kecil hingga besar kuning tidak beraturan

    tepi jelas

    Soft Exudates kecil hingga medium

    keputih-putihan biasanya oval tepi blur

    Neovaskularisasi bervariasi merah bervariasi pembuluh darah baru

    Hasil diagnosa medis setiap citra dapat menunjukkan tingkat retinopati diabetik: 0 (Normal): (A = 0) AND (H = 0) 1 : (0 < A = 15) OR (H >=5) OR (NV = 1) A adalah jumlah mikroaneurisma, H adalah jumlah hemorrhages, NV = 1 artinya terdapat neovaskularisasi, NV = 0 artinya tidak terdapat neovasku-larisasi.

  • 34

    BAB III METODE PENELITIAN

    3.1 Bahan Penelitian

    Bahan penelitian menggunakan dataset MESSIDOR (Methods to evaluate segmentation and indexing techniques in the field of retinal ophthalmology). MESSIDOR merupakan sebuah proyek Techno Vision yang didanai oleh Kementrian Penelitian dan Pertahanan Perancis pada tahun 2004. MESSIDOR didukung oleh 11 konsorsium yang terdiri dari beberapa universitas, laboratorium dan rumah sakit opthalmology di Perancis.

    Dataset MESSIDOR yang digunakan pada penelitian ini terbagi menjadi 5 kelas yang terdiri dari 25 citra retina normal, 25 citra retinopati diabetik tingkat 1, 25 citra retinopati diabetik tingkat 2, 25 citra retinopati diabetik tingkat 3 dan 25 citra tidak dikenali (unrecognized).

    3.2 Alat Penelitian

    Dataset citra retina diujikan dengan menggunakan komputer (laptop) dengan dukungan processor Intel Pentium Core i3 M370 2,4 GHz, kapasitas memory 3 Gigabyte, kapasitas harddisk 320 GB. Perangkat lunak pendukung adalah sistem operasi windows 7, Matlab versi 7.12.0.635 (R2011a).

    3.3 Jalan Penelitian

    3.3.1 Desain Sistem

    Sistem klasifikasi retina meliputi tahap pelatihan dan pengujian. Tahap pelatihan dimulai dengan menginputkan citra retina, selanjutnya pada citra akan dilakukan proses pra-pengolahan. Citra diubah terlebih dahulu kedalam format kanal hijau, selanjutnya dilakukan operasi filter Gaussian untuk menghilangkan derau. Proses selanjutnya dilakukan ekualisasi histogram untuk mengubah sebaran tingkat keabuan citra, menggunakan Contrast Limited Adaptive Histogram

    27

  • 35

    Equalization (CLAHE), selanjutnya citra akan dilakukan operasi masking untuk memisahkan obyek dengan latar belakang (background).

    Ekstraksi ciri pada proses pelatihan dilakukan dengan menggunakan metode 2DLDA. Tahap ini bertujuan untuk mendapatkan ciri-ciri yang terpilih dari masukan data-data pelatihan. Ciri-ciri yang terpilih nantinya digunakan untuk proses klasifikasi pelatihan dan digunakan untuk ekstraksi ciri data pengujian.

    Ekstraksi ciri pada proses pengujian dilakukan dengan mengambil hasil ekstraksi ciri pada proses pelatihan diterapkan pada data pengujian. Hasil ekstraksi ciri pada data pengujian ini nantinya digunakan sebagai inputan pada proses klasifikasi pengujian.

    Proses klasifikasi pelatihan dilakukan setelah data-data pelatihan diambil ciri-ciri khusus, ciri-ciri khusus ini berupa vektor ciri yang dimensinya lebih kecil. Dalam penelitian ini menggunakan SVM multiclass One Against All dengan kernel gaussian. Pada proses klasifikasi pelatihan variabel hyperplane untuk setiap pengklasifikasi (classifier) yang didapat akan disimpan dan nantinya akan digunakan sebagai data tiap pengklasifikasi dalam proses pengujian, dengan kata lain proses klasifikasi pelatihan adalah untuk mencari support vector dari data input menggunakan quadratic programming.

    Pada proses klasifikasi pengujian menggunakan hasil ekstraksi ciri data pengujian dan hasil proses klasifikasi pelatihan. Hasil dari proses ini berupa nilai indeks dari fungsi keputusan yang terbesar yang menyatakan kelas dari data pengujian. Jika kelas yang dihasilkan dari proses klasifikasi pengujian sama dengan kelas data pengujian, maka pengenalan dinyatakan benar. Hasil akhirnya berupa citra retina yang sesuai dengan nilai indeks dari fungsi keputusan yang terbesar hasil dari proses klasifikasi pengujian.

    Pada Gambar 3.1 dan 3.2 merupakan tahapan proses pelatihan dan proses pengujian sistem deteksi retinopati diabetik. Pada proses pelatihan terdapat metode 2DLDA yang digunakan untuk mengekstraksi ciri, ciri-ciri yang terpilih pada saat proses pelatihan digunakan dalam proses klasifikasi dan juga digunakan untuk mengekstraksi ciri pada data uji coba. Masing-masing dataset citra retina

  • 36

    Citra Asli Grayscale Filter Gaussian Histogram Masking Resize 112x92

    yang digunakan dibagi menjadi dua, sebagian digunakan untuk proses pelatihan (training) dan sisanya digunakan untuk proses pengujian (testing).

    Gambar 3.1 Tahapan Proses Pelatihan Sistem Deteksi Retinopati Diabetik

    Grayscale biasa

    Red Channel

    Blue Channel

    Green Channel

    Ekualisasi Histogram

    CLAHE

    Prapengolahan

    Tahap Pelatihan

    input dataset pelatihan

    Ekstraksi ciri 2DLDA Tahap pelatihan

    Klasifikasi Support Vector Machine Multiclass One

    Againts All Tahap Pelatihan

    Data Hyperplane

  • 37

    Citra Asli Grayscale Filter Gaussian Histogram Masking Resize 112x92

    Gambar 3.2 Tahapan Proses Pengujian Sistem Deteksi Retinopati Diabetik

    3.4 Desain Algoritma

    Bagian ini menjelaskan tentang algoritma 2DLDA yang digunakan untuk ekstraksi ciri data pelatihan, data pengujian dan algoritma SVM untuk klasifikasi.

    Tahap Pengujian

    input data pengujian

    Ekstraksi ciri 2DLDA Tahap Pengujian

    Klasifikasi Support Vector Machine Multiclass One

    Againts All Tahap Pengujian

    Hasil klasifikasi

    Grayscale biasa

    Red Channel

    Blue Channel

    Green Channel

    Ekualisasi Histogram

    CLAHE

    Prapengolahan

    Data Hyperplane Pelatihan

    Ekstraksi ciri 2DLDA

    Tahap pelatihan

  • 38

    3.4.1 Desain Algoritma 2DLDA Desain algoritma 2DLDA dibagi menjadi dua subsistem yaitu subsistem

    pelatihan dan subsistem pengujian. Berikut ini adalah penjabaran masing-masing subsistem.

    3.4.1.1 Proses Pelatihan 2DLDA

    Untuk proses pelatihan 2DLDA dibagi menjadi tiga tahapan, yaitu : tahap pertama menghitung nilai rata-rata kelas dan rata-rata global, tahap kedua menghitung matrik sebaran dalam kelas dan matrik sebaran dalam kelas, dan tahap terakhir menghitung matrik ciri ekstraksi data-data pelatihan.

    1. Rata-rata citra

    Berikut ini adalah langkah-langkah dalam proses 2DLDA terhadap suatu dataset citra pelatihan untuk menghitung nilai rata-rata :

    1. Jika dalam suatu dataset citra retina terdapat himpunan sebanyak n citra pelatihan Ai = [A1,A2,,An] (i = 1,2,,n) dengan dimensi citra (r x c), maka himpunan total matrik dari semua citra tersebut adalah :

    An =

    rcnrnrn

    cnnn

    cnnn

    AAA

    AAAAAA

    )(2)(1)(

    2)(22)(21)(

    1)(12)(11)(

    ...

    ............

    ...

    ...

    .

    Matrik ini digunakan sebagai data inputan. Data inputan lainnya adalah jumlah kelas (k), jumlah data perkelas (ni), dan banyaknya data pelatihan (n).

    2. Tahapan berikutnya adalah menghitung rata-rata citra pelatihan dari kelas ke i:

    = iXi

    i Xn

    M 1 .

    3. Menghitung rata-rata semua citra pelatihan :

    M = n

    1

    =

    k

    i X iX

    1.

    Diagram alir untuk menghitung rata-rata citra dapat dilihat pada Gambar 3.3. Inputannya adalah matrik data pelatihan, pada matrik data pelatihan tidak

  • 39

    ditransformasikan kedalam vektor tetapi tetap berupa matrik. Inputan lainnya adalah jumlah kelas (k), jumlah data perkelas (ni), dan n (banyaknya data pelatihan). Outputnya berupa rata-rata global dan rata-rata kelas.

    Gambar 3.3. Diagram alir rata-rata citra

    2. Matrik sebaran dalam kelas dan matrik sebaran antar kelas

    Berikut ini adalah langkah-langkah dalam proses 2DLDA terhadap suatu dataset citra pelatihan untuk menghitung matrik sebaran antar kelas dan matrik sebaran dalam kelas:

    1. Menentukan nilai 1l (dimensi proyeksi baris) dan 2l (dimensi proyeksi kolom). Nilai 1l r dan 2l c.

    2. Menetapkan matrik transformasi R ukuran (c, 2l ) yang diperoleh dari gabungan antara matrik identitas ukuran ( 2l , 2l ) dengan matrik nol ukuran (c-

    2l , 2l ). 3. Menghitung matrik sebaran antar kelas R sesuai dengan persamaan

  • 40

    S Rb = TiT

    k

    iii MMRRMMn )()(

    1

    =

    , ukuran matriknya (r x r).

    Ukuran matrik S Rb lebih kecil dari ukuran matrik Sb pada LDA klasik

    (Dimensi x Dimensi). 4. Menghitung matrik sebaran dalam kelas R sesuai dengan persamaan

    S RW = ,)()(1

    Ti

    Ti

    k

    i xMXRRMX

    i

    =

    ukuran matriknya (r x r).

    Ukuran matrik S RW lebih kecil dari ukuran matrik Sw pada LDA klasik

    (Dimensi x Dimensi).

    5. Hitung generalized nilai eigen ( i ) dari S Rb dan S RW sesuai dengan persamaan (17).

    J4(L) = maxtrace((LTS RW L)-1(LTS Rb L)), ukuran matriknya (r x r).

    6. Ambil sebanyak 1l vektor eigen terbesar dari langkah 5 sebagai matrik

    transformasi baris (L). L = [ L1 , ..., L1l ], ukuran matriknya (r x 1l ). 7. Menghitung matrik sebaran antar kelas L sesuai dengan persamaan

    S Lb = )()(1

    MMLLMMn iTT

    k

    iii

    =

    , ukuran matriknya (c x c).

    Ukuran matrik S Lb lebih kecil dari ukuran matrik Sb pada LDA klasik (Dimensi x Dimensi)

    8. Menghitung matrik sebaran dalam kelas L sesuai dengan persamaan

    S LW = ),()(1

    iTT

    i

    k

    i xMXLLMX

    i

    =

    ukuran matriknya (c x c).

    Ukuran matrik S LW lebih kecil dari ukuran matrik Sw pada LDA klasik

    (Dimensi x Dimensi)

    9. Hitung generalized nelai eigen ( i ) dari S Lb dan S LW sesuai dengan persamaan (20).

  • 41

    J5(R)=maxtrace((RTS LW R)-1(RTS Lb R)), ukuran matriknya (c x c).

    10. Ambil sebanyak 2l vektor eigen terbesar dari langkah 9 sebagai matrik

    transformasi kolom (R). R = [ R1 , ..., R2l ], ukuran matriknya (c x 2l ). Diagram alir untuk menghitung matrik sebaran dalam kelas dan matrik

    sebaran antar kelas dapat dilihat pada Gambar 3.4. Inputannya adalah matrik data pelatihan A, jumlah kelas (k), jumlah data perkelas (ni), dan n (banyaknya data pelatihan), rata-rata kelas, rata-rata global, 1l (dimensi proyeksi baris), dan 2l (dimensi proyeksi kolom). Proses ini digunakan untuk mendapatkan matrik transformasi L dan matrik transformasi R sehingga ruang citra asli (original image space) dirubah kedalam ruang citra dimensi rendah (low-dimensional image). Matrik transformasi L dapat diperoleh dari pengambilan sebanyak 1l vektor eigen

    terbesar dari proses generalized nilai eigen ( i ) dari S Rb dan S RW sesuai dengan

    persamaan J(L) = maxtrace((LTS RW L)-1(LTS Rb L). Sedangkan matrik transformasi R dapat diperoleh dari pengambilan sebanyak 2l vektor eigen terbesar dari proses

    generalized nilai eigen ( i ) dari S Lb dan S LW sesuai dengan persamaan J(R) =

    maxtrace((RTS LW R)-1 (RTS Lb R)). Outputnya berupa L (matrik transformasi baris) dan R (matrik transformasi kolom).

  • 42

    RwS

    RbS

    1)( RwS )( RbS

    LwS

    LbS

    1)( LwS )( LbS

    Gambar 3.4 Diagram alir sebaran antar kelas dan sebaran dalam kelas

    3. Ekstraksi Ciri Pelatihan

    Gambar 3.5 adalah diagram alir ekstraksi ciri pelatihan yang merupakan langkah terakhir dari proses pelatihan citra yang digunakan untuk pencarian ekstraksi ciri pada setiap citra (feature image) dalam dataset citra pelatihan. Langkah-langkahnya sebagai berikut :

  • 43

    1. Inputan berupa matrik data pelatihan :

    An =

    rcnrnrn

    cnnn

    cnnn

    AAA

    AAAAAA

    )(2)(1)(

    2)(22)(21)(

    1)(12)(11)(

    ...

    ............

    ...

    ...

    .

    Inputan lainnya : matrik transformasi baris (L) dan matrik transformasi kolom (R).

    2. Hitung matrik ekstraksi ciri adalah Bi=LTAiR , ukuran matriknya ( 1l x 2l ).

    3. Output : matrik ektraksi ciri Bi, matrik transformasi baris L, dan matrik transformasi kolom R.

    Gambar 3.5 Diagram alir ekstraksi ciri pelatihan.

    3.4.1.2 Proses Pengujian 2DLDA

    Proses pengujian 2DLDA hanya terdiri satu proses yaitu proses ekstraksi ciri data pengujian. Gambar 3.6 adalah diagram alir ekstraksi ciri pengujian yang

  • 44

    bertujuan untuk pencarian ciri ekstraski pada citra pengujian. Langkah-langkahnya sebagai berikut : 1. Inputan berupa matrik data pengujian C yang ukuran dimensi matriknya sama

    dengan matrik data pelatihan yaitu (r x c) :

    C

    =

    rcrr

    c

    c

    CCC

    CCCCCC

    ...

    ............

    ...

    ...

    21

    22221

    11211

    .

    Inputan lainnya : matrik transformasi baris (L) dan matrik transformasi kolom (R), yang kedua duanya didapat dari proses pelatihan 2DLDA.

    2. Hitung matrik ekstraksi ciri adalah D=LTCR , ukuran matriknya ( 1l x 2l ).

    3. Output : matrik ektraksi ciri D.

    Gambar 3.6 Diagram alir ekstraksi ciri pengujian

  • 45

    3.5 Desain Algoritma SVM Pengklasifikasi SVM untuk multiclass One Against All akan membangun

    sejumlah k SVM biner (k adalah jumlah kelas). Fungsi keputusan yang mempunyai nilai maksimal, menunjukkan bahwa data xd merupakan anggota dari kelas fungsi keputusan tersebut.

    Pengklasifikasian dengan SVM dibagi menjadi dua proses, yaitu proses pelatihan dan pengujian. Pada proses pelatihan SVM menggunakan matrik ciri yang dihasilkan pada proses ekstraksi ciri pelatihan sebagai input. Sedangkan pada pengujian SVM memanfaatkan matrik ciri yang dihasilkan pada proses ekstraksi ciri pengujian sebagai input.

    3.5.1 Proses Pelatihan SVM Algoritma pelatihan untuk masing-masing pengklasifikasi SVM biner

    dapat dituliskan sebagai berikut : input berupa matrik B (matrik hasil ektraksi ciri pelatihan) dan vektor Y sebagai pasangan input-target dan outputnya adalah w, x, b (variabel-variabel persamaan hyperplane). Langkahlangkahnya dijelaskan sebagai berikut :

    1. Tentukan Input (Z = B) dan Target (Y) sebagai pasangan pelatihan dari dua kelas.

    2. Hitung Kernel Gaussian K(Z,Zi) = exp ))2(||( 22

    iZZ

    .

    3. Hitung Matrik Hessian H = K(Z,Zi) * Y * YT.

    4. Tetapkan c dan epsilon.

    5. Tetapkan vektor e sebagai vektor satuan yang memiliki dimensi sama dengan dimensi Y.

    6. Hitung solusi quadratic programming:

    min ,21)( TT eHL =

    dimana 0=Ty dan .0 c

  • 46

    Input matrik Z merupakan matrik ciri yang dihasilkan pada proses ekstraksi ciri dan vektor Y sebagai target. Contoh untuk dataset MESSIDOR yang terdiri dari 5 kelas, maka jika digunakan sepuluh sampel tiap kelas dan dimensi proyeksi baris 1l = 10, dimensi proyeksi kolom 2l = 10, maka matrik Z yang

    dihasilkan adalah matrik ciri dengan dimensi 50 x 100 (50 didapat dari jumlah sampel tiap kelas dikalikan dengan banyaknya kelas, 100 didapat dari perkalian dimensi proyeksi baris dengan dimensi proyeksi kolom). Vektor Y merupakan vektor kolom untuk pengklasifikasi pertama dimana semua citra retina dari kelas pertama akan disimbolkan dengan angka 1, semua citra retina dari kelas lainnya dengan angka -1. Vektor Y untuk pengklasifikasi kedua semua citra retina dari kelas kedua disimbolkan dengan 1 dan semua citra retina bukan kelas kedua disimbolkan dengan -1, demikian seterusnya untuk pengklasifikasi ketiga sampai ke k. Pada penelitian ini, digunakan fungsi kernel gaussian dengan nilai varian () = 1.

    Langkah selanjutnya adalah menghitung matrik Hessian, yaitu perkalian antara kernel gaussian dengan Y. Y disini adalah berupa vector yang berisi nilai 1 dan -1. Dari contoh di atas jika classifier pertama yang dilatih, maka nilai Y untuk 10 elemen pertama (jika digunakan 10 sampel citra retina per kelas) akan bernilai 1 dan elemen lainnya bernilai -1. Jika classifier kedua dilatih, maka 10 elemen berikutnya bernilai 1, sedangkan sisanya bernilai -1. Matrik Hessian ini nantinya digunakan sebagai variabel input dalam quadratic programming.

    Fungsi quadratic programming monqp memerlukan variabel c dan epsilon. Untuk itu tetapkan nilai c dan epsilon (c adalah batas atas nilai i ) dari C-SVM. Vektor satuan e juga dibentuk dengan dimensi sama dengan vektor Y.

    Penyelesaian min TT eHL =21)( dengan quadratic programming,

    merupakan implementasi dari pencarian solusi atas permasalahan

    +=

    n

    iiCw

    1

    2

    21

    min . Jika diimplementasikan dalam bentuk matrik menjadi

    +=

    n

    ii

    T Cww12

    1min , dengan iiTTi bxwy + 1)))(( . Jika formula dalam bentuk

  • 47

    matrik tersebut diubah ke bentuk dual problem, maka formula tersebut menjadi

    min TT eHL =21)( , dimana 0=Ty dan C 0 . Disini

    ),( jiji xxKyyH = , dan K(xi,xj) = exp ))2(||( 22

    ji xx

    adalah fungsi kernelnya, dan e

    adalah vektor satuan yang dimensi sama dengan Y , sedangkan c > 0 adalah batas atas dari nilai Dalam penelitian ini digunakan nilai c = 1000 dan epsilon = 1x10-7. Hasil dari fungsi monqp (quadratic programming) adalah nilai variabel w, x, dan b yang nantinya akan digunakan untuk proses pengujian. Diagram alir untuk algoritma pelatihan SVM dapat dilihat pada Gambar 3.7.

    Gambar 3.7 Diagram alir pelatihan SVM

  • 48

    3.5.2 Proses Pengujian SVM Setelah pada proses pelatihan didapat nilai variabel w, x, dan b untuk

    masing - masing kelas. Nilai variabel w, x, dan b untuk didefinisikan sebagai vektor w, x, dan b. Untuk input data yang akan diklasifikasikan adalah matrik ciri D yang dihasilkan pada proses ekstraksi ciri pengujian. Matrik ciri D tersebut ditransformasikan dulu kedalam bentuk vektor menjadi 1 x ( 1l x 2l ) diberi nama T. Langkah langkahnya sebagai berikut :

    1. Input : vektor T (data pengujian), vektor w, x, b, dan k (jumlah kelas).

    2. Hitung Kernel Gaussian K(T,xi) = exp ))2(||( 22

    ixT

    .

    3. Hitung .),( iiii bwxTKf +=

    4. Ulangi langkah 2 dan 3 untuk i = 2 sampai k.

    5. Tentukan nilai if yang paling maksimal.

    6. Kelas i dengan if terbesar adalah kelas dari vektor T.

    Nilai T adalah transformasi matrik ciri D kedalam bentuk vektor. Langkah

    selanjutnya adalah dengan menghitung kernel Gaussian ),( ixTK , dengan T adalah data input dan xi adalah support vector yang dihasilkan pada proses pelatihan SVM.

    Fungsi keputusan iiii bwxTKf += ),( dihitung untuk masing-masing nilai i. dimana i = 1 sampai k (k adalah jumlah kelas). Output dari algoritma ini berupa indeks i dengan if terbesar yang merupakan kelas dari vektor T. Diagram alir untuk algoritma pengujian dapat dilihat pada Gambar 3.8.

  • 49

    Gambar 3.8 Diagram alir pengujian SVM.

    Dari proses pelatihan dan pengujian SVM dapat diringkas dalam bentuk blok diagram proses pelatihan dan pengujian yang ditunjukkan pada Gambar 3.9. Gambar 3.9 menjelaskan secara garis besar proses pelatihan dan pengujian pada SVM.

    Data pelatihan yang sudah diproyeksikan oleh 2DLDA, selanjutnya menjadi data pelatihan SVM. Jika sebaran data yang dihasilkan pada proses 2DLDA mempunyai distribusi yang tidak linier, maka salah satu metode yang digunakan SVM untuk mengklasifikasikan data tersebut adalah dengan mentransformasikan data ke dalam dimensi ruang ciri (feature space), sehingga dapat dipisahkan secara linier pada ruang ciri. Karena ruang ciri dalam prakteknya biasanya memiliki dimensi yang lebih tinggi dari vektor input (input space). Hal

  • 50

    ini mengakibatkan komputasi pada ruang ciri mungkin sangat besar, karena ada kemungkinan ruang ciri dapat memiliki jumlah ciri yang tidak terhingga.

    Gambar 3.9. Blok diagram proses pelatihan dan klasifikasi menggunakan SVM. (Damayanti dkk, 2010)

    Membangun sejumlah k SVM biner (k adalah jumlah kelas)

    Proses pelatihan pada setiap SVM biner

    Memetakan input space ke feature space menggunakan kernel Gaussian

    K(x,y) = exp ))2(||( 22

    yx

    Menentukan sejumlah support vector dengan cara menghitung nilai alpha 1, ..., N ( N = sejumlah data pelatihan) menggunakan quadratic programming

    ==

    =

    l

    iijijiji

    l

    ii xxyyQ

    1,1 21)( rr

    Subject to : 0),...,2,1(01

    == =

    i

    l

    iii yli

    Data ixr

    yang berkorelasi dengan i > 0 inilah yang disebut sebagai support vector

    Solusi bidang pemisah didapatkan dengan rumus w =iyixi ; b = yk- wTxk untuk setiap xk , dengan k 0.

    Memetakan input space ke feature space menggunakan kernel Gaussian K(x,y) = exp ))2(

    ||( 22

    yx

    Menghitung fungsi keputusan :

    iidii bwxxKf += ),(

    Dimana : i = 1 sampai k; xi = support vector; xd = data pengujian

    Proses pengujian pada setiap SVM biner

    Menentukan nilai fi yang paling maksimal. Kelas i dengan fi terbesar adalah kelas dari data pengujian

  • 51

    Maka pada SVM digunakan kernel trick. Fungsi kernel yang digunakan pada penelitian ini adalah Gaussian

    K(x,y) = exp ))2(||( 22

    yx . (41)

    Sejumlah support vector pada setiap data pelatihan harus dicari untuk mendapatkan solusi bidang pemisah terbaik. Persoalan solusi bidang pemisah terbaik dapat dirumuskan :

    ==

    =

    l

    iijijiji

    l

    ii xxyyQ

    1,1 21)( rr , (42)

    dimana : 0),...,2,1(01

    == =

    i

    l

    iii yli .

    Data ixr

    yang berkorelasi dengan i > 0 inilah yang disebut sebagai

    support vector. Dengan demikian, dapat diperoleh nilai yang nantinya digunakan untuk menemukan w. Solusi bidang pemisah didapatkan dengan rumus w

    =iyixi ; b = yk- wTxk untuk setiap xk , dengan k 0.

    Proses pengujian atau klasifikasi dilakukan juga pada setiap SVM biner menggunakan nilai w, b, dan xi yang dihasilkan pada proses pelatihan di setiap SVM biner. Fungsi yang dihasilkan untuk proses pengujian adalah

    ,),( iidii bwxxKf += (43)

    dimana : i = 1 sampai k; xi = support vector; xd = data pengujian. Outputnya adalah berupa indeks i dengan fi terbesar yang merupakan kelas dari data pengujian.

  • 52

    3.6 Implementasi Perangkat Lunak Beberapa potongan kode Matlab sebagai implementasi dari proses-proses

    dan algoritma-algoritma yang telah dijelaskan pada bagian sebelumnya.

    3.6.1 Membaca citra data pelatihan dan citra data pengujian 1 function [Covar_train, Covar_test] = buildCovar(nots, noc) 2 %nots : jumlah data training, noc : banyaknya kelas 3 C=pwd; 4 cd([C, '\Messidor1']); 5 % Membaca dataset retina untuk data training 6 counter=0; 7 for i=1:noc 8 for j=1:nots 9 file=['retina' int2str((i-1)*25+j) '.bmp']; 10 [retina,MAP]=imread(file); 11 [m,n]= size(grayretina); 12 vector_retina=reshape(grayretina,m*n,1); 13 counter=counter+1; 14 Covar_train(:,counter)=vector_retina; 15 end 16 End 17 Covar_train=double(Covar_train)/255; 18 % Membaca database retina untuk data testing 19 counter=0; 20 for i=1:noc 21 for j=nots+1:25 22 file=['retina' int2str((i-1)*25+j) '.bmp']; 23 [retina,MAP]=imread(file); 24 [m,n]=size(grayretina); 25 vector_retina=reshape(grayretina,m*n,1); 26 counter=counter+1; 27 Covar_test(:,counter)=vector_face; 28 end 29 End 30 Covar_test=double(Covar_test)/255; 31 cd(C);

    Pada program atau proses diatas merupakan proses untuk membaca citra data pelatihan dan citra data pengujian. Jika pada masing-masing kelas menggunakan data pelatihan (number of training set atau nots) sepuluh data citra, maka sisanya digunakan sebagai data pengujian.

    3.6.2 Fungsi untuk melakukan ekstraksi ciri

    Menghitung rata-rata kelas dan rata-rata global 1 function [R, L]=iterative2DLDA(Covar_train, LabelTrain, p,

  • 53

    q, r, c) 2 % Covar_train : data training

    % LabelTrain : label dari data training,LabelTrain=1 menunjukkan kelas 1 % r : ukuran baris pada gambar dan c : ukuran kolom pada gambar, N=r*c % q : right projected dimension, p : left projected dimension % R : right projected vectors, L : left projected vectors % Iterasi sebanyak 10

    3 [m,n]=size(Covar_train); 4 ClassNumber=max(LabelTrain); 5 for i=1:ClassNumber 6 temp=find(LabelTrain==i); 7 temp1=temp'; 8 [m1, n1]=size(temp1); 9 Trainset1=Covar_train(:,temp1); 10 aa(:,i)=mean(Trainset1'); %Mencari rata2 kelas 11 End 12 bb=mean(Covar_train'); %Mencari rata2 global 13 bb1=bb';

    Sebelum menghitung matrik within class scatter dan matrik between class scatter terlebih dahulu dicari matrik rata-rata kelas dan matrik rata-rata global.

    Menentukan matrik transformasi kolom R yang nanti digunakan untuk

    menghitung S Rw dan SRb

    14 R=[eye(q,q) 15 zeros(c-q,q)]; %Mendapatkan nilai R untuk perhitungan

    rumus: S Rw , SRb

    Menetapkan matrik transformasi R ukuran (c, q) yang diperoleh dari gabungan antara matrik identitas ukuran (q, q) dengan matrik nol ukuran (c-q, q).

    Melakukan proses perhitungan SRw , S

    Rb

    16 for j=1:4 %Banyaknya iterasi 17 sb1=zeros(r,r); 18 sw1=zeros(r,r); 19 for i=1:ClassNumber 20 temp=find(LabelTrain==i); 21 temp1=temp'; 22 [m1, n1]=size(temp1); 23 Trainset1=Covar_train(:,temp1); 24 [m2,n2]=size(Trainset1); 25 for s=1:n2 26 sw1=sw1+(reshape(Trainset1(:,s), r,c)-

    reshape(aa(:,i), r,c))*R*R'*(reshape(Trainset1(:,s), r,c)-

  • 54

    reshape(aa(:,i), r,c))'; 27

    % Berdasarkan rumus : 28 end 29 sb1=sb1+n1*(reshape(aa(:,i), r,c)-reshape(bb1,

    r,c))*R*R'*(reshape(aa(:,i), r,c)-reshape(bb1, r,c))'; 30

    % Berdasarkan rumus : 31 end

    Menghitung S Rw yang rumusnya berdasarkan persamaan (18) dan S Rb yang rumusnya berdasarkan persamaan (19).

    Menghitung vektor eigen dan nilai eigen dari (S Rw )-1(S Rb )

    32 [U,S] =eig(pinv(sw1)*sb1); tt=diag(S); [B,IX]=sort(tt,'descend'); U11=U(:,IX); %Mencari eigenvector dan eigenvalue dari (S Rw )-1(S

    Rb )

    33 L=U(:,1:p); % Nilai L = eigenvector sebanyak p kolom yang sesuai dengan p eigenvalue terbesar, L digunakan untuk perhitungan rumus: S Lw ,S

    Lb

    Vektor eigen dan nilai eigen pada proses diatas didapatkan berdasarkan pada persamaan (10) dimana hasilnya digunakan untuk menentukan ciri ekstraksi pada citra pelatihan dan citra pengujian.

    Melakukan proses perhitungan SLw dan S

    Lb

    34 sb2=zeros(c,c); 35 sw2=zeros(c,c); 36 for i=1:ClassNumber 37 temp=find(LabelTrain==i); 38 temp1=temp'; 39 [m1, n1]=size(temp1); 40 Trainset1=Covar_train(:,temp1); 41 [m2,n2]=size(Trainset1); 42 for s=1:n2 43 sw2=sw2+(reshape(Trainset1(:,s), r,c)-

    reshape(aa(:,i), r,c))'*L*L'*(reshape(Trainset1(:,s), r,c)-reshape(aa(:,i), r,c));

    44

  • 55

    % Berdasarkan rumus : 45 end 46 sb2=sb2+n1*(reshape(aa(:,i), r,c)-reshape(bb1,

    r,c))'*L*L'*(reshape(aa(:,i), r,c)-reshape(bb1, r,c)); 47

    % Berdasarkan rumus : 48 end

    Menghitung S Lw yang rumusnya berdasarkan persamaan (21) dan S Lb yang rumusnya berdasarkan persamaan (22). Menghitung vektor eigen dan nilai eigen dari (S Lw )-1(S Lb ) 49 [U1,S1] =eig(pinv(sw2)*sb2);

    tt1=diag(S1); [B,IX1]=sort(tt1,'descend'); U12=U1(:,IX1); %Mencari eigenvector dan eigenvalue dari (S Lw )-1(S

    Lb )

    50 R=U1(:,1:q); % Mengupdate nilai R = eigenvector sebanyak q kolom yang sesuai dengan q eigenvalue terbesar

    51 end

    Vektor eigen dan nilai eigen pada proses diatas, hasilnya digunakan untuk menentukan ciri ekstraksi pada citra pelatihan dan citra pengujian.

    Menghitung ciri ekstraksi data pelatihan dan data pengujian 1 [m1,n1]=size(Covar_Train); 2 [m2,n2]=size(Covar_Test); 3 [m3,n3]=size(R); 4 MTrain=[]; 5 MTest=[]; 6 for i=1:n1 7 Temp=reshape(Covar_Train(:,i), row, col); MTrain(:,:,i)=L'*Temp*R; %Proses menghitung ciri

    ekstraksi data pelatihan 8 end 9 MatTrain=[]; 10 [x y z]=size(MTrain); 11 for j=1:z 12 a = MTrain(:,:,j)'; 13 MatTrain(j,:)= a(:)'; %Matrik ciri ekstraksi

    data pelatihan 14 end

  • 56

    15 for j=1:n2 16 Temp=reshape(Covar_Test(:,j), row, col); 17 MTest(:,:,j)=L'*Temp*R; %Proses menghitung ciri

    ekstraksi data pengujian 18 end 19 MatTest=[]; 20 [x y z]=size(MTest); 21 for i=1:z 22 a = MTest(:,:,i)'; 23 MatTest(i,:)= a(:)'; %Matrik ciri ekstraksi data

    pengujian 24 end

    Menghitung matrik ekstraksi ciri data pelatihan berdasarkan rumus Bi = LTAiR, dimana Bi adalah matrik ekstraksi ciri data pelatihan dan Ai adalah matrik data pelatihan. Menghitung matrik ciri data pengujian berdasarkan rumus D = LTCR, dimana D adalah matrik ekstraksi ciri data pengujian dan C adalah matrik data pengujian.