Friday, May 28, 2010

Makalah Jaringan Syaraf Tiruan

Tugas Tgl Tugas Tgl Selesai
Tugas 5 29 April 2010 28 Mei 2010

Nama NPM TUGAS
Dwi Ferdiana
0415031047
Mencari bahan, memasukan ke blog
Anisa Ulya D
0855031005
Mencari bahan, memasukan ke blog
Yuly Indriani
0815031097
Mencari bahan, memasukan ke blog
Novia Utami P
0815031077
Mencari bahan, memasukan ke blog


PENERAPAN JARINGAN SYARAF TIRUAN UNTUK MENDETEKSI POSISI WAJAH MANUSIA PADA CITRA DIGITAL

Abstrak

Salah satu bagian penting dalam proses pengenalan wajah adalah mendeteksi posisi wajah. Dalam makalah ini kami merancang dan mengimplementasikan sistem pendeteksi posisi wajah dengan menggunakan jaringan syaraf tiruan. Sistem ini dilatih dengan menggunakan contoh-contoh wajah yang diberikan. Algoritma Quickprop dan metode active learning digunakan untuk mempercepat proses pelatihan sistem. Dari hasil eksperimen dengan menggunakan 23 file citra berisi 149 wajah, sistem pendeteksi wajah ini memberikan hasil detection rate 71,14% dan false positive 62.
Kata kunci: deteksi wajah, jaringan syaraf tiruan, quickprop, active learning

1. Pendahuluan

Dengan semakin tingginya kemampuan komputer untuk memproses data dalam jumlah besar dengan kecepatan yang tinggi, sistem biometrik semakin banyak diaplikasikan dalam kehidupan manusia. Sistem biometrik adalah sistem untuk melakukan identifikasi dengan cara menggunakan ciri-ciri fisik atau anggota badan manusia, seperti sidik jari, retina mata, suara. Teknologi biometrik ini memiliki beberapa kelebihan seperti tidak mudah hilang, tidak dapat lupa, tidak mudah dipalsukan, dan memiliki keunikan yang berbeda antara manusia satu dengan yang lain.
Salah satu cara yang digunakan dalam system biometrik adalah pengenalan wajah. Sistem pengenalan wajah bertujuan untuk mengidentifikasi wajah seseorang dengan cara membandingkan wajah tersebut dengan database wajah yang sudah ada. Dalam system pengenalan wajah, pendeteksian posisi wajah merupakan salah satu tahap yang penting karena di dunia nyata wajah dapat muncul di dalam citra dengan berbagai ukuran dan posisi, dan dengan latar belakang yang bervariasi [Hjelmas, 2001].
Dalam makalah ini kami merancang dan mengimplementasikan sistem pendeteksi wajah manusia yang dapat memberikan output berupa jumlah, posisi, dan ukuran wajah manusia yang ditemukan di dalam suatu citra digital.

2. Teori Dasar

2.1 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan adalah suatu system pemrosesan informasi yang cara kerjanya memiliki kesamaan tertentu dengan jaringan syaraf biologis [Fausett, 1994]. Jaringan syaraf tiruan dikembangkan sebagai model matematis dari syaraf biologis dengan berdasarkan asumsi bahwa:
a. Pemrosesan terjadi pada elemen-elemen sederhana yang disebut neuron.
b. Sinyal dilewatkan antar neuron melalui penghubung.
c. Setiap penghubung memiliki bobot yang akan mengalikan sinyal yang lewat.
d. Setiap neuron memiliki fungsi aktivasi yang akan menentukan nilai sinyal output.
Jaringan syaraf dapat digolongkan menjadi berbagai jenis berdasarkan pada arsitekturnya, yaitu pola hubungan antara neuron-neuron, dan algoritma trainingnya, yaitu cara penentuan nilai bobot pada penghubung.

2.2 Multi-Layer Perceptron
Multi-Layer Perceptron adalah jaringan syaraf tiruan feed-forward yang terdiri dari sejumlah neuron yang dihubungkan oleh bobot-bobot penghubung. Neuron-neuron tersebut disusun dalam lapisan-lapisan yang terdiri dari satu lapisan input (input layer), satu atau lebih lapisan tersembunyi (hidden layer), dan satu lapisan output (output layer). Lapisan input menerima sinyal dari luar, kemudian melewatkannya ke lapisan tersembunyi pertama, yang akan diteruskan sehingga akhirnya mencapai lapisan output [Riedmiller, 1994].
Setiap neuron i di dalam jaringan adalah sebuah unit pemrosesan sederhana yang menghitung nilai aktivasinya yaitu:



di mana pred(i) melambangkan himpunan predesesor dari unit i, wij melambangkan bobot koneksi dari unit j ke unit i, dan qi adalah nilai bias dari unit i. Untuk membuat representasi menjadi lebih mudah, seringkali bias digantikan dengan suatu bobot yang terhubung dengan unit bernilai 1. Dengan demikian bias dapat diperlakukan secara sama dengan bobot koneksi.

2.3 Supervised Learning
Tujuan pada pembelajaran supervised learning adalah untuk menentukan nilai bobot-bobot koneksi di dalam jaringan sehingga jaringan dapat melakukan pemetaan (mapping) dari input ke output sesuai dengan yang diinginkan. Pemetaan ini ditentukan melalui satu set pola contoh atau data pelatihan (training data set). Setiap pasangan pola p terdiri dari vector input xp dan vektor target tp. Setelah selesai pelatihan, jika diberikan masukan xp seharusnya jaringan menghasilkan nilai output tp. Besarnya perbedaan antara nilai vektor target dengan output aktual diukur dengan nilai error yang disebut juga dengan cost function:



di mana n adalah banyaknya unit pada output layer. Tujuan dari training ini pada dasarnya sama dengan mencari suatu nilai minimum global dari E.

2.4 Algoritma Backpropagation
Salah satu algoritma pelatihan jaringan syaraf tiruan yang banyak dimanfaatkan dalam bidang pengenalan pola adalah backpropagation. Algoritma ini umumnya digunakan pada jaringan syaraf tiruan yang berjenis multi-layer feed-forward, yang tersusun dari beberapa lapisan dan sinyal dialirkan secara searah dari input menuju output.
Algoritma pelatihan backpropagation pada dasarnya terdiri dari tiga tahapan [Fausett, 1994], yaitu:
a. Input nilai data pelatihan sehingga diperoleh nilai output
b. Propagasi balik dari nilai error yang diperoleh
c. Penyesuaian bobot koneksi untuk meminimalkan nilai error.
Ketiga tahapan tersebut diulangi terus menerus sampai mendapatkan nilai error yang diinginkan. Setelah training selesai dilakukan, hanya tahap pertama yang diperlukan untuk memanfaatkan
jaringan syaraf tiruan tersebut.
Secara matematis [Rumelhart, 1986], ide dasar dari algoritma backpropagation ini sesungguhnya adalah penerapan dari aturan rantai (chain rule) untuk menghitung pengaruh masing-masing bobot terhadap fungsi error:



Dimana wij adalah bobot penghubung dari neuron j ke neuron i, si adalah output, dan neti adalah
jumlah hasil kali pada input dari neuron i.

2.5 Algoritma Quickprop
Pada algoritma Quickprop dilakukan pendekatan dengan asumsi bahwa kurva fungsi error terhadap masing-masing bobot penghubung berbentuk parabola yang terbuka ke atas, dan gradien dari kurva error untuk suatu bobot tidak terpengaruh oleh bobot-bobot yang lain [Fahlman,1988]. Dengan demikian perhitungan perubahan bobot hanya menggunakan informasi lokal pada masing-masing bobot. Perubahan bobot pada algoritma Quickprop dirumuskan sebagai berikut:



Pada eksperimen dengan masalah XOR dan encoder/decoder [Fahlman, 1988], terbukti bahwa algoritma Quickprop dapat meningkatkan kecepatan training. Eksperimen dari [Schiffmann,1993] juga menunjukkan peningkatan kecepatan training dan unjuk kerja yang signifikan.

3. Cara Penelitian
Dalam penelitian ini kami menggunakan data yang terdiri dari satu set citra untuk pelatihan (training data set) dan satu set citra untuk pengujian (testing data set). Untuk data pelatihan digunakan citra wajah berukuran 20x20 pixel sebanyak 3000 buah. Sedangkan untuk citra non -wajah diperoleh dari file-file citra yang tidak terdapat wajah manusia di dalamnya.
Sistem ini menggunakan jaringan syaraf tiruan (JST) dengan jenis multi-layer perceptron. Arsitektur yang digunakan diadaptasi dari hasil penelitian [Rowley, 1998], namun lebih disederhanakan.
Lapisan input terdiri dari 400 unit input, yang menerima masukan dari nilai grayscale pixel 20x20 dari subcitra yang akan dideteksi. Sebelum dijadikan input untuk JST, nilai grayscale yang berkisar dari 0 sampai 255 dinormalisasi menjadi antara –1 dan 1.
Lapisan output terdiri dari sebuah unit dengan nilai keluaran berkisar antara –1 dan 1. Pada training data set didefinisikan nilai 1 untuk data wajah dan –1 untuk data non-wajah.
Lapisan tersembunyi (hidden layer) terdiri dari total 25+16=41 unit. Bagian pertama terhubung dengan lapisan input yang membentuk 25 area berukuran 4x4 pixel. Bagian kedua terhubung dengan lapisan input yang membentuk 16 area berukuran 5x5 pixel.
Secara keseluruhan jaringan ini memiliki 883 bobot penghubung, sudah termasuk bias. Jaringan ini lebih sederhana dibandingkan dengan system [Rowley, 1998] yang jumlah bobot penghubungnya mencapai 4357.

3.1 Teknik Active Learning
Training dilakukan secara bertahap dengan menggunakan metode active learning [Sung, 1994].
Pada tahap pertama training dimulai dengan menggunakan sedikit data non-wajah. Pada tahap berikutnya, data training non-wajah ditambah sedikit demi sedikit. Namun data tambahan tersebut diseleksi hanya untuk data tertentu saja, yaitu data yang yang dideteksi sebagai wajah (false positive) pada hasil training tahap sebelumnya. Dengan demikian jumlah data training yang digunakan untuk jaringan syaraf tiruan akan lebih sedikit. Karena data training yang digunakan lebih sedikit, waktu yang diperlukan untuk proses training juga akan lebih singkat. Gambar 1 menunjukkan teknik active learning yang digunakan untuk sistem pendeteksi wajah.

3.2 Detektor Wajah
Bagian detektor wajah menggunakan arsitektur jaringan syaraf yang sama dengan yang digunakan untuk training. Bobot penghubung yang digunakan diambil dari bobot terakhir yang dihasilkan pada proses training. Hasil deteksi akan diputuskan sebagai wajah jika output dari JST lebih dari 0, dan diputuskan sebagai non-wajah jika output JST kurang dari atau sama dengan 0.


Gambar 1. Teknik Active Learning untuk Sistem Pendeteksi Wajah

3.3 Ekstraksi Subcitra
Posisi wajah bisa berada di mana saja pada citra yang akan dideteksi. Untuk itu digunakan window berukuran 20x20 pixel yang akan digeser melalui seluruh daerah citra. Daerah citra yang dilewati oleh window tersebut akan diperiksa satu persatu apakah ada wajah atau tidak di area tersebut. Untuk mengantisipasi ukuran wajah yang bervariasi di dalam citra yang dideteksi, citra diperkecil secara bertahap dengan skala perbandingan 1:1,2 sebagaimana dilakukan pada [Rowley, 1998]. Pada setiap ukuran citra yang diperkecil, window 20x20 pixel akan digeser melalui seluruh area citra.

3.4 Preprocessing
Sebelum digunakan sebagai training data set, citra akan melalui tahap-tahap preprocessing berikut:
1. Histogram Equalization, untuk memperbaiki kontras citra.
2. Masking, yaitu menghilangkan bagian sudut sudut citra untuk mengurangi variasi citra sehingga memperkecil dimensi data.
3. Normalisasi, yaitu mengkonversi nilai intensitas grayscale citra sehingga memiliki range antara –1 sampai dengan 1.
Tahap-tahap preprocessing ini juga digunakan pada saat proses pendeteksian wajah.


Gambar 2. Contoh data wajah yang telah mengalami preprocessing

3.5 Merging
Pada saat dilakukan deteksi wajah pada citra, biasanya sebuah wajah akan terdeteksi pada beberapa lokasi yang berdekatan. Lokasi-lokasi ini disebut dengan kandidat wajah. Untuk itu perlu dilakukan proses penggabungan (merging), yaitu menyatukan lokasi kandidat-kandidat wajah yang berdekatan.


Gambar 3. Hasil deteksi sebelum dan sesudah proses penggabungan (merging)

4. Hasil dan Pembahasan

Unjuk kerja dari detektor wajah pada umumnya diukur dengan menggunakan dua parameter, yaitu detection rate dan false positive rate [Yang, 2002]. Detection rate adalah perbandingan antara jumlah wajah yang berhasil dideteksi dengan jumlah seluruh wajah yang ada. Sedangkan false positive rate adalah banyaknya subcitra non-wajah yang dideteksi sebagai wajah.
Contoh hasil deteksi yang dilakukan pada beberapa citra pengujian ditunjukkan pada gambar 4. Pengujian dilakukan dengan data uji citra yang berasal dari Massachusetts Institute of Technology (MIT) yang terdiri dari 23 file citra yang secara keseluruhan berisi 149 wajah (data uji MIT-23). Kumpulan citra ini pertama kali dipublikasikan pada [Sung, 1994]. Pada data uji ini diperoleh hasil detection rate sebesar 71,14% dan false positives sebanyak 62. Hasil ini diperoleh dari training yang menggunakan 3000 data wajah dan 5200 data nonwajah yang diperoleh melalui metode active learning.
Tabel 1 menunjukkan hasil deteksi yang pernah dilakukan oleh para peneliti lain dengan menggunakan data uji MIT-23. Perbandingan ini tidak bisa dijadikan patokan mutlak untuk menyimpulkan bahwa satu metode lebih baik dari metode yang lain, karena faktor-faktor berikut [Hjelmas, 2001]:
1. data set yang digunakan untuk training tidak sama
2. jumlah data yang digunakan untuk training tidak sama


Gambar 4. Contoh hasil deteksi wajah pada beberapa citra uji yang juga digunakan pada [Sung,1994]



4.1 Pengaruh Jumlah Data Training
Tabel 2 menunjukkan pengaruh jumlah data training yang digunakan terhadap hasil deteksi. Tabel ini berdasarkan hasil deteksi pada suatu citra berisi 15 wajah dan memiliki total 790.797 window. Terlihat bahwa semakin banyak data training nonwajah yang digunakan, semakin kecil angka false positive yang dihasilkan. Hal ini menunjukkan bahwa dengan data yang semakin lengkap, hasil belajar sistem akan semakin baik.



4.2 Pengaruh Algoritma Quickprop pada Kecepatan Training
Tabel 3 menunjukkan perbandingan waktu training yang diperlukan antara training yang menggunakan algoritma backpropagation standar dengan training yang menggunakan algoritma Quickprop. Eksperimen dilakukan dengan menggunakan 2000, 3000, dan 4000 data. Untuk setiap proses training, iterasi dihentikan pada saat nilai error mencapai 0,05. Terlihat bahwa untuk jumlah data training yang semakin besar, algoritma Quickprop memberikan peningkatan kecepatan yang signifikan.



4.3 Pengaruh Metode Active Learning
Tabel 4 menunjukkan perbandingan antara hasil training yang menggunakan metode active learning untuk memilih contoh data non-wajah, dengan hasil training yang menggunakan data nonwajah yang dipilih secara random. Pada eksperimen pertama digunakan 6000 data yang terdiri dari 3000 data wajah dan 3000 data non-wajah. Sedangkan pada eksperimen kedua digunakan 8200 data yang terdiri dari 3000 data wajah dan 5200 data nonwajah. Terlihat bahwa teknik active learning memberikan hasil yang lebih baik. Ini berarti bahwa teknik active learning dapat memilih data yang benar-benar perlu, sehingga dapat meminimalkan jumlah data training yang digunakan.



Pembahasan Kelompok

Dalam penelitian ini digunakan data yang terdiri dari satu set citra untuk pelatihan (training data set) dan satu set citra untuk pengujian (testing data set). Sistem yang digunakan untuk training data maupun testing data adalah sistem yang menggunakan jaringan syaraf tiruan multi layer perceptron. Lapisan input terdiri dari 400 unit input, yang menerima masukan dari nilai grayscale pixel 20x20 dari subcitra yang akan dideteksi. Sebelum dijadikan input untuk JST, nilai grayscale yang berkisar dari 0 sampai 255 dinormalisasi menjadi antara –1 dan 1.
Lapisan output terdiri dari sebuah unit dengan nilai keluaran berkisar antara –1 dan 1. Pada training data set didefinisikan nilai 1 untuk data wajah dan –1 untuk data nonwajah.
Lapisan tersembunyi (hidden layer) terdiri dari total 25+16=41 unit. Bagian pertama terhubung dengan lapisan input yang membentuk 25 area berukuran 4x4 pixel. Bagian kedua terhubung dengan lapisan input yang membentuk 16 area berukuran 5x5 pixel. Secara keseluruhan jaringan ini memiliki 883 bobot penghubung, sudah termasuk bias.
Penentuan nilai bobot-bobot koneksi di dalam jaringan menggunakan pembelajaran supervised learning dengan tujuan jaringan dapat melakukan pemetaan (mapping) dari input ke output sesuai dengan yang diinginkan. Pemetaan ini ditentukan melalui satu set pola contoh atau data pelatihan (training data set). Tujuan dari training ini pada dasarnya sama dengan mencari suatu nilai minimum global dari nilai error.
Algoritma yang digunakan dalam pelatihan data ini adalah algoritma backpropagation. Algoritma pelatihan backpropagation pada dasarnya terdiri dari tiga tahapan [Fausett, 1994], yaitu:
a. Input nilai data pelatihan sehingga diperoleh nilai output
b. Propagasi balik dari nilai error yang diperoleh
c. Penyesuaian bobot koneksi untuk meminimalkan nilai error.
Selain algoritma backpropagation digunakan pula algoritma Quickprop. Pada algoritma Quickprop dilakukan pendekatan dengan asumsi bahwa kurva fungsi error terhadap masing-masing bobot penghubung berbentuk parabola yang terbuka ke atas, dan gradien dari kurva error untuk suatu bobot tidak terpengaruh oleh bobot-bobot yang lain [Fahlman,1988]. Dengan demikian perhitungan perubahan bobot hanya menggunakan informasi lokal pada masing-masing bobot.
Training data dilakukan secara bertahap dengan menggunakan metode active learning. Pada tahap pertama training dimulai dengan menggunakan sedikit data non-wajah. Pada tahap berikutnya, data training non-wajah ditambah sedikit demi sedikit. Namun data tambahan tersebut diseleksi hanya untuk data tertentu saja, yaitu data yang yang dideteksi sebagai wajah (false positive) pada hasil training tahap sebelumnya. Dengan demikian jumlah data training yang digunakan untuk jaringan syaraf tiruan akan lebih sedikit.
Bagian detektor wajah menggunakan arsitektur jaringan syaraf yang sama dengan yang digunakan untuk training. Bobot penghubung yang digunakan diambil dari bobot terakhir yang dihasilkan pada proses training. Hasil deteksi akan diputuskan sebagai wajah jika output dari JST lebih dari 0, dan diputuskan sebagai non-wajah jika output JST kurang dari atau sama dengan 0.
Ekstraksi subcitra digunakan untuk penentuan dimana posisi wajah berada pada citra yang akan di deteksi. Pada saat dilakukan deteksi wajah pada citra, biasanya sebuah wajah akan terdeteksi pada beberapa lokasi yang berdekatan. Lokasi-lokasi ini disebut dengan kandidat wajah. Untuk itu perlu dilakukan proses penggabungan (merging), yaitu menyatukan lokasi kandidat-kandidat wajah yang berdekatan.

Namun sebelum digunakan sebagai training data set, citra akan melalui tahap-tahap preprocessing berikut:
1. Histogram Equalization, untuk memperbaiki kontras citra.
2. Masking, yaitu menghilangkan bagian sudut sudut citra untuk mengurangi variasi citra sehingga memperkecil dimensi data.
3. Normalisasi, yaitu mengkonversi nilai intensitas grayscale citra sehingga memiliki range antara –1 sampai dengan 1.

Unjuk kerja dari detektor wajah pada umumnya diukur dengan menggunakan dua parameter, yaitu detection rate adalah perbandingan antara jumlah wajah yang berhasil dideteksi dengan jumlah seluruh wajah yang ada, sedangkan false positive rate adalah banyaknya subcitra non-wajah yang dideteksi sebagai wajah.
Tabel 2 menunjukkan bahwa semakin banyak data training nonwajah yang digunakan, semakin kecil angka false positive yang dihasilkan. Hal ini menunjukkan bahwa dengan data yang semakin lengkap, hasil belajar sistem akan semakin baik.
Tabel 3 menunjukkan perbandingan waktu training yang diperlukan antara training yang menggunakan algoritma backpropagation standar dengan training yang menggunakan algoritma Quickprop. Terlihat bahwa untuk jumlah data training yang semakin besar, algoritma Quickprop memberikan peningkatan kecepatan yang signifikan.
Tabel 4 menunjukkan perbandingan antara hasil training yang menggunakan metode active learning untuk memilih contoh data non-wajah, dengan hasil training yang menggunakan data nonwajah yang dipilih secara random. Terlihat bahwa teknik active learning memberikan hasil yang lebih baik. Ini berarti bahwa teknik active learning dapat memilih data yang benar-benar perlu, sehingga dapat meminimalkan jumlah data training yang digunakan.


Kesimpulan

Dari penelitian ini dapat diambil kesimpulan bahwa jaringan syaraf tiruan dengan jenis multi layer perceptron dapat digunakan untuk melakukan deteksi wajah pada citra digital. Pada sistem pendeteksi wajah yang berbasis contoh, kinerja hasil deteksi yang didapatkan sangat tergantung dari kualitas dan kuantitas dari data contoh yang diberikan. Untuk training dengan jumlah data yang besar, algoritma Quickprop memberikan peningkatan kecepatan training yang signifikan. Metode active learning dapat digunakan untuk memilih data contoh yang lebih tepat, sehingga meminimalkan jumlah data training yang digunakan.

referensi: http://www.snpages.info/files/u1/sitia2005/naskah-SITIA2005-rev1b.pdf

0 comments:

Post a Comment