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
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
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.
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.
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.
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
Gambar 3.2 Proses awal representasi citra wavelet
Citra Rata-rata: Setiap piksel A adalah rata-rata dari piksel 1,2,3,4 Step 1
Citra rata-rata Step 2
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)
Gambar 3.3 Pengulangan proses representasi citra wavelet
Langkah 3 : Pembagian berhenti jika nilai rata-rata citra adalah 1 piksel.
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.
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
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 tahapan-tahapan 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.
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.
2 2 )) ( ( )) 2 , ( ( * 100 gnal originalSi Vn CCD Vn RE= ents ofCoeifici No ZCD NZ . ) ( * 100 =
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:
RE = Energi batasan (Retain Energy)
Vn = Vektor Normal
CCD = Koefisien dekomposisi yang ada
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
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.
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.
Gambar 3.7 Skema diagram jaringan LVQ
Input
Hidden neuron
Proses pengklasifikasian yang digunakan antara lain pengklasifikasian
minutiae-nonminutiae yang berdasarkan pengawasan dari Learning Vector Quantization (LVQ).
Gambar 3.8 Langkah-langkah proses Pengenalan Pola dengan LVQ
Dalam proses pelatihan, LVQ mengklasifikasikan citra sidik jari berdasarkan daerah terputus dan daerah bercabang.
Gambar 3.9 Algoritma ekstraksi LVQ pada citra sidik jari Pengenalan Citra Ekstraksi Ciri
Perbaikan Ciri Umpan Balik
Pembuktian Ciri Pencocokan
Citra awal Binarisasi
Penipisan Orientasi bidang
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
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.
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
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.
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.
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
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
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 = ΣalliAiT Bi , i = 1,2,...,m Dan dualitas BAM WT adalah :
WT = Σalli(AiT Bi)T = ΣalliBiT Ai
Jika dalam bentuk bipolar maka bentuk binary Ai dan Bi harus ditransformasi menjadi bentuk bipolar Xidan Yidengan mengganti 0 dengan -1 dan -1 tetap -1, atau dengan rumus sebagai berikut :
Xi = 2 Ai – 1 atau Yi= 2 Bi – 1
Sekarang m pasang 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 iXiTYi , i = 1,2,...,m
Dan dualitas WT adalah :
WT = Σall i(XiT Yi)T = ΣalliYiT 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 proses 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
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=
r
new–
Ψ
Φ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
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.
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
File Open Save Exit
proses image processing. Sedangkan menu Exit berfungsi untuk keluar dari program.
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 File Citra 1 Citra 2 Pembelajaran Pengujian Pengenalan Extract Template Membersihkan Database Membersihkan Memo Threshold Memo
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.