BAB 3 ANALISA DAN PERANCANGAN
3.1
Analisa Tahap sebelum perancangan berhubungan dengan proses penglihatan awal. Tujuan utama dari prapemrosesan adalah untuk menggembangkan gambaran yang berguna dari bentuk dan permukaan citra yang diberikan. Empat faktor utama yang memberikan intensitas nilai dari piksel dalam suatu citra adalah ukuran, tampilan dari permukaan yang terlihat, peningkatan kontras dan sudut-sudut pada citra. Dalam citra yang ada, semua faktor tersebut menjadi satu oleh karena itu pada tahap prapemrosesan informasi ini akan diambil. Teknik perbaikan citra berhubungan
dengan
peningkatan
dari
kualitas
citra,
sehingga
untuk
memaksimalkan kegunaan informasi yang ada atau menampilkan ciri dari suatu citra, beberapa perbaikan biasanya akan diperlukan.
3.2
Perancangan Penelitian dilakukan dengan materi utama berupa sekumpulan berkas citra sidik jari dengan resolusi 300dpi berwarna hitam putih yang diperoleh melalui pemindaian sidik jari menggunakan alat bantu berupa scanner. Identifikasi atau autentifikasi sidik jari beroperasi dengan menggunakan empat tahapan prosedur : 1) Capture –Merupakan tahapan awal dalam verifikasi sidik jari yaitu proses pengambilan citra sidik jari, dalam pengambilan citra terdapat 2 metode antara
17
lain : metode inkless (online) dan inked (offline). Pengambilan citra sidik jari secara inkless menghasilkan citra sidik jari yang baik bergantung kepada alat yang digunakan, makin mahal alat tersebut semakin baik citra sidik jari yang dihasilkan, tetapi metode ini memiliki kekurangan karena luas area yang bisa didapatkan terbatas dan kadang terdapat beberapa area sidik jari yang karena penempatan sidik jari yang berbeda-beda dan luas area alat scanner yang terbatas. Berbeda dengan metode inkless, metode inked yang menggunakan hasil cetakan dari citra sidik jari pada suatu kertas memiliki hasil citra sidik jari dengan area yang lebih luas tetapi memiliki citra yang kabur karena bergantung kepada penggunaan jenis tinta. Pada penelitian ini akan digunakan metode inked. 2) Preprocessing – Tahapan ini berguna untuk menghilangkan noise akibat debu atau hasil scanning yang tidak baik. Dikarenakan dalam proses pengambilan citra sidik jari mungkin citra yang telah di scan mengalami berbagai macam kondisi yang dapat merusak citra itu. Kondisi jari yang kering dapat menyebabkan timbulnya struktur ridge yang patah-patah sedangkan kondisi jari yang terlalu berminyak dapat membuat struktur minutiae bifurcation atau cabang yang tidak jelas. 3) Feature Extraction – Data yang unik diekstraksi dari contoh sidik jari dan dibuat sebuah template. 4) Matching – Template yang didapat dari Feature extraction berupa tipe dan minutiae dari citra sidik jari yang akan digunakan sebagai karakteristik yang mewakili citra sidik jari tersebut, sehingga perbandingan antara dua sidik jari
18
atau lebih bisa diketahui perbedaan dan kesamaanya melalui perbandingan antara karakteristik mereka dan bukan melalui citranya itu sendiri.
Pola-pola sidik jari yang diperoleh dari hasil pemindaian (scanning) merupakan citra dengan tingkat noise yang tinggi. Hal ini nantinya akan sangat berpengaruh pada proses pengenalan atau bahkan membuat proses pengenalan menjadi terganggu. Oleh karena itu dibutuhkan metode pemrosesan citra yang dapat mereduksi noise-noise yang ada pada citra sidik jari tersebut.
3.2.1 Tresholding Intensitas warna pada suatu citra juga dapat diperbaiki dengan menggunakan kontras biner yaitu penggunaan hanya dua tingkat keabuan. Obyek yang akan diteliti diberi warna yang jelas misalnya hitam dengan intensitas tingkat keabuan 1, sedangkan obyek lainnya dapat diberi warna putih dengan intensitas tingkat keabuan 0.
Gambar 3.1 Pengolahan ke citra biner Hasil proses yang sering disebut semithresholding adalah citra dengan bagian latar belakang yang diberi warna sama sedangkan tingkat keabuan obyeknya tidak berubah.
19
Pada hasil suatu rekaman suatu gambar sering terjadi tekstur obyek dan tekstur latar belakang yang mengandung titik atau piksel yang mempunyai intensitas tingkat keabuan sama yang bisa terjadi secara jarang maupun rapat. Untuk itu pemisahan antar obyek dengan latar belakangnya tidak dapat dengan sempurna dilakukan dengan teknik nilai ambang. Untuk mengatasi gangguan tersebut, perlu dilakukan sejenis proses pemerataan setiap piksel dengan piksel-piksel tetangganya. Cara ini ditempuh dengan maksud untuk menyesuaikan piksel yang dianggap sebagai gangguan tersebut dengan kelompok didekatnya, baik obyek maupun latar belakang.
3.2.2 Penapisan ( Filtering ) Proses filtering citra yang bersifat spasial ini dapat dilakukan dengan menggunakan operator kernel yang elemennya terdiri dari faktor pembobotan yang menentukan nilai intensitas suatu piksel berdasarkan nilai intensitas piksel-piksel tetangganya. Pembahasan disini akan mencakup proses filtering citra dengan : a. Filter frekuensi rendah (Low Pass Filter) Filter frekuensi rendah mempunyai karakteristik menyalurkan dan mempertegas bagian frekuensi rendah. Proses filtering suatu citra dengan filter frekuensi rendah mempunyai efek pemerataan tingkat keabuan, sehingga gambar yang diperoleh akan tampak agak kabur kontrasnya. Proses ini dilakukan terhadap gambar agar gangguan yang berbentuk garis tajam dapat dikurangi efeknya.
20
b. Filter frekuensi tinggi (High Pass Filter) Filter frekuensi tinggi mempunyai karakteristik menyalurkan dan memperkuat komponen frekuensi tinggi dari suatu citra, akibatnya bagian garis-garis ataupun garis batas antar obyek yang ada pada gambar akan kelihatan lebih tajam.
Secara intuitif dapat dilihat bahwa penggunaan kernel di atas pada proses setiap piksel dari citra akan mempunyai efek sebagai berikut. Bila piksel tersebut merupakan komponen frekuensi tinggi maka nilainya akan dipertegas sebaliknya bila piksel tersebut merupakan komponen frekuensi rendah maka akan tetap nilainya.
3.2.3 Dekomposisi Pola Sidik Jari Dekomposisi pola dilakukan untuk mempresentasikan pola digit ke dalam vektor yang mengandung beberapa informasi mengenai pola tersebut. Hasil dekomposisi level kesatu citra asli 128 x 128 piksel dengan wavelet Haar adalah empat sub bidang pada resolusi yang lebih rendah 64 x 64 piksel. Keempat sub bidang tersebut masing-masing membawa informasi yang berbeda yaitu informasi background, horizontal, vertikal dan diagonal. Pada level kedua dihasilkan sub bidang-sub bidang berukuran 32 x 32 piksel dan pada level ketiga dihasilkan sub bidang-sub bidang berukuran 16 x 16 piksel. Pada penelitian ini hasil dekomposisi level ketiga berupa citra aproksimasi dengan dimensi 16 x 16 piksel menjadi basis masukan jaringan syaraf. 21
Dengan hasil ratio kompresi citra yang tinggi, kompresi transformasi wavelet menghasilkan kualitas citra dengan bit terendah adalah 18 bit. Dekomposisi melakukan perubahan atau peningkatan dari sinyal yang diterima. Algoritma Transformasi Wavelet dengan citra 2-D dengan kata kunci adalah sebuah citra ada representasi berkelanjutan dari banyak resolusi yang berbeda (1x1, 2x2, 4x4, 2Nx2N). Adapun algoritma dari transformasi wavelet itu adalah :
Langkah 1 : Input citra dibuat menjadi 4 bagian citra baru dengan ukuran 2N-1x2N-1
Input citra (2Nx2N)
Representasi citra wavelet
Step 1
Citra Rata-rata: Setiap piksel A adalah rata-rata dari piksel 1,2,3,4
Gambar 3.2 Proses awal representasi citra wavelet
22
Langkah 2
: Citra dibagi kembali, ulangi langkah 1 untuk bagian kanan atas dari hasil citra wavelet pada langkah 1.
Representasi citra wavelet (2Nx2N) Hasil dari langkah 1 (2N-1x2N-1)
Citra rata-rata
Step 2
Gambar 3.3 Pengulangan proses representasi citra wavelet
Langkah 3
: Pembagian berhenti jika nilai rata-rata citra adalah 1 piksel.
Gambar 3.4 Proses akhir representasi citra wavelet 23
3.2.4 Wavelet Haar Cara kerja wavelet Haar dalam pemrosesan sinyal dapat diilustrasikan sebagai berikut. Misalnya terdapat sebuah sinyal atau citra digital berdimensi satu dengan resolusi 4, dimisalkan: [12 10 4 6] Untuk menguraikannya menjadi deret Haar, mula-mula hitung nilai rata-ratanya sepasang demi sepasang, sehingga diperoleh: [11 5] Untuk dapat memperoleh citra semula, perlu mencatat koefisien detil yang memuat informasi yang hilang. Citra semula dapat diperoleh dengan cara menambah dan mengurangi nilai rata-rata tadi dengan koefisien detil ini. Pada contoh di atas, 12 dan 10 dapat diperoleh kembali dari 11 dengan cara menambah dan menguranginya dengan 1. Jadi, koefisien detil pertama adalah 1. Sementara itu 4 dan 6 dapat diperoleh kembali dari 5 dengan cara menambah dan menguranginya dengan -1. Jadi, koefisien detil kedua adalah -1. Selanjutnya, hitung lagi nilai rata-rata dari 11 dan 5, sehingga peroleh 8, dan catat koefisien detilnya, yakni 3. Jadi, menggunakan wavelet Haar, citra digital [12 10 4 6] ditransformasikan menjadi deret [8 3 1 -1]. Selanjutnya citra tersebut dapat disimpan sebagai deret ini. Cara memperoleh deret ini, yakni dengan penghitungan nilai rata-rata sepasang demi sepasang dan pencatatan koefisien detilnya secara rekursif.
24
Perhatikan bahwa secara matematis mempunyai kesamaan matriks (untuk contoh di atas): [12 10 4 6] = 8[1 1 1 1] + 3[1 1 -1 -1] + 1[1 -1 0 0] - 1[0 0 1 -1]. Matriks [1 1 1 1],[ 1 1 -1 -1], [1 -1 0 0], dan [0 0 1 -1] merupakan representasi dari empat basis Haar yang pertama, sedangkan 8, 3, 1, dan -1 merupakan koefisien Haar yang bersesuaian untuk matriks [12 10 4 6]. Jadi, setelah transformasi, koefisien Haar inilah yang akan disimpan.
3.2.5 Wavelet Daubechies Sifat utama yang bisa dikenali dari alih ragam wavelet dalam kompresi citra diam adalah terjadinya distorsi minimum pada citra terekonstruksi meskipun dilakukan penghilangan koefisien-koefisien alih ragam yang mendekati nol. Padahal, alih-ragam wavelet atas citra akan menghasilkan sejumlah besar sub bidang citra yang memiliki magnitudo sangat kecil. Dengan menetapkan threshold non negatif, elemen-elemen sub bidang citra yang bernilai sangat kecil dapat dinolkan sehingga dapat menghasilkan matriks sangat jarang [2]. Matriks sangat jarang ini lebih mudah untuk ditransmisikan dan disimpan, bahkan citra hasil rekonstruksi dengan thresholding (kuantisasi) ini bisa memberikan hasil yang dapat diterima secara visual oleh mata. Proses wavelet Daubechies ini sama artinya dengan pengalih ragaman wavelet 2 dimensi atas suatu citra. Dekomposisi dapat dilakukan berulang kali pada setiap sub bidang citra. Pada subbagian ini akan diillustrasikan secara implementatif dekomposisi citra sidik jari. Label yang diberikan pada 25
setiap sub bidang citra merupakan urutan penggunaan tapis pada tiap baris dan kolom secara bertahap. Misalnya sub bidang citra dengan label LH menyatakan penerapan tapis lowpass L pada baris dan penggunaan tapis highpass H pada kolom citra asli. Demikian juga dengan sub bidang citra dengan label HL. Ini menunjukkan bahwa tapis highpass H dan tapis lowpass L dipakai untuk mengkonvolusi baris dan kolom citra asli berturut-turut.
Rekonstruksi merupakan proses
kebalikan dari dekomposisi.
Rekonstruksi melibatkan operator upsampling dan konvolusi. Kolom dan baris citra terkuantisasi di upsampling dan dikonvolusi secara bertahap. Jika kedalaman dekomposisi dua, maka dapat diberikan pernyataan dan tahapantahapan dalam merekonstruksi suatu citra sebagai berikut: a.
Masing-masing kolom dan baris dari sub bidang citra LLLL, LLLH LLHL dan LLHH terkuantisasi diupsampling dan dikonvolusi secara bergantian untuk menghasilkan sub bidang citra LL.
b.
Masing-masing kolom dan baris dari sub bidang citra LHLL, LHLH, LHHL dan LHHH terkuantisasi diupsampling dan dikonvolusi secara bergantian untuk menghasilkan sub bidang citra LH.
c.
Masing-masing kolom dan baris dari sub bidang citra HLLL, HLLH, HLHL dan HLHH terkuantisasi diupsampling dan dikonvolusi secara bergantian untuk menghasilkan sub bidang citra HL.
d.
Masing-masing kolom dan baris dari sub bidang citra HHLL, HHLH, HHHL dan HHHH terkuantisasi diupsampling dan dikonvolusi secara bergantian untuk menghasilkan sub bidang citra HH. 26
e.
Masing-masing kolom dan baris dari sub bidang citra LL, LH, HL dan HH terkuantisasi diupsampling dan dikonvolusi secara bergantian untuk menghasilkan sub bidang citra terekonstruksi.
Analisis wavelet dapat berguna untuk membagi informasi sebuah citra ke dalam sub sinyal perkiraan dan detil. Sub sinyal perkiraan menunjukan aliran umum dari nilai piksel, dan tiga sub sinyal detil menunjukan detil vertical, horizontal, dan diagonal atau perubahan pada citra. Jika detil tersebut sangat kecil maka dapat diatur menjadi nol tanpa mengubah citra secara signifikan. Nilai mana yang rendah, detil mempertimbangkan cukup kecil untuk diubah menjadi nol yang mana dikenal dengan threshold. Semakin banyak nilai nol, semakin besar perbandingan kompresinya. Jumlah informasi ditampung oleh sebuah citra setelah kompresi dan dekompresi yang dikenal dengan energi penampung dan hal ini seimbang dengan jumlah persegi dari nilai piksel. Jika energi tertampung 100% maka kompresi dikenal sebagai lossless di mana citra tersebut dapat direkontruksi secara tepat. Hal ini berlaku ketika nilai threshold diatur menjadi nol,
artinya
detilnya masih belum diubah. Jika ada nilai yang berubah maka energi akan hilang dan ini dikenal dengan kompresi lossy. Idealnya, selama kompresi banyak nilai nol dan dan retensi energi akan naik setinggi mungkin. Tetapi, semakin banyak nilai nol diperoleh, semakin banyak energi yang hilang, jadi keseimbangan diantara keduanya harus dicari.
27
Jadi berdasarkan wavelet Haar dan Daubechies di atas untuk setiap nilai threshold dari transformasi untuk kedua tipe dari citra yang berbeda diperoleh rata-rata kompresi yang berbeda. Rata-rata kompresi ini menentukan atas dasar dari 2-D analisis wavelet dalam nilai treshold dan hal lainnya yang nantinya mempresentasikan citra setelah mengalami kompresi. Analisis dari 2-D wavelet keduanya noiseless dan noisy dari citra sidik jari dapat dilihat pada persamaan yang dihitung dalam bentuk formula di bawah ini:
100 * (Vn(CCD,2)) 2 RE = (Vn(originalSignal)) 2 RE
= Energi batasan (Retain Energy)
Vn
= Vektor Normal
CCD = Koefisien dekomposisi yang ada
NZ =
100 * ( ZCD ) No.ofCoeifici ents
NZ
= Jumlah nilai nol (Number of Zero)
ZCD
= Banyaknya nilai nol dekomposisi yang ada
Tingkatan treshold pada wavelet haar dan daubechies dapat dilihat dari gambar di bawah, di mana hal ini berfungsi untuk mengontrol kelebihan dari de-noising citra dengan memilih threshold yang berbeda untuk tingkatan yang berbeda. Berdasarkan hasil kinerja dari transformasi Haar dan Daubechies paket hingga tingkatan 3 dicapai. Disini terlihat bahwa sangat sulit untuk menemukan nilai dari treshold dan juga susunan algoritma yang 28
baik untuk mendapatkan nilai dari threshold. Dalam hal ini setiap nilai threshold awal yang cocok nantinya akan digunakan untuk penambahan 10 untuk setiap perubahan.
Gambar 3.5 RE dan NZ dari citra sidik jari noiseless pada Haar dan Daubechies
Gambar 3.6 RE dan NZ dari citra sidik jari noisy pada Haar dan Daubechies
Di kedua gambar Retain Energy (%) dan Number of Zeros (%) menentukan dari perbedaan nilai threshold. Pada transformasi Haar dan Daubechies ketika ditingkatkannya nilai threshold maka Retain Energy menurun sebaliknya nilai Number of Zeros meningkat. Ini sama dengan jika dinaikkannya nilai threshold, maka akan didapatkan perbandingan kompresi untuk noisy dan noiseless pada citra sidik jari. Kedua transformasi ini sangat berguna dalam lingkup aplikasi, di mana aplikasi tersebut memerlukan untuk menyusun kembali citra sesuai dengan citra aslinya. 29
3.3
Jaringan Syaraf Tiruan Pada tahap ini dijelaskan proses pembelajaran pola sidik jari dengan teknik Learning Vector Quantization (LVQ). Kami memilih LVQ dikarenakan proses pembelajaran yang cepat dan proses pengklasifikasian yang baik dalam menyelesaikan masalah klasifikasi. Teknik LVQ cukup sederhana sehingga dapat dengan mudah diaplikasikan pada masalah klasifikasi pelatihan pola. LVQ terdiri dari dua lapis (layer) : satu hidden layer dan output layer. Hidden layer adalah layer kompetitif, di mana neuron-neuronnya saling berlomba untuk menjadi yang pertama untuk diaktifkan, dengan mendapatkan nilai masukan yang paling besar. Dalam kasus tertentu, nilai keluaran dari neuron tersebut sama dengan satu, sedangkan nilai keluaran neuron lainnya tetap nol. Output layer adalah sebuah layer linier, di mana setiap keluarannya berarti satu kelas pola. Kemudian neuron yang aktif dalam hidden layer mengikuti kelas keluaran yang berhubungan. Selama proses pelatihan, weight yang menuju ke neuron hidden dilengkapi sehingga hanya ada satu neuron, untuk setiap pola arus keluaran, yang akan berhasil dalam hidden layer yang kompetitif.
Input
Hidden neuron
Output Gambar 3.7 Skema diagram jaringan LVQ 30
Proses pengklasifikasian yang digunakan antara lain pengklasifikasian minutiae-nonminutiae yang berdasarkan pengawasan dari Learning Vector Quantization (LVQ).
Pengenalan Citra
Ekstraksi Ciri
Umpan Balik
Pencocokan
Perbaikan Ciri
Pembuktian Ciri
Gambar 3.8 Langkah-langkah proses Pengenalan Pola dengan LVQ Dalam proses pelatihan, LVQ mengklasifikasikan citra sidik jari berdasarkan daerah terputus dan daerah bercabang. Citra awal
Orientasi bidang
Binarisasi
Penipisan
Ekstraksi Minutia
Gambar 3.9 Algoritma ekstraksi LVQ pada citra sidik jari 31
3.4
Rancangan Program Aplikasi Pada sub ini akan menjelaskan algoritma atau pseudocode yang diterapkan dalam aplikasi sidik jari. 3.4.1 Modul Image Processing (Preprocessing) Dalam modul ini citra masukan akan diproses agar dapat dikenali oleh komputer. Pola-pola sidik jari yang diperoleh dari hasil pemindaian (scanning) merupakan citra dengan tingkat noise yang tinggi. Hal ini nantinya akan sangat berpengaruh pada proses pengenalan. Oleh karena itu dalam modul image processing, citra sidik jari akan diproses agar noise yang terdapat dalam citra berkurang.
1) Thresholding Metode thresholding merupakan metode dalam mengkonversi citra abu-abu menjadi citra biner (citra yang hanya memiliki piksel hitam atau putih). Metode yang digunakan dalam penelitian ini adalah Mean Value Thresholding, yang berguna untuk menentukan nilai ambang berdasarkan nilai rata-rata piksel suatu citra. Pseudocode : Awal modul total = panjang_gambar * lebar_gambar dari nilai x yang ke - 0 sampai (panjang dari gambar) - 1 mulai dari nilai y yang ke – 0 sampai (tinggi dari gambar) - 1 mulai salin nilai piksel gambar kedalam variabel array
32
selesai selesai dari nilai total yang ke - 0 sampai (total – 1) mulai nilai = nilai + nilai array_penampung1(x) selesai nilai_ambang = nilai / total dari nilai x yang ke – 0 sampai (panjang dari gambar) – 1 mulai dari nilai y yang ke - 0 sampai (tinggi dari gambar) - 1 mulai jika nilai piksel gambar(x,y) lebih kecil dari nilai ambang maka ubah nilai piksel(x,y) menjadi 0 // piksel dihitamkan selain itu ubah nilai piksel(x,y) menjadi 255 // piksel diputihkan selesai selesai Akhir modul
2) Low Pass Filter Proses low-pass filter bertujuan untuk menghilangkan noise dengan cara menjaga detail gambar yang memiliki perubahan spasial yang rendah dan mengfilter gambar dengan perubahan spasial yang tinggi yang biasanya berupa noise. Biasanya filter ini menggunakan mask berukuran 3x3 piksel dalam operasinya.
33
P1 * K
P2 * K
P3 * K
P4 * K
P5 * K = C * K
P6 * K
P7 * K
P8 * K
P9 * K
Tabel 3.1 Mask 3x3 Di mana P adalah piksel pada citra inputan yang akan difilter dan C adalah titik tengah dari mask tersebut dan merupakan nilai piksel yang akan diganti sedangkan K adalah konstanta. Nilai konstanta pada mask ukuran 3x3 adalah 1/9. Pseudocode Awal modul dari nilai y yang ke – 0 sampai (tinggi dari gambar – 1) mulai dari nilai x yang ke – 0 sampai (panjang dari gambar – 1) mulai nilai piksel saat ini(x,y) = nilai piksel(x-1,y+1)*1/9 + nilai piksel(x,y+1)*1/9 + nilai piksel(x+1,y+1)*1/9 + nilai piksel(x-1,y)*1/9 + nilai piksel(x,y)*1/9 + nilai piksel(x+1,y)*1/9 + nilai piksel(x-1,y-1)*1/9 + nilai piksel(x,y-1)*1/9 + nilai piksel(x+1,y-1)*1/9 selesai selesai Akhir modul
3) High Pass Filter High-pass filter adalah kebalikan dari low-pass filter di mana filter ini bertujuan untuk memfilter bagian dari citra yang memiliki perubahan spasial yang rendah atau blur. Pemrosesan high-pass filter dilakukan sama dengan low-pass filter yaitu dengan menggunakan mask berukuran 3x3 seperti pada gambar 34
yang terdapat pada low-pass filter tetapi dengan koefisien yang berbeda yaitu K = -1/4. Pseudocode Awal modul dari nilai y yang ke – 0 sampai (tinggi dari gambar – 1) mulai dari nilai x yang ke – 0 sampai (panjang dari gambar – 1) mulai nilai piksel saat ini(x,y) = nilai piksel(x-1,y+1)*(-1/4) + nilai piksel(x,y+1)*(-1/4) + nilai piksel(x+1,y+1)*(-1/4) + nilai piksel(x-1,y)*(-1/4)
+
nilai
piksel(x,y)*(-1/4)
+
nilai
piksel(x+1,y)*(-1/4) + nilai piksel(x-1,y-1)*(-1/4) + nilai piksel(x,y-1)*(-1/4) + nilai piksel(x+1,y-1)*(-1/4) selesai selesai Akhir modul
3.4.2 Modul Ekstraksi Ciri (Feature Extraction) Setelah citra melewati modul preprocessing akan didapat citra yang bebas noise, citra inilah yang nantinya akan diekstrak ciri-cirinya khususnya minutiae sidik jari, hal ini berguna sebagai data inputan dalam modul pembelajaran. 3.4.2.1 Estimasi Orientation Field Tujuan mendapatkan estimasi orientation field dari citra sidik jari adalah untuk mengetahui sudut yang dibentuk pada citra sidik jari sehingga bisa diditeksi tipe dari sidik jari tersebut beserta titik pusat sidik jari tersetut atau yang biasa disebut dengan singular point.
35
Estimasi orientation field bisa dilakukan dengan menggunakan operator gradient Sobel pada tiap piksel yang dikelompokkan dalam blok-blok pada citra sidik jari Hasil yang didapat dari orientation field ini akan menghasilkan blok-blok sudut, di mana tiap blok akan mewakili estimasi sudut yang diwakilinya pada bagian citra sidik jari dengan demikian bisa dikatakan pada citra sidik jari yang terbentuk dari estimasi orientation field adalah citra sidik jari dalam bentuk resolusi yang lebih rendah yang bentuk atau sudutnya bisa diketahui dengan jelas. Algoritma untuk melakukan estimasi orientation field adalah sebagai berikut : a.
Bagi citra sidik jari kedalam blok dengan ukuran W x W piksel,
b.
Dalam tiap blok Hitung gradien untuk Gx dan Gy dengan menggunakan operator Sobel untuk tiap piksel,
c.
Dalam tiap blok hitung Vx, Vy, dan θ
Di mana W adalah ukuran dari piksel yang digunakan untuk membentuk blok, pada penelitian ini ukuran W adalah 250 piksel dengan demikian untuk satu blok akan terdiri dari 250 x 250 piksel. Sedangkan θ adalah besarnya sudut untuk suatu blok, dalam hal ini sudut yang dibentuk hanya akan dibatasi dari 0 sampai 180 derajat karena sebagai contoh bentuk dari sudut 270 sama dengan bentuk diagonal kanan dengan sudut 110.
36
3.4.2.2 Edge Detection Modul ini berguna untuk mengidentifikasi apakah obyek tersebut adalah edge atau tidak adalah dengan menggunakan gradien intensitas dari citra tersebut. Adapun gradient intensitas yang digunakan adalah operator Sobel di mana terdapat variabel Gx dan Gy yang menyatakan komponen arah x dan y dari piksel yang bersangkutan. Nilai dari Gx dan Gy didapat melalui mask dengan ukuran 3x3 dengan koefisien seperti yang terlihat pada tabel di bawah : P1 * - 1
P2 * 0
P3 * 1
P4 * - 2
P5 * 0
P6 * 2
P7 * - 1
P8 * 0
P9 * 1
Tabel 3.2 Operator Gx P1 * 1
P2 * 2
P3 * 1
P4 * 0
P5 * 0
P6 * 0
P7 * - 1
P8 * - 2
P9 * - 1
Tabel 3.3 Operator Gy Procedure mencari_nilai_Gx mulai Dari y yang ke 0 sampai (tinggi dari gambar – 1) mulai Dari x yang ke 0 sampai (panjang dari gambar – 1) mulai I(x,y) = nilai piksel(x-1,y+1) * -1 + nilai piksel(x,y+1) * 0 + nilai piksel(x+1,y+1) * 1 + nilai piksel(x-1,y) * -2 + nilai piksel(x,y) * 0 + nilai piksel(x+1,y) * 2 + nilai piksel(x-1,y-1) * -1 + nilai piksel(x,y-1) * 0 + nilai piksel(x+1,y-1) * 1
37
selesai selesai selesai procedure mencari_nilai_Gy mulai Dari y yang ke 0 sampai (tinggi dari gambar – 1) mulai Dari x yang ke 0 sampai (panjang dari gambar – 1) mulai I(x,y) = nilai piksel(x-1,y+1) * 1 + nilai piksel(x,y+1) * 2 + nilai piksel(x+1,y+1) * 1 + nilai piksel(x-1,y) * 0 + nilai piksel(x,y) * 0 + nilai piksel(x+1,y) * 0 + nilai piksel(x-1,y-1) * -1 + nilai piksel(x,y-1) * -2 + nilai piksel(x+1,y-1) * -1 selesai selesai selesai
3.4.3 Modul Pembelajaran Dalam modul pembelajaran citra sidik jari yang telah melewati proses image processing akan diambil karakteristik yang ada pada citra sidik jari tersebut. Hal ini berguna agar citra sidik jari dikenali oleh komputer. a.
Menghitung matriks rata-rata dari Matriks Tau (matriks Phi) Pseudocode Awal modul Dari x yang ke – 0 sampai (panjang dari gambar – 1) mulai MatriksPsi[i] = (MatriksSumTau[i] / Jumlah gambar) melesai Akhir modul
38
b. Menghitung matriks Tau yang bebas noise (matriks Phi) Pseudocode Awal modul Dari x yang ke – 0 sampai (panjang dari gambar – 1) mulai Dari y yang ke – 0 sampai (tinggi dari gambar – 1) mulai MatriksPhi[x,y] = MatriksTau[x,y] – MatriksPsi[j] Jika MatriksPhi[x,y] < 0 maka MatriksPhi[x,y] = 0 Jika MatriksPhi[x,y] > 255 maka MatriksPhi[x,y] = 255 selesai selesai Akhir modul
Dari hasil modul di atas diperoleh matriks Phi yang bebas noise yang selanjutnya akan menjadi data inputan dalam pembelajaran dengan metode LVQ. Data inputan tersebut akan dihitung dengan matriks bobot (Weight). Formula untuk menghitung W(Weight) adalah : W = Σall iAiT Bi , i = 1,2,...,m Dan dualitas BAM WT adalah : WT = Σall i(AiT Bi)T = Σall iBiT Ai Jika dalam bentuk bipolar maka bentuk binary Ai dan Bi harus ditransformasi menjadi bentuk bipolar Xi dan Yi dengan mengganti 0 dengan 1 dan 1 tetap 1, atau dengan rumus sebagai berikut : Xi = 2 Ai – 1 Sekarang
m
atau
Yi = 2 Bi – 1
pasang
{(X1,Y1),(X2,Y2),...,(Xm,Ym)}.
39
pola
dalam
bentuk
bipolar
Xi = (xi1,xi2,...,xim), Yi = (yi1,yi2,...,bim), Xi Є {-1,1}n, Yi Є {-1,1}p. Maka perumusan W adalah : W = Σall iXiT Yi , i = 1,2,...,m Dan dualitas WT adalah : WT = Σall i(XiT Yi)T = Σall iYiT Xi
Contoh apabila citra yang didapatkan berupa matriks Phi yang bebas noise dengan ukuran 100 x 150, maka akan digunakan matriks weight dengan ukuran 100 x 150.
3.4.4 Modul Pengenalan Dalam modul pengenalan citra sidik jari yang telah dikenali oleh komputer akan disimpan kedalam database. Data inilah yang nantinya apabila ada citra masukan sidik jari dengan karakteristik yang sama maka komputer
dapat
langsung
mengenalinya
tanpa
melakukan
pembelajaran.
a. Memasukkan data dari gambar ke dalam matriks Tau Pseudocode Awal modul dari nilai y yang ke – 0 sampai (tinggi dari gambar -1) mulai PC = nilai piksel dari baris ke – (y-1) dari gambar dari nilai x yang ke – 0 sampai (panjang dari gambar – 1) mulai
40
proses
MatriksTau [x,(y-1)*tinggimatriks + k] = PC[k-1] MatriksSumTau[(j-1)*tinggimatriks + k] = MatriksSumTau[(j-1)*tinggimatriks + k] + PC[k-1] selesai selesai Akhir modul
Pseudocode di atas berfungsi untuk menampung data dari gambar yang hendak dikenali. Data yang ada pada gambar ditampung kedalam matriks Tau yang nantinya akan digunakan sebagai inputan bagi prosedur yang lainnya. b. Menghitung Hamming Distance Pada modul ini variable Hamming Distance berfungsi untuk menentukan apakah citra yang diuji dapat dikenali atau tidak. Semakin tinggi nilai Hamming Distance berarti semakin jauh perbedaan citra sidik jari yang diuji dengan citra yang sudah dipelajari oleh komputer.
Φnew = rnew – Ψ Φnew = nilai perbedaan dengan rata-rata citra (Hamming Distance) rnew = nilai citra yang ingin dikenali atau diuji Ψ = nilai rata-rata citra yang didapat dari proses pelatihan
Pseudocode Awal modul Proses citra menjadi citra hitam putih Buang piksel noise pada citra yang mengganggu Hitung hasil_data_input_pengenalan dengan menggurangi nilai data_input dengan rata_rata_citra yang didapat pada modul pelatihan
41
Hitung hamming_distance_citra dengan menggurangi hasil_data_input_pengenalan dengan hasil_data_input_pelatihan Jika hamming distance = 0 sama dengan nol Maka citra sidik jari berhasil dikenali Selain itu Jika hamming distance < 10 maka citra sidik jari berhasil dikenali Selain itu citra sidik jari tidak berhasil dikenali Akhir modul
3.4.5
Rancangan Tampilan layar Pertama-tama user menginput citra sidik jari untuk menentukan citra mana yang akan diproses. File Open Save Exit
Gambar 3.10 Tampilan Utama atau Awal Pada tampilan di atas, menu Open berfungsi untuk membuka kotak dialog di mana user dapat memilih citra masukkan yang akan diproses agar dapat dikenali oleh komputer. Menu Save berfungsi untuk membuka kotak dialog di mana user dapat menyimpan citra yang telah mengalami
42
proses image processing. Sedangkan menu Exit berfungsi untuk keluar dari program.
File
Pembelajaran Pengujian Pengenalan
Citra 1
Citra 2
Extract Template Membersihkan Database Memo
Membersihkan Memo
Threshold Gambar 3.11.Tampilan Pemrosesan Citra Tampilan di atas akan tampil apabila user telah memilih citra masukan yang akan diproses. Pada rancangan tampilan di atas, terdapat tombol-tombol yang berfungsi untuk memproses, pembelajaran, dan pengenalan citra sidik jari. Pada Citra1 akan tampil citra sidik jari yang dipilih oleh user sebagai citra masukan. Tombol Thresholding berfungsi untuk mengubah citra masukkan menjadi citra biner (citra yang hanya memiliki piksel hitam atau putih). Citra2 berisi Citra1 yang telah mengalami proses thresholding dan filterisasi, Citra2 inilah yang nantinya akan disimpan
43
apabila user memilih save pada menu File. Tombol Extract Template berfungsi untuk menampilkan titik-titik minutiae yang ada pada citra sidik jari yang telah melalui proses threshold. Tombol pembelajaran berfungsi untuk mengambil karakteristik citra sidik jari yang telah diekstrak ciri-cirinya. Tombol Pengujian berfungsi untuk menguji citra sidik jari yang dimasukkan oleh user apakah citra sidik jari tersebut cocok dengan citra yang telah dikenali oleh komputer atau tidak. Tombol Pengenalan berfungsi seperti tombol Pengujian tetapi dalam tombol Pengenalan komputer langsung memproses apakah citra sidik jari tersebut telah dikenali komputer atau belum. Tombol Membersihkan Database berfungsi untuk menghapus database yang berguna untuk menampung informasi citra yang telah dipelajari oleh komputer. Tombol Membersihkan Memo berfungsi untuk menghapus memo atau informasi tertulis pada saat program berjalan. Dalam analisa dan perancangan aplikasi pengenalan sidik jari yang telah disebutkan diatas dapat disimpulkan bahwa suatu aplikasi memerlukan beberapa modul untuk mengambil suatu citra, memproses citra tersebut yang nantinya akan menjadi inputan bagi modul pembelajaran, dan hasil keluaran berupa citra yang telah dikenali oleh komputer.
44