Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet
PENGENALAN WAJAH BERDASARKAN PENGOLAHAN
CITRA DIGITAL DENGAN METODE
GABOR WAVELET
SKRIPSI
LESTYA DILA RAHMA
051401001
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2009
(2)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
PENGENALAN WAJAH BERDASARKAN PENGOLAHAN CITRA DIGITAL
DENGAN METODE GABOR WAVELET
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
Sarjana Komputer
LESTYA DILA RAHMA
051401001
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2009
(3)
PERSETUJUAN
Judul
: PENGENALAN WAJAH BERDASARKAN
PENGOLAHAN CITRA DIGITLA DENGAN
METODE GABOR WAVELET
Kategori
: SKRIPSI
Nama
: LESTYA DILA RAHMA
Nomor Induk Mahasiswa
: 051401001
Program Studi
: SARJANA (S1) ILMU KOMPUTER
Departemen
: ILMU KOMPUTER
Fakultas
: MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA
UTARA
Diluluskan di
Medan, Desember 2009
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Drs. James P. Marbun,M.Kom
Drs. Suyanto,M.Kom
NIP. 131 639 804
NIP. 131 572 440
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
Prof. Dr. Muhammad Zarlis
NIP. 195707011986011003
(4)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
iii
PERNYATAAN
PENGENALAN WAJAH BERDASARKAN PENGOLAHAN CITRA DIGITAL
DENGAN METODE GABOR WAVELET
SKRIPSI
Saya mengakui bahwa SKRIPSI ini adalah hasil kerja saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Desember 2009
Lestya Dila Rahma
051401001
(5)
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT Yang Maha Pemurah dan Maha
Penyayang, dengan limpah karunia-Nya skripsi ini berhasil diselesaikan dalam waktu
yang ditetapkan.
Ucapan terima kasih saya sampaikan kepada Bapak Drs. Suyanto, M.Kom dan
Drs. James Piter Marbun, M.Kom, selaku pembimbing pada penyelesaian skripsi ini
yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk
menyempurnakan skripsi ini. Panduan ringkas, padat dan profesional telah diberikan
kepada penulis sehingga tugas ini dapat terselesaikan dengan tepat waktu. Ucapan
terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer
Prof. Dr. Muhammad Zarlis dan Syahriol Sitorus, S.Si, MIT, Dekan dan Pembantu
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara,
semua dosen dan pegawai pada Departemen Ilmu Komputer FMIPA USU.
Teristimewa kepada kedua orang tua, ayahanda H. Mad Kusni dan ibunda Hj.
Asridawati Lubis dan keluarga besar penulis yang telah memberikan doa, dukungan,
perhatian dan kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya.
Kepada kekasih penulis Zulhamsyah Fachrurrazi Nasution dan sahabat-sahabat
penulis, Maya, Fitra, Lia, Afnisah, Dwi, Titin, Indra, Adi,, Ikhsan, Rido, serta seluruh
teman kuliah angkatan ’05 yang tidak dapat penulis sebutkan satu persatu yang selalu
memberikan semangat dan dukungan. Semoga Allah SWT memberikan limpahan
karunia kepada semua pihak yang telah memberikan bantuan, perhatian, serta kerja
samanya kepada penulis dalam menyelesaikan tugas akhir ini.
Akhirnya penulis berharap bahwa tugas akhir ini bermanfaat terutama
kepada penulis maupun para pembaca serta semua pihak yang berhubungan
dengannya. Penulis menyadari sepenuhnya bahwa kajian ini masih jauh dari
sempurna. Oleh karena itu kritik dan saran yang membangun sangat diharapkan demi
perbaikan.
(6)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
v
ABSTRAK
Pengenalan wajah manusia merupakan salah satu bidang penelitian yang penting, dan
dewasa ini banyak aplikasi yang dapat menerapkannya, baik dibidang komersial
maupun bidang penegakan hukum. Teknik pengenalan wajah pada saat ini telah
mengalami kemajuan yang sangat berarti. Melalui pengembangan suatu teknik seperti
Gabor Wavelet, komputer sekarang dapat menyerupai kemampuan otak manusia
dalam berbagai tugas pengenalan wajah, terutama tugas-tugas yang membutuhkan
pencarian pada database wajah yang besar. Tujuan tugas akhir ini adalah untuk
membuat suatu perangkat lunak pengenalan wajah dengan menggunakan Gabor
Wavelet untuk mereduksi dimensi gambar wajah sekaligus untuk mengetahui
kemampuan dari teknik tersebut. Dalam tugas akhir ini, perangkat lunak yang dibuat
menggunakan gambar diam sebagai inputnya. Untuk membangun aplikasi ini
menggunakan Microsoft Visual Basic. Hasil pengujian sistem menunjukkan bahwa
penggunaan Gabor Wavelet untuk pengenalan wajah dapat memberikan tingkat
akurasi yang cukup tinggi. Hasil pengenalan rata-rata untuk gambar wajah mirip tetapi
orang berbeda adalah 42,7 %, wajah sama tetapi mimik berbeda adalah 68,98 %,
wajah sama tetapi atribut berbeda adalah 55,2 %, dan wajah sama tetapi pose berbeda
adalah 42,1 %.
(7)
FACE RECOGNITION BASES DIGITAL IMAGE PROCESSING BY GABOR
WAVELET'S METHOD.
ABSTRACT
Face recognition is one of the most important science research, and has been used by
a lot of applications, both in commercial or in security systems. Face recognition
techniques has been improved very fast. Through developments like Gabor Wavelet,
computer can complete with human brains in face recognition task, especially to do a
search of a large amount of database. The objective of this final project is to make a
face recognition software using gabor wavelet to reduce the dimension of a face
image, and to see the capabilities of the technique. In this final assignment, the
software used image as the input. To developed this application using Microsoft
Visual Basic. The test results for the same face but different people is 42,7 %, the
same face but different shape is 68,98 % , the same face but different attribute is 55,2
(8)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
vii
DAFTAR ISI
Halaman
HALAMAN PERSETUJUAN ...
ii
PERNYATAAN ...
iii
PENGHARGAAN ...
iv
ABSTRAK ...
v
ABSTRACT ...
vi
DAFTAR ISI ...
vii
DAFTAR TABEL ...
x
DAFTAR GAMBAR ...
xi
BAB 1
PENDAHULUAN ...
1
1.1
Latar Belakang ...
1
1.2
Rumusan Masalah ...
2
1.3
Batasan Masalah ...
2
1.4
Tujuan Penelitian ...
3
1.5
Manfaat Penelitian ...
3
1.6
Metode Penelitian ...
3
1.7
Sistematika Penulisan ...
4
BAB 2
LANDASAN TEORI ...
5
2.1
Comput er Vision ...
5
2.2
Image Processing ...
5
2.3
Pencocokan Citra Digital ...
6
2.4
Transformasi Domain Citra ...
10
2.5
Sinyal dan Spektrum ...
11
2.6
Transformasi Sinyal ...
12
2.7
Transformasi Wavelet ...
13
2.8
Metode Gabor Wavelet ...
15
2.8.1 Nilai Jet ...
15
2.8.2 Membandingkan Nilai Jet ...
16
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ...
17
3.1.
Perancangan Sistem ...
17
3.2.
Pembuatan Gabor Kernel ...
18
3.3.
Proses Enroll ...
20
3.4.
Proses Verify ...
23
3.4.1 Proses Grayscale ...
23
3.4.2 Proses Histogram Equalization ...
25
3.4.3 Gabor Konvolusi ...
26
3.4.4 Feature Extraction ...
28
3.4.5 Proses Pengenalan ...
29
3.5
Flowchart Sistem Pengenalan Wajah ...
31
BAB 4
IMPLEMENTASI SISTEM ...
32
4.1
Menu Utama ...
32
4.1.1 Tampilan Pengenalan Wajah ...
32
4.1.2 Tampilan Data Wajah ...
33
(9)
4.1.4 Tampilan Help ...
35
4.1.5 Tampilan About ...
36
4.2.
Teknik Pengujian Sistem ...
36
4.2.1 Input Data Wajah ke Database ...
36
4.2.2 Pengujian Pengenalan Wajah ...
37
BAB 5
KESIMPULAN DAN SARAN ...
41
5.1.
Kesimpulan ...
41
5.2.
Saran ...
41
DAFTAR PUSTAKA ... ...
42
LAMPIRAN A : Hasil Pengenalan Wajah ... ...
A-1
LAMPIRAN B : Listing Program ... ...
B-1
(10)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
ix
DAFTAR TABEL
Halaman
Gambar 3.1
Pembangkit Kernel dengan Variasi Frekuensi ...
19
Gambar 3.2
Pembangkit Kernel dengan Sudut Orientasi Kernel...
19
(11)
DAFTAR GAMBAR
Halaman
Gambar 2.1
Subcitra Acuan dan Subcitra Pencarian ...
9
Gambar 2.2
Hubungan Citra Foto, SCA dan CP ...
10
Gambar 2.3
Teknik Penjendelaan dari Metode Transformasi Domain ...
11
Gambar 2.4
Grafik Gelombang ...
12
Gambar 2.5
Frekuensi Hasil Transformasi Fourier ...
12
Gambar 2.6
Faktor Skala Wavelet ...
14
Gambar 2.7
Gabor Kernel ...
15
Gambar 2.8
Hasil Konvolusi dengan Gabor Kernel ...
16
Gambar 3.1
Blok Diagram Sistem ...
17
Gambar 3.2
Diagram Gabor Respon ...
18
Gambar 3.3 Gabor Kernel ...
20
Gambar 3.4
Bagan Proses Enroll ...
22
Gambar 3.5
Gabor Feature Extraction pada 12 Titik Sampling ...
22
Gambar 3.6
Bagan Proses Verify ...
23
Gambar 3.7
Konversi Citra RGB ke Citra Grayscale ...
23
Gambar 3.8
Proses Mapping Nilai Gray Citra ...
25
Gambar 3.9
Blok Diagram Database ...
28
Gambar 3.10 Blok Diagram Proses Pengenalan ...
29
Gambar 3.11 Flowchart Sistem Pengenalan Wajah ...
31
Gambar 4.1
Tampilan Menu Utama ...
32
Gambar 4.2
Tampilan Pengenalan Wajah ...
33
Gambar 4.3
Tampilan Data Wajah ...
34
Gambar 4.4
Tampilan Data User ...
35
Gambar 4.5
Tampilan Help ...
35
Gambar 4.6
Tampilan About ...
36
Gambar 4.7
Pengujian Input Data Wajah ...
37
Gambar 4.8
Pengujian Wajah ...
37
Gambar 4.9
Pengujian Hasil Pemanggilan File Wajah ...
38
Gambar 4.10 Pengujian Hasil Pengenalan Wajah ...
38
Gambar 4.11 Hasil Pengenalan Wajah Mirip Tetapi Orang Berbeda ...
39
Gambar 4.12 Hasil Pengenalan Wajah Sama Tetapi Mimik Berbeda ...
39
Gambar 4.13 Hasil Pengenalan Wajah Sama Tetapi Atribut Berbeda ...
40
(12)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Perkembangan computer vision dan teknologi image processing saat ini terus
berkembang dengan sangat pesat. Berbagai aplikasi computer vision dan image
processing telah dikembangkan, seperti dalam sistem keamanan, dan dunia robotika.
Computer Vision mempunyai tujuan utama untuk membuat keputusan yang
berguna tentang objek fisik nyata dan pemandangan (scenes) berdasarkan image yang
didapat dari sensor. Secara sederhana, computer vision ingin membangun sebuah
mesin pandai yang dapat terlihat.
Image processing merupakan salah satu jenis teknologi untuk menyelesaikan
masalah mengenai pemrosesan gambar. Dalam image processing gambar yang ada
diolah sedemikian rupa sehingga gambar tersebut lebih mudah untuk diproses.
Pengenalan wajah manusia adalah salah satu bidang penelitian yang penting
dengan banyak aplikasi yang dapat menerapkannya. Penelitian terhadap pengenalan
wajah manusia sudah banyak dilakukan dengan kelebihan dan kekurangan tertentu.
Hal ini disebabkan karena wajah manusia mempresentasikan sesuatu yang kompleks,
sehingga untuk mengembangkan model komputasi yang ideal untuk pengenalan wajah
manusia adalah sesuatu hal yang sangat sulit.
Teknik pengenalan wajah dapat diaplikasikan ke dalam beberapa bidang seperti
bidang, komersial dan bidang penegak hukum. Aplikasi-aplikasi ini dapat
diklasifikasikan secara luas ke dalam dua kelompok, yaitu beberapa input aplikasi
masih mengunakan gambar diam (seperti credit card, passport, dan SIM) sedangkan
aplikasi yang lain menggunakan gambar dinamis real time.
(13)
Pengenalan wajah manusia mendapat banyak perhatian beberapa tahun akhir ini,
hal ini karena banyak aplikasi yang menerapkan, antara lain dalam pengamanan
gedung, alat identifikasi, alat bantu dalam pencari pelaku kriminal dan lain-lain. Ada
banyak teknik pengenalan wajah yang dapat dipakai dan salah satunya adalah Gabor
Wavelet.
Pada penggunaan Gabor Wavelet agar mendapat hasil yang maksimal
digunakan otomatis alignment untuk menentukan feature-featurenya.
Berdasarkan uraian di atas, maka penulis tertarik untuk memilih ”Pengenalan
Wajah Berdasarkan Pengolahan Citra Digital dengan Metode Gabor Wavelet”
sebagai judul skripsi ini.
1.2 Rumusan Masalah
Ide dasar dalam pembuatan tugas akhir ini adalah metode pengenalan pola
berdasarkan cara-cara pengolahan citra (Image processing) sehingga dapat mengenali
bagian wajah.
Sebelum penulis melakukan penelitian ini, terlebih dahulu dirumuskan masalah
yang dihadapi agar penulis melakukan pembahasan sesuai dengan latar belakang
penulisan ini. Adapun yang menjadi permasalahan dalam penulisan skripsi ini adalah
pengenalan wajah dengan jaringan saraf tiruan merupakan proses yang sangat sulit
dilakukan yaitu kesulitan dalam melakukan pelatihan dimana data yang diberikan
sebagai input cukup besar sehingga proses pelatihan akan membutuhkan memori yang
sangat besar dan memakan waktu yang lama serta hasilnya belum tentu memuaskan,
namun dengan menggunakan metode Gabor Wavelet, pengenalan pola wajah
dilakukan berdasarkan cara-cara pengolahan citra (Image processing) sehingga dapat
mengenali bagian wajah.
Oleh karena itu, perumusan masalah dalam penulisan skripsi ini adalah
“Bagaimana cara mengenali wajah dalam format gambar berdasarkan pengolahan citra
digital dengan metode Gabor Wavelet?”
(14)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
3
Agar penyelesaian masalah tidak menyimpang dari tujuan, maka perlu dibuat batasan
masalah, yaitu:
1.
Bahasa pemrograman yang digunakan adalah Microsoft Visual Basic.
2.
Database editor yang digunakan adalah Microsoft Access.
3.
Citra wajah yang dikenali berformat BMP dan JPG.
4.
Metode pengenalan yang digunakan adalah metode Gabor Wavelet.
1.4 Tujuan Penelitian
Tujuan yang akan dicapai dalarn pembuatan tugas akhir ini adalah untuk membuat
perangkat lunak yang dapat mengenali citra wajah dengan menggunakan Gabor
Wavelet.
1.5 Manfaat Penelitian
Manfaat yang dapat diperoleh dari penelitian ini, adalah:
1.
Mengenali bagian wajah dengan pengenalan pola berdasarkan cara-cara
pengolahan citra untuk mendapatkan hasil yang lebih akurat.
2.
Mempercepat proses pengenalan wajah dengan menginput citra.
3.
Hasil pengenalan wajah dapat diimplementasikan dalam sistem absensi pegawai
dan sistem keamanan.
1.6 Metode Penelitian
Metodologi untuk menyelesaikan masalah dalam tugas akhir ini dilakukan dalam
beberapa tahapan, yaitu sebagai berikut:
1.
Riset perpustakaan untuk mencari dan mengumpulkan artikel-artikel yang
berkaitan dengan topik pembahasan dari berbagai sumber.
2.
Identifikasi masalah, yaitu tahap penentuan hal-hal penting sebagai dasar dari
permasalahan yang dianalisis. Tahap ini merupakan tahap untuk mengkaji dan
membatasi masalah yang akan diimplementasikan dalam sistem.
(15)
3.
Konseptualisasi, yaitu hasil identifikasi masalah dikonseptualisasikan dalam
bentuk hubungan antar-pengetahuan maupun relasi antardata yang akan diterapkan
dalam sistem.
4.
Implementasi sistem yaitu, pemecahan masalah yang telah dikonseptualisasikan ke
dalam modul-modul sesuai dengan garis besar masalah dengan menentukan input,
proses dan output sistem, kemudian diubah ke dalam bahasa pemrograman yang
mudah dimengerti komputer.
1.7 Sistematika Penulisan
Penulisan tugas akhir ini akan mengikuti sistematika sebagai berikut:
BAB 1 : PENDAHULUAN
Bab ini menjelaskan tentang latar belakang, rumusan masalah, batasan
masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian yang
digunakan dalam penelitian, serta sistematika dalam penulisan tugas akhir
ini.
BAB 2 : TINJAUAN PUSTAKA
Bab ini menjelaskan mengenai teori tentang citra, pencocokan citra dalam
fotogrametri dan transformasi wavelet dua dimensi yang berhubungan
kegiatan penelitian.
BAB 3 : PERANCANGAN SISTEM
Bab ini menguraikan tentang analisis terhadap proses yang telah dilakukan
dalam mencocokkan citra kiri dengan citra kanan serta hasil yang diperoleh
dari proses tersebut.
BAB 4 : ALGORITMA DAN IMPLEMENTASI
Berisi tentang implementasi aplikasi yang sudah jadi serta pengujian
sistem.
BAB 5 : KESIMPULAN DAN SARAN
Bab ini menjelaskan tentang kesimpulan dari penelitian ini serta saran yang
direkomendasikan untuk penelitian selanjutnya.
(16)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
BAB 2
TINJAUAN PUSTAKA
2.1 Computer Vision
Computer vision mempunyai tujuan utama untuk membuat keputusan yang
berguna tentang objek fisik nyata dan pemandangan (scenes) berdasarkan image yang
didapat dari sensor. Computer vision ingin membangun sebuah mesin pandai yang
dapat melihat. Tentunya hal ini bukanlah hal mustahil. Ada berbagai contoh dari
aplikasi computer vision seperti mesin yang mengawasi atau memeriksa jutaan
filaraen dari bola lampu atau ribuan mil serat pabrik setiap hari. ATM telah dibangun
dan dilengkapi dengan retina scan. Mobil sudah dapat dikemudikan oleh komputer
dengan menggunakan kamera sebagai input.
2.2 Image Processing
Pengertian sederhana dari image processing adalah manipulasi dan analisis suatu
informasi gambar oleh komputer. Informasi gambar adalah gambar visual dalam dua
dimensi. Segala operasi untuk memperbaiki, analisis, atau pengubahan suatu gambar
disebut image processing. Konsep dasar dari sistem dari image processing diambil
dari kemampuan indera penglihatan manusia yang selanjutnya dihubungkan dengan
kemampuan otak manusia. Dalam sejarahnya, image processing telah diaplikasikan
dalam berbagai bentuk, dengan tingkat kesuksesan yang cukup besar. Seperti berbagai
cabang ilmu lainnya, image processing menyangkut pula berbagai gabungan
(17)
cabang-cabang ilmu. Seperti di antaranya optik, elektronik, matematika, fotografi, dan
teknologi komputer.
Beberapa faktor menyebabkan perkembangan sistern image processing menjadi
berkembang lebih pesat saat ini. Salah satu yang utama adalah penurunan biaya akan
peralatan komputer yang dibutuhkan. Kedua peralatan unit processing dan bulk
strorage menjadi semakin murah dari tahun ke tahun. Faktor kedua adalah
peningkatan tersedianya peralatan untuk proses digital dan tampilan gambar.
Berbagai bidang telah banyak menggunakan aplikasi dari image processing baik
di bidang komersial, industri, dan medis. Bahkan bidang militer telah menggunakan
perkembangan dunia digital image processing ini.
Pada umumnya tujuan dari image processing adalah mentransformasikan atau
menganalisis suatu gambar sehingga informasi baru tentang gambar dibuat lebih jelas.
Ada banyak cara yang dapat diaplikasikan dalam suatu operasi image processing,
hampir sebagian besar dalam bentuk optikal. Gambar optikal dikonversikan menjadi
sinyal elektrik dengan menggunakan kamera video atau peralatan lain sejenisnya.
Konversi ini mengubah representasi gambar dari suatu cahaya optik menjadi sinyal
elektrik kontinyu. Sinyal elektrik ini disebut sinyal analog. Lebih lanjut, gambar
analog dapat didigitalkan dan berubah menjadi data digital. Operasi pada sistem image
processing dapat diaplikasikan pada suatu gambar dengan bentuk optikal, analog, atau
digital.
2.3 Pencocokan Citra Digital
Teknologi fotogrametri terus mengalami perkembangan dari sistem fotogrametri
analog hingga sistem fotogrametri digital yang lebih praktis, murah, dan otomatis.
Proses otomatisasi pada fotogrametri digital ditujukan untuk mengurangi proses
pengambilan informasi dalam rangkaian kerja fotogrametri. Identifikasi titik sekawan
pada fotogrametri digital dapat dilakukan dengan otomatis menggunakan metode
pencocokan citra (image matching). Problem dalam otomatisasi sistem fotogrametri
digital adalah sulit untuk mengidentifikasi titik sekawan secara otomatis pada citra
homogen yang bertampalan. Pekerjaan mencocokan titik sekawan dalam fotogrametri
analog membutuhkan seorang operator yang memiliki keahlian khusus untuk
(18)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
7
mengenali karakteristik kesamaan citra kiri dan kanan pada pasangan foto stereo.
Otomatisasi pencocokan citra fotogrametri digital diharapkan menjadi solusi terhadap
masalah campur tangan dan kelelahan operator sehingga faktor ketelitian dan
kecepatan dapat ditingkatkan.
Pencocokkan citra adalah dasar proses otomatisasi pada rangkaian proses
fotogrametri. Pencocokan citra dapat diaplikasikan untuk orientasi dengan
menentukan tanda tepi secara otomatis antara foto yang memiliki tanda tepi (fiducial
marks) dan bagian citra lain yang bertampalan sehingga menghasilkan posisi yang
ideal dari tanda tepi tersebut. Pencocokan citra juga dapat digunakan dalam proses
orientasi relatif untuk menentukan titik sekawan sebanyak minimal lima titik pada
citra yang bertampalan dengan mencocokkan matriks pada citra kiri dengan titik
sekawan pada citra kanan. Titik sekawan tersebut didefinisikan pada dua foto udara
yang bertampalan sebagai titik indikator untuk mengetahui kelaikan model 3D hasil
orientasi relatif.
Pencocokan citra dalam orientasi absolut berperan dalam pengukuran titik
kontrol utama dengan menghasilkan bagian citra lainnya (citra kanan) dari titik utama
dibandingkan dengan bagian kecil dari foto udara. Pencocokan citra juga digunakan
untuk menghasilkan citra dengan mengotomatisasi serangkaian titik objek pada citra
dipilih dalam satu bentuk citra grid teratur untuk dipasangkan dengan serangkaian titik
pada citra sebelahnya.
Metode pencocokan citra yang banyak dipakai untuk keperluan proses
fotogrametri adalah berbasis area (area-based) dan berbasis unsur (feature-based).
Metode berbasis area menggunakan komposisi nilai derajat keabuan (gray level) citra
sebagai sampel yang akan diuji dalam penelitian. Metode area based matching
digunakan dalam penelitian ini karena merupakan metode yang paling mudah
dilakukan dan memberikan hasil pencocokan yang relatif cepat (Ilham, 2007). Metode
ini juga memiliki akurasi yang cukup tinggi untuk area yang memiliki tekstur baik dan
unik, dan pada beberapa kasus tingkat akurasi dari kecocokan dapat dinyatakan
kuantitasnya dalam unit metrik. Area based matching pada dasarnya membandingkan
nilai derajat keabu-abuan (gray level) suatu bentuk kecil matriks citra dimana pusat
matriksnya merupakan lokasi gray value dari titik yang akan dicocokkan.
Proses pengidentifikasian titik sekawan dilakukan dengan cara memilih titik di
citra kiri pada objek yang mudah dikenal. Titik yang dipilih tersebut dibandingkan
(19)
dengan titik citra di kanan pada objek yang sama di citra kiri. Pusat subcitra tersebut
merupakan lokasi nilai keabu-abuan dari titik yang akan dicocokkan. Sampel titik
diambil dari citra pada sistem koordinat lokal dalam bentuk posisi kolom-baris. Pada
pencocokkan citra berbasis area, setiap titik yang akan dicocokkan adalah pusat dari
sebuah jendela pixel yang kecil pada citra acuan, dan jendela ini dibandingkan dengan
jendela yang lain pada citra pencarian dengan ukuran tertentu. Ukuran kecocokkan
dilihat dengan kecilnya perbedaan nilai yang dihasilkan. Keunikan objek merupakan
penentu keberhasilan pencocokan citra. Salah satu penentu keunikan objek adalah
ukuran subcitra acuan (SCA). Semakin besar ukuran subcitra acuan, detail yang
merupakan bagian dari objek semakin banyak. Ketika ukuran citra acuan diperbesar
dapat dilihat adanya keunikan lain dari area yang dikategorikan mewakili jenis objek.
Keunikan tersebut dapat berupa objek yang berbeda dan memiliki nilai kecerahan
yang berbeda pula. Berdasarkan hal tersebut, rentang nilai kecerahan citra acuan akan
melebar sehingga nampak semakin heterogen (Putra, 2008).
Proses pencocokan citra diasumsikan berhasil jika diperoleh nilai korelasi
≥ 0.7.
Dengan memperbesar ukuran subcitra acuan, akan diperoleh karakteristik objek yang
makin unik sehingga nilai korelasi akan meningkat dan mendukung tercapainya
keberhasilan pencocokan citra. Dengan adanya keunikan tersebut, pencarian area
paling berkorelasi dapat lebih mudah dan terhindar dari kesalahan posisi pusat area
yang paling berkorelasi. Keunikan yang dimaksud dapat objek tersebut memiliki
sebagian area heterogen. Secara umum, makin besar ukuran citra acuan, makin banyak
keunikan objek yang terlihat sehingga makin besar pula rentang nilai kecerahan citra
acuannya.
Teknik mengevaluasi pencocokan citra berbasis area adalah dengan
menggunakan teknik korelasi maksimal. Nilai korelasi yang dihasilkan bertujuan
untuk mengukur derajat kesamaan antara dua atau lebih citra foto yang bertampalan.
Citra pertama adalah subcitra acuan pada citra kiri sedangkan subcitra kedua
merupakan subcitra pencarian (SCP) yang dibatasi oleh citra pencarian (CP) di dalam
citra foto kedua. Proses pencocokan citra berlangsung semi otomatis, posisi titik awal
diambil secara manual untuk citra kiri dan citra kanan. Titik tengah SCA dan CP
menjadi pusat dari area citra yang akan dicari. Nilai pergeseran maksimum SCA pada
CP digunakan persamaan (1), nilai berguna dalam algoritma pencocokan citra tahap
selanjutnya.
(20)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
9
Dm,n = CPm,n-SCAm,n+1
dengan m = baris dan n = kolom.
Gambar 2.1. Subcitra Acuan dan Subcitra Pencarian
Subcitra pencarian akan bergerak dalam citra pencarian, kemudian dihitung nilai
korelasi SCA dan semua SCP pada CAP dan nilai korelasi antarkedua citra
mempunyai rentang nilai 0 sampai +1 (0
≤
≤ 1). Secara umum nilai pembatas dari
nilai koefisien korelasi adalah lebih besar atau sama dengan 0.7 atau 70 % yang
dinyatakan cocok atau derajat kesamaannya tinggi.
Sampel citra berupa komposisi nilai keabuan array citra yang akan diuji derajat
kecocokannya dihitung melalui suatu persamaan matematis untuk kemudian disimpan
sebagai nilai korelasi. Metode korelasi dari pencocokan citra berkerja dengan memilih
CA dari citra kiri berdasarkan karakteristik tertentu dan jarak objek/area dari titik
utama citra untuk dicocokan, dan pencarian posisi yang sekawan akan dilakukan oleh
jendela yang bergerak subcitra pencarian pada cita pencarian dari citra kanan.
Subcitra
Pencarian
(21)
Gambar 2.2 Hubungan Citra Foto, SCA, dan CP
2.4 Transformasi Domain Citra
Transformasi wavelet merupakan hasil pengembangan transformasi fourier yang
merupakan metode tradisional untuk menentukan kandungan frekuensi dari sebuah
sinyal. Transformasi fourier pada dasarnya membawa sinyal dari domain spasial
(spatial-domain) ke domain frekuensi (frequency-domain). Transformasi fourier
adalah alat mengubah sinyal menjadi fungsi sinus dan cosinus dengan beragam
frekuensi. Transformasi fourier menggunakan basis sinus dan cosinus yang memiliki
frekuensi berbeda. Hasil transformasi fourier adalah distribusi densitas spektral yang
mencirikan amplitudo dan fase dari beragam frekuensi yang menyusun sinyal. Hal ini
merupakan salah satu kegunaan transformasi fourier, yaitu untuk mengetahui
kandungan frekuensi sinyal (Munir, 2004).
Transformasi fourier digunakan dalam pengolahan sinyal untuk
merepresentasikan sinyal dalam domain frekuensi murni. Keterbatasan dari
transformasi fourier konvensional adalah tidak adanya informasi waktu dari
kemunculan suatu frekuensi. Informasi waktu tersembunyi dan tidak terakses dalam
domain frekuensi murni, akibatnya transformasi fourier tidak cocok diterapkan pada
sinyal yang frekuensinya bervariasi terhadap waktu. Permasalahan tersebut diatasi
dengan menggunakan transformasi fourier jangka pendek (STFT, short-time fourier
Subcitra
Pencarian
(22)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
11
transform). Hasil yang diperoleh adalah suatu deret analisis spektral yang
berkorespondensi dengan suatu posisi dalam waktu, namun metode ini memiliki
kelemahan sebagai akibat dari penggunaan fungsi jendela dengan lebar yang sama
untuk tiap komponen spektral. STFT memberikan resolusi waktu dan frekuensi yang
buruk pada komponen frekuensi tinggi (durasi rendah). Komponen berdurasi pendek
merupakan hasil rata-rata sesuai lebar jendela. Selain itu, komponen yang durasinya
lebih besar dari lebar jendela tidak dianalisis (Misiti, et al, 2004).
Transformasi wavelet merupakan pengembangan dari STFT. Pada STFT
pengamatan antar-komponen spektral dilakukan dengan mengubah jumlah osilasi di
dalam fungsi jendela. Sedangkan pada transformasi wavelet pengamatan komponen
spektral dilakukan dengan mengubah lebar jendela dengan tetap mempertahankan
jumlah osilasi di dalamnya. Hal inilah yang menyebabkan istilah frekuensi tidak lagi
dipakai dalam analisis wavelet, namun terdapat istilah “skala” yang berkorespondensi
dengan frekuensi. Keunggulan transformasi wavelet, sifat natural sinyal
dipertahankan. Pada komponen berdurasi pendek, fungsi jendela yang digunakan
memiliki lebar yang sempit. Sedangkan komponen yang berdurasi lebih panjang,
fungsi jendela diperlebar.
Gambar 2.3 Teknik Penjendelaan Frekuensi dari Metode
Transformasi Domain
2.5 Sinyal dan Spektrum
Sinyal adalah deskripsi bagaimana satu parameter mengubah parameter lainnya.
Parameter tersebut merupakan sekumpulan informasi yang ditimbulkan oleh suatu
fenomena dan dapat diperlakukan sebagai data. Sinyal dipresentasikan dalam bentuk
grafik gelombang yang menggambarkan suatu siklus pergerakan. Siklus sinyal
terdapat komponen yang membentuk gelombang, yaitu amplitudo, sudut fase, periode,
(23)
waktu, dan frekuensi. Amplitudo merupakan besar perpindahan maksimum dari titik
kesetimbangan dan bernilai selalu positif. Sudut fase memberitahu pada titik apa
dalam siklus, gerak berada pada t=0. Sedangkan frekuensi adalah banyaknya siklus
pada satu satuan waktu.
Gambar 2.4. Grafik Gelombang
Periode yaitu komponen gelombang yang merepresentasikan waktu dalam
satuan detik pada suatu siklus. Periode merupakan kebalikan dari frekuensi yang
merupakan jumlah siklus pada suatu waktu. Komponen frekuensi yang terkandung
pada suatu sinyal dapat dibagi menjadi dua, yaitu komponen frekuensi tinggi dan
komponen frekuensi rendah. Frekuensi tinggi memiliki periode yang lebih pendek
didandingkan dengan frekuensi rendah.
(24)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
13
2.6 Transformasi Sinyal
Transfomasi sinyal adalah dengan menghitung konvolusi sebuah sinyal dengan sebuah
jendela modulasi pada setiap waktu dengan setiap skala yang diinginkan,dimana
jendela modulasi, yang mempunyai skala fleksibel, disebut induk wavelet atau fungsi
dasar wavelet.
Dalam transformasi sinyal digunakan istilah translasi dan skala. Translasi
adalah lokasi jendela modulasi saat digeser sepanjang sinyal, berhubungan dengan
informasi waktu. Skala behubungan dengan frekuensi, skala tinggi (frekuensi rendah)
berhubungan dengan informasi global dari sebuah sinyal, sedangkan skala rendah
(frekuensi tinggi) berhubungan dengan informasi detail.
Transformasi sinyal secara matematika dapat didefinisikan sebagai berikut:
(s, ) adalah fungsi sinyal setelah transformasi, dengan variabel s (skala) dan
(translasi) sebagai dimensi baru. f(t) sinyal asli sebelum transformasi. Fungsi dasar
di sebut sebagai wavelet, dengan * menunjukkan konjugasi kompleks.
Dan inversi dari transformasi sinyal secara matematika dapat didefinisikan
sebagai berikut:
Fungsi dasar wavelet
s,(t) dapat didesain sesuai kebutuhan untuk
mendapatkan hasil transformasi yang terbaik. Fungsi dasar wavelet secara matematika
dapat didefinisikan sebagi berikut:
(25)
2.7 Transformasi Wavelet
Wavelet adalah fungsi matematika yang menguraikan data atau fungsi menjadi
komponen-komponen frekuensi yang berbeda, wavelet memiliki keunggulan dari
fourier dalam menganalisis situasi-situasi fisis dimana sebuah sinyal memiliki
diskontinuitas dan bentuk yang tajam. Transformasi wavelet merujuk pada
aproksimasi sinyal menggunakan suatu gelombang singkat yang mengalami translasi
dan dilatasi untuk keperluan analisis frekuensi-temporal sinyal. Analisis temporal
menggunakan variasi lokasi gelombang singkat pada waktu tertentu dalam durasi
sinyal, sedangkan analisis frekuensi menggunakan variasi dilatasi gelombang singkat
yang sama (Misiti, et al., 2004). Formulasi matematika representasi sinyal disebut
sebagai transformasi wavelet. Proses transformasi domain citra bertujuan untuk
memunculkan unsur atau karakteristik citra tertentu dapat lebih ditonjolkan. Wavelet
didefinisikan sebagai gelombang singkat (atau gelombang kejut) dengan energi
terkonsentrasi pada domain fisik (spasial atau waktu). Berbeda dengan gelombang
pada umumnya (sinusoid) yang memiliki sifat halus, terprediksi, dan durasi tak
terbatas, wavelet dapat berbentuk tidak simetris, irregular, dan memiliki durasi
terbatas atau berosilasi menuju nol dengan cepat.
Skala dalam tranformasi wavelet adalah melakukan perenggangan dan
pemampatan pada sinyal. Efek dari skala tranformasi wavelet dapat dilihat pada
Gambar 2.6, semakin kecil faktor skala akan menghasilkan induk wavelet yang
semakin mampat.
(26)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
15
2.8 Metode Gabor Wavelet
Salah satu bentuk teknik feature extraction adalah dengan menggunakan Gabor filter.
Fungsi wavelet dan fungsi gabor dikenal sangat variatif dalam menggabungkan
pendapat yang berbeda, namun pada prinsipnya semuanya itu akan menghasilkan
fungsi dengan tujuan yang sama. Tujuan utama Gabor Wavelet ini dalam pengolahan
adalah untuk memunculkan ciri-ciri khusus dari gambar yang telah dikonvolusi
terhadap kernel. Proses yang berlangsung dalam bidang frekuensi mempengaruhi
kecepatan proses yang terjadi, baik dalam proses gambar maupun saat proses
konvolusi.
2.8.1 Nilai Jet
Gabor Wavelet dimotivasi oleh konvolusi kemel dalam bentuk plane wave atau
bidang gelombang yang dibatasi oleh sebuah fungsi Gaussian envelope. Kumpulan
dari koefisien-koefisien convolution untuk kemel dari orientasi-orientasi dan
frekuensi-frekuensi yang berbeda pada satu image pixel yang dinamakan jet.
Jet merupakan kumpulan dari grey values dalam sebuah garnbar. I(x)
mengelilingi sebuah pixel yang diberikan x = (x,y). Hal ini didasarkan pada wavelet
transformasi, didefinisikan sebagai proses Gabor Kemel, seperti ditunjukkan pada
gambar berikut:
(27)
2.8.2 Pembandingan Jet
Dari semua variasi yang ada, perbandingan jet tidak dapat dilakukan secara langsung
karena perubahan kecil pada jarak dalam bidang spatial akan berpengaruh pada
koefisien individual secara drastis.
Karena itu dapat digunakan baik hanya nilai magnitude ataupun menganggap
besar terjadinya perubahan phasa terhadap perubahan jarak yang memungkinkan.
Karena fase rotasi tersebut, jets dari titik pada gambar yang berjarak hanya beberapa
pixel satu sama lainnya dapat memiliki koefisien yang berbeda walaupun mewakili
bentuk-bentuk lokal yang hampir sama. Dengan adanya variasi tersebut, maka harus
digunakan suatu fungsi yang bertujuan untuk mencari koefisien yang benar-henar
tepat.
Dengan membandingkan jets dari titik pada gambar, maka didapatkanlah hasil
konvulasi dengan menggunakan Gabor Kemel seperti terlihat pada gambar di bawah
ini:
(28)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
BAB 3
PERANCANGAN SISTEM
3.1 Perancangan Sistem
Sistem Pengenalan Wajah Berdasarkan Pengolahan Citra Digital dengan Metode
Gabor Wavelet adalah sistem yang melakukan pengenalan wajah berdasarkan citra
pembanding yang sudah ada pada database yang memerlukan suatu metode feature
extraction yang tepat.
Sistem dibagi menjadi dua bagian yaitu proses enroll (pendaftaran pada
database) dan proses verify (pembuktian). Blok diagram sistem secara umum seperti
pada Gambar 3.1.
(29)
3.2
Pembuatan Gabor Kernel
Gabor Kernel dikonvolusi dengan citra wajah untuk membentuk suatu gabor respon
seperti pada Gambar 3.2.
Untuk membangkitkan kernel digunakan persamaan sebagai berikut:
Frekuensi yang digunakan ada lima, yaitu (v = 0, 1, 2, 3, 4) sehingga didapatkan kv =
2
-1
, 2
-1.5, 2
-2
, 2
-2.5
, dan 2
-3
. Sudut orientasi yang digunakan ada
delapan,
yaitu ( µ = 0, 1, 2, 3, 4, 5, 6, 7) sehingga didapatkan
奄
µ = 0°, 22.5°, 45°, 67.5°, 90°,
112.5°, 135°, dan 157.5°. Pemilihan ini dianggap telah mewakili masing-masing
frekuensi dan sudut orientasi kernel Gabor yang diinginkan.
Hasil pehitungan pembangkit kernel dengan variasi frekuensi dan sudut
orientasi dapat dilihat pada tabel Tabel 3.1.
KONVOLUSI
Citra
Wajah
Gabor
Kernel
Gabor Respon
Gambar 3.2 Diagram Gabor Respon
Gambar 3.1 Blok Diagram Sistem
(30)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
19
Tabel 3.1 Pembangkit Kernel dengan variasi frekuensi
No
v
kv
1
0
2
-12
1
2
-1.53
2
2
-2
4
3
2
-2.55
4
2
-3Tabel 3.2 Pembangkit Kernel dengan sudut orientasi kernel
No
µ
奄
µ
1
0
0°
2
1
22.5°
3
2
45°
4
3
67.5°
5
4
90°
6
5
112.5°,
7
6
135°
8
7
157.5°
Respon yang dihasilkan berupa kumpulan bilangan real dan bilangan imajiner
yang kalau digabungkan merupakan kumpulan bilangan kompleks, sehingga
didapatkan kernel sebanyak 80 kernel (2 x 5 x 8 = 80 kernel). Kedelapan puluh kernel
ini kemudian disimpan dalam file teks dan digabungkan ke dalam satu file. Dalam
pengunaannya kernel real dan kernel imaginer digabungkan dengan operasi akar dari
(31)
penjumlahan kuadrat kedua bilangan tersebut. Gabor Kernel dapat dilihat pada
Gambar 3.3.
( complex =
3.3 Proses Enroll
Enroll bertujuan untuk mendapatkan vektor gabor feature dengan konvolusi antara
citra wajah dan kernel kemudian disimpan dalam database.
Database wajah dibagi menjadi tiga bagian besar, yaitu: database citra, database nilai gabor jet dari citra wajah,dan database nama yang merujuk pada database citra.
Database citra disimpan dengan format .jpg dan diberi nomor urut yang
sekaligus menjadi nama file-nya, misalnya: 1.jpg, 2.jpg, 3.jpg, dan seterusnya. Perlu
diketahui bahwa nomor urut yang sekaligus menjadi nama file tersebut tidak boleh ada
yang terlewatkan atau terloncati, dimulai dari nomor urut 1. Hal ini dimaksudkan
untuk memudahkan proses pembacaan file. Database nilai gabor jet dari database
citra disimpan dengan format file teks dan diberi nama file sama seperti database citra,
misalnya: nama file gabor jet untuk citra 1.jpg adalah 1.txt, nama file gabor jet untuk
citra 2.jpg adalah 2.txt, dan seterusnya. Database nama adalah daftar nama pemilik
wajah dari database citra yang disimpan dalam bentuk file teks dengan nama db.txt.
Ukuran citra dalam database citra boleh bermacam-macam. Kalkulasi nilai
gabor jet untuk tiap citra dilakukan pada ukuran 100 x 100 (pixel). Jika ukuran citra
baik panjang ataupun lebar lebih dari seratus pixel, maka akan dilakukan resizing
Gambar 3.3. Gabor Kernel
(32)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
21
terlebih dahulu. Database citra, database nilai gabor jet, dan database nama disimpan
dalam folder images yang terletak di dalam folder source program utama. Di dalam
folder tersebut juga ada file jml_images.txt yang berisi jumlah file citra yang ada
dalam database.
Pertama kali dilakukan pembacaan terhadap file jml_images.txt untuk
mengetahui berapa jumlah citra yang ada dalam database. Kemudian dilakukan
looping sebanyak jumlah citra tersebut. Dalam looping tersebut dilakukan pembacaan
file citra dan sekaligus membangun database gabor jet untuk tiap-tiap citra.
Citra yang telah dibaca diubah ke mode grayscale. Kedalaman bit dari citra
tersebut diubah menjadi 32 bit floating point. Citra yang telah diproses tersebut
kemudian dimasukkan dalam looping sebanyak scale x rotasi yang digunakan pada
Gabor Kernel. Untuk tiap looping, dilakukan resizing ke ukuran 100x100 pixel.
Selanjutnya disiapkan dua bagian matriks citra untuk menampung hasil
konvolusi kernel untuk bagian real dan bagian imajiner. Masing-masing hasil
konvolusi tersebut dikuadratkan, kemudian dijumlahkan. Hasil penjumlahan tersebut
diakarkuadrat.
Matriks citra hasil perhitungan tersebut dibagi menurut grid 5x5 sehingga akan
diambil 36 titik. Titik-titik itulah yang disimpan ke dalam teks file sebagai database
nilai gabor jet respon.
Bagan Proses Enroll dapat dilihat pada Gambar 3.4.
(33)
Citra wajah yang didapat diubah menjadi 8 bit greyscale terlebih dahulu dan
dipertajam teksturnya dengan histogram equalization. Kemudian dilakukan proses
konvolusi dengan 40 kernel gabor pada 12 titik sampling yang sudah ditentukan
posisinya terlebih dahulu kemudian nilai yang didapat disimpan dalam database.
Proses konvolusi dengan kernel ini dilakukan sebanyak 960 kali (12 titik sampling x
80 kernel (40 real + 40 imajiner) ) yang menghasilkan 480 nilai vektor Gabor. Gabor
Feature Extraction pada 12 titik sampling dapat dilihat pada Gambar 3.5.
3.4
Proses Verify
Verify berarti mendapatkan vektor gabor dengan konvolusi antara citra input dengan
kernel, kemudian membandingkan vektor gabor yang didapat dengan database untuk
mencocokan identitas pengguna. Bagan Proses Verify dapat dilihat pada Gambar 3.6.
Gambar 3.5 Gabor Feature Extraction pada 12 Titik Sampling
(34)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
23
Langkah-langkah yang dilakukan sama dengan proses Enroll untuk proses grayscale,
histogram equalization, konvolusi citra dengan kernel gabor, sampai didapatkan nilai
vektor gabor pada 12 titik sampling.
3.4.1
Proses Grayscale
Adapun proses pengubahan citra RGB ke dalam citra grayscale dengan tahap-tahap
citra wajah diekstraksi nilai RGB-nya, kalkulasi nilai grayscale serta pembentukan
citra grayscale yang dapat dilihat pada Gambar 3.7.
Proses pertama adalah mengambil nilai R, G dan B dari suatu citra wajah
bertipe RGB. Pada tipe .bmp citra direpresentasikan dalam 24 bit, sehingga diperlukan
proses untuk mengambil masing masing 3 kelompok 8 bit dari 24 bit tadi. Sebagai
contoh suatu pixel memiliki nilai RGB 24 bit 111100001111000011111111. Untuk
mendapatkan masing-masing nilai R, G dan B dilakukan operasi-operasi sebagai
berikut.
Untuk mendapatkan nilai R dilakukan operasi modulo dengan bilangan 256 sebagai
berikut:
Nilai R = 111100001111000011111111 mod 10000000 = 11111111.
Sedangkan untuk nilai G, dapat dicari dengan cara sebagai berikut:
Nilai G = (111100001111000011111111 dan 1111111100000000) / 100000000
= 11110000
Untuk Nilai B, dapat dicari dengan menggunakan rumus berikut:
Nilai B = (111100001111000011111111 dan 111111110000000000000000) /
Gambar 3.7 Konversi Citra RGB ke Citra Greyscale
Citra RGB EkstraksiKomponen R, G, B
Nilai R
Nilai G
Nilai B
Kalkulasi Nilai Grayscale
Citra Grayscale
(35)
10000000000000000 = 11110000.
Sehingga dari nilai pixel 1111000011110000111111112 atau 15790335 diperoleh
nilai R = 11111111
= 255
G = 11110000
= 240
B = 11110000
= 240
Sehingga diperoleh triplet RGB= (255,240,240). Setelah nilai triplet RGB diperoleh,
maka nilai grayscale didapat dari pixel tersebut. Dasar sebenarnya adalah membuat
band tunggal dari 3 band RGB tadi dengan rumus:
Red = (red * 5) \ 10
Green = (green * 8) \ 10
Blue = (blue * 3) \ 10
Gray = ((red + green + blue) * 10) \ 16
Dengan mengaplikasikan prosedur tadi pada semua piksel akan didapat citra
dengan format grayscale.
3.4.2
Proses Histogram Equalization
Konsep dasar dari histogram equalisation adalah dengan men-strecth histogram,
sehingga perbedaan pixel menjadi lebih besar atau dengan kata lain informasi menjadi
lebih kuat sehingga mata dapat menangkap informasi tersebut. Untuk lebih detilnya,
histogram equalisation men-strech histogram sehingga detil yang sebelumnya tidak
terlihat menjadi lebih terlihat. Pada dasarnya metode ini akan memberikan jarak yang
cukup jauh pada dua grey level yang berdekatan tetapi memiliki perbedaan frekuensi
yang mencolok.
Histogram equalisation adalah suatu proses colour mapping dari citra awal
pada citra hasil. Secara matematis bisa dituliskan sebagai berikut.
warna pada citra hasil.
Secara singkat, histogram equalisation dapat dituliskan secara matematis
sebagai berikut:
.
(36)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
25
Setiap grey level value (rk) dari citra awal, akan di-map ke dalam nilai grey
level yang baru (sk) dalam citra baru. Seperti yang kita lihat pada Gambar 3.8, r1 di
map ke dalam s1, r2 di map ke dalam s3, dan r3 serta r4 di map ke dalam s4.
Definisi matematisnya untuk T(x)
Di mana Pr adalah
Jadi rumusan matematis histogram equalisation adalah sebagai berikut,
Di mana n adalah jumlah pixel yang ada (n untuk citra resolusi 32x16 adalah 512), nj
adalah jumlah pixel yang bernilai rk.
3.4.3
Gabor Konvolusi
Konvolusi pada citra bertujuan menghasilkan titik-titik dengan nilai tertentu yang
disebut sebagai gabor jet response. Titik-titik gabor jet response dari citra database
dan citra wajah yang akan dikenali dibandingkan dengan menerapkan prosedur graph
matching pada citra yang akan dikenali, yaitu dengan memaksimalkan kemiripan
magnitude gabor antara graph model wajah yang sudah ditransformasi dengan
representasi graph dari citra yang akan dikenali tersebut. Penerapan graph matching
(37)
)
,
(
max
S
J
J
J
′
∀∑ ∑
∑
= j j j j j j j a a a a J J S 2 ' 2 ' ' ) , (tersebut dapat didefinisikan dengan persamaan (3.1), dimana J adalah gabor jet model
dari citra database dan J’ adalah gabor jet model dari citra yang akan dikenali.
……….. (3.1)
Fungsi kemiripan S(J, J’) didefinisikan dengan persamaan (3.2), dimana a
jdan
a’
jmasing-masing adalah titik-titik response dari gabor jet model citra database dan
citra wajah yang akan dikenali.
……….. (3.2)
Sebagai contoh:
Citra wajah dibuat dalam matriks awal 8 x 8 dibuat menjadi matriks 10 x 10 di mana
matriks awal tersebut dibungkus dengan nilai 0:
0 0 0 0 0 0 0 0 0 0
0 5 8 3 4 6 2 3 7 0
0 3 2 1 1 9 5 1 0 0
0 0 9 5 3 0 4 8 3 0
0 4 2 7 2 1 9 0 6 0
0 9 7 9 8 0 4 2 4 0
0 5 2 1 8 4 1 0 9 0
0 1 8 5 4 9 2 3 8 0
0 3 7 1 2 3 5 4 6 0
0 0 0 0 0 0 0 0 0 0
Lalu matriks tersebut dikonvolusikan dengan matriks konvolusi (Konvolution
Mask) K[I,J] :
-2 -1 0
-1 0 +1
0 +1 +2
(38)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
27
Proses konvolusinya adalah mengambil nilai tiap elemen awal matriks awal
menjadi matriks 3 x 3 dimana nilai elemen tersebut terletak pada elemen 2 x 2 dan
yang menjadi elemen lainnya adalah elemen tetangganya jika tidak ada maka elemen
tetangga tersebut diberi nilai 0, lalu dilakukan looping hingga elemen terakhir.
Proses selanjutnya adalah membandingkan nilai vektor gabor yang didapat
dengan nilai vektor gabor yang ada di dalam database. Setelah dibandingkan dengan
seluruh database kemudian dicari nilai similiarity-nya dengan:
Dimana :
x
T
adalah transpose array db (database)
y adalah array input
Operasi yang berlaku adalah operasi cross. Nilai array db ke-n dikalikan dengan
nilai array input yang ke-n, operasi ini dilakukan pada seluruh array db dan input dan
hasil operasi ini dijumlahkan. |x| adalah akar dari penjumlahan kuadarat pada array
db, |y| adalah akar dari penjumlah kuadrat pada array input. Nilai S berada antara -1
sampai 1. Proses ini diulang sebanyak database yang telah disimpan. Dari semua nilai
similarity diambil 3 nilai yang terbesar, kemudian dilakukan klasifikasi k-nearest
neighbor untuk menentukan calon mana yang sering muncul dan mempunyai nilai
similarity terbesar.
3.4.4
Feature Extraction
Feature yang telah diperoleh melalui konvolusi dengan citra wajah dimasukkan ke
dalam database. Feature yang didapat berupa nilai yang dikonversikan ke dalam teks
agar bisa disimpan ke dalam database. Blok Diagram Database dapat dilihat pada
Gambar 3.9.
Citra Input Normalisasi Dimensi
Konversi Citra Grey Scale
Konvolusi Gabor Feature
Extraction Simpan ke
(39)
Berikut ini langkah-langkah dalam membuat database:
1.
Mengubah citra yang akan dites ke citra greyscale.
Gambar yang akan dites dipanggil ke dalam memori yang berupa citra 8 bit
RGB, kemudian citra RGB ini diubah ke 8 bit greyscale.
2.
Konvolusi Gabor
Pada konvolusi gabor, citra dikonvolusi dengan kernel. Untuk membuat
kernel, sebuah fungsi dengan titik tengah berada pada pusat kernel. Citra
dikonvolusi dengan kernel imaginer dan kernel real. Hasil konvolusi real dan
imaginer ini kemudian dikuadratkan, dijumlah dan diakar. Proses ini dilakukan
sebanyak 40 kali
3.
Feature extraction
Setelah citra di konvolusi dengan kernel maka dilanjutkan dengan feature
extraction. Dalam feature extraction ini diambil 42 titik sampling. Titik
sampling tersebut berjumlah 1680 atau 42 titik sampling x 40 kernel.
Database berfungsi untuk menyimpan hasil nilai feature yang terdiri dari nama
user dan nilai hasil extraction. Database ini dibatasi dengan tidak menerima inputan
dengan nama user dan nilai extraction yang kosong.
Setelah hasil konvolusi disimpan pada database, dilanjutkan dengan
meng-copy citra yang akan dimasukkan ke dalam database.
3.4.5
Proses Pengenalan
Pada proses pengenalan, citra dikonvolusi dengan gabor kernel kemudian nilai feature
extraction yang didapat dibandingkan dengan database yang ada, akan dihasilkan nilai
similarity serta menampilkan citra yang sesuai dengan similarity tersebut. Blok
Diagram Proses Pengenalan dapat dilihat pada Gambar 3.10.
(40)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
29
Similarity berfungsi untuk membandingkan feature yang telah didapatkan
dengan komvolusi kernel dengan database yang ada.
Berikut ini adalah langkah-langkah yang dilakukan dalam proses similarity:
a.
Proses yang dilakukan dari citra yang akan dites sampai konvolusi gabor sama
seperti proses yang dilakukan pada database, tetapi pada penyimpanan hasil
konvolusi antara citra dengan kernel tidak dilakukan tetapi menyimpannya ke
dalam array.
b.
Proses selanjutnya adalah memindahkan database ke dalam variabel array dan
kemudian membandingkan array database dengan array citra, nilai array citra
yang terdekat dengan nilai array database dipilih dan disimpan dalam array.
Setelah seluruh array citra diperiksa dan diambil nilai terdekat dengan
database, proses dilanjutkan dengan similarity.
Rumus yang digunakan dalam proses similarity tersebut adalah:
dengan :
= Tingkat similarity
J
= Nilai Jet
A
= Nilai array
Input CitraKonversi ke Grayscale
Konversi Gabor
Feature Extraction Sampel
Database
Hitung Similarity Output
Pengenalan
(41)
J’
= Turunan
Proses ini dilakukan sebanyak database yang telah didaftarkan dimulai dengan
memindahkan database ke variabel array hingga mendapatkan nilai similarity. Nilai
similarity yang terbesar dinyatakan paling mirip dengan citra wajah.
3.5 Flowchart Sistem Pengenalan Wajah
Crop dimensi 80 x 80
Konversi ke Greyscale
Proses Gabor Konvolusi
Simpan ke teks file
Hitung Similarity Proses Gabor
Kernel Mulai
Input citra
Citra Pada Database Habis
tidak
Baca database
(42)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
31
(43)
BAB 4
IMPLEMENTASI
4.1 Menu Utama
Tampilan menu utama adalah tampilan tempat menu-menu program aplikasi yang
telah dirancang. Tampilan ini terdiri dari Judul Aplikasi, gambar latar belakang serta
Menu File yang berisi Program Pengenalan Wajah, Data Wajah serta Data User,
menu Abaut, Help serta menu Exit Tampilan menu utama dapat dilihat pada Gambar
4.1.
(44)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
33
4.1.1 Tampilan Pengenalan Wajah
Tampilan ini berfungsi pengenalan citra wajah dengan metode Gabor Wavelet. Pada
tampilan ini empat buah tombol yang memiliki fungsi masing-masing. Tombol Load
berfungi untuk menginput citra wajah yang hendak dikenali, tombol Cancel untuk
melakukan pembatalan, tombol Exit berfungsi untuk menutup tampilan dan kembali
ke menu utama, tombol Scanning untuk melakukan proses pengenalan. Tampilan
Pengenalan Wajah dapat dilihat pada Gambar 4.2.
4.1.2 Tampilan Data Wajah
Tampilan ini berfungsi tempat pengisian data-data sampel citra wajah sebagi
pembanding dalam proses pengenalan wajah. Pada tampilan ini semblan buah tombol
(45)
yang memiliki fungsi masing-masing. Tombol Tambah berfungi untuk memasukkan
data wajah baru, tombol Load Citra untuk mencari data wajah dari komputer, tombol
Cari untuk mencari data wajah yang sudah disimpan sebelumnya, tombol Hapus untuk
menghapus data, tombol Batal untuk melakukan pembatalan serta tombol Keluar
berfungsi untuk menutup tampilan dan kembali ke menu Utama. Tampilan Data
Wajah dapat dilihat pada Gambar 4.3.
4.1.3 Tampilan Data User
Tampilan ini berfungsi tempat pengisian data user sebagai pengguna sistem ini. Pada
tampilan ini enam buah tombol yang memiliki fungsi masing-masing. Tombol
Tambah berfungi untuk memasukkan data baru, tombol Cari untuk mencari data yang
sudah disimpan sebelumnya, tombol Ubah untuk melakukan perubahan data, tombol
Hapus untuk menghapus data, tombol Batal untuk melakukan pembatalan serta
tombol Keluar berfungsi untuk menutup tampilan dan kembali ke menu utama.
Tampilan data user dapat dilihat pada Gambar 4.4.
(46)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
35
4.1.4 Tampilan Help
Tampilan Bantuan berfungsi untuk menampilkan keterangan sisten serta cara
menggunakan sistem. Tampilan Bantuan dapat dilihat pada Gambar 4.5.
Gambar 4.5 Tampilan Help
Gambar 4.4 Tampilan Data User
(47)
4.1.5 Tampilan About
Tampilan About berfungsi untuk menampilkan keterangan sisten serta profile penulis
tugas akhir ini. Tampilan About dapat dilihat pada Gambar 4.6.
4.2
Teknik Pengujian Sistem
Untuk mengetahui sistem sudah layak untuk diimplementasikan, maka perlu
dilakukan penguji sistem dengan pengimputan data-data citra wajah dan melakukan
pengenalan.
4.2.1 Input data wajah ke database
Citra wajah diinput ke database dengan pemanggilan file citra dengan nama wajah listi
dan jumlah record yang ada pada database sejumlah 6 record. Citra wajah akan
ditampilkan disebelah kanan halaman input data wajah. Pengujian input data wajah
dapat dilihat pada Gambar 4.7 di bawah ini.
(48)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
37
Pada tampilan Input data wajah terdapat tombol untuk memanipulasi data serta
melihat data wajah yang sudah direkam sebelumnya.
4.2.2 Pengujian Pengenalan Wajah
Setelah semua data referensi wajah dimasukkan ke dalam database, maka pengujian
dapat dilakukan dengan memanggil sebuah file wajah yang hendak dikenali seperti
Gambar 4.8 dibawah ini.
Gambar 4.7 Pengujian Input Data Wajah
(49)
Hasil pemanggilan file data wajah ditampilkan pada form untuk dilakukan proses
seperti gambar 4.9 dibawah ini.
Hasil pengenalan pengenalan file data wajah ditampilkan pada form setelah
dilakukan proses seperti Gambar 4.10 di bawah ini.
Gambar 4.9 Pengujian Hasil Pemanggilan File Wajah
(50)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
39
Hasil pengenalan untuk beberapa contok kasus:
1.
Wajah Mirip Tetapi Orang Berbeda
Hasil pengenalan berdasarkan wajah mirip tetapi orang berbeda ditampilkan seperti
gambar 4.11 dibawah ini.
Gambar 4.11 Hasil Pengujian Wajah MiripTetapi Orang Berbeda
2.
Wajah Sama Tetapi Mimik Berbeda
Hasil pengenalan berdasarkan wajah sama tetapi mimik berbeda ditampilkan seperti
gambar 4.12 dibawah ini.
(51)
3.
Wajah Sama Tetapi Atribut Berbeda
Hasil pengenalan berdasarkan wajah sama tetapi atribut berbeda ditampilkan seperti
gambar 4.13 dibawah ini.
4.
Wajah Sama Tetapi Pose Berbeda
Hasil pengenalan berdasarkan wajah sama tetapi pose berbeda ditampilkan seperti
gambar 4.14 dibawah ini.
Gambar 4.14 Hasil Pengujian Wajah Sama Tetapi Pose Berbeda
Gambar 4.13 Hasil Pengujian Wajah Sama Tetapi Atribut Bebeda
(52)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Tugas akhir telah membahas Pengenalan Wajah Berdasarkan Pengolahan Citra Digital
Dengan Metode Gabor Wavelet, yang dapat melakukan pengenalan wajah
berdasarkan data wajah sebagai pembanding.
Berdasarkan hasil pengujian dapat disimpulkan sebagai berikut:
1. Algoritma Gabor Wavelet dengan pengambilan nilai Gabor jet berdasarkan grid dapat digunakan untuk mengenali wajah frontal dengan cukup akurat, yaitu
hasil pengenalan
rata-rata untuk gambar wajah mirip tetapi orang berbeda adalah 42,7%, wajah sama
tetapi mimik berbeda adalah 68,98%, wajah sama tetapi atribut berbeda adalah
55,2%, dan wajah sama tetapi pose berbeda adalah 42,1%.
2.
Pengenalan dengan variasi cahaya mempunyai pengaruh yang cukup besar terhadap keakuratan pengidentifikasian wajah. Pengaruh variasi noise kecil terhadap keakuratan pengidentifikasian.5.2 Saran
Untuk penelitian selanjutnya penulis menyarankan pengembangan sistem agar
dilakukan perbandingan dengan metode pengenalan wajah lainnya antara lain metode
(53)
DAFTAR PUSTAKA
Acharya, Tinku and Ajoy K. Ray, 2005, Image Processing Principles and
Applications, John Wiley and Sons, Inc. Hoboken, New Jersey.
Anil K, Jain, 1989, Fundamentals of Digital Image Processing, Prentice Hall
International.
Andrew S, Glassner, 1995, ”Principles of Digital Image Synthesis, Vol 1, Chapter 6”,
Morgan Kaufman Publishing.
Awcock, G,J, and Thomas, R, 1996, Aplikasi Proses Image, McGraw-Hill Inc,
Singapore.
Baxes, Gregory A, 1994, Proses Gambar Digital: Principles and Applications, John
Wiley & Sons, New York.
Cai, J, dan Goshtasby, A. 1991, Eigenfaces for Recognition. Image and Vision
Computing 18, J. of Cognitive Neuroscience.
Dana H, Ballard, 1982, Computer Vision, Prentice Hall.
Fagertun, Jeans, 2005, Face Recognitions, Master Thesis, Technical University of
Denmark.
Jain, Anil K., 1989, Fundamentals of Digital Image Processing, Prentice Hall
International.
Lewand, Robert Edward, 2000, Cryptological Mathematics, Mathematical
Association of America, New York.
(54)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
43
Lim, Resmana, and M.J.T., Reinders, 2000, Facial Landmark Detection Using a
Gabor Filter Representation and a Genetic Search Algorithm, proceeding of
ASCI 2000 conference, Lommel Belgium.
Munir, Rinaldi. 2004. Pengolahan Citra Digital Dengan Pendekatan Algoritmik
Bandung : Penerbit Informatika, 2004. ISBN: 979-3338-29-6.
Robin, 2007, Sisem Pengolahan Citra dan Deteksi wajah pada Sistem Pengenalan
Wajah, Laporan Tugas Akhir, ITB.
Sarfraz, Muhammad, 2005, Computer Aided Intelligent Recognition Techniques and
Application, John Wiley and Sons.
Wiskott, L, Fellous, J.M., Kruger, N., and von der Malsburg, C, 1997, Face
Recognition by Elastic Bunch Graph Matching, IEEE Transaction on Pattern
(55)
LAMPIRAN A HASIL PENGENALAN WAJAH
1. Wajah mirip tetapi orang berbeda
No Wajah-1
Wajah-2
Kemiripan
1
42,5 %
2
43 %
3
43 %
4
42 %
(56)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
45
2. Wajah sama tetapi mimik berbeda
No Wajah-1
Wajah-2
Kemiripan
1
45 %
2
89,49 %
3
75 %
4
40,5 %
5
95
%
(57)
3. Wajah sama tetapi atribut berbeda
No Wajah-1
Wajah-2
Kemiripan
1
90 %
2
75 %
3
34,5 %
4
43 %
5
33,5 %
(58)
Lestya Dila Rahma : Pengenalan Wajah Berdasarkan Pengolahan Citra Digital Dengan Metode Gabor Wavelet, 2010.
47
4. Wajah sama tetapi pose berbeda
No Wajah-1
Wajah-2
Kemiripan
1
41,5 %
2
42 %
3
43,5 %
4
43,5 %
5
40 %
(59)
LAMPIRAN B LISTING PROGRAM
1. Login
Dim rsPasswd As Recordset Dim CN As Connection
Private Sub cmdCancel_Click() End
End Sub
Private Sub cmdOK_Click()
Set rsPasswd = New ADODB.Recordset
rsPasswd.Open "Select * from [User] where userId ='" & _
txtUid.Text & "' and passwd = '" & txtPass.Text & "'", CN, _ adOpenDynamic, adLockOptimistic
If rsPasswd.EOF = True Then MsgBox "Password salah" txtPass.Text = ""
txtPass.SetFocus Else
If (txtUid.Text) = "lestya" And txtPass.Text = "123" Then frmMenu.dtFoto.Enabled = True
frmMenu.dtUser.Enabled = True frmMenu.Show
Else
frmMenu.dtFoto.Enabled = False frmMenu.dtUser.Enabled = False frmMenu.Show
End If End If
End Sub
Private Sub Form_Activate() cmdOk.Enabled = False
txtPass.Locked = True txtUid.Locked = False
lblDate.Caption = Format(Now, "dd-mm-yyyy") txtUid.SetFocus
End Sub
Private Sub Form_Load()
Set CN = New ADODB.Connection
CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; _ Data Source=" & App.Path & "\dbWajah.mdb"
CN.CursorLocation = adUseClient CN.Open
End Sub
Private Sub txtPass_Change() cmdOk.Enabled = True
End Sub
Private Sub txtPass_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
cmdOk.Enabled = True cmdOk.SetFocus
(1)
(outputdata(i) - Network.Layers(Network.LayerCount).Neurons(i).Value) 'Deltas of _ Output layer
For j = Network.LayerCount - 1 To 2 Step -1 If j Mod 11 = 0 Then DoEvents
For k = 1 To Network.Layers(j).NeuronCount If k Mod 11 = 0 Then DoEvents
Network.Layers(j).Neurons(k).Delta = _ Network.Layers(j).Neurons(k).Value * (1 - _
Network.Layers(j).Neurons(k).Value) * Network.Layers(j + _ 1).Neurons(i).Dendrites(k).Weight * Network.Layers(j + _ 1).Neurons(i).Delta 'Deltas of Hidden Layers
Next k Next j Next i
For i = Network.LayerCount To 2 Step -1 If i Mod 11 = 0 Then DoEvents
For j = 1 To Network.Layers(i).NeuronCount If j Mod 11 = 0 Then DoEvents
Network.Layers(i).Neurons(j).Bias = _
Network.Layers(i).Neurons(j).Bias + (Network.LearningRate * 1 * _ Network.Layers(i).Neurons(j).Delta) 'Calculate new bias
For k = 1 To Network.Layers(i).Neurons(j).DendriteCount If k Mod 11 = 0 Then DoEvents
Network.Layers(i).Neurons(j).Dendrites(k).Weight = _ Network.Layers(i).Neurons(j).Dendrites(k).Weight + _
(Network.LearningRate * Network.Layers(i - 1).Neurons(k).Value * _ Network.Layers(i).Neurons(j).Delta) 'Calculate new weights
Next k Next j Next i
SupervisedTrain = 1 End Function
Function tanh(X As Double) As Double
tanh = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X)) End Function
Private Function Activation(Value As Double) Activation = (1 / (1 + Exp(Value * -1))) End Function
Function GetRand() As Double 'Produces a number between -1 and 1 Randomize
GetRand = 2 - (1 + Rnd + Rnd) End Function
Sub EraseNetwork() Erase Network.Layers End Sub
Function SaveNet(FilePath As String) As Integer ' 1 = successful, 0 _ =unsucessful
Dim i, j, k As Integer
Open FilePath For Output As #1 Print #1, "START Learning Rate" Print #1, Network.LearningRate Print #1, "END Learning Rate" Print #1, "START Layer Count" Print #1, Network.LayerCount
(2)
Print #1, "END Layer Count"
Print #1, "START Input Layer Neuron Count" Print #1, Network.Layers(1).NeuronCount Print #1, "END Input Layer Neuron Count" For i = 2 To Network.LayerCount
Print #1, "START Next Layer" Print #1, "START Neuron Count"
Print #1, Network.Layers(i).NeuronCount Print #1, "END Neuron Count"
For j = 1 To Network.Layers(i).NeuronCount Print #1, "START Neuron"
Print #1, "START Bias"
Print #1, Network.Layers(i).Neurons(j).Bias Print #1, "END Bias"
Print #1, "START Dendrites"
For k = 1 To Network.Layers(i).Neurons(j).DendriteCount Print #1, _
Network.Layers(i).Neurons(j).Dendrites(k).Weight Next k
Print #1, "END Dendrites" Print #1, "END Neuron" Next j
Print #1, "END Layer" Next i
Close #1 SaveNet = 1 End Function
Function LoadNet(FilePath As String) As Integer ' 1 = successful, 0 _ =unsucessful
Dim Data, DataMain As String
Dim LayerTrack, NeuronTrack As Long Dim i As Long
If FileExists(FilePath) = 0 Then
LoadNet = 0 'File doest not exists Exit Function
End If Dim FF
FF = FreeFile
Open FilePath For Input As #FF Do While Not EOF(1)
DoEvents
Line Input #FF, Data Select Case Data
Case "START Learning Rate": Line Input #FF, DataMain
Network.LearningRate = CDbl(DataMain) Case "START Layer Count":
Line Input #FF, DataMain
Network.LayerCount = CLng(DataMain)
ReDim Network.Layers(Network.LayerCount) As Layer Case "START Input Layer Neuron Count": 'Input layer LayerTrack = 1
Line Input #FF, DataMain
Network.Layers(1).NeuronCount = CLng(DataMain) ReDim
Network.Layers(1).Neurons(Network.Layers(1).NeuronCount) As Neuron Case "START Neuron Count":
LayerTrack = LayerTrack + 1 Line Input #FF, DataMain
(3)
Network.Layers(LayerTrack).NeuronCount = CLng(DataMain) ReDim
Network.Layers(LayerTrack).Neurons(Network.Layers(LayerTrack).Neuron _Count) As Neuron
Case "START Bias":
NeuronTrack = NeuronTrack + 1 Line Input #FF, DataMain
Network.Layers(LayerTrack).Neurons(NeuronTrack).Bias = _ CDbl(DataMain)
Network.Layers(LayerTrack).Neurons(NeuronTrack).DendriteCount = _ Network.Layers(LayerTrack - 1).NeuronCount
ReDim
Network.Layers(LayerTrack).Neurons(NeuronTrack).Dendrites(Network.La _yers(LayerTrack).Neurons(NeuronTrack).DendriteCount) As Dendrite Case "START Dendrites":
For i = 1 To _
Network.Layers(LayerTrack).Neurons(NeuronTrack).DendriteCount DoEvents
Line Input #FF, DataMain
Network.Layers(LayerTrack).Neurons(NeuronTrack).Dendrites(i).Weight _ = CDbl(DataMain)
Next i
Case "END Layer": NeuronTrack = 0 Case Else
DoEvents End Select
Loop Close #FF LayerTrack = 0 NeuronTrack = 0 LoadNet = 1 End Function
Private Function FileExists(ByVal strPathName As String) As Integer Dim intFileNum As Integer
On Error Resume Next
If Right$(strPathName, 1) = "\" Then
strPathName = Left$(strPathName, Len(strPathName) - 1) End If
intFileNum = FreeFile
Open strPathName For Input As intFileNum FileExists = IIf(Err, False, True)
Close intFileNum Err = 0
End Function
12.Module-4
Private Declare Function GetTempFileName Lib "kernel32" Alias _ "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString _ As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As _Long
Private Declare Function GetTempPath Lib "kernel32" Alias _ "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As _ String) As Long
(4)
Public Const MAX_PATH = 260 Public Const BLOCK_SIZE = 10000
Public Sub FillPhoto(rstMain As Recordset, PFName As String, picEmp _ As PictureBox)
'Public Sub FillPhoto(rstMain As Recordset, PFName As String, picEmp _ As PictureBox)
On Error GoTo Handler Dim bytes() As Byte Dim file_name As String Dim file_num As Integer Dim file_length As Long Dim num_blocks As Long Dim left_over As Long Dim block_num As Long Dim hgt As Single
'me.imgPhoto.Visible = False Screen.MousePointer = vbHourglass DoEvents
file_name = TemporaryFileName() file_num = FreeFile
Open file_name For Binary As #file_num num_blocks = file_length / BLOCK_SIZE left_over = file_length Mod BLOCK_SIZE For block_num = 1 To num_blocks
Put #file_num, , bytes() Next block_num
If left_over > 0 Then
bytes() = rstMain(PFName).GetChunk(left_over) Put #file_num, , bytes()
End If
Close #file_num
picEmp.Picture = LoadPicture(file_name)
Screen.MousePointer = vbDefault Exit Sub
Handler:
Debug.Print Err.Description Resume Next
End Sub
Public Sub GetPhoto(FileName As String, rstMain As Recordset, _ FieldName As String)
On Error GoTo Handler Dim file_num As String Dim file_length As Long Dim bytes() As Byte Dim num_blocks As Long Dim left_over As Long Dim block_num As Long file_num = FreeFile
Open FileName For Binary Access Read As #file_num file_length = LOF(file_num)
If file_length > 0 Then
(5)
left_over = file_length Mod BLOCK_SIZE rstMain(SizeField) = file_length
ReDim bytes(BLOCK_SIZE)
For block_num = 1 To num_blocks Get #file_num, , bytes()
rstMain(FieldName).AppendChunk bytes() Next block_num
If left_over > 0 Then ReDim bytes(left_over) Get #file_num, , bytes()
rstMain(FieldName).AppendChunk bytes() End If
Close #file_num End If
Exit Sub Handler:
MsgBox Err.Description Resume
Debug.Print Err.Description End Sub
Public Function TemporaryFileName() As String Dim temp_path As String
Dim temp_file As String Dim length As Long
temp_path = VBA.Space$(MAX_PATH)
length = GetTempPath(MAX_PATH, temp_path) temp_path = Left$(temp_path, length) temp_file = VBA.Space$(MAX_PATH)
GetTempFileName temp_path, "per", 0, temp_file
TemporaryFileName = Left$(temp_file, InStr(temp_file, _ VBA.Chr$(0)) - 1)
End Function
Public Sub UnRGB(ByVal color As OLE_COLOR, ByRef R As Integer, ByRef _ G As Integer, ByRef B As Integer)
B = color \ 65536
G = (color \ 256) Mod 256 R = color Mod 256
End Sub
Public Sub SetBrightness(ByVal Pic1 As PictureBox, ByVal Pic2 As _ PictureBox, ByVal Brightness As Single)
Dim fraction As Single Dim X As Integer
Dim Y As Integer Dim R As Integer Dim G As Integer Dim B As Integer
If Brightness < 0 Then ' Darken.
fraction = (100 + Brightness) / 100 For Y = 0 To Pic1.ScaleHeight - 1 For X = 0 To Pic1.ScaleWidth - 1
(6)
'DoEvents
UnRGB Pic1.Point(X, Y), R, G, B R = R * fraction
G = G * fraction B = B * fraction
Pic2.PSet (X, Y), RGB(R, G, B) Next X
Next Y Else
' Brighten.
fraction = Brightness / 100
For Y = 0 To Pic1.ScaleHeight - 1 For X = 0 To Pic1.ScaleWidth - 1 'DoEvents
UnRGB Pic1.Point(X, Y), R, G, B R = R + (255 - R) * fraction G = G + (255 - G) * fraction B = B + (255 - B) * fraction Pic2.PSet (X, Y), RGB(R, G, B) Next X
Next Y End If
Pic2.Picture = Pic2.Image End Sub
13.Module-5
Declare Function GetPixel Lib "gdi32" (ByVal HDC As Long, ByVal X As _ Long, ByVal Y As Long) As Long
Declare Function SetPixelV Lib "gdi32" (ByVal HDC As Long, ByVal X _ As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X _ As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As _ Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, _ ByVal dwRop As Long) As Long
14.Module-6
Public Function GetVersion(strApp As String) _ As String
GetVersion = strApp & " " & _
Format(App.Major, "#0") & "." & _ Format(App.Minor, "#00") & "." & _ Format(App.Revision, "0000")