Pengenalan Garis Telapak Tangan Menggunakan Ekstraksi Fitur Operasi Blok Non-Overlapping Dan Pencocokan Jarak Euclidean Ternormalisasi
09PENGENALAN GARIS TELAPAK TANGAN DENGAN MENGGUNAKAN
EKSTRAKSI FITUR OPERASI BLOK NON-OVERLAPPING DAN
PENCOCOKAN NORMALIZED EUCLIDEAN DISTANCE
SKRIPSI
FUJI FRILLA KURNIA
091402041
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
PENGENALAN GARIS TELAPAK TANGAN MENGGUNAKAN EKSTRAKSI
FITUR OPERASI BLOK
NON-OVERLAPPING
DAN PENCOCOKAN
(2)
PENGENALAN GARIS TELAPAK TANGAN MENGGUNAKAN EKSTRAKSI
FITUR OPERASI BLOK
NON-OVERLAPPING
DAN PENCOCOKAN
JARAK
EUCLIDEAN
TERNORMALISASI
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Teknologi Informasi
FUJI FRILLA KURNIA
091402041
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(3)
PERSETUJUAN
Judul : PENGENALAN GARIS TELAPAK TANGAN
MENGGUNAKAN EKSTRAKSI FITUR OPERASI
BLOK NON-OVERLAPPING DAN PENCOCOKAN
JARAK EUCLIDEAN TERNORMALISASI
Kategori : SKRIPSI
Nama : FUJI FRILLA KURNIA
Nomor Induk Mahasiswa : 091402041
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Diluluskan di
Medan, 30 April 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dr. Erna Budhiarti Nababan, M.IT NIP. -
Romi Fadillah Rahmat, B.Comp.Sc, M.Sc NIP. 19860303 201012 1 004
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
Prof. Dr. Opim Salim Sitompul, M.Sc NIP. 19610817 198701 1 001
(4)
PERNYATAAN
PENGENALAN GARIS TELAPAK TANGAN MENGGUNAKAN EKSTRAKSI
FITUR OPERASI BLOK NON-OVERLAPPING DAN PENCOCOKAN
JARAK EUCLIDEAN TERNORMALISASI
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 30 April 2014
Fuji Frilla Kurnia 091402041
(5)
PENGHARGAAN
Puji dan syukur penulis sampaikan kepada Allah SWT yang telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
Banyak pihak telah membantu penulis dalam penyelesaian skripsi ini dengan kerjasama, dukungan dan doa yang telah diberikan. Oleh karena itu penulis menyampaikan ucapan terima kasih sedalam-dalamnya dan penghargaan kepada: 1. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara.
2. Ketua dan Sekretaris Program Studi Teknologi Informasi yaitu Bapak Prof. Dr. Opim Salim Sitompul, M.Sc dan Bapak Drs. Sawaluddin, M.Sc yang telah memberikan dukungan, arahan dan bantuan dalam penyelesaian skripsi.
3. Bapak Romi Fadillah Rahmat, B.Comp.Sc, M.Sc dan Ibu Dr. Erna Budhiarti Nababan, M.IT sebagai pembimbing yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis dalam penyelesaian skripsi.
4. Bapak Muhammad Anggia Muchtar, S.T, MM.IT dan Bapak Baihaqi Siregar, S.Si, M.T yang telah bersedia menguji seminar hasil dan sidang sarjana penulis. 5. Seluruh dosen dan pegawai Program Studi Teknologi Informasi dan Ilmu
Komputer Universitas Sumatera Utara yang telah mengajarkan dan memberikan dukungan serta bantuannya dalam penyelesaian skripsi.
6. Kedua orangtua penulis, ibunda Muzdalifah dan ayahanda Sudarsono yang selalu memberi doa, dukungan dan motivasi untuk menyelesaikan skripsi ini serta selalu sabar dalam mendidik penulis.
7. Kakak Yuni, abang Yaya, adik Ivany, Winda dan Wanda serta yang terkasih Bobby Susilo yang selalu memberikan dukungan dan doa kepada penulis.
8. Teman-teman yang selalu memberikan dukungan, seluruh teman-teman TA, Bagus, Rozy, Yayuk, Rian, Anggreiny, Irwan, Desi, Upik, Adnan B, Frans, Arif, Ari, Mulki, Satria, April, Irene, Robet, Aang, Septi, Syarah, Whydia, Yuli, Tiwi serta teman-teman mahasiswa Teknologi Informasi lainnya yang tidak dapat penulis sebutkan satu persatu.
Semoga semua kebaikan dan bantuan yang telah diberikan dibalas oleh Allah SWT dan semoga skripsi ini dapat bermanfaat bagi semua pihak yang menggunakannya.
(6)
ABSTRAK
Pengenalan garis telapak tangan merupakan pengenalan identitas seseorang melalui salah satu bagian tubuh yang memiliki karakteristik tertentu. Garis telapak tangan memiliki karakteristik dengan bentuk garis telapak tangan yang berbeda pada setiap orang. Pada penelitian ini, metode ekstraksi fitur operasi blok non-overlapping digunakan pada pengenalan citra garis telapak tangan. Metode ini membagi data sampel menjadi LxK blok dan menghitung nilai fitur dari setiap blok tersebut. Pada penelitian ini data sampel dibagi menjadi 10x10 blok (10 baris dan 10 kolom), yaitu 100 blok dengan ukuran masing-masing blok adalah 20x20 piksel. Metode operasi blok non-overlapping menghitung rata-rata dari setiap blok dengan menghitung piksel aktif (putih) setiap blok dan melakukan pembagian terhadap jumlah keseluruhan piksel di dalam satu blok. Sehingga didapat hasil fitur dari sebuah citra berjumlah 100 nilai fitur. Nilai fitur tersebut menjadi acuan untuk pencocokan menggunakan jarak
Euclidean ternormalisasi. Jarak Euclidean ternormalisasi merupakan pengukuran tingkat kesamaan antara dua vektor. Total data sampel berjumlah 240 dengan 160 data digunakan untuk pelatihan dan 80 data sampel berbeda digunakan untuk proses pengujian tingkat pencocokan. Dari 80 citra uji, 48 citra tidak memiliki noise
didapatkan hasil pengenalan yang benar sebesar 97,92% dan 32 citra uji lain memiliki
noise dengan hasil pengenalan yang benar 75%. Sedangkan pengujian yang dilakukan secara keseluruhan didapatkan tingkat pencocokan menggunakan metode ekstraksi fitur ini adalah 88,75%.
Kata kunci : garis telapak tangan, ekstraksi fitur,operasi blok non-overlapping, jarak
(7)
PALMPRINT RECOGNITION USING NON-OVERLAPPING BLOCK PROCESSING FEATURE EXTRACTION AND MATCHING USING
NORMALIZED EUCLIDEAN DISTANCE
ABSTRACT
Palmprint line recognition is the one of a kind to recognize person through with one of the characteristic from the human body. The palmprint lines have the characteristic that the shape of the palmprint lines are different for each other. In this paper, non-overlapping block processing feature extraction method is used to palmprint recognition. The method divide sampel to LxK grid blocks and compute feature vector from each block. In this paper, sample is divided into 10x10 grid blocks, total 100 blocks from each block is 20x20 pixels. Block processing method compute the average of every active (white) pixel from each block and divide value with the sum of pixels in each block. The total feature vector is 100 features obtained from average active pixel. These feature used as referenced to matching process. Normalized Euclidean distance is the measure of similarity by the two vectors. The total data samples are 240 which 160 samples used for training and another samples are used for matching rate testing. After testing phase done, according to 80 of the data test, the result of 48 data test recognition which have no noise is 97.92% and the result of 32 data test recognition which have noise is 75%. After testing phase done, the overall matching rate using the feature extraction is 88.75%.
Keywords : palmprint, feature extraction, non-overlapping block processing, normalized Euclidean distance
(8)
DAFTAR ISI
Halaman
PERSETUJUAN ii
PERNYATAAN iii
PENGHARGAAN iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL ix
DAFTAR GAMBAR x
BAB 1 PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah 2
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 3
1.6. Metodologi Penelitian 3
1.7. Sistematika Penulisan 4
BAB 2 LANDASAN TEORI 6
2.1. Garis Telapak Tangan 6
2.2. Konsep Dasar Citra 6
2.3. Pra-pengolahan Citra 7
2.3.1. Pembentukan citra keabuan 7
2.3.2. Deteksi tepi : operator Canny 8
2.3.3. Binerisasi citra 11
2.4. Konsep Fitur 12
2.5. Ekstraksi Fitur Operasi Blok Non-Overlapping 12
2.6. Metrika Pencocokan dengan Jarak Euclidean Ternormalisasi 13
2.7. Penelitian Terdahulu 14
BAB 3 ANALISIS DAN PERANCANGAN 15
3.1. Data yang Digunakan 15
3.2. Tahapan Pengenalan Garis Telapak Tangan 16
3.3. Akuisisi Citra 17
3.4. Pra-pengolahan Citra 18
3.4.1. Pembentukan citra keabuan 18
3.4.2. Deteksi tepi citra 19
3.4.3. Binerisasi citra 20
(9)
3.7. Tahap Pengujian 25
3.8. Pencocokan dengan Jarak Euclidean Ternormalisasi 26
BAB 4 HASIL DAN PEMBAHASAN 28
4.1. Implementasi 28
4.2. Tampilan Implementasi Sistem 30
4.3. Hasil Pelatihan Citra Latih dengan Ekstraksi Fitur Operasi Blok
Non-Overlapping 36
4.4. Hasil Pencocokan Citra Uji dengan Database 38
BAB 5 KESIMPULAN DAN SARAN 43
5.1. Kesimpulan 43
5.2. Saran 43
DAFTAR PUSTAKA 44
LAMPIRAN A : DATA SAMPEL 46
(10)
DAFTAR TABEL
Halaman
Tabel 2.1 Tabel penelitian terdahulu 14
Tabel 4.1 Method yang digunakan dalam program 29
Tabel 4.2 Hasil pelatihan ekstraksi fitur citra 36
Tabel 4.3 Hasil pencocokan citra uji dengan database 38
Tabel 4.4 Hasil keseluruhan pengujian tingkat pengenalan 41
(11)
DAFTAR GAMBAR
Halaman
Gambar 2.1 Contoh matriks template dari filter Gaussian 9
Gambar 2.2 Matriks konvolusi 3x3 Operator Sobel 9
Gambar 2.3 Matriks citra berukuran 5x5 piksel 10
Gambar 2.4 Area untuk mengonversi arah tepi 10
Gambar 2.5 Contoh matriks vektor fitur rata-rata dengan ukuran 10x10 blok 12
Gambar 3.1 Tahapan pengenalan garis telapak tangan 15
Gambar 3.2 Contoh citra telapak tangan kiri resolusi 2052 x 1824 piksel 15 Gambar 3.3 Contoh cropping (pemotongan) citra berukuran 600x600 piksel 16 Gambar 3.4 Citra 600x600 piksel di resize menjadi 200x200 piksel 16
Gambar 3.5 Tahapan pra-pengolahan citra 16
Gambar 3.6 Diagram alir proses grayscaling 17
Gambar 3.7 Citra hasil grayscaling 18
Gambar 3.8 Diagram alir proses deteksi tepi 18
Gambar 3.9 Citra hasil deteksi tepi 19
Gambar 3.10 Diagram alir pembentukan citra biner 19
Gambar 3.11 Citra hasil binerisasi 20
Gambar 3.12 Matriks penyimpanan nilai fitur 20
Gambar 3.13 Pembagian blok menjadi 10 kolom dan 10 baris 21
Gambar 3.14 Diagram alir proses ekstraksi fitur operasi blok non-overlapping 21 Gambar 3.15 Diagram alir ekstraksi fitur operasi blok non-overlapping 22
Gambar 3.16 Contoh hasil fitur citra 23
Gambar 3.17 Diagram alir proses menghitung jarak Euclidean ternormalisasi 25
Gambar 4.1 Tampilan awal program 28
Gambar 4.2 Tampilan registrasi user 29
Gambar 4.3 Tampilan pengolahan citra sebelum citra dipilih 29
Gambar 4.4 Tampilan citra berwarna (RGB) 30
Gambar 4.5 Tampilan pembentukan citra grayscale 30
Gambar 4.6 Tampilan pembentukan citra deteksi tepi 31
Gambar 4.7 Tampilan pembentukan citra biner 31
Gambar 4.8 Tampilan hasil fitur citra uji 32
Gambar 4.9 Tampilan pengujian citra sebelum data diisi 32
Gambar 4.10 Tampilan pengujian citra 33
Gambar 4.11 Tampilan form“Tentang Saya” 33
(12)
ABSTRAK
Pengenalan garis telapak tangan merupakan pengenalan identitas seseorang melalui salah satu bagian tubuh yang memiliki karakteristik tertentu. Garis telapak tangan memiliki karakteristik dengan bentuk garis telapak tangan yang berbeda pada setiap orang. Pada penelitian ini, metode ekstraksi fitur operasi blok non-overlapping digunakan pada pengenalan citra garis telapak tangan. Metode ini membagi data sampel menjadi LxK blok dan menghitung nilai fitur dari setiap blok tersebut. Pada penelitian ini data sampel dibagi menjadi 10x10 blok (10 baris dan 10 kolom), yaitu 100 blok dengan ukuran masing-masing blok adalah 20x20 piksel. Metode operasi blok non-overlapping menghitung rata-rata dari setiap blok dengan menghitung piksel aktif (putih) setiap blok dan melakukan pembagian terhadap jumlah keseluruhan piksel di dalam satu blok. Sehingga didapat hasil fitur dari sebuah citra berjumlah 100 nilai fitur. Nilai fitur tersebut menjadi acuan untuk pencocokan menggunakan jarak
Euclidean ternormalisasi. Jarak Euclidean ternormalisasi merupakan pengukuran tingkat kesamaan antara dua vektor. Total data sampel berjumlah 240 dengan 160 data digunakan untuk pelatihan dan 80 data sampel berbeda digunakan untuk proses pengujian tingkat pencocokan. Dari 80 citra uji, 48 citra tidak memiliki noise
didapatkan hasil pengenalan yang benar sebesar 97,92% dan 32 citra uji lain memiliki
noise dengan hasil pengenalan yang benar 75%. Sedangkan pengujian yang dilakukan secara keseluruhan didapatkan tingkat pencocokan menggunakan metode ekstraksi fitur ini adalah 88,75%.
Kata kunci : garis telapak tangan, ekstraksi fitur,operasi blok non-overlapping, jarak
(13)
PALMPRINT RECOGNITION USING NON-OVERLAPPING BLOCK PROCESSING FEATURE EXTRACTION AND MATCHING USING
NORMALIZED EUCLIDEAN DISTANCE
ABSTRACT
Palmprint line recognition is the one of a kind to recognize person through with one of the characteristic from the human body. The palmprint lines have the characteristic that the shape of the palmprint lines are different for each other. In this paper, non-overlapping block processing feature extraction method is used to palmprint recognition. The method divide sampel to LxK grid blocks and compute feature vector from each block. In this paper, sample is divided into 10x10 grid blocks, total 100 blocks from each block is 20x20 pixels. Block processing method compute the average of every active (white) pixel from each block and divide value with the sum of pixels in each block. The total feature vector is 100 features obtained from average active pixel. These feature used as referenced to matching process. Normalized Euclidean distance is the measure of similarity by the two vectors. The total data samples are 240 which 160 samples used for training and another samples are used for matching rate testing. After testing phase done, according to 80 of the data test, the result of 48 data test recognition which have no noise is 97.92% and the result of 32 data test recognition which have noise is 75%. After testing phase done, the overall matching rate using the feature extraction is 88.75%.
Keywords : palmprint, feature extraction, non-overlapping block processing, normalized Euclidean distance
(14)
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Dewasa ini pengolahan citra digital telah mengalami perkembangan pesat dengan semakin banyak penelitian tentang pengenalan objek dari sebuah citra. Pengenalan suatu objek dari citra berupa pengenalan karakter ataupun pola. Pengenalan citra dari salah satu bagian tubuh bersifat khas dimiliki seseorang menjadi topik penelitian yang sedang berkembang. Pengenalan salah satu bagian tubuh bersifat khas dari manusia yang dapat dilakukan adalah pengenalan sidik jari, pengenalan citra wajah, pengenalan garis telapak tangan, pengenalan tulisan tangan, pengenalan tanda tangan, iris, dll (Mughni, et al. 2011). Pengenalan tersebut dilakukan untuk mencari identitas seseorang berdasarkan apa yang dimiliki seseorang.
Salah satu bagian tubuh manusia yang memiliki ciri khas adalah garis telapak tangan (Ong, et al. 2003). Garis telapak tangan memiliki sifat khas karena bentuk garis telapak tangan yang berbeda-beda pada tiap manusia sehingga setiap garis telapak tangan seseorang mewakili satu identitas seseorang. Sebuah fitur citra garis telapak tangan mewakili identitas seseorang sehingga fitur tersebut menjadi suatu yang khas dari seseorang. Fitur citra garis telapak tangan memiliki nilai yang dapat dijadikan acuan untuk membandingkan antara satu citra dengan citra garis telapak tangan lainnya.
Garis telapak tangan dapat dikenali melalui pengenalan citra garis telapak tangan dengan beberapa tahapan-tahapan proses pengenalan. Tahapan dari pengenalan citra adalah pra-pengolahan citra, ekstraksi fitur citra (Falasev, et al. 2011) dan pencocokan citra uji dengan citra latih. Tahapan pra-pengolahan citra digunakan untuk
(15)
mempersiapkan citra yang lebih baik lagi dari citra aslinya. Pemilihan metode ekstraksi fitur yang baik merupakan salah satu faktor penting untuk mencapai tingkat pengenalan yang tinggi (Jain & Taxt 1996). Ekstraksi fitur citra digunakan untuk menghasilkan fitur citra yang akan digunakan sebagai masukan untuk tahapan pencocokan. Tahapan pencocokan adalah tahapan dimana fitur dari sebuah citra uji diukur tingkat kecocokan dengan fitur-fitur citra yang disimpan dalam database.
Pada penelitian ini metode ekstraksi fitur operasi blok non-overlapping
digunakan untuk mendapatkan nilai fitur sebuah citra garis telapak tangan. Nilai fitur tersebut digunakan sebagai parameter dalam pengukuran tingkat kesamaan antara vektor uji dan latih. Setiap data sampel yang telah melalui proses pra-pengolahan citra akan dilakukan ekstraksi fitur. Ekstraksi fitur dilakukan menggunakan metode operasi blok. Hasil ekstraksi dari metode tersebut akan digunakan untuk mendapatkan nilai fitur untuk proses pencocokan. Metode pencocokan jarak Euclidean ternormalisasi digunakan untuk mengukur tingkat kecocokan kesamaan dua vektor (uji dan latih).
Penelitian sebelumnya yang telah dilakukan dalam mengekstraksi fitur dan pencocokan sebuah citra garis telapak tangan dapat dilakukan dengan metode ekstraksi fitur operasi blok overlapping dan pencocokan dengan Euclidean distance
(Mughni, et al. 2011), dimana metode tersebut menghasilkan tingkat kecocokan sebesar 100% dengan menggunakan 90 citra sampel dari 30 orang responden dan menghasilkan blok 15x15. Putra (2007) menggunakan metode ekstraksi fitur operasi blok secara non-overlapping menghasilkan tingkat pencocokan 97% menggunakan metrika korelasi ternormalisasi dimana data yang digunakan adalah 1000 citra dari 200 orang responden dan menghasilkan 64 buah fitur setiap citra.
Penggunaan metode ekstraksi fitur citra dengan operasi blok dan pencocokan dengan jarak Euclidean ternormalisasi diharapkan dapat menambah nilai akurasi tingkat kecocokan dan memberi informasi identitas pemilikcitra garis telapak tangan yang paling mendekati kemiripan.
1.2. Rumusan Masalah
Untuk mendapatkan informasi identitas pemilik citra telapak tangan maka dibutuhkan pendekatan untuk menyelesaikan permasalahan pengenalan identitas seseorang melalui citra garis utama telapak tangan.
(16)
1.3. Batasan Masalah
Adapun batasan masalah dalam penelitian ini yaitu: 1. Akuisisi citra telapak tangan tidak mengalami rotasi. 2. Tidak mempertimbangkan pencahayaan.
1.4. Tujuan Penelitian
Tujuan dari penelitian ini adalah menerapkan metode ekstraksi fitur operasi blok non-overlapping dan metode pencocokan dengan jarak Euclidean ternormalisasi dalam mengenali identitas seseorang melalui garis utama telapak tangan.
1.5. Manfaat Penelitian
Penulis berharap penelitian ini dapat memberikan manfaat kepada penulis sendiri dan para pembaca. Adapun manfaat dari penelitian ini adalah sebagai berikut:
1. Penelitian dapat dikembangkan dalam membuat sistem pengenalan identitas seseorang melalui garis utama telapak tangan.
2. Menambah pengetahuan baru tentang ekstraksi fitur operasi blok non-overlapping
dalam menghasilkan ciri garis suatu citra telapak tangan dan metode jarak
Euclidean ternormalisasi sebagai salah satu pencocokan garis telapak tangan. 3. Penelitian dapat menjadi bahan rujukan untuk pengembangan penelitian lebih
lanjut.
1.6. Metodologi Penelitian
Metode penelitian yang akan digunakan dalam penelitian ini adalah: 1. Studi Literatur
Pada tahap ini, peneliti mencari metode pengajaran yang berbeda dari sebelumnya. Mempelajari kembali apa yang kurang dipahami dengan referensi-referensi, buku-
(17)
buku ataupun via internet dan dengan orang yang memahami secara benar pembelajaran tentang metode ekstraksi fitur dan pencocokan kesamaan dua vektor. 2. Desain Sistem
Pada tahap ini peneliti membuat diagram alir data dari setiap proses yang dilakukan dalam penelitian ini.
3. Pembuatan Sistem
Pada tahap ini, peneliti mulai mengodekan sistem akan dibuat dengan bahasa pemrograman Java.
4. Pengujian Sistem
Pada tahap ini dilakukan pengujian terhadap aplikasi apakah telah memenuhi kriteria atau tidak.
5. Dokumentasi
Pada tahap ini akan dilakukan penyusunan laporan mengenai aplikasi yang telah dibangun dengan tujuan menunjukkan hasil dari penelitian yang telah dilakukan.
1.7. Sistematika Penulisan
Tugas akhir ini disusun dalam lima bab dengan sistematika penulisan sebagai berikut: Bab 1 Pendahuluan
Pada bab pendahuluan berisi tentang hal-hal yang mendasari dilakukannya penelitian serta mengidentifikasi masalah penelitian. Bagian-bagian yang terdapat dalam bab pendahuluan ini terdiri atas latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, dan manfaat penelitian.
Bab 2 Tinjauan Pustaka
Pada bab tinjauan pustaka berisi landasan teori, kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari dalam melakukan penelitian ini. Bab 3 Metodologi
Pada bab metodologi berisi metodologi penelitian yang dilakukan dalam menerapkan metode ekstraksi fitur operasi blok non-overlapping dan jarak
Euclidean ternormalisasisebagai salah satu pengukuran tingkat kesamaan dua vektor untuk pencocokan garis telapak tangan.
(18)
Bab 4 Hasil dan Pembahasan
Pada bab hasil dan pembahasan berisi penjelasan hasil dari pengujian metode ekstraksi fitur operasi blok non-overlapping dan pengukuran pencocokan dengan jarak Euclidean ternormalisasi yang telah dilakukan dalam menyelesaikan permasalahan pengenalan identitas seseorang melalui garis telapak tangan.
Bab 5 Kesimpulan dan Saran
Pada bab kesimpulan dan saran berisi kesimpulan dari hasil penelitian dan saran-saran yang berkaitan dengan penelitian yang dapat dikembangkan selanjutnya.
(19)
BAB 2
LANDASAN TEORI
2.1. Garis Telapak Tangan
Menurut Putra (2009), garis telapak tangan merupakan salah satu bagian tubuh seseorang yang memiliki karakteristik tersendiri. Hal ini disebabkan setiap manusia memiliki garis telapak tangan unik yang sekilas terdapat kemiripan tetapi jika dilihat lebih dekat terdapat perbedaan.
Garis telapak tangan memiliki kelebihan dibandingkan dengan bagian-bagian tubuh manusia yang khas lainnya. Kelebihan yang dimiliki seperti citra telapak tangan memiliki area lebih luas daripada sidik jari, bersifat stabil karena perubahan yang dialami sangat kecil dalam kurun waktu lama, citra telapak tangan dapat diperoleh dengan kamera beresolusi rendah misal menggunakan webcam (Ikonen, 2003).
2.2. Konsep Dasar Citra
Citra (image) adalah dimensi spasial atau bidang yang berisi informasi warna yang tidak bergantung waktu (Sutarno, 2010). Citra adalah sebuah representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra juga sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti pada gambar monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan (Sutoyo, et al. 2009).
(20)
Citra digital adalah representasi visual dari suatu objek setelah mengalami berbagai transformasi data dari berbagai bentuk rangkaian numerik. Citra digital dapat dibagi menjadi beberapa jenis (Purnomo & Muntasa 2010):
1. Citra Keabuan (grayscale image)
Citra keabuan adalah citra yang setiap pikselnya memiliki nilai intensitas berada pada jangkauan 0 – 255. Jumlah warna pada citra keabuan adalah 256. Hal ini disebabkan oleh jumlah maksimum intensitas citra keabuan sebesar 8 bit sehingga jumlah warnanya adalah 28 = 256.
2. Citra Biner
Citra biner (binary image) adalah citra yang hanya mempunyai dua nilai tingkat keabuan yaitu hitam dan putih. Piksel-piksel objek bernilai satu dan piksel-piksel latar belakang bernilai nol. Pada waktu menampilkan citra, satu adalah warna putih dan nol adalah warna hitam.
3. Citra Berwarna
Citra warna adalah citra digital yang memiliki informasi warna pada setiap pikselnya. Sistem pewarnaan citra warna ada beberapa macam seperti RGB, CMYK, HSV, dll.
2.3. Pra-pengolahan Citra
Pra–pengolahan citra adalah proses yang dilakukan untuk mempersiapkan citra agar dapat menghasilkan fitur yang lebih baik pada tahap ekstraksi fitur (Hermawati, 2013). Citra diolah dengan cara memanipulasi parameter-parameter citra sehingga menghasilkan bentuk yang lebih cocok terhadap nilai-nilai piksel tersebut untuk proses yang akan dilakukan selanjutnya (Sutoyo, 2009).
2.3.1. Pembentukan citra keabuan
Citra keabuan adalah citra yang memiliki rentang nilai intensitas setiap piksel adalah 256 nilai intensitas warna (Sutoyo, 2009). Purnomo & Muntasa (2010) menjelaskan bahwa untuk membentuk citra keabuan digunakan persamaan (2.1):
(21)
dengan I(x,y) adalah level keabuan pada suatu koordinat yang diperoleh dengan mengatur warna R (merah), G (hijau), B (biru) yang ditunjukkan oleh nilai parameter α, dan . Secara umum nilai α, dan adalah 0.γγ. Nilai yang lain juga dapat diberikan untuk ketiga parameter tersbut dengan total keseluruhan intensitas adalah 1 (satu).
2.3.2. Deteksi tepi : operator Canny
Deteksi tepi merupakan salah satu operasi dasar dari pemrosesan citra. Deteksi tepi berfungsi untuk mengidentifikasi garis batas dari suatu objek yang terdapat pada citra (Kadir & Susanto 2013).
Tepi merupakan batas dari suatu objek dan daerah yang memiliki intensitas cahaya (kontras) yang kuat. Hal ini merupakan indikasi untuk menuju proses pembacaan piksel selanjutnya. Mendeteksi tepi suatu citra signifikan akan mengurangi jumlah data dan menyaring informasi yang tidak berguna dengan tidak menghilangkan struktur penting dari citra tersebut (Putra, 2009). Metode deteksi tepi yang dapat digunakan antara lain metode dengan operator Canny, Sobel, Roberts, Log, Prewitt, dan Zerocross. Pada penelitian ini, penulis mengambil metode deteksi tepi Canny karena memiliki tingkat kesalahan rendah dan hanya memberikan satu tanggapan untuk satu tepi (Kadir & Susanto 2013).
Terdapat enam langkah dalam mendeteksi tepi menggunakan operator Canny (Green, 2002). Keenam langkah tersebut dijabarkan berikut ini:
1. Penerapan filter Gaussian untuk mengurangi noise
Filter Gaussian dapat digunakan untuk mengurangi noise pada citra sebelum melokasikan dan mendeteksi tepi. Filter ini digunakan untuk menurunkan pengaruh tekstur pada citra sehingga diperoleh hasil deteksi yang lebih baik. Filter Gaussian digunakan pada deteksi tepi Canny dalam bentuk matriks template yang merupakan weight (bobot) dalam perhitungan nilai rata-rata suatu kelompok piksel pada citra input yang diantaranya berukuran 3x3. Contoh filter Gaussian yang dapat digunakan seperti diberikan pada gambar 2.1.
(22)
0.37 0.61 0.37 0.61 1 0.61 0.37 0.61 0.37
Gambar 2.1 Contoh matriks template dari filter Gaussian (Putra, 2009) Filter tersebut dapat digunakan pada proses pemfilteran noise pada citra dengan cara menghaluskan citra untuk menghilangkan noise (Putra, 2008). Nilai matriks
template pada gambar 2.1 diperoleh dari persamaan (2.2):
(2.2)
Dimana x dan y merupakan koordinat dari matriks, dan radius ( ) adalah sigma standar deviasi dalam statistik sebesar 1,01 sehingga didapat hasil matriks
template seperti pada gambar 2.1. Sebagai contoh dengan koordinat pusat (0.0) jika dihitung dengan persamaan (2.2) didapat nilai matriks = 1.
2. Mencari nilai tepi
Mencari nilai tepi dengan menghitung gradien citra tersebut. Gradien adalah Hal ini dilakukan dengan menggunakan operator Sobel. Operator Sobel memperlihatkan banyaknya gradien spasial dua dimensi dalam sebuah citra. Lalu nilai mutlak sudut gradien (nilai tepi) pada masing-masing titik dapat ditemukan. Operator Sobel menggunakan sepasang matriks konvolusi 3x3 di mana salah satunya memprediksi nilai gradien untuk arah x (kolom) dan yang lainnya memprediksi nilai gradien arah y (baris). Matriks konvolusi pada operator Sobel dapat dilihat pada gambar 2.2.
-1 0 1 1 2 1
-2 0 2 0 0 0
-1 0 1 -1 -2 -1
Gx Gy
Gambar 2.2 Matriks konvolusi 3x3 Operator Sobel (Putra, 2008) Gradien tepi dapat dihitung dengan persamaan (2.3):
|G| = |Gx|+|Gy| (2.3)
dimana |G| adalah gradien citra, |Gx| adalah gradien pada arah x dan |Gy| adalah gradien pada arah y.
(23)
3. Mencari arah tepi
Mencari arah tepi atau arah gradien ( ) dilakukan setelah nilai gradien x dan y
diketahui. Saat gradien pada arah x = 0, arah tepi harus 90o atau 0o, tergantung nilai gradien arah y yang didefinisikan. Hal ini ditunjukkan dengan persamaan (2.4):
(2.4)
dimana adalah arah gradien, Gy adalah nilai gradien arah y dan Gx adalah nilai gradien arah x.
4. Menghubungkan arah tepi
Langkah selanjutnya adalah menghubungkan arah tepi ke arah yang dapat ditelusuri sesuai dengan citra aslinya. Contoh matriks citra berukuran 5x5 piksel dapat dilihat pada gambar 2.3.
x x x x x
x x x x x
x x a x x
x x x x x
x x x x x
Gambar 2.3 Matriks citra berukuran 5x5 piksel (Kadir dan Susanto 2013) Setelah tepi diperoleh, perlu menghubungkan antara tepi dengan sebuah arah yang dapat dilacak dari citra. Berdasarkan piksel a yang terdapat pada gambar 2.3, tampak bahwa piksel a dikelilingi empat arah berupa 0o arah horizontal, 45o arah positif diagonal, 90o arah vertikal, dan 135o arah negatif diagonal. Tepi harus berorientasi keempat arah tersebut tergantung arah mana yang paling mendekati. Sebagai contoh jika orientasi sudutnya adalah 3o, maka arah tepi menjadi 0o. Arah tepi ditunjukkan pada gambar 2.4.
Gambar 2.4 Area untuk mengonversi arah tepi ke dalam kategori salah satu dari arah 0o, 45o, 90o, 135o (Kadir dan Susanto 2013)
(24)
Dari gambar 2.4 didapat empat arah tepi sebagai berikut:
- Semua arah tepi yang berkisar antara 0o-22,5o serta 157,5o-180o (warna biru) diubah menjadi 0o.
- Semua arah tepi yang berkisar antara 22,5o-67,5o (warna kuning) diubah menjadi 45o.
- Semua arah tepi yang berkisar antara 67,5o-112,5o (warna hijau) diubah menjadi 90o.
- Semua arah tepi yang berkisar antara 112,5o-157,5o (warna merah) diubah menjadi 135o.
5. Proses non-maximum suppression
Proses ini merupakan penelusuran terhadap tepi yang ada di dalam arah tepi dan meredam nilai piksel manapun (dijadikan nol) yang tidak dianggap layak untuk menjadi sebuah tepi. Ini akan menampilkan garis tipis pada output citra.
6. Proses hysteresis
Proses ini menghilangkan garis-garis yang seperti terputus-putus pada tepi objek. Caranya adalah dengan menggunakan dua ambang T1 dan T2. Selanjutnya semua piksel citra yang bernilai lebih besar daripada T1 dianggap sebagai piksel tepi. Selain itu, semua piksel yang terhubung dengan piksel tersebut dan memiliki nilai lebih besar dari T2 juga dianggap sebuah piksel tepi (Kadir dan Susanto 2013).
2.3.3. Binerisasi citra
Untuk mengubah sebuah citra menjadi citra biner, proses yang dilakukan adalah mengubah nilai intensitas citra dengan cara pengambangan secara global (global image thresholding). Pengambangan secara global adalah pemberian satu nilai ambang batas yang digunakan untuk keseluruhan piksel. Setiap piksel di dalam citra dipetakan ke dalam dua nilai yaitu 0 atau 1. Dengan fungsi pengambangan pada persamaan (2.5):
(25)
2.4. Konsep Fitur
Fitur atau ciri adalah semua hasil pengukuran yang bisa diperoleh dengan menggambarkan karakteristik objek yang dipantau (Putra, 2009). Contoh dari fitur level rendah adalah intensitas sinyal. Fitur dapat berupa simbol, numerik atau keduanya. Contoh dari fitur simbol adalah warna sedangkan contoh dari fitur numerik adalah berat atau nilai bobot.
Fitur yang baik memiliki syarat berikut, yaitu mudah dalam komputasi, memiliki tingkat keberhasilan yang tinggi dan besarnya data dapat diperkecil tanpa menghilangkan informasi penting (Putra, 2007).
2.5. Ekstraksi Fitur Operasi Blok Non-Overlapping
Ekstraksi fitur adalah proses pengukuran terhadap data yang telah diproses sebelumnya dengan tujuan untuk mendapatkan sebuah nilai fitur. Nilai fitur digunakan oleh pengklasifikasi sebagai masukan untuk acuan membandingkan tingkat kesamaan dua vektor dan memudahkan pengklasifikasian karena nilai ini mudah untuk dibedakan (Pradeep et. al, 2011).
Ekstraksi fitur operasi blok adalah pengambilan ciri fitur suatu citra NxM berdasarkan pembagian blok LxK dimana ukuran blok LxK lebih kecil daripada ukuran sebuah citra. Ekstraksi fitur berdasarkan operasi blok dilakukan setelah pemrosesan citra sebelumnya, misalnya pra-pengolahan dengan deteksi tepi. Citra yang telah mengalami pra-pengolahan dibagi ke dalam blok-blok (Mughni, et al. 2011).
Ekstraksi fitur operasi blok non-overlapping merupakan operasi pembagian blok dengan tidak tumpang tindih antara piksel suatu blok dengan blok yang lain. Hasil ekstraksi fitur atau vektor fitur operasi blok ini dapat dibentuk dengan nilai rata-rata dari setiap blok. Rata-rata-rata setiap blok dapat dihitung dengan persamaan (2.6):
(2.6)
dengan M menyatakan jumlah seluruh piksel pada setiap blok dan x adalah nilai piksel. Sedangkan vektor fitur telapak tangan dapat dibentuk dengan persamaan (2.7):
(26)
dengan menyatakan nilai rata-rata blok ke-i, dan N menyatakan jumlah keseluruhan blok. Contoh jika vektor fitur dari rata-rata blok dengan ukuran blok 10 kolom dan 10 baris dari sebuah citra akan menghasilkan rata-rata blok hingga . Contoh vektor fitur tersebut dapat dilihat pada gambar 2.5.
…
… …
… … … … …
…
Gambar 2.5 Contoh matriks vektor fitur rata-rata dengan ukuran 10x10 blok
2.6. Metrika Pencocokan dengan Jarak Euclidean Ternormalisasi
Proses metrika pencocokan merupakan sebuah proses pengukuran tingkat kesamaan atau ketidaksamaan antara dua vektor fitur. Tingkat kesamaan berupa suatu jarak dan berdasarkan jarak tersebut dua vektor akan dikatakan mirip atau tidak (Putra, et al. 2012). Vektor fitur dapat dikenali atau tidak dengan membandingkan vektor tersebut dengan suatu nilai ambang.
Jarak Euclidean ternormalisasi (normalized Euclidean distance) adalah metrika (pengukuran) yang digunakan untuk menghitung kesamaan dua vektor. Jarak
Euclidean ternormalisasi menghitung akar kuadrat perbedaan dua vektor (Putra, 2007). Rumus jarak Euclidean ternormalisasi dari dua vektor fitur u dan v dapat ditunjukkan pada persamaan (2.8):
(2.8) dengan
(2.9)
(2.10)
dimana disebut norm dari v yang dinyatakan sebagai:
(2.11)
(27)
kedua vektor fitur yang dicocokkan. Sifat dari jarak Euclidean ternormalisasi adalah bahwa hasil dari hasil jarak berada pada rentang 0 ≤ ≤ β (Mughni, et al. 2011).
2.7. Penelitian Terdahulu
Bagian ini menjelaskan beberapa penelitian terdahulu terkait dengan penelitian pengenalan garis telapak tangan, ekstraksi fitur dan pencocokan yang digunakan. Penelitian yang telah dilakukan dalam mengekstraksi fitur dan pencocokan sebuah citra garis telapak tangan dapat dilakukan dengan metode ekstraksi fitur operasi blok
overlapping dan pencocokan dengan Euclidean distance (Mughni, et al. 2011), dimana metode tersebut menghasilkan tingkat kecocokan sebesar 100% dengan menggunakan 90 citra sampel dari 30 orang responden dan menghasilkan blok 15x15. Putra (2007) menggunakan metode ekstraksi fitur operasi blok secara non-overlapping
menghasilkan tingkat pencocokan 97% menggunakan metrika korelasi ternormalisasi dimana data yang digunakan adalah 1000 citra dari 200 orang responden dan menghasilkan 64 buah fitur setiap citra. Tabel penelitian terdahulu ditunjukkan pada tabel 2.1.
Tabel 2.1 Tabel penelitian terdahulu
Penulis Judul Penelitian Hasil Kelemahan
Putra (2007) Sistem verifikasi garis telapak tangan
100% Penelitian tidak
menunjukkan identitas pengguna. Hanya menunjukkan cocok dan tidak cocok antara data uji dengan data latih. Mughni, et al. (2011) Identifikasi garis telapak
tangan menggunakan operasi blok
97% Data yang dibandingkan hanya berdasarkan intensitas cahaya yang digunakan.
(28)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas beberapa hal diantaranya seperti data yang digunakan, tahapan pengenalan yang dilakukan, penerapan metode yang digunakan dan analisis perancangan sistem dalam mengimplementasikan metode operasi blok non-overlapping dan pencocokan dengan jarak Euclidean ternormalisasi dalam mengenali garis telapak tangan manusia. Pembahasan bertujuan untuk memberikan penjelasan tentang spesifikasi dan kebutuhan dalam pengerjaan dan pengembangan aplikasi.
3.1. Data yang Digunakan
Data penelitian yang digunakan berdasarkan data sampel dikumpulkan dari delapan orang responden yaitu mahasiswa Teknologi Informasi dan responden luar dimana setiap satu orang responden diambil citra telapak tangan kiri sebanyak 30 kali. Total data sampel yang digunakan sebanyak 240 citra telapak tangan kiri yang diambil menggunakan scanner printer Canon Pixma MG2270 dan disimpan dalam format citra
jointphotograhicgroup (.jpg).
Citra uji yang digunakan sebanyak 80 buah citra. Dimana sebanyak 48 citra uji merupakan citra tanpa noise dan 32 citra uji lain memiliki noise berbentuk sebuah kertas putih berukuran 2x1 cm yang ditempelkan secara acak di tiap citra untuk menutupi sebagian garis utama telapak tangan.
(29)
3.2. Tahapan Pengenalan Garis Telapak Tangan
Tahapan dalam metode penelitian ini adalah akuisisi data citra, yaitu membaca citra telapak tangan yang telah dikumpulkan dan dipindai. Tahap kedua yaitu proses citra yang telah dikumpulkan menjadi satu kesatuan yang seragam agar sesuai untuk tahap selanjutnya. Tahap ketiga yaitu ekstraksi fitur dengan menggunakan operasi blok non-overlapping untuk mengekstrak nilai fitur dari tiap citra yang akan digunakan sebagai data acuan proses pencocokan. Tahap keempat adalah pelatihan dan pengujian menggunakan pencocokan dengan jarak Euclidean ternormalisasi dimana fitur dari citra yang telah dilatih akan disimpan ke dalam database. Sedangkan pengujian akan melakukan proses pencocokan fitur citra uji dengan fitur citra latih yang telah disimpan di database. Secara umum, tahapan pengenalan garis telapak tangan dapat dilihat pada gambar 3.1.
Pengujian citra Deteksi Tepi
Nilai Vektor Fitur Rata-rata setiap blok Binerisasi
Ekstraksi Fitur : Operasi Blok Non-overlapping Akuisisi Citra
Telapak Tangan
Grayscale
Proses pra-pengolahan
citra garis telapak tangan
Ekstraksi fitur
Pelatihan citra
Pencocokan Jarak Euclidean Ternormalisasi
Output Simpan fitur
acuan
(30)
3.3. Akuisisi Citra
Akuisisi citra merupakan tahapan pengambilan data dan mempersiapkan untuk diolah ke proses berikutnya. Citra dipersiapkan terlebih dahulu dengan melakukan proses
cropping (pemotongan) dan resize citra dengan menggunakan software pengolahan citra photoscape. Contoh citra telapak tangan kiri dapat dilihat pada gambar 3.2.
Gambar 3.2 Contoh citra telapak tangan kiri resolusi 2052 x 1824 piksel Proses pemotongan citra dilakukan dengan mengambil bagian garis-garis utama telapak tangan saja, tidak termasuk jari tangan dan citra berukuran rasio 1:1. Dimana proses ini memotong sebagian dari citra menjadi ukuran lebih kecil. Selanjutnya proses resizing citra dimana semua citra direduksi dan diseragamkan citra input menjadi ukuran 200x200 piksel. Contoh hasil proses pemotongan dan resize
citra berturut dapat dilihat pada gambar 3.3 dan 3.4.
Gambar 3.3 Contoh cropping (pemotongan) citra berukuran 600x600 piksel
(31)
Setelah data sampel diambil lalu dilakukan proses pemotongan dan resizing, selanjutnya data sampel ini akan dipersiapkan pada tahap pra-pengolahan citra.
3.4. Pra-pengolahan Citra
Tahapan pra-pengolahan citra digunakan untuk mempersiapkan citra menjadi lebih baik lagi dari citra sebelumnya. Tahapan proses pra-pengolahan citra dapat dilihat pada gambar 3.5.
Deteksi Tepi
Binerisasi Grayscaling
Gambar 3.5 Tahapan pra-pengolahan citra
Pra-pengolahan citra dimulai dengan mengubah citra warna (RGB) menjadi citra keabuan dimana memiliki satu nilai intensitas dengan jangkauan 256 tingkat keabuan. Tahap selanjutnya dilakukan proses deteksi tepi untuk mengidentifikasi garis batas dari suatu objek yang terdapat pada citra. Setelah tepi didapatkan, tahap selanjutnya adalah binerisasi citra dimana citra diubah dengan hanya memiliki dua nilai derajat keabuan yaitu hitam dan putih. Citra hasil binerisasi ini kemudian digunakan untuk tahap ekstraksi fitur.
3.4.1. Pembentukan citra keabuan
Tahap proses citra diawali dengan grayscaling yaitu teknik pembentukan citra keabuan dengan mengubah citra berwarna menjadi bentuk grayscale atau tingkat keabuan dari 0-255. Nilai intensitas suatu piksel didapat dari rata-rata nilai RGB ataupun dapat juga dari metode luminasi dengan mengalikan nilai RGB dengan nilai yang telah ditentukan kecocokannya terhadap sensitivitas mata dan warna. Hasil dari proses ini adalah sebuah citra dengan rentang nilai keabuan 0-255. Diagram alir pembentukan citra keabuan dapat dilihat pada gambar 3.6.
(32)
MULAI
i = 0
i < lebar
Yes j = 0
SELESAI No
j < tinggi No
Yes
image (i,j) = (0.3 * r + 0.59 * g + 0.11 * b) i = i + 1
j = j + 1 Input citra
berwarna
Output citra grayscale Inisialisasi image(RGB)
tinggi = image(height) Lebar = image(width)
i,j
Gambar 3.6 Diagram alir proses grayscaling
Contoh citra hasil dari proses grayscaling dapat dilihat pada gambar 3.7.
Gambar 3.7 Citra hasil grayscaling
3.4.2. Deteksi tepi citra
Proses deteksi tepi yaitu proses mengidentifikasi garis batas dari suatu objek yang terdapat pada citra. Citra yang telah mengalami proses grayscale dilanjutkan dengan deteksi tepi piksel per piksel dari citra tersebut dengan memberikan dua nilai ambang batas T1 dan T2. Tahapan dari proses ini dapat dilihat pada sub bab 2.3.2 mengenai deteksi tepi. Diagram alir proses deteksi tepi dapat dilihat pada gambar 3.8.
(33)
MULAI
Input citra grayscale
Penerapan filter Gaussian
Cari nilai tepi dengan hitung
gradien
Cari arah tepi
Hubungkan tepi
Non maximum suppression Hysteresis
Citra hasil deteksi
tepi
SELESAI
Gambar 3.8 Diagram alir proses deteksi tepi
Contoh citra hasil dari proses deteksi tepi dapat dilihat pada gambar 3.9.
Gambar 3.9 Citra hasil deteksi tepi
3.4.3. Binerisasi citra
Binerisasi adalah proses pembentukan citra biner dimana citra hasil deteksi tepi akan diubah menjadi citra biner. Citra biner yaitu citra yang hanya memiliki dua warna, hitam dan putih. Proses ini membutuhkan nilai ambang (threshold) yang digunakan sebagai acuan untuk menentukan intensitas 255 (hitam) atau 0 (putih). Diagram alir pembentukan citra biner dapat dilihat pada gambar 3.10.
(34)
MULAI
Input citra deteksi
tepi
i = 0
i < tinggi
j < lebar Yes
SELESAI i = i + 1 j = 0
No
image(i,j) >= threshold
image(i,j) = 255 Yes Yes
image(i,j) = 0 No
j = j + 1
No
Output citra biner Inisialisasi image (hasil
deteksi tepi) tinggi = image(height)
lebar = image(width) threshold, i, j
Gambar 3.10 Diagram alir pembentukan citra biner
Contoh citra hasil dari proses pembentukan citra biner ditunjukkan pada gambar 3.11.
Gambar 3.11 Citra hasil binerisasi
3.5. Ekstraksi Fitur
Tahap ekstraksi fitur dilakukan setelah tahap pra-pengolahan citra selesai dilakukan. Tahap ekstraksi fitur digunakan untuk mendapatkan nilai fitur sebagai ciri dari suatu citra. Pada tahap ini, data sampel citra diekstrak menggunakan metode operasi blok
non-overlapping. Hasil dari fitur ini disimpan dan digunakan sebagai nilai acuan pada
(35)
tahap pencocokan. Nilai fitur disimpan dalam matriks dengan indeks ke-0 sampai dengan indeks ke-99. Matriks nilai fitur dapat dilihat pada gambar 3.12.
… … … …
Gambar 3.12 Matriks penyimpanan nilai fitur
Pada penelitian ini, data sampel citra telapak tangan berukuran 200x200 piksel. Ukuran citra diseragamkan dengan tujuan memudahkan pengolahan citra karena jika ukuran citra terlalu besar akan memperlambat kinerja sistem. Setiap data sampel citra dibagi menjadi blok-blok berukuran 20x20 piksel dengan hasil pembagian blok terdapat 10 kolom dan 10 baris. Jumlah blok yang dihasilkan sebanyak 100 blok. Jadi matriks penyimpanan fitur berisi dari blok indeks 0 sampai dengan blok indeks ke-99. Pembagian blok sebanyak 100 blok dapat ditunjukkan pada gambar 3.13.
Gambar 3.13 Pembagian blok menjadi 10 kolom dan 10 baris
Diagram alir proses ekstraksi fitur dengan metode operasi blok non-overlapping dapat dilihat pada gambar 3.14.
0 99
10
10
20
(36)
Bagi citra menjadi 10 kolom dan 10 baris dengan ukuran 1
blok 20x20 piksel
Hitung rata-rata setiap blok MULAI
Input citra biner
Nilai fitur = rata-rata setiap blok
SELESAI
Gambar 3.14 Diagram alir proses ekstraksi fitur operasi blok non-overlapping
Proses ekstraksi fitur tersebut dapat dijelaskan sebagai berikut:
1. Sebuah citra biner yang telah diproses sebelumnya menjadi input pada proses ekstraksi fitur.
2. Citra biner dibagi ke dalam blok-blok dengan total jumlah blok adalah 100 blok. Setiap blok yang dibagi memiliki ukuran sebesar 20x20 piksel. Jadi total keseluruhan piksel dari setiap blok adalah 400 piksel.
3. Pada setiap blok dihitung jumlah dari piksel putih (x), dengan n adalah urutan blok selanjutnya dihitung rata-rata ( ) setiap blok dimana 1 ≤ n ≤ 100.
(3.1)
Nilai rata-rata fitur akan disimpan sebagai nilai dari setiap matriks sesuai urutan indeks matriks. Contoh fitur rata-rata akan disimpan sebagai nilai dari indeks ke-0.
4. Selanjutnya didapat hasil dari fitur dari citra biner tersebut berbentuk vektor fitur
) (3.2)
Hasil fitur tersebut akan disimpan ke dalam database sebagai parameter yang dibandingkan saat proses pencocokan fitur uji dengan fitur latih yang telah dilatih.
Diagram alir dari proses ekstraksi fitur operasi blok non-overlapping lebih rinci dapat dilihat pada gambar 3.15.
(37)
MULAI
h < total_blok Input citra
biner
h = 0
i < total_blok Yes
nilai_pixel = 0; jlh_pixel = 0; index_i = h * max_pixel_blok;
temp_hasil = 0; Yes
No
j<index_i + max_pixel_blok j = index_i
index_j = i * max_pixel_blok
k = index_j
k < index_j + max_pixel_blok
SELESAI temp_hasil += gambar[k][j]
k = k+1 Yes
Yes
j = j+1
No
No h = h+1
No
hasil[hasil_index] = temp_hasil / 400 hasil = hasil + 1 kolom = kolom + 1
Output hasil nilai
rata-rata i = i+1
Inisialisasi image(hasil biner) tinggi = image(height) lebar = image(width), gambar[tinggi][lebar]; totalBlok ç 10, maxPixelBlok ç 20; nilai_pixel, jlh_pixel, index_i, index_j,
hasil_index ç 0, h, i, j, k
Gambar 3.15 Diagram alir ekstraksi fitur operasi blok non-overlapping
(38)
Gambar 3.16 Contoh hasil fitur citra dari gambar 3.13
3.6. Tahap Pelatihan
Tahap pelatihan adalah tahap dimana citra latih yang telah dipersiapkan mulai dari akuisisi citra latih, pra-pengolahan, dan ekstraksi fitur citra menghasilkan fitur citra latih yang akan disimpan di dalam database. Tahap pelatihan dilakukan untuk dapat mengenali citra garis telapak tangan latih dengan menyimpan fitur citra dari suatu citra garis telapak tangan ke dalam database. Fitur citra latih yang dikumpulkan di dalam database menjadi fitur acuan untuk dibandingkan saat tahap pengujian.
Tahap pelatihan menunjukkan data citra yang telah dipersiapkan akan dilatih dan fitur yang diekstrak selanjutnya disimpan ke dalam database. Data fitur disimpan beserta nomor id dan nama pemilik citra telapak tangan.
3.7. Tahap Pengujian
Tahap pengujian adalah tahap dimana citra uji yang tidak digunakan pada tahap pelatihan akan diuji di dalam sistem. Pada tahap ini akan dilakukan proses-proses seperti pelatihan citra latih tetapi perbedaaannya adalah saat pengujian dilakukan, fitur citra uji yang diuji akan dibandingkan dengan fitur citra latih yang telah disimpan di
(39)
yang dipilih tersebut memiliki kemiripan dengan citra latih atau tidak dan juga menampilkan jarak Euclidean ternormalisasi terkecil dari hasil pencocokan. Tahap pengujian menunjukkan penggunaan metode proses ekstraksi fitur operasi blok non-overlapping dan proses pencocokan dengan jarak Euclidean ternormalisasi.
3.8. Pencocokan dengan Jarak Euclidean Ternormalisasi
Tahap pencocokan menggunakan jarak Euclidean ternormalisasi adalah tahapan membandingkan antara satu vektor fitur yang diuji dengan vektor fitur yang tersimpan di dalam database. Tahap pencocokan ini merupakan tahap verifikasi kebenaran antara fitur citra uji dengan fitur citra acuan yang terdapat dalam database.
Vektor fitur citra uji (u) dibandingkan dengan hasil vektor fitur citra latih (v) yang telah disimpan. Kedua vektor tersebut dibandingkan berdasarkan kesamaan dua vektor. Jarak Euclidean ternormalisasi menghitung akar kuadrat perbedaan dua vektor. Semakin kecil jarak maka semakin mirip kedua vektor fitur yang dicocokkan. Sebaliknya, semakin besar hasil jarak maka semakin berbeda kedua vektor fitur yang dicocokkan. Sifat dari jarak Euclidean ternormalisasi adalah bahwa hasil dari jarak berada pada rentang 0 ≤ ≤ β. Nilai ambang toleransi yang digunakan pada penelitian ini adalah 2. Jadi jika jarak yang didapat lebih besar dari 2, maka kedua vektor yang dicocokkan tidak memiliki kemiripan.
Diagram alir proses untuk menghitung jarak Euclidean ternormalisasi dapat dilihat pada gambar 3.17.
(40)
MULAI
Input fitur citra latih (u), uji (v)
inisialisasi hasil_uji, u[], v[], arrayD[], min
d, unorm,vnorm ç 0
SELESAI i < u.length
i = 0
unorm += u[i] * u[i]; vnorm += v[i] * v[i];
unorm = sqrt(unorm); vnorm = sqrt(vnorm);
i = 0 Yes
i < u.length
d += (u[i]/unorm-v[i]/vnorm)*(u[i]/unorm-v[i]/vnorm); d = sqrt(d);
Yes j = 0
j < arrayD.length
Yes
No
i = i+1 j = j+1
i = i+1 No
arrayD[j] = d
j = 0
ArrayD[0]= min
No
j < arrayD.length
min = arrayD[j] arrayD[j] < min
Yes
j = j+1
min = hasil_uji min >= 0 && min <= 2
No Yes print(“tidak ada kecocokan”) No Output hasil
(41)
BAB 4
HASIL DAN PEMBAHASAN
Bab ini membahas hasil dari pengujian terhadap pengenalan garis telapak tangan dengan menggunakan metode ekstraksi fitur operasi blok non-overlapping dan pencocokan dengan jarak Euclidean ternormalisasi. Pembahasan bertujuan untuk memberikan hasil dari penerapan pemrograman terhadap metode ekstraksi fitur dan hasil yang didapat dari pengujian.
4.1. Implementasi
Data dan analisis dilakukan diimplementasi dalam bahasa pemrograman dengan tujuan dapat diproses dan didapatkan hasil pengujian pengenalan garis telapak tangan manusia. Proses pemrograman menggunakan bahasa pemrograman Java dengan IDE yang digunakan adalah Netbeans IDE 6.8. Spesifikasi perangkat lunak yang digunakan selama pembangunan software adalah sebagai berikut:
1. Operating System Windows 7.
2. Processor Intel ® Atom(TM) CPU N570 @1.66GHz.
3. Kapasitas hard disk 300 GB.
4. Memori RAM yang digunakan 2.00 GB.
Pengerjaan program dalam penelitian ini dibagi menjadi tiga modul yaitu: 1. Modul registrasi user
Modul ini berisi proses pendaftaran seorang user dengan input id dan nama. 2. Modul pelatihan
Modul yang terdiri dari proses untuk pra-pengolahan seluruh citra, ekstraksi fitur operasi blok non-overlapping dan penyimpanan fitur ke dalam database.
(42)
3. Modul pengujian
Modul ini berisi form pengujian terhadap citra uji dan menampilkan hasil jarak
Euclidean ternormalisasi.
Pengerjaan program dengan menggunakan bahasa Java membutuhkan method untuk membantu pengolahan citra dengan baik, maka dari itu digunakan method tambahan yang digunakan untuk membantu proses pengolahan citra hingga pengujian citra. Beberapa method yang digunakan dalam proses pengolahan citra dapat dilihat pada tabel 4.1.
Tabel 4.1 Method yang digunakan dalam program
Fungsi Keterangan
image.width() Method untuk mendapatkan lebar dari
sebuah citra bernama image.
image.height() Method untuk mendapatkan tinggi dari
sebuah citra bernama image.
bufferedImage Method dari class BufferedImage yang
digunakan untuk memodifikasi sebuah image.
Contoh : BufferedImage image = new BufferedImage();
ImageIO.write() Method dari class ImageIO untuk
membuat sebuah file.
Contoh : imageIO.write(im,”JPG”, new File(“newGray.jpg”);
image.getRGB(x,y) Method yang digunakan untuk
mengambil nilai RGB piksel(x,y) dari sebuah citra bernama image.
Contoh: image.getRGB(10,20);
RGB2GS() Method yang digunakan untuk mengubah
citra berwarna(RGB) menjadi citra
Grayscale.
setBinerisasi() Method yang digunakan untuk
(43)
4.2. Tampilan Implementasi Sistem
Tampilan hasil implementasi program dapat dilihat pada penjelasan berikut: 1. Tampilan awal program
Tampilan awal program saat pertama dijalankan akan ditampilkan lima buah pilihan menu yang ditunjukkan pada gambar 4.1.
Gambar 4.1 Tampilan awal program
Tampilan awal program berisi pilihan menu modul-modul seperti registrasi
user, pelatihan citra, dan pengujian citra. 2. Tampilan registrasi user
Tampilan registrasi user menampilkan form pengisian data id user dan nama pemilik citra garis telapak tangan. Tampilan form registrasi user ditunjukkan pada gambar 4.2.
Form ini berguna untuk memasukkan, mengubah dan menghapus data user
(44)
Gambar 4.2 Tampilan registrasi user
Modul registrasi user ini berfungsi untuk menyimpan data user yang akan disimpan data garis telapak tangannya.
3. Tampilan form pelatihan citra
Tampilan pelatihan citra berisi form pengisian beserta proses pengolahan citra yang akan dilatih. Tampilan pelatihan citra dapat dilihat pada gambar 4.3.
Gambar 4.3 Tampilan pengolahan citra sebelum citra dipilih 4. Tampilan pengolahan citra
Tampilan saat pengolahan citra terbagi atas lima bagian yaitu tampilan citra berwarna, citra grayscale, citra deteksi tepi, citra biner, dan tampilan fitur dari citra.
(45)
dipilh melalui button Open. Citra yang dipilih harus berukuran 200x200 piksel dan memiliki format jpg. Tampilan citra berwarna pada sistem ditunjukkan dengan lingkar merah pada gambar 4.4.
Gambar 4.4 Tampilan citra berwarna (RGB) - Tampilan citra grayscale
Tampilan citra grayscale berfungsi untuk menampilkan pembentukan citra
grayscale dari citra berwarna yang telah dipilih sebelumnya. Tampilan citra
grayscale pada sistem ditunjukkan dengan lingkar merah pada gambar 4.5.
Gambar 4.5 Tampilan pembentukan citra grayscale
- Tampilan citra deteksi tepi
Tampilan citra deteksi tepi berfungsi untuk menampilkan pembentukan citra deteksi tepi dari citra grayscale yang telah diproses sebelumnya. Tampilan citra deteksi tepi pada sistem ditunjukkan dengan lingkar merah pada gambar 4.6.
(46)
Gambar 4.6 Tampilan pembentukan citra deteksi tepi - Tampilan citra biner
Tampilan citra biner berfungsi untuk menampilkan pembentukan citra biner dari citra deteksi tepi yang telah diproses sebelumnya. Tampilan citra biner pada sistem ditunjukkan dengan lingkar merah pada gambar 4.7.
Gambar 4.7 Tampilan pembentukan citra biner - Tampilan ekstraksi fitur citra
Tampilan ekstraksi fitur berfungsi menampilkan hasil ekstraksi fitur dari citra yang sedang diproses. Tampilan hasil fitur citra uji pada sistem ditunjukkan dengan lingkar merah pada gambar 4.8.
(47)
Gambar 4.8 Tampilan hasil fitur citra uji 5. Tampilan pengujian citra
Tampilan pengujian citra berfungsi untuk mengolah citra uji yang akan diuji dan menghasilkan nilai jarak Euclidean ternormalisasi. Tampilan pengujian pada sistem ditunjukkan dengan panel merah pada gambar 4.9.
Gambar 4.9 Tampilan pengujian citra sebelum data diisi
Sebelum citra diolah, citra uji yang akan diuji dipilih terlebih dahulu dari button Open seperti pada gambar 4.9 panel A. Tampilan pengolahan citra pada saat pengujian akan menampilkan citra sesuai proses yang dilakukan dengan menggunakan tombol proses uji ditunjukkan pada gambar 4.9 panel B. Hasil pencocokan citra uji dengan citra latih dan hasil jarak Euclidean ternormalisasi dapat dilihat pada gambar 4.9 panel C. Sedangkan gambar 4.9 panel D
A
B
(48)
menunjukkan tabel yang berisi data citra uji yang telah disimpan beserta hasil pengujiannya.
Tampilan pengujian citra setelah data diisi dapat dilihat pada gambar 4.10.
Gambar 4.10 Tampilan pengujian citra 6. Tampilan form“Tentang Saya”
Tampilan form“Tentang Saya” berisi informasi judul skripsi dan identitas penulis.
Tampilan formTentang Saya” dapat dilihat pada gambar 4.11.
Gambar 4.11 Tampilan form“Tentang Saya”
7. Tampilan form“Tutup Aplikasi”
Tampilan form “Tutup Aplikasi” berisi informasi kotak dialog pertanyaan untuk
memilih akan keluar dari aplikasi atau tidak. Tampilan form ini dapat dilihat pada gambar 4.12.
(49)
Gambar 4.12 Tampilan form“Tutup Aplikasi”
4.3. Hasil Pelatihan Citra Latih dengan Ekstraksi Fitur Operasi Blok non-overlapping
Pelatihan citra berfungsi untuk mendapatkan nilai fitur citra garis telapak tangan yang dilatih dan selanjutnya akan disimpan di dalam database. Selanjutnya nilai fitur yang telah disimpan akan digunakan sebagai acuan perbandingan dengan citra uji garis telapak tangan pada saat pengujian. Hasil pelatihan citra latih dan hasil fitur dapat dilihat pada tabel 4.2.
Tabel 4.2 Hasil pelatihan ekstraksi fitur citra
No ID User nama Nama Citra Hasil Fitur
1 ID001 April Palmprint_April (1).jpg 0.975; 0.94; 0.94; 0.95β5; 0.965; … 2 ID001 April Palmprint_April (2).jpg 0.9875; 0.9725; 0.95;
0.975; 0.9675; … 3 ID002 Bobby Palmprint_Bobby (1).jpg 0.975; 0.97; 0.935;
0.97β5; 0.9β; 0.945; … 4 ID002 Bobby Palmprint_Bobby (2).jpg 0.99; 0.915; 0.955;
(50)
Tabel 4.2 Hasil pelatihan ekstraksi fitur citra (lanjutan)
No ID User nama Nama Citra Hasil Fitur
5 ID003 Cici Palmprint_Cici (1).jpg 0.985; 0.9025; 0.955; 0.9175; 0.9175; … 6 ID003 Cici Palmprint_Cici (2).jpg 0.95; 0.9475; 0.9675;
1.0; 0.95; …
7 ID004 Irene Palmprint_Irene (1).jpg 0.9975; 0.9375; 0.985; 0.9γβ5; 0.96β5; … 8 ID004 Irene Palmprint_Irene (2).jpg 0.995; 0.99; 0.945;
0.9β75; 0.945; … 9 ID005 Irwan Palmprint_Irwan (1).jpg 0.9925; 0.9325; 0.9475;
1.0; 0.9β5; … 10 ID005 Irwan Palmprint_Irwan (2).jpg 0.975; 0.9475; 0.96;
0.9γ75; 0.94; … 11 ID006 Rian Palmprint_Rian (1).jpg 0.99; 0.925; 0.9625;
0.97; 0.975; … 12 ID006 Rian Palmprint_Rian (2).jpg 0.97; 0.95; 0.8725;
0.8675; 0.88β5; … 13 ID007 Vero Palmprint_Vero (1).jpg 0.9775; 0.9575; 0.9975;
0.965; 1.0; …
14 ID007 Vero Palmprint_Vero (2).jpg 0.9975; 0.965; 0.9825; 0.9725; 1.0; …
15 ID008 Yayuk Palmprint_Yayuk (1).jpg 0.9975; 1.0; 0.9625; 0.9γ; 0.9γ75; …
16 ID008 Yayuk Palmprint_Yayuk (2).jpg 0.9825; 0.9225; 0.9425; 0.955; 0.9075; …
Hasil keseluruhan pelatihan ekstraksi fitur dapat dilihat pada tabel telapak tangan di dalam database.
(51)
4.4. Hasil Pencocokan Citra Uji dengan Database
Pengujian citra uji yang dilakukan dengan menggunakan citra yang belum pernah dilatihkan sebelumnya. Pengujian citra uji dilakukan terhadap 10 buah citra uji dari masing-masing user sehingga total citra uji adalah 80 buah citra uji dari 8 orang responden. Hasil pencocokan citra uji dengan fitur yang telah dilatih dan tersimpan di dalam database dapat dilihat pada tabel 4.3.
Tabel 4.3 Hasil pencocokan citra uji dengan database
No Nama Citra Uji
Hasil Jarak Terkecil (bobot)
Hasil Pencocokan Target Dikenali (B/S) 1 A (1).jpg 1.0000013120955598 Palmprint_April (6).jpg B
2 A (2).jpg 1.000001143589037 Palmprint_April (7).jpg B
3 A (3).jpg 1.0000022039997303 Palmprint_April (20).jpg B 4 A (4).jpg 1.0000005960479428 Palmprint_April (15).jpg B
5 A (5).jpg 1.000000801617426 Palmprint_April (1).jpg B
6 A (6).jpg 1.0000024518528627 Palmprint_April (8).jpg B 7 B (1).jpg 1.0000009338917575 Palmprint_Bobby (7).jpg B 8 B (2).jpg 1.0000011083647455 Palmprint_Bobby (19).jpg B 9 B (3).jpg 1.0000005635338365 Palmprint_Bobby (14).jpg B 10 B (4).jpg 1.0000012037794954 Palmprint_Bobby (4).jpg B 11 B (5).jpg 1.0000002059583928 Palmprint_Bobby (10).jpg B 12 B (6).jpg 1.0000009966913614 Palmprint_Bobby (16).jpg B 13 C (1).jpg 1.000000595181359 Palmprint_Cici (15).jpg B 14 C (2).jpg 1.0000005945230586 Palmprint_Cici (3).jpg B
15 C (3).jpg 1.000001637509138 Palmprint_Cici (6).jpg B
16 C (4).jpg 1.0000010203203116 Palmprint_Cici (3).jpg B 17 C (5).jpg 1.0000008725465965 Palmprint_Cici (11).jpg B 18 C (6).jpg 1.0000002513075137 Palmprint_Cici (8).jpg B 19 I (1).jpg 1.0000023077792544 Palmprint_Irene (12).jpg B 20 I (2).jpg 1.0000007537368016 Palmprint_Irene (2).jpg B 21 I (3).jpg 1.000001269116649 Palmprint_Irene (14).jpg B 22 I (4).jpg 1.000000079154949 Palmprint_Irene (7).jpg B
(52)
Tabel 4.3 Hasil pencocokan citra uji dengan database (lanjutan) No Nama
Citra Uji
Hasil Jarak Terkecil (bobot)
Hasil Pencocokan Target Dikenali (B/S) 23 I (5).jpg 1.0000008061749792 Palmprint_Irene (4).jpg B 24 I (6).jpg 1.0000004512833331 Palmprint_Irene (1).jpg B 25 IW (1).jpg 1.000000786283063 Palmprint_Irwan (6).jpg B 26 IW (2).jpg 1.0000008317032605 Palmprint_Irwan (13).jpg B 27 IW (3).jpg 1.000000657342017 Palmprint_Irwan (8).jpg B 28 IW (4).jpg 1.0000011065094885 Palmprint_Irwan (16).jpg B 29 IW (5).jpg 1.0000010925165168 Palmprint_Irwan (13).jpg B
30 IW (6).jpg 1.0000020237819427 Palmprint_Irwan (13).jpg B
31 R (1).jpg 1.0000011328868041 Palmprint_Rian (10).jpg B
32 R (2).jpg 1.0000015969058105 Palmprint_Rian (9).jpg B
33 R (3).jpg 1.0000006914811643 Palmprint_Rian (13).jpg B
34 R (4).jpg 1.0000013158308785 Palmprint_Rian (14).jpg B
35 R (5).jpg 1.0000039125480018 Palmprint_Rian (17).jpg B
36 R (6).jpg 1.0000055441312756 Palmprint_Rian (5).jpg B
37 V (1).jpg 1.0000008368741662 Palmprint_Vero (15).jpg B
38 V (2).jpg 1.0000007032746179 Palmprint_Vero (10).jpg B
39 V (3).jpg 1.0000011019150747 Palmprint_Vero (9).jpg B
40 V (4).jpg 1.0000001944058408 Palmprint_Vero (7).jpg B
41 V (5).jpg 1.0000008839850743 Palmprint_Vero (1).jpg B
42 V (6).jpg 1.000000500899541 Palmprint_Vero (4).jpg B
43 Y (1).jpg 1.0000005609791895 Palmprint_Yayuk (20).jpg B
44 Y (2).jpg 1.0000006363008154 Palmprint_Yayuk (20).jpg B
45 Y (3).jpg 1.0000005128670546 Palmprint_Yayuk (18).jpg B
46 Y (4).jpg 1.0000007748066546 Palmprint_Vero (16).jpg S 47 Y (5).jpg 1.0000007145253784 Palmprint_Yayuk (1).jpg B 48 Y (6).jpg 1.0000010175108067 Palmprint_Yayuk (1).jpg B
49 A (7).jpg 1.0000011390323926 Palmprint_April (7).jpg B
50 A (8).jpg 1.000001850712863 Palmprint_April (7).jpg B
(53)
Tabel 4.3 Hasil pencocokan citra uji dengan database (lanjutan) No Nama Citra
Uji
Hasil Jarak Terkecil (bobot)
Hasil Pencocokan Target Dikenali (B/S) 53 B (7).jpg 1.0000006090476763 Palmprint_Bobby (14).jpg B
54 B (8).jpg 1.0000007430859585 Palmprint_Cici (20).jpg S
55 B (9).jpg 1.0000008574386718 Palmprint_Rian (11).jpg S
56 B (10).jpg 1.0000010606240428 Palmprint_Yayuk (6).jpg S
57 C (7).jpg 1.0000004683550663 Palmprint_Cici (4).jpg B
58 C (8).jpg 1.0000019888309322 Palmprint_Cici (6).jpg B
59 C (9).jpg 1.0000011079342512 Palmprint_Cici (19).jpg B
60 C (10).jpg 1.00000139875767 Palmprint_Cici (11).jpg B
61 I (7).jpg 1.0000025027157682 Palmprint_Irene (5).jpg B
62 I (8).jpg 1.0000012793488529 Palmprint_Irene (16).jpg B
63 I (9).jpg 1.0000003855496158 Palmprint_Irene (7).jpg B
64 I (10).jpg 1.000001147927635 Palmprint_Yayuk (2).jpg S
65 IW (7).jpg 1.0000004434791965 Palmprint_Irwan (1).jpg B
66 IW (8).jpg 1.0000007118329695 Palmprint_Cici (20).jpg S
67 IW (9).jpg 1.000000934905346 Palmprint_Cici (2).jpg S
68 IW (10).jpg 1.0000011176450876 Palmprint_Irwan (13).jpg B
69 R (7).jpg 1.0000023393124857 Palmprint_Rian (8).jpg B
70 R (8).jpg 1.0000016257026505 Palmprint_Yayuk (8).jpg S
71 R (9).jpg 1.0000013858208907 Palmprint_Rian (9).jpg B
72 R (10).jpg 1.000001481830005 Palmprint_Rian (14).jpg B
73 V (7).jpg 1.0000015357306646 Palmprint_Vero (2).jpg B
74 V (8).jpg 1.0000019126474844 Palmprint_Vero (12).jpg B
75 V (9).jpg 1.0000004883459583 Palmprint_Vero (4).jpg B
76 V (10).jpg 1.0000005148478228 Palmprint_Vero (9).jpg B
77 Y (7).jpg 1.0000004630919872 Palmprint_Yayuk (5).jpg B
78 Y (8).jpg 1.0000006910728263 Palmprint_Yayuk (7).jpg B
79 Y (9).jpg 1.0000008706422874 Palmprint_Yayuk (14).jpg B
80 Y (10).jpg 1.0000011143298357 Palmprint_Yayuk (1).jpg B
Tabel 4.3 menunjukkan dari semua data uji jika di cocokkan dengan data yang terdapat dalam database akan menghasilkan nilai jarak Euclidean terkecil sesuai hasil
(54)
pengukuran dengan rentang jarak bobot 0 sampai dengan 2. Hasil pengujian menghasilkan pengenalan dengan target benar dengan 71 buah citra uji, dan sembilan pengenalan dengan target salah pada tabel 4.3. Hasil akurasi pengujian terhadap 80 buah citra uji dapat dihitung dengan perhitungan dengan persamaan (4.1) sebagai berikut (Mughni, et al. 2011):
(4.1)
jadi hasil keseluruhan penelitian yang telah dilakukan memberikan hasil akurasi tingkat pengenalan sebesar 88,75% pencocokan yang benar terhadap citra uji. Kesalahan pencocokan dapat dihitung dengan persamaan berikut:
(4.2)
sedangkan kesalahan pencocokan seperti terlihat pada tabel 4.3 adalah sebesar 11,25%. Tabel 4.4 menunjukkan hasil tingkat pengenalan yang telah diujikan.
Tabel 4.4 Hasil keseluruhan pengujian tingkat pengenalan Ukuran blok Metode
ekstraksi
Metode pencocokan
Tingkat pencocokan (%)
Benar Salah
10 x 10 Operasi blok
non-overlapping
Jarak Euclidean
ternormalisasi
88,75 11,25
Berdasarkan tabel 4.3 nomor indeks 1 sampai dengan 48 merupakan citra uji yang tidak memiliki noise pada citra tersebut. Hasil pengujian terhadap 48 citra uji tanpa noise menghasilkan kesalahan pencocokan dapat dihitung dengan persamaan (4.2):
Nomor indeks citra uji yang memiliki noise dimulai dari nomor 49 sampai dengan nomor indeks 80. Hasil pengujian terhadap 32 citra uji dapat dilihat
(55)
berdasarkan tabel 4.3 menghasilkan 8 citra uji yang memiliki target salah. Hasil pengujian terhadap citra yang memiliki noise dapat dihitung dengan persamaan (4.2) sehingga menghasilkan kesalahan pencocokan sebagai berikut:
Hasil pengujian terhadap citra yang tidak memiliki noise dan memiliki noise dapat dilihat pada tabel 4.5.
Tabel 4.5 Hasil pengujian citra tanpa noise dan memiliki noise
Kondisi
noise
Metode ekstraksi
Pencocokan Total citra uji Akurasi tingkat pencocokan (%) benar salah Tanpa
noise
Operasi blok
non-overlapping
Jarak
Euclidean
ternormalisasi
48 97,92 2,08
Ada noise Operasi blok
non-overlapping
Jarak
Euclidean
ternormalisasi
(56)
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil analisis dan pengujian yang dilakukan pada bab-bab sebelumnya, dapat disimpulkan bahwa penggunaan metode ekstraksi fitur operasi blok non-overlapping dan pencocokan dengan jarak Euclidean ternormalisasi dapat mengenali fitur garis utama telapak tangan. Ekstraksi fitur operasi blok non-overlapping
digunakan untuk mendapatkan nilai fitur dari sebuah citra dan jarak Euclidean
ternormalisasi digunakan untuk mendapatkan tingkat kesamaan antara dua vektor (vektor uji dan latih) berdasarkan hasil pengukuran nilai bobot antara dua vektor. Dari 80 citra uji, 48 citra tidak memiliki noise didapatkan hasil pengenalan yang benar sebesar 97,92% dan 32 citra uji lain memiliki noise dengan hasil pengenalan yang benar sebesar 75%. Sedangkan pengujian yang dilakukan secara keseluruhan didapatkan tingkat pencocokan menggunakan metode ini adalah 88,75% dengan diberikan informasi hasil jarak pencocokan tingkat kesamaan vektor uji dan latih serta menghasilkan identitas pemilik citra garis telapak tangan yang paling mendekati kemiripan dengan citra uji.
5.2. Saran
Penelitian ini melatih 160 buah citra dengan parameter yaitu rata-rata setiap blok sebagai fitur ciri garis telapak tangan. Hal ini menghasilkan hasil pengenalan citra yang belum optimal. Oleh karena itu perlu dilakukan penelitian selanjutnya untuk mencapai hasil pengenalan dan pengambilan fitur yang lebih baik.
(57)
DAFTAR PUSTAKA
Falasev, R.S., Hidayatno, A. & Isnanto, R.R. 2011. Pengenalan sidik jari manusia dengan matriks kookurensi aras keabuan (gray level co-ocurrence matrix).
(Online) http://eprints.undip.ac.id/25259/1/ML2F004504.pdf (12 Mei 2013).
Green, B. 2002. Canny edge detection tutorial. (Online)
http://dasl.mem.drexel.edu/alumni/bGreen/www.pages.drexel.edu/_weg22/can _tut.html (2 Desember 2013).
Hermawati, F.A. 2013. Pengolahan Citra Digital Konsep & Teori. Andi : Yogyakarta. Ikonen, L. 2003. Hand geometry – based biometric systems. Lappeenranta University of Technology. (Online) http://www2.it.lut.fi/kurssit/03-04/010970000/seminars/Ikonen.pdf (3 Mei 2013).
Jain, A. K. & Taxt, T. 1996. Feature extraction methods for character recognition -a survey. Journal ofPattern Recognition. 29(4) : 641-662.
Kadir, A. & Susanto, A. 2013. Teori dan Aplikasi Pengolahan Citra. Andi : Yogyakarta.
Mughni, I., Somantri, M. & Isnanto, R. 2011. Sistem identifikasi berdasarkan ciri garis-garis utama telapak tangan menggunakan metode operasi blok
overlapping. Jurnal Teknik Elektro Universitas Diponegoro (Online)
http://www.elektro.undip.ac.id/el_kpta/wpcontent/uploads/2012/05/L2F60603 6_MTA.pdf (1 Mei 2013).
Ong, M.G.K., Connie, T., Teoh, Jin, A.T.B. & Ling, D.N.C. 2003. Single -sensor hand geometry and palmprint verification system. Proceedings of the 2003 ACM SIGMM workshop on Biometrics methods and applications (WBMA), pp. 100-106.
Pradeep, J., Srinivasan, E., dan Himavathi, S. 2011. Diagonal based feature extraction for handwritten alphabets recognition system using neural network.
International Journal of Computer Science & Information Technology (IJCSIT). 3(1): 27-38.
Purnomo, M. H. & Muntasa, A. 2010. Konsep Pengolahan Citra Digital dan Ekstraksi Fitur. Graha Ilmu : Surabaya.
Putra, I.K.G.D. 2007. Sistem verifikasi menggunakan garis-garis telapak tangan.
Jurnal Teknologi Elektro Universitas Udayana 6 (2) : 46-51. Putra, I.K.G.D. 2008. Sistem Biometrika. Andi : Yogyakarta.
(58)
Putra, I.K.G.D & Sentosa, M.A. 2012. Hand geometry verification based on chain code and dynamic time warping. International Journal of Computer Applications (0975-8887) 38 (12) : 17-22.
Putra, N., Suyanto & Sembiring, S. 2012. Peningkatan nilai fitur jaringan propagasi balik pada pengenalan angka tulisan tangan menggunakan metode zoning dan diagonal based feature extraction. Jurnal Dunia Teknologi Informasi 1(1):1-6. Ratha, N.K., Senior. A. & Bolle, R.M. 2003. Automated biometrics. (Online)
http://www.research.ibm.com/people/a/aws/documents/papers/icapr01.pdf (1 Mei 2013).
Ray, K.B. & Misra, R. 2011. Palmprint as a biometric identifier. Journal Orissa Engineering College India IJECT 2 (3) : 12-16.
Siddiqi, I. & Vincent, N. 2009. A set of chain code based features for writer recognition. Journal International Conference on Document Analysis and Recognition 10 : 982-985.
Sutarno, 2010. Identifikasi ekspresi wajah menggunakan alihragam gelombang singkat (wavelet) dan jaringan syaraf tiruan learning vector quantization (LVQ). Jurnal Seminar Nasional Informatika UPN Veteran Yogyakarta. D : 87-94.
Sutoyo, T., Mulyanto, E., Suhartono, V., Nurhayati, O.D. & Wijanarto. 2009. Teori Pengolahan Citra Digital. Andi : Yogyakarta.
Suyanto. 2011. Artificial Intelligence Searching, Reasoning, Planning, Learning (Edisi Revisi). Informatika : Bandung.
(1)
for (int x = initX; x < maxX; x++) {
for (int y = initY; y < maxY; y += width) {
int index = x + y;
float sumX = data[index] * kernel[0];
float sumY = sumX;
int xOffset = 1;
int yOffset = width;
for(; xOffset < kwidth ;) {
sumY += kernel[xOffset] * (data[index - yOffset] +
data[index + yOffset]);
sumX += kernel[xOffset] * (data[index - xOffset] +
data[index + xOffset]);
yOffset += width;
xOffset++;
}
yConv[index] = sumY;
xConv[index] = sumX;
}
}
for (int x = initX; x < maxX; x++) {
for (int y = initY; y < maxY; y += width) {
float sum = 0f;
int index = x + y;
for (int i = 1; i < kwidth; i++)
sum += diffKernel[i] * (yConv[index - i] - yConv[index + i]);
xGradient[index] = sum;
}
}
for (int x = kwidth; x < width - kwidth; x++) {
for (int y = initY; y < maxY; y += width) {
float sum = 0.0f;
int index = x + y;
int yOffset = width;
for (int i = 1; i < kwidth; i++) {
sum += diffKernel[i] * (xConv[index - yOffset] - xConv[index + yOffset]);
yOffset += width;
(2)
}
}
initX = kwidth;
maxX = width - kwidth;
initY = width * kwidth;
maxY = width * (height - kwidth);
/*perulangan untuk menghubungkan arah tepi (North, South, West, East, dst)*/
for (int x = initX; x < maxX; x++) {
for (int y = initY; y < maxY; y += width) {
int index = x + y;
int indexN = index - width;
int indexS = index + width;
int indexW = index - 1;
int indexE = index + 1;
int indexNW = indexN - 1;
int indexNE = indexN + 1;
int indexSW = indexS - 1;
int indexSE = indexS + 1;
float xGrad = xGradient[index];
float yGrad = yGradient[index];
float gradMag = hypot(xGrad, yGrad);
// non-maximal suppression : penelusuran tepi yang ada di dalam arah tepi
float nMag = hypot(xGradient[indexN], yGradient[indexN]);
float sMag = hypot(xGradient[indexS], yGradient[indexS]);
float wMag = hypot(xGradient[indexW], yGradient[indexW]);
float eMag = hypot(xGradient[indexE], yGradient[indexE]);
float neMag = hypot(xGradient[indexNE], yGradient[indexNE]);
float seMag = hypot(xGradient[indexSE], yGradient[indexSE]);
float swMag = hypot(xGradient[indexSW], yGradient[indexSW]);
float nwMag = hypot(xGradient[indexNW], yGradient[indexNW]);
float tmp;
if (xGrad * yGrad <= (float) 0 /*(1)*/
? Math.abs(xGrad) >= Math.abs(yGrad) /*(2)*/
? (tmp = Math.abs(xGrad * gradMag)) >= Math.abs(yGrad * neMag - (xGrad + yGrad) * eMag) /*(3)*/
(3)
: (tmp = Math.abs(yGrad * gradMag)) >= Math.abs(xGrad * neMag - (yGrad + xGrad) *
nMag) /*(3)*/
&& tmp > Math.abs(xGrad * swMag - (yGrad + xGrad) * sMag) /*(4)*/
: Math.abs(xGrad) >= Math.abs(yGrad) /*(2)*/
? (tmp = Math.abs(xGrad * gradMag)) >= Math.abs(yGrad * seMag + (xGrad - yGrad) *
eMag) /*(3)*/
&& tmp > Math.abs(yGrad * nwMag + (xGrad - yGrad) * wMag) /*(4)*/
: (tmp = Math.abs(yGrad * gradMag)) >= Math.abs(xGrad * seMag + (yGrad - xGrad) *
sMag) /*(3)*/
&& tmp > Math.abs(xGrad * nwMag + (yGrad - xGrad) * nMag) /*(4)*/
)
{
magnitude[index] = gradMag >= MAGNITUDE_LIMIT ? MAGNITUDE_MAX : (int)
(MAGNITUDE_SCALE * gradMag);
}
else
{
magnitude[index] = 0;
}
}
}
private float hypot(float x, float y) {
return (float) Math.hypot(x, y);
}
private float gaussian(float x, float sigma) { //rumus untuk filter Gaussian
return (float) Math.exp(-(x * x) / (2f * sigma * sigma));
}
/*proses hysteresis
private void performHysteresis(int low, int high) {
Arrays.fill(data, 0);
int offset = 0;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
(4)
offset++;
}
}
}
private void follow(int x1, int y1, int i1, int threshold) {
int x0 = x1 == 0 ? x1 : x1 - 1;
int x2 = x1 == width - 1 ? x1 : x1 + 1;
int y0 = y1 == 0 ? y1 : y1 - 1;
int y2 = y1 == height -1 ? y1 : y1 + 1;
data[i1] = magnitude[i1];
for (int x = x0; x <= x2; x++) {
for (int y = y0; y <= y2; y++) {
int i2 = x + y * width;
if ((y != y1 || x != x1)
&& data[i2] == 0
&& magnitude[i2] >= threshold) {
follow(x, y, i2, threshold);
return;
}
}
}
}
//penentuan nilai threshold dalam menetapkan tepi atau tidak
private void thresholdEdges() {
for (int i = 0; i < picsize; i++) {
data[i] = data[i] > 0 ? -1 : 0xff000000;
}
}
//membuat edge /tepi citra
private void writeEdges(int pixels[]) {
if (edgesImage == null) {
edgesImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
}
(5)
3. Modul Pengujian
Modul untuk proses pengolahan citra sama dengan modul pelatihan hanya berbeda pada folder target
penyimpanan. Semua citra hasil pengujian akan disimpan di dalam folder hasil citra uji.
//method untuk mencari jarak Euclidean ternormalisasi
public void cariJarak(){
String nilaiUji = ambilFiturUji();
String[] potongUji = nilaiUji.split("; ");
Double[] u = new Double[potongUji.length];
Double uNorm = 0.0;
double min;
double d = 0.0;
/* array untuk menyimpan nilai jarak yang akan diuji*/
Double[] arrayD = new Double[160];
int h;
for( h=0; h < potongUji.length; h++) //perulangan saat pengambilan fitur citra uji {
u[h] = Double.parseDouble(potongUji[h]);
uNorm += (double) u[h] * u[h]; //sigma uh2 (hitung sigma uNorm)
}
uNorm = (double) Math.sqrt(uNorm); //(sigma (uh2))1/2
/* perulangan untuk mengambil fitur yang telah dilatih dalam database (sebanyak 160 fitur) */
for(int i=0; i < arrayD.length; i++) {
String nilaiLatih = ambilFiturLatih(i+1); //nilai fitur latih yang diambil
//mulai dari nomor indeks-1
String[] potongLatih = nilaiLatih.split("; ");
/*membuat array v dengan panjang sebesar fitur latih yaitu 100*/
Double[] v = new Double[potongLatih.length]; Double vNorm =
0.0;
for(int j=0; j < v.length; j++) //perulangan untuk menghitung sigma vNorm
{
v[j] = Double.parseDouble(potongLatih[j]);
vNorm += (double) v[j] * v[j]; // sigma vj2 (hitung sigma vNorm)
(6)
vNorm = (double) Math.sqrt(vNorm); //(sigma (vj 2
))1/2
/*perulangan menghitung nilai jarak Euclidean ternormalisasi*/
for(int j=0; j < u.length; j++)
{
//hitung jarak (d)
d += (double) (u[j]/uNorm-v[j]/vNorm)*(u[j]/uNorm-v[j]/vNorm);
d = (double) Math.sqrt(d);
}
arrayD[i] = (double) d; //menyimpan nilai setiap indeks arrayD dengan nilai
//hasil jarak (d)
System.out.println(arrayD[i]); //cetak nilai semua indeks dalam arrayD
}
/*kondisi pencarian nilai jarak (d) minimum*/
min = arrayD[0]; //inisialisasi nilai min = nilai indeks ke-0 arrayD
for (int k=1; k <arrayD.length; k++){ // pengecekan disetiap indeks arrayD
if(arrayD[k] < min){ //kondisi saat nilai arrayD lebih kecil dari nilai min
min = arrayD[k];
}
}