• Tidak ada hasil yang ditemukan

BAB 3. ANALISIS dan RANCANGAN. eigenfaces dan deteksi muka dengan color thresholding akan mempunyai proses

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3. ANALISIS dan RANCANGAN. eigenfaces dan deteksi muka dengan color thresholding akan mempunyai proses"

Copied!
34
0
0

Teks penuh

(1)

BAB 3

ANALISIS dan RANCANGAN

3.1 Analisa metode

Secara garis besar, tahap pada pengenalan wajah dengan metode

eigenfaces dan deteksi muka dengan color thresholding akan mempunyai proses

yang dilakukan sebagai berikut:

1. Melakukan pencarian wajah dari beberapa image input dan menyiapkannya sebagai inputan untuk pelatihan citra.

Kegunaan utama dari proses pencarian wajah ini adalah untuk mendukung dalam pengenalan wajah, dengan menyiapkan terlebih dahulu sebelum diinputkan ke dalam pengenalan wajah. Proses ini akan diharapkan akan membantu dalam memberikan inputan yang lebih baik dan konsisten kepada proses pelatihan wajah, sehingga hasil dari pelatihan akan menjadi lebih akurat. Terutama apabila citra yang digunakan sebagai input memiliki ukuran yang berbeda-beda dan posisi wajah pada citra tidak tetap (posisi dan jarak wajah pada masing-masing citra tidak sama).

Citra yang akan digunakan sebagai input pencarian wajah diharuskan menggunakan gambar berwarna karena metode color thresholding yang digunakan dalam deteksi wajah memerlukan input nilai warna. Untuk ukuran dari citra akan dibuat bisa menerima variasi yang berbeda. Namun jenis file yang akan digunakan akan bertipe bitmap atau JPEG. Citra yang berbeda-beda

(2)

ukuran ini, nanti akan diproses untuk menghasilkan citra baru berukuran 100x100 piksel dengan menggunakan feature classification dan candidate

generation, sehingga citra yang akan dijadikan input dalam face recognition

nantinya diharapkan memiliki ciri yang serupa yaitu daerah muka. Ciri citra yang baik untuk digunakan adalah:

- Keseluruhan wajah terdapat didalam citra

- Warna latar belakang, baju dan rambut tidak menyerupai warna kulit (lebih baik jika berwarna kontras seperti merah, hijau, atau biru)

- Pencahayaan yang baik dan normal (lampu bercahaya putih).

2. Pelatihan citra dengan menggunakan input dari hasil deteksi wajah dan

melakukan perhitungan pelatihan dengan eigenface

Pada tahap pelatihan, kumpulan citra yang menjadi hasil face detection akan diproses dengan melakukan perhitungan PCA dengan tujuan untuk mendapatkan nilai eigenface. Nilai eigenface ini akan diproyeksikan dengan semua citra yang ada yang sudah dikurangi dengan rata-rata seluruh wajah. Hasil proyeksi ini akan berupa nilai eigenspace.

3. Pengenalan citra wajah

Pada tahap pengenalan citra wajah, nilai dari citra yang akan dikenali akan diproyeksikan terhadap nilai eigenface yang telah didapat sebelum dari tahap pelatihan, sehingga akan didapatkan nilai space untuk citra input. Nilai ini nantinya akan digunakan untuk mengenali citra wajah tersebut. Dengan mencari jarak yang paling minimal dengan eucledian distance, maka akan didapatkan citra yang paling mendekati wajah yang diinputkan.

(3)

Kelemahan yang terdapat pada proses pengenalan dengan menggunakan eigenface ini mempunyai masalah antara lain :

- Struktur arah wajah yang diambil harus dalam keadaan yang sama, perbedaan arah muka akan memperkecil kemungkinan target untuk dikenali.

- Bentuk muka yang jauh berbeda juga diduga memperkecil pengenalan dengan hasil yang benar terjadi.

Kelemahan juga terdapat pada proses deteksi muka yang kami gunakan. Masalah yang ada sebagai berikut :

- Gambar yang mempunyai bagian wajah yang terlalu terang / putih kecil kemungkinannya untuk dikenali sebagai daerah wajah.

- Warna latar belakang yang menyerupai warna kulit bisa mengganggu hasil deteksi wajah.

- Warna kulit wajah yang tidak wajar akibat warna lampu atau noise (misal warna wajah agak biru atau ungu) juga bisa mengganggu hasil deteksi wajah yang diharapkan.

- Warna kulit yang dikenali sebagai kulit terbatas. 3.2 Penggambaran perancangan

Penerapan dari deteksi muka dan pengenalan wajah ini akan digambarkan sebagai berikut :

(4)

Dari kumpulan citra yang akan dijadikan sebagai data input, masing-masing citra akan diproses oleh deteksi wajah. Dan hasil proses deteksi ini akan dimasukkan ke dalam matriks data input untuk metode eigenface.

Cara kerja dari deteksi wajah ini dengan menggunakan ambang batas warna. Warna yang diluar batas yang ditentukan akan dibuang. Dan warna yang tidak keluar dari ambang batas akan disimpan. Hasil dari pembuangan warna ini akan menyebabkan noise dari sisa warna yang termasuk sebagai warna kulit. Untuk menghilangkan sisa-sisa noise tersebut digunakan proses thinning, yaitu proses menghapus piksel yang disekelilingnya memiliki piksel kosong lebih dari 4. Tetapi mungkin akan masih tersisa daerah yang besar yang tersisa dan tidak terhapus seperti kulit tangan yang terambil. Karena itu, juga akan dilakukan pembuangan sisa warna noise dimana jumlah piksel dari noise dalam satu kelompok dibawah batas yang ditentukan. Hasil yang tersisa dari pembuangan noise ini akan diambil nilai posisi paling minimal dari posisi kiri atas piksel yang tersisa dan posisi maksimal dari kanan bawah juga dari piksel yang tersisa. Posisi minimal dan maksimal ini akan digunakan untuk mengambil daerah dari gambar citra awal yang belum terkena pembuangan untuk dimasukkan ke dalam matriks data input.

2. Penggambaran metode Eigenfaces

Data input yang disimpan ke dalam matriks dari hasil proses deteksi wajah akan dirata-ratakan dengan seluruh nilai matriks per tiap piksel. Karena matriks ini menyimpan data muka yang sudah terdeteksi dan dijadikan sebagai data input. Perata-rataan ini akan menghasilkan matriks citra rata-rata

(5)

berdimensi 1 Nx 2. Setiap citra ini selanjutkan akan diproyeksikan terhadap nilai rata-rata ini untuk mendapatkan perbedaan setiap citra kepada nilai rata-ratanya. Hasil pengurangan ini bisa disebut sebagai mean subtracted image berdimensi

2

N x

M . Mean subtracted image akan menjadi data input untuk menghitung

covariance matrix dengan mengalikan masing-masing mean subtracted image

dengan nilai transposnya sendiri . Dimensi dari covariance matrix ini akan sebesar M xN2.

Pengolahan selanjutnya, covariance matrix ini akan diinputkan ke dalam perangkat lunak Matlab yang akan menghitung nilai eigen dan vector eigen. Hasil dari eigenvalue dan eigenvector ini selanjutnya diurutkan dari terbesar sampai ke terkecil. Pengurutan ini bertujuan untuk mendapatkan nilai yang eigenface yang sangat menonjol jelas dan lebih besar dari yang lain. Proses selanjutnya dengan mengalikan nilai eigenvector dengan nilai citra yang kita dapatkan dari face detection yang sudah dikurangi dengan rata-rata. Nilai hasil perkalian ini perlu kita normalisasi agar tidak ada yang melebihi batas dari warna hitam yaitu 0, dengan mengubah yang lebih kecil dari 0 akan diset menjadi nilai 0. Hasilnya berupa eigenfaces. Dengan mengalikan nilai

eigenfaces dengan nilai citra yang kita dapatkan dari face detection yang sudah

dikurangi dengan rata-rata kembali maka akan didapat nilai eigenspace-nya.

Eigenspace ini yang akan menjadi pembanding dengan nilai input baru untuk

mencari kecocokan dari obyek yang dibandingkan. 3.Pemggambaran metode Pengenalan wajah

(6)

Pertama kali, input citra baru akan dikurangi dengan nilai rata-rata citra pada tahap pelatihan. Selanjutnya nilai akan diproyeksikan ke dalam eigenface yang didapat pada tahap pelatihan. Nilai citra yang sudah diproyeksikan ini akan siap untuk dibandingkan dengan nilai yang dikandung ciri dari eigenspace. Proses pembanding akan menggunakan metode eucledian distance. Dan hasil yang paling minimal dari hasil perbandingan eigenspace, bisa dikatakan mempunyai beda yang paling kecil, dan dapat dianggap sebagai muka yang sama.

3.3 Perancangan Modul Modul Deteksi Wajah

Pada proses deteksi wajah, citra digunakan sebagai perantara yang menyediakan data input, dikarenakan hanya citra yang dapat menangkap visualisasi keadaan sebenarnya dari fakta. Citra merubah fakta menjadi bentuk lain yang dimengerti oleh komputer dan dapat kita proses.

Citra yang digunakan akan juga berupa citra dari beberapa orang, dimana akan digunakan 16 orang dengan jumlah gambar yang beragam dengan ukuran yang berbeda dan posisi muka yang berbeda dan juga pencahayaannya. Akan ada 115 gambar yang akan menjadi known faces dari aplikasi penulisan ini.

Citra yang akan dijadikan sebagai input ini selanjutnya akan diproses. Aplikasi penulis akan membaca citra yang ada dalam folder images. Citra ini akan dibaca satu persatu. Aplikasi ini juga hanya akan dirancang untuk menerima tipe data dari file citra dengan jenis Bitmap atau JPEG. Proses pembacaan file citra baru akan berjalan ketika tombol load ditekan. Karena panjang dan lebar dari file

(7)

tidak berimbang maka panjang dan lebar dari ukuran citra akan diset menjadi maksimum ukuran salah satu sisi adalah 250 dengan menset ulang ukuran panjang dan lebar dari bitmap. Selanjutanya data perpiksel akan dibaca dan dibuang nilai piksel yang mengandung warna yang tidak menyerupai wajah.

Pada aplikasi ini, karena menggunakan warna dalam proses pendeteksian wajah, citra yang mengandung piksel yang sudah berupa grayscale, tidak dapat digunakan karena pada pembuangan piksel ini memerlukan nilai merah, biru dan hijau untuk dibandingkan.

Untuk proses thresholding, dilakukan pengambilan sample warna dari bagian wajah dan non wajah. Contoh pengambilan sample yang dilakukan adalah seperti pada gambar 3.1.

Gambar 3.1 Pengambilan sampel uji warna

Dari hasil experimen dari hasil uji yang telah dilakukan, diambil kesimpulan piksel akan divalidasikan jika warna merah lebih kecil dari warna hijau, maka citra ini akan dibuang. Jika warna merah dikurang hijau lebih besar dari nilai 85, maka akan dibuang juga. Jika warna hijau lebih kecil dari warna biru, piksel pada posisi ini juga akan dibuang. Jika warna hijau yang dikurang

(8)

dengan biru lebih besar dari nilai 40, maka piksel juga akan dibuang. Dan terakhir, jika rata-rata dari ketiga warna ini mempunyai nilai yang berada di bawah nilai 10 atau diatas nilai 240, maka juga akan dibuang. Piksel yang akan dibuang dan tidak digunakan oleh citra akan diset menjadi nilai 0 ( menjadi piksel dengan warna hitam ). Warna hitam dengan nilai piksel 0 akan menjadi warna yang digunakan sebagai penanda warna yang akan dibuang.

Dari proses pemilahan warna, maka akan didapatkan citra yang diperkirakan sebagai warna muka. Tetapi ada kemungkinan dimana ada piksel lain yang bukan masuk ke dalam muka tetapi tidak terhapuskan karena mempunyai warna yang sama dengan warna daerah muka. Umumnya ukuran dari piksel-piksel ini akan beragam, sehingga pada tahap selanjutnya kita perlu menghapus daerah-daerah ini. Proses penghapusan bisa dilakukan pada masing-masing piksel dimana jika piksel di sekitarnya yang bernilai sebagai warna yang akan dibuang berjumlah lebih dari 4 piksel. Proses ini akan menghapus banyak piksel yang berdiri sendiri, juga akan menghapus garis yang terlalu tipis. Tetapi piksel yang tergabung dalam 1 kelompok tidak akan terhapuskan.Daerah yang masih tersisa memiliki jumlah lebih sedikit daripada ambang batas yang ditentukan. Disini ambang batas akan bernilai 1000. Jadi jumlah kelompok piksel yang tersisa akan lebih besar jumlahnya dari 1000. Piksel ini akan dibilang tergabung jika diantara keempat arahnya (posisi atas, kanan,bawah, dan kiri) mempunyai warna piksel yang bukan bernilai 0. Piksel-piksel yang saling bergabung akan membentuk 1 kelompok, dan pada kelompok ini akan diberikan kode berupa angka untuk mempermudah pembedaan kelompok yang satu dengan

(9)

kelompok yang lain. Pada tahap ini juga, penghapusan kelompok dari citra akan mengeset semua nilai pada kelompoknya itu juga dengan nilai piksel berupa 0.

Sisa terakhir dari kelompok piksel yang tersisa akan dianggap sebagai daerah muka. Sehingga daerah yang masih bersisa ini akan dicari nilai posisi terbesar dan terkecil dari panjang dan lebar untuk dijadikan point pemotong daerah yang dianggap muka. Mulai dari point piksel panjang dan lebar yang terkecil sampai kepada panjang dan lebar dengan point piksel yang terbesar. Jika tidak ada kelompok piksel yang tersisa, karena jumlah blob yang ada lebih kecil dari 1000, maka akan disebutkan bahwa citra yang menjadi input itu bukan berupa gambar orang atau merupakan gambar orang tetapi terlalu kecil.

Selanjutnya sisa ukuran ini akan set ukurannya kembali menjadi ukuran dengan nilai 100x100. Sehingga dari data input tidak akan ada gambar yang mengandung gambar yang berbentuk persegi panjang. Semua gambar yang akan diinputkan akan berupa bidang bujur sangkar.

Hasil dari pengesetan citra yang menjadi ukuran 100x100, akan dijadikan sebagai input dalam proses pelatihan. Input ini akan disimpan ke dalam matriks dengan ukuran yang sama dengan panjang dan lebar gambar yaitu 100x100. Umumnya dengan mengimplementasikan nilai yang dikandung oleh piksel ke dalam variabel yang berupa array berdimensi 2, maka penulis akan bisa mengambil datanya dengan mudah. Tetapi jika jumlah dari citra lebih dari 1 buah citra, maka dimensi dari array ini akan bertambah menjadi 3. Sehingga akan lebih merepotkan dalam perhitungan selanjutnya.

(10)

Untuk mempermudah pada tahap-tahap selanjutnya, maka penulis akan merubah dimensi yang berjumlah 2 tadi akan dikurangi menjadi 1 seperti yang dilakukan oleh penulis lain seperti Jeffry Kusnadi (2004). Hasil pengubahan ini akan menyebabkan data input dari bentuk matrix NxN.

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = Γ − − − − − − 1 , 1 1 , 1 0 , 1 1 , 1 1 , 1 0 , 1 1 , 0 1 , 0 0 , 0 N N N N N N T T T T T T T T T Λ Μ Μ Μ Λ Λ

N = panjang dan lebar gambar T = nilai intensitas dari piksel

=

Γ training set

menjadi matrix dengan bentuk 1xN . 2

Γ =

[

T0,0 T0,1 Λ T0,N−1 T1,0 T1,1 Λ T1,N−1 Λ TN−1,0 TN−1,1 Λ TN−1,N−1

]

atau

Γ=

[

T.0 T1 Λ TN21

]

N = panjang dan lebar gambar T = nilai intensitas dari piksel

=

Γ training set

Jika matriks dari bentuk ini dikelompokkan dengan citra lain dan disimpan dalam bentuk 2 dimensi, maka matriks dari training set akan menjadi

⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = Γ − − − − − − 1 , 1 1 , 1 0 , 1 1 , 1 1 , 1 0 , 1 1 , 0 1 , 0 0 , 0 2 2 2 N M M M N N T T T T T T T T T Λ Μ Μ Μ Λ Λ

(11)

N = panjang lebar dan panjang citra T = nilai intensitas dari piksel

=

Γ training set

Data input yang diberikan kepada matrix ini ini akan berupa nilai rata-rata dari warna merah, biru dan hijau pada posisinya. Jika data sudah dimasukkan ke dalam satu baris variabel ini, maka pembacaan satu buah citra sudah berhasil. Untuk citra selanjutnya akan dilakukan dengan penggambaran proses yang serupa seperti di atas ini dan disimpan pada baris berikutnya. Pembacaan akan dilakukan terus sampai semua citra bitmap dan JPEG sudah dibaca semua.

Pseudocode

prosedur menghilangkan_warna_bernilai_nol mulai

dari baris ke-0 sampai tinggi_gambar mulai

dari kolom ke-0 sampai lebar_gambar mulai

jika nilai piksel merah adalah 0, maka nilai piksel dirubah menjadi 1 jika nilai piksel hijau adalah 0, maka nilai piksel dirubah menjadi 1 jika nilai piksel biru adalah 0, maka nilai piksel dirubah menjadi 1 selesai

(12)

selesai selesai

Prosedur rekursif1 Mulai

Jika nilai piksel dikanan bukan nol maka Mulai

Jika selisih nilai piksel dikanan dan nilai piksel saat ini dibawah 6 Mulai

Buat nilai piksel saat ini menjadi nol Panggil prosedur rekursif1 Selesai

Selesai

Jika nilai piksel diatas bukan nol maka Mulai

Jika selisih nilai piksel diatas dan nilai piksel saat ini dibawah 6 Mulai

Buat nilai piksel saat ini menjadi nol Panggil prosedur rekursif1 Selesai

Selesai

(13)

Mulai

Jika selisih nilai piksel dikiri dan nilai piksel saat ini dibawah 6 Mulai

Buat nilai piksel saat ini menjadi nol Panggil prosedur rekursif1 Selesai

Selesai

Jika nilai piksel dibawah bukan nol maka Mulai

Jika selisih nilai piksel dikanan dan nilai piksel saat ini dibawah 6 Mulai

Buat nilai piksel saat ini menjadi nol Panggil prosedur rekursif1 Selesai

Selesai Selesai

prosedur menghilangkan sudut Mulai

Buat nilai piksel dikiri atas citra menjadi nol

Panggil prosedur rekursif1 mulai dari bagian kiri atas citra Buat nilai piksel dikanan atas citra menjadi nol

(14)

Panggil prosedur rekursif1 mulai dari bagian kanan atas citra Buat nilai piksel dikanan bawah citra menjadi nol

Panggil prosedur rekursif1 mulai dari bagian kanan bawah citra Buat nilai piksel dikiri bawah citra menjadi nol

Panggil prosedur rekursif1 mulai dari bagian kiri bawah citra Selesai

prosedur potong gambar Mulai

Batas Kiri = lebar gambar Batas Kanan = 0

Batas Atas = 0

Batas Bawah = tinggi gambar

dari baris ke-0 sampai tinggi_gambar_baru Mulai

dari kolom ke-0 sampai lebar_gambar_baru Mulai

Jika nilai piksel tidak Nol Mulai

Jika batas kiri lebih besar posisi x piksel maka batas kiri = posisi x piksel

(15)

batas kanan = posisi x piksel

Jika batas atas lebih besar posisi y piksel maka batas atas = posisi y piksel

Jika batas bawah lebih besar posisi y piksel maka batas bawah = posisi y piksel

Selesai Selesai Selesai

Jika batas kanan > batas kiri dan batas atas > batas bawah maka Mulai

dari batas bawah sampai batas atas Mulai

dari batas kiri sampai batas kanan Mulai

Gambar baru = nilai piksel gambar lama Selesai

Selesai Selesai Selesai

Prosedur hitung besar blob Mulai

(16)

Jika Nilai piksel tidal nol Mulai

Tambahkan nilai besar blob dengan 1

Panggil hitung besar blob lagi untuk posisi atas piksel sekarang Panggil hitung besar blob lagi untuk posisi kanan piksel sekarang Panggil hitung besar blob lagi untuk posisi bawah piksel sekarang Panggil hitung besar blob lagi untuk posisi kiri piksel sekarang Selesai

Selesai

Prosedur menghilangkan blob Mulai

Jumlah Blob = 0

dari baris ke-0 sampai tinggi_gambar_baru Mulai

dari kolom ke-0 sampai lebar_gambar_baru Mulai

Jika nilai piksel tidak nol Mulai

Set nilai besar blob = 0 Panggil Hitung besar blob

Jika nilai besar blob < 1000 maka Hapus blob tersebut

(17)

Selain itu tambahkan jumlah Blob dengan 1 Selesai

Selesai Selesai

Jika Jumlah blob = 0 maka Dianggap tidak ada wajah Selesai

Prosedur penipisan gambar Mulai

dari baris ke-0 sampai tinggi_gambar_baru Mulai

dari kolom ke-0 sampai lebar_gambar_baru Mulai

jumlah = nilai piksel yang tidak bernilai nol disekitar piksel sekarang jika jumlah lebih banyak dari 4 maka

nilai piksel sekarang = 0 Selesai

Selesai Selesai

prosedur ubah_ukuran_dengan_rasio mulai

(18)

delta_x = lebar_gambar_awal - lebar_yang_diinginkan delta_y = tinggi_gambar_awal - tinggi_yang_diinginkan jika delta_y lebih besar dari delta_x maka

rasio = tinggi_gambar_awal / tinggi_yang_diinginkan selain itu

rasio = lebar_gambar_awal / lebar_yang_diinginkan

tinggi_gambar_baru = tinggi_gambar / rasio lebar_gambar_baru = lebar_gambar / rasio

dari baris ke-0 sampai tinggi_gambar_baru mulai

dari kolom ke-0 sampai lebar_gambar_baru mulai

gambar_baru = gambar_awal (baris * rasio) dan (kolom * rasio) selesai selesai selesai prosedur ubah_ukuran_menjadi_100x100 mulai rasio_y = tinggi_gambar_awal / 100 rasio_x = lebar_gambar_awal / 100

(19)

tinggi_gambar_baru = 100 lebar_gambar_baru = 100

dari baris ke-0 sampai 100 mulai

dari kolom ke-0 sampai 100 mulai

gambar_baru = gambar_awal (baris * rasio_y) dan (kolom * rasio_x) selesai

selesai selesai

prosedur Deteksi wajah Mulai

panggil ubah_ukuran_dengan_rasio

panggil menghilangkan_warna_bernilai_nol panggil menghilangkan sudut

panggil penipisan gambar panggil menghilangkan blob

panggil potong gambar

panggil ubah_ukuran_menjadi_100x100 Selesai

(20)

Modul Pelatihan Wajah

Modul ini akan berisi dengan tahapan yang dilakukan dalam proses eigenface.

Perlu dipastikan bahwa data input benar-benar sudah ada, baru pelatihan akan bisa untuk digunakan. Data input ini baru akan didapat jika face detection sudah dijalankan. Proses

kerja dari pelatihan ini dilakukan ketika tombol Training ditekan. Tombol ini digunakan

untuk langsung melakukan pelatihan secara otomatis,menjalankan semua fungsi untuk pelatihan.

Pada tahap terakhir dari deteksi wajah, nilai intensitas rata-rata warna merah, biru dan hijau disimpan ke dalam matrix M xN2. Jadi nilai matrix ini yang akan menjadi data input bagi pelatihan yang akan dilakukan.

[

Γ0 Γ1....Γ −1

]

=

Γ M

Γ = training set dari face detection, besarnya 2

N x M

Langkah yang dilakukan selanjutnya menggunakan teknik PCA, dan mendapatkan nilai eigenface dan eigenspace merupakan tujuan dari pelatihan ini.

Langkah pertama adalah menghitung besar rata-rata dari nilai masing – masing piksel yang dipunya. Proses penambahan ini dilakukan dengan menjumlahkan masing-masing piksel pada setiap citranya dan dibagi dengan jumlah citra untuk didapatkan nilai rata-rata yang diinginkan. Proses ini dapat dilakukan dengan menggunakan rumus

− = Γ = Ψ 1 0 1 M i i M ...

Γ = nilai citra yang ingin dilatih, berdimensi 2 1 Nx

Ψ = nilai citra yang didapat dari pelatihan, berdimensi 2

N x M

(21)

M = jumlah banyaknya citra yang diinputkan ke dalam eigenface

Sesudah kita mendapatkan nilai rata-rata dari semua citra, kita bisa membedakan masing-masing citra dari nilai rata-ratanya dengan menggunakan

Ψ − Γ = Φi i

Φ = nilai perbedaan dengan rata-rata citra , berdimensi 2 1xN

Γ = nilai citra yang ingin dilatih, berdimensi 2 1xN

Ψ = nilai citra yang didapat dari pelatihan, berdimensi 2

N x M

Selanjutnya,hasil pembedaan dari masing-masing citra itu direpresentasikan kembali ke dalam sebuah array M x N² kembali, untuk digunakan dalam perhitungan

covariance matrix. Perhitungan ini menggunakan rumus

[

Φ0Φ1...Φ −1

]

= M A T A A C = .

Φ = nilai perbedaan dengan rata-rata citra , berdimensi 2 1xN

A = vector yang akan mengelompokkan nilai perbedaan dengan rata-rata citra,

berdimensi M xN2

C = Covariance matrix, berdimensi NxN

Selanjutnya akan dihitung nilai eigen dengan menggunakan

(

⋅Ι−C

)

=0

Det χ

χ = nilai eigen, dimensi dari matrix berukuran 1xN

Ι = matrix identitas C = covariance matrix

(22)

Pada perhitungan nilai eigen ini, digunakan perangkat lunak Matlab. Sintaks

menggunakan sintaks Χ =eig(C). X merupakan kembalian dari perhitungan eigen yang dilakukan. C akan digunakan sebagai data inputnya yang merupakan nilai dari covariance matrix yang didapatkan sebelumnya.

Dan vektor eigen dengan

(

χ.Ι−C

)

.χρ=0

χ = nilai eigen, dimensi berukuran NxN

Ι = matrix identitas C = covariance matrix

χρ = vector eigen

Perhitungan vektor eigen ini juga akan menggunakan perangkat lunak Matlab. Sintaks yang digunakan sama dengan eig(C), tetapi diterima dengan matriks 2 dimensi, karena mau mengambil nilai vektor dari eigen dengan data input

covariance matrix C.

[

A,B

]

=eig(C) A = Vector eigen

B = matriks diagonal vector eigen

Hasil vektor eigen yang didapatkan ini yang nantinya akan diurutkan untuk mendapatkan ciri yang terbesar. Hasil pengurutan beberapa nilai terbesar akan berupa vektor akan dikalikan dengan training set awal untuk mendapatkan eigenface. Hasil dari perkalian ini akan menghasilkan dimensiNxM2. Dari nilai eigenface yang didapat, selanjutnya akan dihitung nilai eigenspace, dengan mengalikan kembali dengan nilai

(23)

training set awal yang sudah dikurangi nilai rata-rata. Nilai eigenspace yang didapat yang akan merepresentasikan semua citra yang dilatih.

Pseudocode

prosedure pelatihan

jumlahkan matriks_data_input

hitung rata_rata_citra dengan mengurangi dengan jumlah matriks_data_input

hitung perbedaan_citra_dengan_rata dengan mengurangi matriks_data_input dengan rata_rata_citra

hitung covariance_matrix dengan mengalikan perbedaan_citra_dengan_rata dengan perbedaan_citra_dengan_rata

ubah covariance_matrix menjadi string_input_matlab

jalankan matlab dan masukan perintah eig(string_input_matlab) ambil nilai_eigen dan vektor_eigen

urutkan vektor_eigen dari terbesar sampai terkecil

hitung eigenfaces dengan mengalikan vektor_eigen_terurut dengan

perbedaan_citra_dengan_rata

normalisasikan eigenfaces dengan menjadikan nilai dibawah 0 menjadi 0

hitung eigenspace dengan mengalikan eigenfaces dengan

perbedaan_citra_dengan_rata selesai

(24)

Modul ini hanya bisa digunakan ketika data sudah dilatih. Pada modul ini digunakan 2 buah tombol, 1 untuk memilih citra yang diinputkan, dan 1 lagi digunakan untuk melakukan perhitungan dengan menggunakan eucledian

distance. Ketika tombol Open Picture ditekan, akan dibuka pilihan citra yang

akan digunakan. Citra ini akan diproses dengan menggunakan proses yang serupa yang digunakan oleh deteksi wajah, agar data input dari citra ini akan berupa citra berupa wajah dan disimpan dalam vektor Γ .

Untuk melakukan pengenalan, nilai vektor input yang mengandung data citra, akan diproses hanya sampai pengurangan dengan nilai rata-ratanya, tidak sampai pada perhitungan nilai eigenvektor baru. Maka cukup dengan mengurangkan data input baru terhadap nilai rata-rata citra dengan

Ψ − Γ = Φnew new new

Φ = nilai perbedaan dengan rata-rata citra

new

Γ = nilai citra yang ingin akan dilatih

Ψ = nilai rata-rata yang didapat dari proses pelatihan

dan hasilnya dikalikan dengan nilai eigenfaces yang didapat dari proses pelatihan. new r EigenVecto ageSpace= .Φ Im ageSpace

Im = nilai hasil weight matrix data input

r

EigenVecto = Vector hasil PCA yang sudah diurutkan

new

Φ = nilai perbedaan dengan rata-rata citra

Hasil yang didapat dari perhitungan proses pengenalan, selanjutnya akan dibandingkan dengan masing-masing nilai eigenspace. Hasil perbedaan nilai yang

(25)

paling kecil ini merupakan citra yang paling mewakili citra yang diinputkan. Pembandingan yang dilakukan akan menggunakan eucledian distance.

Procedure

Proses citra dengan menggunakan resize ratio

Buang citra yang melewati batas threshold warna dari nilai piksel

Buang piksel yang mempunyai dimana mempunyai jumlah citra yang dibuang pada sekitarnya lebih dari 4

Buang besar blob yang kurang dari 1000

Proses citra dengan menggunakan resize 100x100

Hitung hasil_data_input_pengenalan dengan mengurangi nilai data input yang berupa citra dengan size 100x100 dengan rata_rata_citra didapat pada pelatihan

Kalikan hasil_data_input_pengenalan dengan nilai eigenface Kurangi nilai hasil perkalian dengan nilai eigenspace

Cari nilai paling minimal dan jadikan sebagai citra yang didapat Selesai

(26)

3.4 Diagram Alir Modul

3.4.1 Alir proses kerja Program

(27)
(28)

Start

End Ada citra yang belum dibaca?

TIDAK Ubah ukuran citra

menjadi 250 x 250

Dimulai dari bagian pojok citra, hapus warna yang memiliki

sedikit perbedaan. YA

Scan citra, hapus warna yang melebihi batas threshold yang

ditentukan.

Lakukan thinning untuk menghilangkan

noise

Hitung ukuran blob yang tersisa, jika terlalu kecil, hapus.

Blob yang tersisa digabung menjadi citra ukuran 100x100

(29)

3.4.3 Alir modul perhitungan eigenfaces

(30)

3.4.4 Alir modul pengenalan wajah

(31)

3.5 Perancangan Layar

Gambar 5 Rancangan layar form pendeteksian wajah

Form ini digunakan sebagai user interface dalam proses pendeteksian wajah. Apabila tombol Load Picture ditekan, maka program akan secara otomatis membaca semua citra yang ada didalam folder images. Kemudian dari masing-masing citra tersebut akan dicari apakah terdapat ciri sebuah wajah. Apabila ditemukan, maka citra akan dimasukan kedalam matriks untuk nantinya menjadi hasil inputan bagi proses pelatihan wajah. Disini ditampilkan grafik keberhasilan pengenalan dan kegagalan. Keberhasilan pengenalan jika masih terdapat citra pada hasil face detection minimal 1. Kegagalan akan terjadi jika hasil face detection mendapatkan citra yang semua pikselnya diset menjadi

(32)

buangan. Hasil dari deteksi ditampilkan di atas grafik keberhasilan. Di kanan atas terdapat citra hasil dari face detection. Di kiri atas merupakan citra asli.

Gambar 6 Rancangan layar form pelatihan wajah

Form ini digunakan sebagai user interface dalam proses pelatihan wajah. Apabila tombol Training ditekan, maka program akan secara otomatis memproses data-data yang ada didalam matriks dari face detection. Program akan melakukan pembelajaran untuk nantinya digunakan dalam proses pengenalan wajah. Nilai keluaran dari proses pelatihan berupa nilai eigenfaces dan nilai eigenspace.

(33)

Gambar 7 Rancangan layar form pengenalan wajah

Form ini digunakan sebagai user interface dengan proses pengenalan wajah. Tombol

Open Picture berfungsi untuk memilih gambar yang ingin dikenali oleh program. Dan

tombol Recognition digunakan untuk melakukan pengenalan wajah itu sendiri. Di pojok kiri atas terdapat citra yang sudah di resize ratio menjadi 200. Untuk pojok kanan atas terdapat citra hasil deteksi muka. Data keberhasilan pengenalan dicatat pada grafik. Untuk keberhasilan atau kegagalan pengenalan didapat pada catatan di pojok kanan bawah. Know as… adalah hasil dari deteksi yang dikenali. Know as terdapat didalam catatan di pojok kanan bawah.

(34)

Gambar

Gambar 3.1 Pengambilan sampel uji warna
Gambar 1 Diagram Alir proses kerja
Gambar 2 Diagram alir modul deteksi wajah
Gambar 3 Diagram alir modul perhitungan eigenfaces
+5

Referensi

Dokumen terkait

Rehat &amp;

Dari keempat metode yang digunakan yaitu: Gaussian, Mean, Median, dan Modus didapat gambar yang memiliki kualitas terbaik setelah dilakukan proses smoothing yaitu gambar

Berdasarkan pada hasil analisis diketahui bahwa entres yang disimpan selama 2 dan 4 hari menggunakan media kertas koran dan serbuk gergaji yang telah dibasahi masih menghasilkan

RAS2019P: RA harus lebih teliti lagi dalam mengerjakan soal dan jangan lupa jika masih ada waktu RA periksa lagi jawaban RA serta jangan lupa untuk terus latihan mengerjakan

Adapula permasalahan yang dihadapi oleh perusahaan tersebuta adalah kesulitan dalam perhitungan stok barang dalam cakupan yang besar sehingga sering terjadi

Kajian Lingkungan Hidup Strategis yang selanjutnya disingkat KLHS adalah proses mengintegrasikan pembangunan berkelanjutan yang berwawasan lingkungan hidup dalam

Persoalan cabai merah sebagai komoditas sayuran yang mudah rusak, dicirikan oleh produksinya yang fluktuatif, sementara konsumsinya relatif stabil. Kondisi ini menyebabkan

Kampus hijau yang sudah terbentuk akan menjadi pusat kegiatan dan pemberdayaan pemangku kepentingan untuk mencegah pencemaran dan kerusakan lingkungan (Tempo,