Sistem Pendeteksi Wajah Manusia pada Citra Digital
|
|
|
- Suharto Halim
- 8 tahun lalu
- Tontonan:
Transkripsi
1 Sistem Pendeteksi Wajah Manusia pada Citra Digital Tesis Untuk memenuhi sebagian persyaratan Mencapai derajat Sarjana S-2 Program Studi Ilmu Komputer Jurusan Ilmu-Ilmu Matematika dan Pengetahuan Alam Diajukan oleh: Setyo Nugroho 18661/I-4/1445/02 PROGRAM PASCA SARJANA UNIVERSITAS GADJAH MADA JOGJAKARTA 2004
2
3 PERNYATAAN Dengan ini saya menyatakan bahwa dalam tesis ini tidak terdapat karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu Perguruan Tinggi, dan sepanjang pengetahuan saya tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan di dalam daftar pustaka. Jogjakarta, Maret 2004 SETYO NUGROHO iii
4 iv
5 KATA PENGANTAR Dengan mengucap Alhamdulillahirabbil alamin kami memanjatkan puji syukur ke hadirat Allah swt, atas rahmat, nikmat dan hidayah-nya sehingga kami dapat menyelesaikan penulisan tugas akhir ini. Tugas akhir ini disusun untuk memenuhi sebagian persyaratan mencapai derajat sarjana S-2 dalam bidang Ilmu Komputer di Program Pascasarjana Universitas Gadjah Mada Jogjakarta. Selama penulisan tesis ini kami menyadari banyak pihak telah memberikan bantuannya, sehingga pada kesempatan ini kami ingin mengucapkan terima kasih yang tulus kepada: Drs. Agus Harjoko, M.Sc, Ph.D, selaku pembimbing tesis yang telah memberikan bimbingannya dengan penuh kesabaran. Drs. Retantyo Wardoyo, M.Sc, Ph.D, selaku pengelola program studi Pascasarjana S2 Ilmu Komputer UGM Jogjakarta. Drs. Satria Dharma, selaku Ketua STMIK STIKOM Balikpapan yang telah memberikan kesempatan kepada penulis untuk menempuh studi lanjut dan selalu memberikan semangat kepada penulis untuk terus maju. Dian Farida Anies dan Nadia Fitri Zafira, istri dan anakku tercinta, yang dengan tulus telah memberikan kesempatan, dukungan, doa, pengorbanan, pengertian, kesabaran dan ketabahan yang luar biasa, sehingga penulis dapat menyelesaikan semua ini. Ibu bapak di Wonogiri dan di Surabaya, serta seluruh keluarga yang telah memberikan dukungan dan doanya. v
6 Teman-teman yang telah memberikan banyak bantuan, pelajaran dan pengalaman baru bagi penulis selama tinggal di Jogja: Murinto, Umar, Nusirwan, Eman, Yudhi, Hesti, Pak Nana, Aziz, Sari, Pak Jumhadi, Joko, Tito, Mbak Lia, Bernard, Pak Manik, Bu Umi, Pak Sugeng, Eko, Rika, Eny, Adib, Harry, Robby, Devan, Dody, Jose, Dila, Iche, Leli, Dewi, Desti, Rama, Kevin. Pihak-pihak lain yang tidak bisa kami sebutkan satu-persatu yang telah memberikan bantuannya selama ini. Akhir kata, kami sadar bahwa kami masih memiliki keterbatasan dan kekurangan sehingga karya ini mungkin masih jauh dari sempurna. Untuk itu saran dan kritik yang membangun akan kami terima dengan tangan terbuka. Jogjakarta, Maret 2004 Setyo Nugroho vi
7 DAFTAR ISI Halaman Halaman Judul...i Halaman Pengesahan...ii Pernyataan...iii Halaman Persembahan...iv Kata Pengantar...v Daftar Isi...vii Daftar Gambar...x Daftar Tabel...xi Intisari...xii Abstract...xiii BAB I. Pendahuluan Latar Belakang Perumusan Masalah Batasan Masalah Keaslian Penelitian Manfaat Penelitian Tujuan Penelitian Tinjauan Pustaka Sistematika Penulisan...5 vii
8 BAB II. Landasan Teori Citra Digital Deteksi Wajah Knowledge-Based Method Feature Invariant Approach Template Matching Appearance-Based Method Jaringan Syaraf Tiruan Multi-Layer Perceptron Supervised Learning Algoritma Backpropagation Variasi pada Algoritma Backpropagation Algoritma Quickprop...18 BAB III. Perancangan dan Implementasi Sistem Data dan Peralatan Penelitian Perancangan Sistem Diagram Aliran Data (Data Flow Diagram) Jaringan Syaraf Tiruan Pelatihan Active Learning Detektor Wajah Ekstraksi Subcitra Resizing Histogram Equalization...33 viii
9 Masking Penggabungan (Merging) Kandidat Wajah User Interface Implementasi Sistem Jaringan Syaraf Tiruan Window Scanning Resizing Histogram Equalization Masking Penggabungan (Merging) Kandidat Wajah...45 BAB IV. Hasil dan Pembahasan Pengukuran Evaluasi Unjuk Kerja Hasil Deteksi Kandidat Wajah Hasil Deteksi Pengaruh Jumlah Data Training yang Digunakan Pengaruh Algoritma Quickprop pada Kecepatan Training Pengaruh Metode Active Learning...53 BAB V. Kesimpulan Dan Saran Kesimpulan Saran...56 Daftar Pustaka Lampiran ix
10 DAFTAR GAMBAR Halaman Gambar 3.1. Sistem Deteksi Wajah...22 Gambar 3.2. DFD level 0 Sistem Trainer JST...22 Gambar 3.3. DFD level 1 Sistem Trainer JST...23 Gambar 3.4. DFD level 0 Sistem Detektor Wajah...24 Gambar 3.5. DFD level 1 Sistem Detektor Wajah...25 Gambar 3.6. Arsitektur Jaringan Syaraf Tiruan...27 Gambar 3.7. Metode Pelatihan Active Learning...29 Gambar 3.8. Diagram Alir Bagian Detektor Wajah...31 Gambar 3.9. Contoh Citra dan Histogramnya...42 Gambar Contoh citra yang telah mengalami proses resizing, histogram equalization, dan masking...44 Gambar Beberapa contoh data wajah yang telah mengalami preprocessing...44 Gambar 4.1. Hasil deteksi sebelum dan sesudah proses merging...48 Gambar 4.2. Contoh Hasil Deteksi Wajah...50 Gambar 4.3. Contoh Hasil Deteksi dengan False Positive dan Wajah yang Tidak Terdeteksi...51 x
11 DAFTAR TABEL Halaman Tabel 4.1. Beberapa hasil deteksi pada data uji MIT Tabel 4.2. Pengaruh Jumlah Data Training pada Unjuk Kerja Deteksi Wajah...52 Tabel 4.3. Pengaruh Algoritma Quickprop pada Kecepatan Training...53 Tabel 4.4. Pengaruh Active Learning pada Unjuk Kerja Deteksi Wajah...54 xi
12 INTISARI Pendeteksian wajah (face detection) adalah salah satu tahap awal yang sangat penting dalam sistem pengenalan wajah (face recognition) yang digunakan dalam identifikasi biometrik. Deteksi wajah juga dapat digunakan untuk pencarian atau pengindeksan data wajah dari citra atau video yang berisi wajah dengan berbagai ukuran, posisi, dan latar belakang. Dalam penelitian ini diimplementasikan sistem deteksi wajah yang menggunakan jaringan syaraf tiruan multi-layer perceptron dan algoritma Quickprop. Sistem deteksi wajah memperoleh kemampuan deteksinya dengan cara belajar dari contoh (learning by examples). Pelatihan dilakukan dengan metode active learning untuk meminimalkan banyaknya data yang digunakan untuk pelatihan. Hasil penelitian menunjukkan bahwa akurasi dari sistem deteksi wajah sangat tergantung pada jumlah dan jenis data yang digunakan dalam pelatihan. Algoritma Quickprop dan teknik active learning dapat dimanfaatkan untuk membantu mempercepat proses pelatihan. (Kata kunci: deteksi wajah, jaringan syaraf tiruan, Quickprop, active learning)
13 ABSTRACT Face detection is one of the most important preprocessing step in face recognition systems used in biometric identification. Face detection can also be used in searching and indexing still image or video containing faces in various size, position, and background. This paper describes a face detection system using multi-layer perceptron and Quickprop algorithm. The system achieves its ability by means of learning by examples. The training is performed using active learning method to minimize the amount of data used in training. Experimental results show that the accuracy of the system strongly depends on the quality and quantity of the data used in training. Quickprop algorithm and active learning method can improve the training speed significantly. (Keywords: face detection, neural networks, quickprop, active learning)
14 1 BAB I PENDAHULUAN 1.1. Latar Belakang Masalah Teknologi pengenalan wajah semakin banyak dimanfaatkan, antara lain untuk sistem pengenalan biometrik (di samping fitur biometrik yang lain seperti sidik jari dan suara), sistem pencarian dan pengindeksan database citra digital dan database video digital, sistem keamanan kontrol akses area terbatas, konferensi video, dan interaksi manusia dengan komputer. Pendeteksian wajah (face detection) adalah salah satu tahap awal yang sangat penting sebelum dilakukan proses pengenalan wajah (face recognition). Pada kasus seperti pemotretan untuk pembuatan KTP, SIM, dan kartu kredit, citra yang didapatkan umumnya hanya berisi satu wajah dan memiliki latar belakang seragam dan kondisi pencahayaan yang telah diatur sebelumnya sehingga deteksi wajah dapat dilakukan dengan lebih mudah. Namun pada kasus lain sering didapatkan citra yang berisi lebih dari satu wajah, memiliki latar belakang yang bervariasi, kondisi pencahayaan yang tidak tentu, dan ukuran wajah yang bervariasi di dalam citra. Contohnya adalah citra yang diperoleh di bandara, terminal, pintu masuk gedung, pusat perbelanjaan, dan citra yang didapatkan dari foto di media massa atau hasil rekaman video.
15 Perumusan Masalah Masalah deteksi wajah dapat dirumuskan sebagai berikut: diberikan masukan sebuah citra digital sembarang, maka sistem akan mendeteksi apakah ada wajah manusia di dalam citra tersebut. Jika ada maka sistem akan memberitahu berapa wajah yang ditemukan dan lokasi wajah-wajah tersebut di dalam citra. Keluaran dari sistem adalah posisi subcitra berisi wajah yang berhasil dideteksi Batasan Masalah Untuk menjaga fokus dari penelitian ini, maka beberapa batasan yang diberikan adalah sebagai berikut : Wajah yang akan dideteksi adalah wajah yang menghadap ke depan (frontal), dalam posisi tegak, dan tidak terhalangi sebagian oleh objek lain. Metode yang dipakai adalah jaringan syaraf tiruan multi-layer perceptron dengan algoritma pelatihan Quickprop. Citra yang dideteksi menggunakan format BMP atau JPG Keaslian Penelitian Penelitian tentang deteksi wajah dan pengenalan wajah telah dilakukan sebelumnya, antara lain dengan menggunakan metode Eigenface [Turk dan Pentland, 1991], dengan distribusi Gaussian dan clustering [Sung dan Poggio, 1994], dengan jaringan syaraf tiruan dan arbitrasi [Rowley et al., 1998], dengan
16 3 support vector machine [Osuna et al., 1997], dan dengan metode statistik dan wavelet [Schneiderman, 2000]. Pada penelitian [Rowley et al., 1998] digunakan jaringan syaraf tiruan yang dilatih dengan menggunakan algoritma backpropagation standar dengan momentum. Sedangkan pada tesis ini akan dibuat sistem pendeteksi wajah yang menggunakan jaringan syaraf tiruan dan dilatih dengan menggunakan algoritma Quickprop. Algoritma Quickprop ini pertama kali diperkenalkan pada [Fahlman, 1988] dengan tujuan untuk mempercepat proses training pada jaringan syaraf tiruan. Kemudian akan dilakukan penelitian pada pengaruh berbagai parameter yang digunakan terhadap unjuk kerja dari sistem. Parameter-parameter yang digunakan misalnya banyaknya data training, penggunaan algoritma Quickprop pada kecepatan training, dan penggunaan metode active learning pada hasil pelatihan Manfaat Penelitian Manfaat dari penelitian ini adalah : Dapat digunakan untuk mendeteksi wajah manusia pada citra digital. Dapat dimanfaatkan sebagai salah satu tahap praproses dari sistem pengenalan wajah atau verifikasi wajah. Dapat digunakan untuk mengumpulkan data wajah secara otomatis dari citra yang berisi wajah dengan berbagai ukuran, posisi, dan latar belakang.
17 Tujuan Penelitian Tujuan dari penelitian ini adalah untuk membuat sistem deteksi wajah dengan masukan berupa citra digital sembarang. Sistem ini akan menghasilkan subcitra berisi wajah-wajah yang berhasil dideteksi Tinjauan Pustaka Deteksi wajah dapat dipandang sebagai masalah klasifikasi pola dimana dengan input berupa citra masukan akan ditentukan output berupa label kelas dari citra tersebut. Dalam hal ini terdapat dua label kelas, yaitu wajah dan non-wajah [Sung, 1996]. Teknik-teknik pengenalan wajah yang dilakukan selama ini banyak yang menggunakan asumsi bahwa data wajah yang tersedia memiliki ukuran yang sama dan latar belakang yang seragam. Di dunia nyata, asumsi ini tidak selalu berlaku karena wajah dapat muncul di dalam citra dengan berbagai ukuran, berbagai posisi, dan latar belakang yang bervariasi [Hjelmas, Low, 2001]. Pendeteksian wajah (face detection) adalah salah satu tahap awal (preprocessing) yang sangat penting sebelum dilakukan proses pengenalan wajah (face recognition). Bidang-bidang penelitian yang juga berkaitan dengan pemrosesan wajah (face processing) adalah autentikasi wajah (face authentication), lokalisasi wajah (face localization), penjejakan wajah (face tracking), dan pengenalan ekspresi wajah (facial expression recognition) [Yang, 2002].
18 Sistematika Penulisan Sistematika penulisan terdiri dari : BAB I. Pendahuluan Bab ini menguraikan tentang latar belakang, perumusan masalah, batasan masalah, keaslian penelitian, manfaat penelitian, tujuan penelitian, tinjauan pustaka, dan sistematika penulisan. BAB II. Landasan Teori Bab ini membahas dasar-dasar teori dari citra digital, deteksi wajah, jaringan syaraf tiruan, algoritma backpropagation, algoritma Quickprop, dan metode pelatihan active learning. BAB III. Perancangan dan Implementasi Sistem Bab ini membahas tentang data dan peralatan penelitian, perancangan dan implementasi sistem deteksi wajah. BAB IV. Hasil dan Pembahasan Bab ini membahas tentang hasil pengujian dan pembahasan dari sistem deteksi wajah. BAB V. Kesimpulan dan Saran Bab ini menguraikan kesimpulan dari penelitian dan saran-saran.
19 6 BAB II LANDASAN TEORI 2.1. Citra Digital Citra digital adalah suatu citra f(x,y) yang memiliki koordinat spatial, dan tingkat kecerahan yang diskrit. Citra yang terlihat merupakan cahaya yang direfleksikan dari sebuah objek. Fungsi ( x y) f, dapat dilihat sebagai fungsi dengan dua unsur. Unsur yang pertama merupakan kekuatan sumber cahaya yang melingkupi pandangan kita terhadap objek (illumination). Unsur yang kedua merupakan besarnya cahaya yang direfleksikan oleh objek ke dalam pandangan kita (reflectance components). Keduanya dituliskan sebagai fungsi ( x y) ( x y) i, dan r, yang digabungkan sebagai perkalian fungsi untuk membentuk fungsi f ( x, y). Fungsi ( x y) f, dapat dituliskan dengan persamaan : ( x, y) i( x, y) r( x y) f =, (2.1) di mana ( x, y) < dan 0 < r( x, ) 1 0 < i y < Citra digital merupakan suatu matriks yang terdiri dari baris dan kolom, dimana setiap pasangan indeks baris dan kolom menyatakan suatu titik pada citra. Nilai matriksnya menyatakan nilai kecerahan titik tersebut. Titik-titik tersebut dinamakan sebagai elemen citra, atau pixel (picture elemen). [Gonzales and Woods, 1992].
20 7 Histogram equalization Histogram equalization digunakan untuk melakukan perluasan kontras citra (contrast strecthing) secara otomatis. Setelah melalui histogram equalization, citra akan memiliki histogram yang lebih seragam [Gonzalez, 1992]. Misalkan r adalah nilai graylevel pixel citra yang akan diproses, dan p r (r k ) adalah probabilitas munculnya level grayscale r k di dalam citra. nk pr ( rk ) = 0 rk 1 dan k = 0,1,..., L 1 (2.2) n di mana L adalah banyaknya level grayscale, n k adalah banyaknya pixel dengan level grayscale r k muncul di dalam citra, dan n adalah banyaknya seluruh pixel di dalam citra. k n k j n j sk = T ( rk ) = = 0 rk 1dan k = 0,1,..., L 1 (2.3) n n j= 0 j= Deteksi Wajah Deteksi wajah dapat dipandang sebagai masalah klasifikasi pola dimana inputnya adalah citra masukan dan akan ditentukan output yang berupa label kelas dari citra tersebut. Dalam hal ini terdapat dua label kelas, yaitu wajah dan nonwajah [Sung, 1996]. Teknik-teknik pengenalan wajah yang dilakukan selama ini banyak yang menggunakan asumsi bahwa data wajah yang tersedia memiliki ukuran yang sama dan latar belakang yang seragam. Di dunia nyata, asumsi ini tidak selalu berlaku karena wajah dapat muncul dengan berbagai ukuran dan posisi di dalam citra dan dengan latar belakang yang bervariasi [Hjelmas, Low, 2001].
21 8 Pendeteksian wajah (face detection) adalah salah satu tahap awal yang sangat penting sebelum dilakukan proses pengenalan wajah (face recognition). Bidang-bidang penelitian yang berkaitan dengan pemrosesan wajah (face processing) adalah [Yang, 2002]: Pengenalan wajah (face recognition) yaitu membandingkan citra wajah masukan dengan suatu database wajah dan menemukan wajah yang paling cocok dengan citra masukan tersebut. Autentikasi wajah (face authentication) yaitu menguji keaslian/kesamaan suatu wajah dengan data wajah yang telah diinputkan sebelumnya. Lokalisasi wajah (face localization) yaitu pendeteksian wajah namun dengan asumsi hanya ada satu wajah di dalam citra Penjejakan wajah (face tracking) yaitu memperkirakan lokasi suatu wajah di dalam video secara real time. Pengenalan ekspresi wajah (facial expression recognition) untuk mengenali kondisi emosi manusia. Tantangan yang dihadapi pada masalah deteksi wajah disebabkan oleh adanya faktor-faktor berikut [Yang, 2002]: Posisi wajah. Posisi wajah di dalam citra dapat bervariasi karena posisinya bisa tegak, miring, menoleh, atau dilihat dari samping. Komponen-komponen pada wajah yang bisa ada atau tidak ada, misalnya kumis, jenggot, dan kacamata. Ekspresi wajah. Penampilan wajah sangat dipengaruhi oleh ekspresi wajah seseorang, misalnya tersenyum, tertawa, sedih, berbicara, dan sebagainya.
22 9 Terhalang objek lain. Citra wajah dapat terhalangi sebagian oleh objek atau wajah lain, misalnya pada citra berisi sekelompok orang. Kondisi pengambilan citra. Citra yang diperoleh sangat dipengaruhi oleh faktor-faktor seperti intensitas cahaya ruangan, arah sumber cahaya, dan karakteristik sensor dan lensa kamera. Penelitian dari [Yang, 2002] mengelompokkan metode deteksi wajah menjadi empat kategori, yaitu: 1. Knowledge-based method. Metode ini kebanyakan digunakan untuk lokalisasi wajah. 2. Feature invariant approach. Metode ini kebanyakan digunakan untuk lokalisasi wajah. 3. Template matching method. Metode ini digunakan untuk lokalisasi wajah maupun deteksi wajah. 4. Appearance-based method. Metode ini kebanyakan digunakan untuk deteksi wajah Knowledge-Based Method Metode ini menggunakan dasar aturan-aturan yang biasanya digunakan oleh manusia untuk menentukan apa saja yang membentuk suatu wajah. Pada pendekatan ini, metode deteksi wajah dikembangkan berdasar pada aturan (rule) yang didapat dari pengetahuan para peneliti tentang wajah manusia. Sebagai contoh, suatu wajah di dalam citra biasanya memiliki dua buah mata yang simetris, sebuah hidung, dan sebuah mulut. Relasi antara fitur-fitur
23 10 tersebut dapat direpresentasikan sebagai jarak atau posisi. Pada tahap pertama fitur-fitur wajah diekstraksi lebih dulu, kemudian kandidat wajah ditentukan berdasarkan aturan yang dipakai. Masalah utama pada pendekatan ini adalah kesulitan dalam menerjemahkan pengetahuan manusia ke dalam aturan yang akan dipakai. Jika aturannya terlalu detail (strict), maka akan sering gagal mendeteksi wajah yang tidak memenuhi aturan tersebut. Jika aturannya terlalu umum (general), akan menghasilkan terlalu banyak false positive. Masalahnya akan bertambah sulit jika harus mendeteksi wajah dengan pose yang bervariasi karena aturan yang dipakai harus dapat menghadapi semua kemungkinan yang ada. Metode ini biasanya hanya dapat bekerja dengan baik pada wajah frontal dan tegak dengan latar belakang sederhana Feature Invariant Approach Algoritma pada metode ini bertujuan untuk menemukan fitur-fitur struktural dari wajah yang tetap eksis meskipun terdapat variasi pose, sudut pandang, dan kondisi cahaya. Pada pendekatan ini, para peneliti mencoba menemukan fitur-fitur yang tidak berubah (invariant) pada wajah. Asumsi ini didasarkan pada observasi bahwa manusia dapat dengan mudah mendeteksi wajah dengan berbagai pose dan kondisi cahaya, sehingga disimpulkan bahwa pasti ada sifat-sifat atau fitur-fitur yang bersifat invariant. Fitur wajah seperti alis, mata, hidung, mulut, biasanya diekstraksi dengan edge detector. Selanjutnya dibentuk
24 11 suatu model statistik yang mendeskripsikan hubungan antara fitur-fitur tersebut untuk menentukan ada tidaknya wajah. Warna kulit manusia juga dapat digunakan untuk membantu memperkirakan area wajah. Namun biasanya deteksi warna kulit ini dikombinasikan dengan metode lainnya seperti shape analysis dan motion information [Yang, 1998] Template Matching Pada metode ini akan disimpan beberapa pola wajah standar untuk mendeskripsikan wajah secara keseluruhan maupun bagian-bagiannya. Pada saat pendeteksian akan dihitung korelasi antara citra input dengan citra pola wajah yang tersimpan sebelumnya. Pada pendekatan ini, para peneliti mencoba menemukan fitur-fitur yang tidak berubah (invariant) pada wajah. Asumsi ini didasarkan pada observasi bahwa manusia dapat dengan mudah mendeteksi wajah dengan berbagai pose dan kondisi cahaya, sehingga tentunya ada sifat-sifat atau fitur-fitur yang bersifat invariant. Fitur wajah seperti alis, mata, hidung, mulut, biasanya diekstraksi dengan edge detector. Selanjutnya dibentuk suatu model statistik yang mendeskripsikan hubungan antara fitur-fitur tersebut untuk menentukan ada tidaknya wajah.
25 Appearance-Based Method Pada metode ini, model wajah dipelajari melalui proses training dengan menggunakan satu set data pelatihan yang berisi contoh-contoh wajah. Kemudian hasil training ini digunakan untuk mendeteksi wajah. Secara umum metode ini menggunakan teknik-teknik dari analisa statistik dan machine learning untuk menemukan karakteristik-karakteristik yang relevan dari wajah maupun nonwajah. Yang termasuk dalam kelompok ini antara lain adalah metode Eigenfaces [Kirby, Sirovich, 1990], distribution-based dan clustering [Sung, Poggio, 1994], jaringan syaraf tiruan [Rowley, 1998], support vector machines (SVM) [Osuna, 1997], Sparse Network of Winnows (SNoW) [Yang, 2000], Naive Bayes Classifier [Schneiderman, 1998], Hidden Markov Model (HMM) [Nefian, 1998], Kullback relative information [Colmenarez, 1997], dan decision trees [Huang, 1996] Jaringan Syaraf Tiruan Jaringan syaraf tiruan adalah suatu sistem 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: 1. Pemrosesan terjadi pada elemen-elemen sederhana yang disebut neuron. 2. Sinyal dilewatkan antar neuron melalui penghubung. 3. Setiap penghubung memiliki bobot yang akan mengalikan sinyal yang lewat.
26 13 4. 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 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 s i terhadap input eksitasi yang juga disebut net input net i. net = s w θ (2.4) i j j pred (i) ij i dimana pred(i) melambangkan himpunan predesesor dari unit i, w ij melambangkan bobot koneksi dari unit j ke unit i, dan θ i 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.
27 14 Aktivasi dari unit i, yaitu s i, dihitung dengan memasukkan net input ke dalam sebuah fungsi aktivasi non-linear. Biasanya digunakan fungsi logistik sigmoid: s i = f ( ) 1 log neti = (2.5) net i 1+ e Salah satu keuntungan dari fungsi ini adalah memiliki derivatif yang mudah dihitung: s i net i = f log ( net ) = s i i * (1 s ) i (2.6) Nilai dari fungsi sigmoid di atas memiliki nilai output antara 0 dan 1. Jika diinginkan nilai output antara 1 dan 1, dapat digunakan fungsi bipolar sigmoid berikut [Fausett, 1994]: 2 s i = g log ( neti ) = 1 (2.7) neti 1+ e Derivatif dari fungsi tersebut adalah: s i net i g log 1 ( neti ) = (1 + si ) *(1 si ) 2 (2.8) 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).
28 15 Setiap pasangan pola p terdiri dari vektor input x p dan vektor target t p. Setelah selesai pelatihan, jika diberikan masukan x p seharusnya jaringan menghasilkan nilai output t p. Besarnya perbedaan antara nilai vektor target dengan output aktual diukur dengan nilai error yang disebut juga dengan cost function: E = 1 2 p P n p ( t n s p n ) 2 (2.9) di mana n adalah banyaknya unit pada output layer. Tujuan dari training ini pada dasarnya sama dengan mencari suatu nilai minimum global dari E 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: 1. Input nilai data pelatihan sehingga diperoleh nilai output 2. Propagasi balik dari nilai error yang diperoleh 3. 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.
29 16 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: E w ij E = s i s i w ij (2.10) dan s i w ij si = net i net w ij i = f log ( net ) s i j (2.11) dimana dan w ij adalah bobot penghubung dari neuron j ke neuron i, s i adalah output, net i adalah jumlah hasilkali pada input dari neuron i. Untuk menghitung E si, yaitu pengaruh output s i terhadap error E, dapat dibedakan menjadi dua kasus berikut: jika i adalah unit output, maka: E s i = 1 ( ti 2 s ) s i i 2 = ( t i s ) i (2.12) jika i bukan unit output, maka perhitungan E si menjadi sedikit lebih kompleks. Di sini digunakan lagi aturan rantai: E s i = k succ(i) E s k s k s i = k succ(i) E s k s k net k net s i k = k succ( i) E s k f log ( netk ) w ki (2.13)
30 17 di mana succ(i) melambangkan semua unit k yang ada di dalam layer berikutnya ke arah output layer. Persamaan (2.11) memiliki asumsi bahwa nilai E sk untuk unit di layer berikutnya yang terhubung dengan unit i telah diketahui nilainya. Untuk itu perhitungan dilakukan mulai dari output layer, kemudian baru menghitung derivatif unit-unit di layer sebelumnya dengan menggunakan persamaan (2.11). Dengan kata lain, informasi error dipropagasikan secara berurutan bermula dari output layer dan berakhir pada input layer, sehingga algoritma ini diberi nama backpropagation [Riedmiller, 1994]. Setelah didapatkan derivatif parsial dari setiap bobot penghubung, maka untuk meminimisasi fungsi error dilakukan metode gradient descent: dan w ( t + 1) = w ( t) + w ( t) (2.14) ij ij ij E wij ( t) = ε ( t) (2.15) w ij Pilihan nilai learning rate ε akan sangat berpengaruh pada proses training. Jika ε terlalu kecil, training akan memerlukan iterasi yang banyak sehingga lama untuk mencapai konvergen. Jika ε terlalu besar, bisa timbul osilasi sehingga tidak akan mencapai nilai error yang diharapkan Variasi pada Algoritma Backpropagation Salah satu metode paling awal yang diusulkan untuk mengatasi masalah lamanya waktu training adalah dengan menambahkan term momentum:
31 18 w E ( t) = ε ( t) + wij ( t 1) (2.16) w ij µ ij di mana parameter momentum µ akan menentukan besarnya pengaruh perubahan bobot pada iterasi sebelumnya. Cara ini dapat bekerja dengan baik pada kasus tertentu, namun tidak bersifat umum. Kadang-kadang malah diperoleh hasil yang lebih baik tanpa menggunakan momentum sama sekali [Riedmiller, 1994]. Ada beberapa algoritma yang telah diusulkan untuk mempercepat proses training pada jaringan multi-layer perceptron. Di antaranya adalah algoritma Quickprop [Fahlman, 1988], resilient propagation (RPROP) [Riedmiller, 1993], dan Scaled Conjugate Gradient (SCG) [Moller, 1990] 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 masingmasing bobot. Perubahan bobot pada algoritma Quickprop dirumuskan sebagai berikut: E ( t) E w( t) = ε ( t) + w * w( t 1) (2.17) w E E ( t 1) ( t) w w di mana:
32 19 w(t) : perubahan bobot w ( t 1) : perubahan bobot pada epoch sebelumnya ε : adalah learning rate E (t) w : derivatif error E ( t 1) w : derivatif error pada epoch sebelumnya 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.
33 20 BAB III PERANCANGAN DAN IMPLEMENTASI SISTEM 3.1. Data dan Peralatan Penelitian Data yang digunakan dalam penelitian ini terdiri dari sekumpulan citra untuk pelatihan (training data set) dan sekumpulan citra untuk pengujian (testing data set). Citra untuk pelatihan maupun untuk pengujian diperoleh dari berbagai sumber seperti foto, majalah, koran, televisi, dan internet. Citra yang akan digunakan untuk pengujian tidak akan digunakan dalam pelatihan. Citra yang digunakan memiliki 256 level keabuan (grayscale). Data citra untuk pelatihan dan pengujian yang diperoleh dari internet antara lain berasal dari: - The ORL Database of Faces, AT&T Laboratories Cambridge (URL: - Test Images for the Face Detection Task dari MIT dan CMU (URL: - CBCL Face Database #1, MIT Center For Biological and Computation Learning (URL: - UMIST Face Database [Graham, Allinson, 1998] (URL: Jumlah citra data wajah yang digunakan sebanyak 1000 citra wajah berukuran 20x20 pixel. Proses pemotongan (cropping) bagian wajah dari citra dilakukan secara manual. Kemudian dilakukan preprocessing yang berupa
34 21 resizing, histogram equalization, dan masking. Dari 1000 citra wajah tersebut juga dibuat 2000 citra tambahan dengan cara melakukan proses pencerminan dan rotasi dari 5 sampai 10 derajat terhadap citra asal secara random, sehingga secara keseluruhan diperoleh 3000 citra wajah. Citra non-wajah diambil dari 96 file citra yang tidak terdapat wajah di dalamnya. Contoh citra non-wajah adalah gambar pemandangan dalam dan luar ruangan, pepohonan, bunga, batuan, bangunan, dan lain-lain. Jika diambil seluruhnya, akan didapatkan lebih dari 36 juta subcitra berukuran 20x20 pixel. Tidak semua subcitra non-wajah tersebut akan diambil untuk pelatihan, namun dipilih secara otomatis dengan teknik active learning sebagaimana akan dijelaskan kemudian. Peralatan yang digunakan dalam penelitian ini adalah seperangkat komputer dengan prosesor Intel Celeron 667 MHz, memori 256 MB SDRAM, harddisk 20 GB, dan scanner. Implementasi perangkat lunaknya ditulis dengan menggunakan bahasa program C++ dengan compiler Borland C++ Builder Perancangan Sistem Secara garis besar sistem deteksi wajah yang dibangun di sini dibagi menjadi dua bagian utama, yaitu: - Trainer JST (Jaringan Syaraf Tiruan), digunakan untuk pelatihan yang akan menghasilkan nilai bobot-bobot penghubung jaringan syaraf tiruan. - Detektor wajah, digunakan untuk mendeteksi wajah di dalam citra setelah pelatihan selesai dilakukan.
35 22 Gambar berikut menunjukkan perancangan sistem deteksi wajah secara garis besar. Training Data Set Trainer JST Testing Data Set Bobot JST Hasil Training Citra Masukan Detektor Wajah Hasil Deteksi Gambar 3.1. Sistem Deteksi Wajah Diagram Aliran Data (Data Flow Diagram) Diagram aliran data (DFD) dari sistem deteksi wajah terdiri dari 2 bagian utama, yaitu: Sistem Trainer JST dan Sistem Detektor Wajah. Gambar 3.2 menunjukkan DFD level 0 dari Sistem Trainer JST. User Training Data Set Sistem Trainer JST Tampilan Proses Training User Gambar 3.2. DFD level 0 Sistem Trainer JST
36 23 Sistem Trainer JST dijabarkan lebih lanjut dengan DFD level 1 yang ditunjukkan pada gambar 3.3. Training data set terdiri dari contoh wajah maupun non-wajah berukuran 20x20 pixel. Training data set akan mengalami preprocessing berupa histogram equalization, masking, dan normalisasi. Hasil dari preprocessing ini dijadikan sebagai input untuk proses training yang menggunakan jaringan syaraf tiruan. Setelah proses training selesai, akan dihasilkan nilai bobot jaringan syaraf tiruan yang disimpan di dalam suatu struktur data. Selanjutnya nilai bobot ini akan disimpan ke dalam file yang dikehendaki oleh user. File ini nantinya akan digunakan di dalam proses deteksi wajah. User 3. Normalisasi Contoh wajah Contoh non-wajah Citra telah di-masking 1. Histogram Equalization 2. Masking Citra telah diproses hist. equalization User 4. Training Citra telah di-normalisasi Tampilan Proses Training Nilai Bobot JST Bobot JST Gambar 3.3. DFD level 1 Sistem Trainer JST
37 24 Gambar 3.4 menunjukkan DFD level 0 dari Sistem Detektor Wajah. Sedangkan penjabaran lebih lanjut dari Sistem Detektor Wajah yang berupa DFD level 1 ditunjukkan pada gambar 3.5. User Citra Masukan Pilihan Bobot JST Sistem Detektor Wajah Lokasi Wajah User Gambar 3.4. DFD level 0 Sistem Detektor Wajah User memberikan masukan kepada sistem detektor wajah berupa citra masukan yang akan dideteksi dan file bobot JST yang diperoleh dari hasil training. Citra masukan ini akan dibaca dan dikonversi menjadi array. Selanjutnya pada citra tersebut dilakukan pencarian kandidat wajah. Pencarian kandidat wajah dilakukan dengan ekstraksi subcitra menggunakan window berukuran 20x20. Window ini digeser ke seluruh daerah citra, mulai dari sudut kiri atas sampai sudut kanan bawah, dengan tujuan agar dapat mendeteksi wajah di semua posisi di dalam citra. Pada proses ekstraksi subcitra ini citra juga akan diperkecil secara berulang dengan perbandingan 1:1.2 dengan tujuan agar dapat mendeteksi wajah dengan semua ukuran di dalam citra. Selanjutnya subcitra 20x20 pixel tersebut akan mengalami preprocessing berupa histogram equalization, masking, dan normalisasi yang sama seperti pada
38 25 saat training. Hasil preprocessing ini dijadikan sebagai input untuk pengklasifikasi JST. Pengklasifikasi JST ini akan menghasilkan kandidat-kandidat wajah. User Citra Masukan 2. Baca citra Pilihan Bobot JST Bobot JST Array Pixel Citra Nilai Bobot JST 1. Pilih Bobot JST User Lokasi Wajah Bobot JST Terpilih 4. Merging 3. Cari kandidat wajah Kandidat Wajah Gambar 3.5. DFD level 1 Sistem Detektor Wajah
39 26 Selanjutnya kandidat-kandidat wajah ini akan mengalami proses merging untuk mendapatkan hasil akhir berupa lokasi dan ukuran wajah yang terdeteksi. Hasil akhir deteksi ini akan ditampilkan kepada user, dan dapat disimpan ke dalam file jika diinginkan oleh user Jaringan Syaraf Tiruan Jaringan syaraf yang digunakan pada sistem ini menggunakan jenis multilayer perceptron. Arsitektur yang digunakan diadaptasi dari hasil penelitian [Rowley, 1998] dengan sedikit modifikasi. Susunan unit dari jaringan ini ditunjukkan pada gambar 3.6. 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. Cara ini disarankan oleh [LeCun, 1998] yang menunjukkan bahwa konvergensi umumnya akan lebih cepat tercapai jika nilai rata-rata dari input data training mendekati nol. 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. Agar nilai output dari JST memiliki range antara 1 sampai dengan 1, digunakan fungsi aktivasi sigmoid bipolar: s i 2 ( neti ) = 1+ e = g log neti 1 Lapisan tersembunyi (hidden layer) terdiri dari total 25+16=41 unit. Bagian pertama terhubung dengan lapisan input yang membentuk 25 area
40 27 berukuran 4x4 pixel. Bagian kedua terhubung dengan lapisan input yang membentuk 16 area berukuran 5x5 pixel. Susunan koneksi seperti ini dipilih dengan tujuan agar unit-unit tersembunyi dapat mendeteksi fitur-fitur lokal dari wajah yang berperan dalam membedakan antara citra wajah dengan non-wajah. Susunan semacam ini juga umum digunakan pada kasus pengenalan suara dan karakter [Rowley, 1998]. Secara keseluruhan jaringan ini memiliki 883 bobot penghubung, sudah termasuk bias. Pada sistem [Rowley, 1998] yang lebih kompleks, jumlah bobot penghubungnya mencapai Dengan jumlah bobot yang semakin besar diperlukan data pelatihan yang lebih banyak, waktu training yang lebih lama, dan waktu deteksi yang lebih lama. Input Layer Hidden Layer grid 5x5 pixel Output input 20x20 pixel grid 4x4 pixel Gambar 3.6. Arsitektur Jaringan Syaraf Tiruan
41 28 Untuk meningkatkan kecepatan proses pelatihan digunakan algoritma Quickprop. Algoritma Quickprop ini pertama kali diperkenalkan pada [Fahlman, 1988] sebagai salah satu alternatif dari algoritma backpropagation untuk melakukan pelatihan pada multi-layer perceptron. Hasil akhir training yang berupa nilai bobot-bobot penghubung akan disimpan ke suatu file. File ini nantinya akan digunakan oleh detektor wajah untuk melakukan tugasnya Pelatihan Active Learning Pada saat pelatihan, relatif mudah untuk memilih contoh citra wajah yang akan digunakan. Namun untuk memilih contoh citra non-wajah adalah lebih sulit, karena jenis objek non-wajah di dunia ini jauh lebih banyak daripada objek wajah. Karena itu pelatihan dilakukan dengan menggunakan teknik yang disebut dengan active learning yang juga digunakan pada [Sung, 1996]. Cara ini disebut juga dengan bootstrapping pada [Rowley, 1998]. Pada teknik active learning ini training dilakukan secara bertahap. 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.
42 29 Koleksi Contoh Data Wajah Data Training Data Awal Non-Wajah Trainer JST Data Tambahan Non-Wajah Pilih random Bobot JST Hasil Training Koleksi Contoh Data Non-Wajah Detektor Wajah Hasil Deteksi (False Positive) Gambar 3.7. Metode Pelatihan Active Learning Dengan cara ini, data tambahan yang terpilih untuk training hanya data yang belum berhasil diklasifikasi dengan benar oleh jaringan syaraf tiruan. Data yang sudah dapat diklasifikasi dengan baik oleh jaringan syaraf tiruan tidak perlu ditambahkan sebagai data training. 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 lebih singkat.
43 30 Pada tahap pertama, bobot awal yang digunakan untuk jaringan syaraf tiruan dipilih secara random. Pada tahap berikutnya, bobot awal yang digunakan adalah bobot yang dihasilkan pada tahap sebelumnya Detektor Wajah Bagian detektor wajah ini menggunakan arsitektur jaringan syaraf yang sama dengan yang digunakan untuk training. Bobot penghubung yang digunakan diambil dari bobot terakhir yang dihasilkan pada proses training dengan menggunakan teknik active learning. 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 3.8 menunjukkan diagram alir bagian detektor wajah.
44 31 Start Pilih Bobot JST, Baca Citra Baca Window Pertama Histogram Equalization Perkecil citra Masking Normalisasi Geser window Pengklasifikasi JST Simpan Kandidat Wajah Ya Ditemukan Wajah? Tidak Window Terakhir? Tidak Ya Ukuran citra > 20x20 pixel? Ya Tidak Merging Kandidat Wajah Tampilkan Lokasi Wajah End Gambar 3.8. Diagram Alir Bagian Detektor Wajah
45 Ekstraksi Subcitra Pada citra yang akan dideteksi, posisi wajah bisa berada di mana saja. Pengklasifikasi jaringan syaraf tiruan pada detektor wajah memerlukan input citra 20x20 pixel. Karena itu digunakan window 20x20 pixel yang digeser melalui seluruh daerah citra. Detektor akan memeriksa satu persatu subcitra yang dilalui oleh window tersebut. Pada citra yang dideteksi, wajah bisa memiliki ukuran yang bervariasi. Karena itu citra akan 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. Dengan demikian detektor dapat mendeteksi wajah dengan berbagai ukuran. Cara ini juga dilakukan pada [Sung, 1996] dan [Rowley, 1998] Resizing Proses resizing digunakan baik pada citra data pelatihan maupun pada citra yang akan dideteksi. Pada citra data pelatihan, citra wajah yang diperoleh dari berbagai sumber memiliki ukuran yang beragam, karena itu harus diseragamkan sehingga memiliki ukuran 20x20 pixel. Proses resizing atau resampling dilakukan dengan menggunakan metode bilinear interpolation [Press, 1992]. Di sini citra digital dengan dimensi m x n pixel dapat dianggap sebagai matriks dua dimensi. Matriks tersebut memiliki nilai ya[1..m][1..n] yang isinya adalah level grayscale dari pixel-pixel di dalam citra. Informasi lokasi dari pixel-
46 33 pixel tersebut disimpan dalam array x1a[1..m] dan x2a[1..n]. Relasi antara nilainilai tersebut dapat dituliskan sebagai: ya[j][k] = y(x1a[j], x2a[k]) Dengan interpolasi, akan diestimasi nilai fungsi y(x1, x2) pada suatu lokasi (x1,x2) di mana x1 dan x2 bukan nilai integer di antara 1..m dan 1..n. Formula untuk melakukan bilinear interpolasi adalah: t = (x1 x1a[j]) / (x1a[j+1] x1a[j]) u = (x2 x2a[k]) / (x2a[k+1] x2a[k]) dan y(x1, x2) = (1 t)(1 u)y 1 + t(1 u)y 2 + tuy 3 + (1 t)uy 4 di mana y 1 = ya[j][k] y 2 = ya[j+1][k] y 3 = ya[j+1][k+1] y 4 = ya[j][k+1] yaitu titik-titik yang berada di sekeliling titik yang akan diinterpolasi Histogram Equalization Histogram equalization digunakan untuk melakukan perluasan kontras citra (contrast strecthing) secara otomatis. Setelah melalui histogram equalization, citra akan memiliki histogram yang mendekati sama [Gonzalez, 1992].
47 34 Misalkan r adalah nilai graylevel pixel citra yang akan diproses, dan p r (r k ) adalah probabilitas munculnya level grayscale r k di dalam citra. nk pr ( rk ) = 0 rk 1 dan k = 0,1,..., L 1 n di mana L adalah banyaknya level grayscale, nk adalah banyaknya pixel dengan level grayscale rk muncul di dalam citra, dan n adalah banyaknya seluruh pixel di dalam citra. s k k n k j n j = T ( rk ) = = n n j= 0 j= 0 0 r k 1 dan k = 0,1,..., L Masking Proses masking dilakukan untuk menutup bagian sudut-sudut citra sehingga mengurangi kemungkinan variasi data yang muncul pada bagian-bagian tersebut. Dengan demikian dimensi dari data juga akan menjadi lebih kecil. Proses ini juga dilakukan pada penelitian [Sung, 1996] dan [Rowley, 1998] Penggabungan (Merging) Kandidat Wajah Pada saat mendeteksi wajah di suatu citra, seringkali pengklasifikasi JST mendeteksi wajah di beberapa lokasi yang bersinggungan untuk sebuah wajah yang sama. Untuk itu dilakukan penggabungan (merging) pada hasil deteksi yang bersinggungan tersebut dengan mengambil nilai rata-rata dari posisi dan ukuran window dimana wajah tersebut dideteksi. Proses penggabungan ini juga dilakukan pada penelitian [Rowley, 1998].
48 User Interface Dari sudut pandang pemakai, masukan dari detektor wajah adalah file citra dengan format BMP atau JPG. File citra tersebut dapat dipilih melalui suatu kotak dialog di mana pemakai dapat memilih drive dan folder yang diinginkan. Output dari hasil deteksi adalah lokasi-lokasi wajah yang berhasil dideteksi. Area di mana wajah terdeteksi juga akan ditandai dengan kotak. Lokasilokasi wajah yang terdeteksi dapat disimpan ke suatu file, sehingga di lain waktu dapat dilihat kembali tanpa harus mengulangi proses deteksi. Pemakai dapat memilih set nilai bobot penghubung yang diinginkan. Jika trainer JST menjalani training lebih lanjut dengan tambahan data training baru, maka akan dihasilkan nilai bobot yang baru. Nilai bobot yang baru ini dapat digunakan untuk melakukan deteksi wajah dengan menggunakan program yang sama. Sistem detektor wajah ini juga dirancang agar dapat melakukan deteksi wajah pada beberapa citra sekaligus secara batch, dan menyimpan informasi hasil deteksinya di suatu file. Dengan cara ini, pemakai dapat membiarkan program melakukan deteksi untuk sejumlah file citra sekaligus, kemudian baru mengamati hasil deteksinya setelah seluruh citra selesai di deteksi Implementasi Sistem Untuk mengimplementasikan sistem, dibuat program aplikasi dengan menggunakan bahasa C++. User interface dibuat dengan menggunakan fasilitas komponen visual yang disediakan Borland C++ Builder.
49 Jaringan Syaraf Tiruan Jaringan syaraf yang digunakan diimplementasikan sebagai objek pada C++. Sebuah kelas abstrak untuk jaringan syaraf tiruan dibuat agar dapat diturunkan menjadi kelas-kelas baru yang memiliki susunan unit dan koneksi yang berbeda-beda. Kelas ini mendefinisikan fungsi-fungsi yang harus diimplementasikan pada setiap jaringan syaraf tiruan. Berikut ini kelas abstrak yang digunakan: class NNBaseClass // abstract class { public: double dtargetvalueface; virtual void SetInitWeightFileName(AnsiString sinitweightfilename) = 0; virtual void SetTrngDataFileName(AnsiString strngdatafilename) = 0; virtual int StartTrainingQuickprop() = 0; virtual int StartTraining() = 0; virtual bool InitWeight() = 0; virtual void SaveNNWeights(AnsiString snnwfilename) = 0; virtual double yout(double *x) = 0; virtual ~NNBaseClass() {; private: TrainingDataClass *atrd; int Ntrd; int wrongclass; int wrongclassface; int wrongclassnonface; int ndiffsign; AnsiString m_sinitweightfilename; AnsiString m_strngdatafilename; AnsiString classname; double CalcError(); void DumpFinalOutput(); ; Training data set dan bobot jaringan syaraf tiruan diimplementasikan dengan struktur data sebagai berikut: struct TrainingDataClass { double trd_out; double trd_in[400]; ;
50 37... double * wh; // bobot pada layer 1 (hidden layer) double * wo; // bobot pada output layer double * bh; // bias pada layer 1 (hidden layer) double bo; // bias pada layer output Output dari jaringan syaraf tiruan dihitung dengan lebih dulu menghitung nilai dari unit-unit pada hidden layer. Implementasi program untuk menghitung nilai output dari jaringan syaraf tiruan adalah sebagai berikut: double NN1dClass::yout(double *x) // hitung actual output utk 1 pattern { int j; double hsum, osum, y; // hitung hasil node pada hidden layer // hitung hout[] // hidden layer 4x4, masing2 menerima 25 input for (j=0; j<nwo1; j++) { int st = start_16[j]; hsum = (x[st] * wh[st]) + (x[st+1] * wh[st+1]) + (x[st+2] * wh[st+2]) + (x[st+3] * wh[st+3]) + (x[st+4] * wh[st+4]) + (x[st+20] * wh[st+20]) + (x[st+21] * wh[st+21]) + (x[st+22] * wh[st+22]) + (x[st+23] * wh[st+23]) + (x[st+24] * wh[st+24]) + (x[st+40] * wh[st+40]) + (x[st+41] * wh[st+41]) + (x[st+42] * wh[st+42]) + (x[st+43] * wh[st+43]) + (x[st+44] * wh[st+44]) + (x[st+60] * wh[st+60]) + (x[st+61] * wh[st+61]) + (x[st+62] * wh[st+62]) + (x[st+63] * wh[st+63]) + (x[st+64] * wh[st+64]) + (x[st+80] * wh[st+80]) + (x[st+81] * wh[st+81]) + (x[st+82] * wh[st+82]) + (x[st+83] * wh[st+83]) + (x[st+84] * wh[st+84]); hsum += bh[j]; hout[j] = fa(hsum); // hidden layer 5x5, masing2 menerima 16 input int n; for (j=0; j<nwo2; j++) { hsum = 0.0; int st = start_25[j]; n = st + 0; hsum += (x[n] * wh[nwh1+n]); n = st + 1; hsum += (x[n] * wh[nwh1+n]); n = st + 2; hsum += (x[n] * wh[nwh1+n]); n = st + 3; hsum += (x[n] * wh[nwh1+n]); n = st + 20; hsum += (x[n] * wh[nwh1+n]); n = st + 21; hsum += (x[n] * wh[nwh1+n]); n = st + 22; hsum += (x[n] * wh[nwh1+n]); n = st + 23; hsum += (x[n] * wh[nwh1+n]); n = st + 40; hsum += (x[n] * wh[nwh1+n]); n = st + 41; hsum += (x[n] * wh[nwh1+n]);
51 38 n = st + 42; hsum += (x[n] * wh[nwh1+n]); n = st + 43; hsum += (x[n] * wh[nwh1+n]); n = st + 60; hsum += (x[n] * wh[nwh1+n]); n = st + 61; hsum += (x[n] * wh[nwh1+n]); n = st + 62; hsum += (x[n] * wh[nwh1+n]); n = st + 63; hsum += (x[n] * wh[nwh1+n]); hsum += bh[nwo1+j]; hout[nwo1+j] = fa(hsum); // hitung hasil node pada output layer osum = 0.0; for (j=0; j<nwo; j++) { osum = osum + (hout[j] * wo[j]); osum = osum + bo; y = fa(osum); return y; Implementasi program untuk menghitung nilai MSE (mean square error) dari jaringan syaraf tiruan adalah sebagai berikut: double NN1dClass::CalcError() { static int i; static double Ep, y, t; Ep = 0; for (i=0; i<ntrd; i++) { y = yout(atrd[i].trd_in); t = atrd[i].trd_out; Ep = Ep + pow((t-y),2); Ep = Ep/Ntrd; return Ep; Implementasi program untuk melakukan pelatihan jaringan syaraf tiruan dengan menggunakan algoritma Quickprop dapat dilihat pada Lampiran 1.
52 Window Scanning Proses window scanning dilakukan pada saat akan melakukan deteksi wajah pada citra sembarang. Proses ini diikuti dengan proses resizing untuk melakukan scanning pada skala ukuran citra yang berbeda. Implementasi programnya dapat dilihat pada kutipan kode berikut: void fastcall TForm1::DetectFaces1Click(TObject *Sender) { nfacefound = 0; nscale = 0; nwindow_allscale = 0; while (true) { nwindow = 0; ntotal_window_currentsize = (w-19)*(h-19); iy = 0; while (true) { // shift 20x20 window vertically ix = 0; while (true) { // shift 20x20 window horizontally // crop/copy 20x20 image window to img2[][] for (int jy=0; jy<20; jy++) { for (int jx=0; jx<20; jx++) { img2[jx][jy] = img1[ix+jx][iy+jy]; // begin proses this window // ix, iy is window position in current (resized) image ProcessImageWindow(ix, iy); // end proses this window nwindow++; nwindow_allscale++; ix++; if (blabortdetection) break; if (blpausedetection) { ShowMessage("Detection paused. Press OK to continue."); blpausedetection = false; if ((ix+20)>w) break; iy++; if (blabortdetection) break; if ((iy+20)>h) break; // resampling image to a smaller size, get new height & width // rescaling original image size img0[][] by 1:1.2 (Rowley, 1998), nscale++; w = (double)img0width * pow((1/resize_image_by),nscale); h = (double)img0height * pow((1/resize_image_by),nscale); if (blabortdetection) break; if ((w<20) (h<20)) // we have reached the smallest possible resized image
53 40 break; else { // save result in img1[][] ResizeImage(w, h); // update img1width, img1height, img1[][] Resizing Proses resizing digunakan untuk menyiapkan data training maupun pada saat proses deteksi wajah. Contoh citra wajah yang diperoleh dari berbagai sumber memiliki ukuran yang beragam. Sebelum proses training, resizing dilakukan pada contoh citra wajah untuk menghasilkan citra data pelatihan yang berukuran 20x20 pixel. Pada proses deteksi wajah, resizing dilakukan pada citra yang akan dideteksi dengan tujuan agar dapat mendeteksi wajah dalam berbagai ukuran di dalam citra. Implementasi program untuk resizing dapat dilihat pada kutipan kode berikut: void ResizeImage(int new_width, int new_height) { // input: img1[][], output: img1[][] int w1, h1, w2, h2; int x, y, g; int j, k; int nn1, nn2, nn3, nn4; // four nearest neighborhood pixels double xx1, yy1, t, u; static unsigned char img1temp[1400][1400]; // temporary resized image for (int iy=0; iy<img1height; iy++) { for (int ix=0; ix<img1width; ix++) { img1temp[ix][iy] = img1[ix][iy]; // copy image to temporary storage // previous image size w1 = img1width; h1 = img1height; // new image size w2 = new_width; h2 = new_height;
54 41 for (y=0; y<h2; y++) { yy1 = ((double)y/(h2-1))*(h1-1); k = floor(yy1); u = yy1-k; for (x=0; x<w2; x++) { xx1 = ((double)x/(w2-1))*(w1-1); j = floor(xx1); t = xx1-j; nn1 = img1temp[j][k]; nn2 = img1temp[j+1][k]; nn3 = img1temp[j+1][k+1]; nn4 = img1temp[j][k+1]; g = ((1-t)*(1-u)*nn1) + (t*(1-u)*nn2) + (t*u*nn3) + ((1-t)*u*nn4); img1[x][y] = (char)g; img1width = w2; img1height = h2; Histogram Equalization Histogram equalization digunakan untuk melakukan perluasan kontras citra (contrast strecthing) secara otomatis. Dengan demikian citra yang akan dideteksi maupun yang digunakan untuk pelatihan memiliki kontras yang seragam. Implementasi dari histogram equalization dapat dilihat pada kutipan program berikut: void HistogramEqualize() { // histogram equalization static int nr[256]; static int ns[256]; int i, k, ix, iy; unsigned char g; // build histogram table for (i=0; i<256; i++) nr[i]=0; for (ix=0; ix<dx; ix++) { for (iy=0; iy<dy; iy++) { g = img_in[ix][iy]; nr[g]++; for (k=0; k<256; k++) { s = 0; for (j=0; j<=k; j++) s += ((double)nr[j]) / ((double)n_total_pixel); ns[k] = s * 255;
55 42 for (ix=0; ix<dx; ix++) { for (iy=0; iy<dy; iy++) { g = img_in[ix][iy]; img_out[ix][iy] = (unsigned char)ns[g]; Gambar berikut menunjukkan contoh hasil proses histogram equalization pada suatu citra. Gambar 3.9. Contoh Citra dan Histogramnya Masking Proses masking dilakukan untuk menutup bagian sudut-sudut citra sehingga mengurangi kemungkinan variasi yang timbul pada bagian-bagian tersebut. Implementasi dari histogram equalization dapat dilihat pada kutipan program berikut:
56 43 inline bool ismaskposition_(int x,int y) { if ((x>4) && (x<15)) return false; if ((y>4) && (y<15)) return false; // kiri atas if ((x+y)<=4) return true; // kiri bawah if ((y-x)>=15) return true; // kanan atas if ((x-y)>=15) return true; // kanan bawah if ((x+y)>=34) return true; // otherwise return false; // void InitWindowMaskInfo() // inisialisasi informasi mask pada 4 sudut image window { int n = 0; for (int iy=0; iy<20; iy++) { for (int ix=0; ix<20; ix++) { if (ismaskposition_(ix,iy)) { bl_ismask[ix][iy] = true; uc_ismask[n] = 0x00; else { bl_ismask[ix][iy] = false; uc_ismask[n] = 0xFF; n++; Gambar 3.10 menunjukkan contoh citra yang telah mengalami proses resizing, histogram equalization, dan masking. Sedangkan gambar 3.11 menunjukkan beberapa contoh data wajah yang telah mengalami preprocessing.
57 44 Gambar Contoh citra yang telah mengalami proses resizing, histogram equalization, dan masking Gambar Beberapa contoh data wajah yang telah mengalami preprocessing
58 Penggabungan (Merging) Kandidat Wajah Hasil deteksi dari pengklasifikasi jaringan syaraf tiruan adalah kandidatkandidat wajah. Penggabungan (merging) dilakukan untuk menyatukan kandidatkandidat wajah yang bersinggungan (overlapped) dengan cara mengambil nilai rata-rata dari posisi dan ukuran kandidat-kandidat wajah tersebut. Tujuannya adalah agar satu wajah yang sama tidak dideteksi sebagai beberapa wajah. Implementasi dari proses ini dapat dilihat pada kutipan program berikut: void fastcall TForm1::Merge1Click(TObject *Sender) { TRect r; bool blrectmerged; double pctoverlappedpixel; if (nfacefound==0) { nmergedfacefoundstage1 = 0; return; for (int i=0; i<1000; i++) rmergedface1[i].nrect = 1; rmergedface1[1].rect = cface.rect[1]; rmergedface1[1].totalnnvalue = cface.value[1]; nmergedfacefoundstage1 = 1; for (int i=2; i<=nfacefound; i++) { blrectmerged = false; for (int j=1; j<=nmergedfacefoundstage1; j++) { TRect newoverlappedrect; CalcOverlappedRect(cFace.rect[i], rmergedface1[j].rect, newoverlappedrect, pctoverlappedpixel, dummy); if (pctoverlappedpixel > THRESHOLD_PCT_OVERLAPPEDPIXEL) { // merge to previous face rmergedface1[j].rect = newoverlappedrect; rmergedface1[j].nrect++; rmergedface1[j].totalnnvalue += cface.value[i]; blrectmerged = true; break; if (!blrectmerged) { // not merged to any previous face nmergedfacefoundstage1++; rmergedface1[nmergedfacefoundstage1].rect = cface.rect[i]; rmergedface1[nmergedfacefoundstage1].totalnnvalue = cface.value[i]; for (int j=1; j<=nmergedfacefoundstage1; j++) rmergedface2[j].rect = rmergedface1[j].rect; nmergedfacefound = nmergedfacefoundstage1; AnsiString s = AnsiString("nMergedFaceFoundStage1=") + nmergedfacefoundstage1; Memo1->Lines->Add(s);
59 // draw boxes on merged face Image1b->Picture->Assign(Image1->Picture); for (int j=1; j<=nmergedfacefound; j++) { r = rmergedface1[j].rect; Form1->Image1b->Canvas->Brush->Style = bsclear; Form1->Image1b->Canvas->Pen->Mode = pmcopy; Form1->Image1b->Canvas->Pen->Color = clwhite; Form1->Image1b->Canvas->Rectangle(r.Left, r.top, r.right, r.bottom); Form1->Image1b->Canvas->Pen->Color = clblack; Form1->Image1b->Canvas->Rectangle(r.Left-1, r.top-1, r.right+1, r.bottom+1); Image1->Hide(); Image1b->Show(); Label6->Caption = AnsiString(nFaceFound) + " ---> " + nmergedfacefound; 46
60 47 BAB IV HASIL DAN PEMBAHASAN 4.1. Pengukuran Evaluasi Unjuk Kerja Untuk mengukur evaluasi unjuk kerja dari detektor wajah, pada umumnya digunakan 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 Hasil Deteksi Kandidat Wajah Pada saat dilakukan deteksi wajah pada citra, biasanya sebuah wajah terdeteksi pada beberapa lokasi yang berdekatan. Lokasi-lokasi ini disebut dengan kandidat wajah. Untuk menentukan lokasi final dari wajah perlu dilakukan proses penggabungan (merging) sebagaimana telah dijelaskan pada bab 3. Gambar 4.1. adalah contoh hasil deteksi sebelum dan sesudah proses merging. Tampak bahwa sebelum dilakukan proses merging, terdapat beberapa lokasi kandidat wajah yang terdeteksi, sedangkan kenyataannya hanya terdapat satu wajah di dalam citra tersebut. Setelah dilakukan proses merging, hanya satu lokasi yang dianggap sebagai lokasi wajah yang terdeteksi.
61 48 Gambar 4.1. Hasil deteksi sebelum dan sesudah proses merging 4.3. Hasil Deteksi Gambar 4.2. dan 4.3. menunjukkan contoh-contoh hasil deteksi yang dilakukan pada beberapa citra pengujian. Untuk membandingkan dengan hasil penelitian yang telah dilakukan sebelumnya, dilakukan pengujian dengan data citra standar yang sering digunakan dalam penelitian di bidang deteksi wajah. Data citra standar yang digunakan berasal dari MIT yang terdiri dari 23 file citra yang secara keseluruhan berisi 149 wajah (MIT-23). Kumpulan citra standar 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 dengan melakukan training yang menggunakan 3000 data wajah dan 5200 data non-wajah.
62 49 Tabel 4.1 menunjukkan hasil deteksi yang pernah dilakukan oleh para peneliti lain dengan menggunakan data uji MIT-23. Namun demikian harus diingat bahwa menurut [Hjelmas, 2001] perbandingan ini tidak bisa dijadikan patokan mutlak untuk menyimpulkan bahwa satu metode lebih baik dari metode yang lain, karena faktor-faktor berikut: data set yang digunakan untuk training tidak sama jumlah data yang digunakan untuk training tidak sama Sebagai contoh, pada sistem [Sung, 1994] digunakan 4150 data wajah dan 6189 data non-wajah. Pada sistem [Rowley, 1998] dilaporkan menggunakan sekitar data wajah dan 8000 data non-wajah. Pada sistem [Osuna, 1997] digunakan data, namun tidak dilaporkan berapa banyaknya data wajah dan non-wajah. Pada sistem yang lain tidak dilaporkan berapa jumlah data yang digunakan. Metode Detection False Rate Positif Support vector machines (SVM) [Osuna, 1997] 74,2% 20 Distribution-based dan clustering [Sung, Poggio, 1994] 79,9% 5 Neural Networks [Rowley, 1998] 84,5% 8 Kullback relative information [Lew, Huijsmans, 1996] 94,1% 64 Tabel 4.1 Beberapa hasil deteksi pada data uji MIT-23
63 Gambar 4.2. Contoh Hasil Deteksi Wajah 50
64 51 Gambar 4.3. Contoh Hasil Deteksi dengan False Positive dan Wajah yang Tidak Terdeteksi
65 Pengaruh Jumlah Data Training yang Digunakan Tabel 4.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 window. Terlihat bahwa semakin banyak data training non-wajah yang digunakan, semakin kecil angka false positive yang dihasilkan. Hal ini menunjukkan bahwa dengan data yang semakin lengkap, hasil belajar sistem akan semakin baik. Jumlah data training Detection nonwajah wajah total Rate False Positif / / / / / / / / / / / / / / / / / / /15 1 Tabel 4.2 Pengaruh Jumlah Data Training pada Unjuk Kerja Deteksi Wajah
66 Pengaruh Algoritma Quickprop pada Kecepatan Training Tabel 4.3 menunjukkan perbandingan waktu training yang diperlukan antara training yang menggunakan algoritma backpropagation standar dengan training yang menggunakan algoritma Quickprop. Terlihat bahwa dengan jumlah data training yang semakin besar, algoritma Quickprop memberikan peningkatan kecepatan yang signifikan. Jumlah Data training MSE Error Waktu training (detik) Backprop standar Quickprop Tabel 4.3 Pengaruh Algoritma Quickprop pada Kecepatan Training 4.6. Pengaruh Metode Active Learning Kami mencoba membandingkan hasil yang diperoleh antara training dengan menggunakan data yang didapatkan melalui metode active learning, dengan training yang menggunakan data yang diambil secara random. Jumlah data yang digunakan adalah sama. Tabel 4.4 menunjukkan hasilnya. Terlihat bahwa teknik active learning berguna dalam memilih data training yang benar-benar perlu ditambahkan, sehingga dapat meminimalkan jumlah data training yang digunakan.
67 54 Data training Random Data Active Learning wajah nonwajah Rate Positive Rate Positive Detection False Detection False total ,76% ,14% ,42% ,14% 201 Tabel 4.4 Pengaruh Active Learning pada Unjuk Kerja Deteksi Wajah
68 55 BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan Dari hasil penelitian dan pembahasan yang telah dilakukan menunjukkan bahwa jaringan syaraf tiruan dapat dimanfaatkan untuk melakukan deteksi wajah pada citra digital. Dengan menggunakan data uji standar (MIT-23) yang terdiri dari 23 file citra berisi 149 wajah, dengan total jumlah window yang dideteksi sebanyak , didapatkan hasil detection rate 71,14% dan false positive 62. Pada sistem deteksi wajah yang berbasis contoh, hasil yang diperoleh sangat dipengaruhi oleh banyaknya contoh data dan kualitas data yang digunakan dalam training. Pada proses training dengan menggunakan data yang berjumlah besar, algoritma Quickprop dapat memberikan peningkatan kecepatan yang signifikan terhadap algoritma backpropagation standar. Metode active learning dapat digunakan untuk memilih tambahan data training secara selektif. Metode ini bermanfaat untuk meminimalkan jumlah data training yang digunakan sehingga membantu mempercepat proses training.
69 Saran Untuk meningkatkan unjuk kerja dari sistem pendeteksi wajah, dapat dilakukan dengan memberikan pelatihan lebih lanjut dengan tambahan data training yang lebih banyak dan lebih bervariasi. Pada kasus pendeteksian wajah di dalam citra berwarna, akurasi dapat ditingkatkan dengan mengkombinasikan sistem ini dengan sistem pendeteksi warna kulit. Kecepatan deteksi juga dapat ditingkatkan dengan bantuan pendeteksi warna kulit, karena dengan demikian deteksi dengan jaringan syaraf tiruan hanya perlu dilakukan pada area yang mengandung warna kulit. Teknologi deteksi wajah adalah salah satu bidang penelitian yang masih terus berkembang. Hasil dari deteksi wajah ini dapat dimanfaatkan lebih lanjut untuk membangun sistem pengenalan wajah (face recognition).
70 DAFTAR PUSTAKA Fahlman, S.E., 1988, An Empirical Study of Learning Speed in Back- Propagation Networks, Technical Report CMU-CS , Carnegie Mellon University, USA. Fausett, L., 1994, Fundamentals of Neural Networks: Architectures, Algorithms, and Applications, Prentice-Hall Inc., USA. Gibb, J., 1996, Back Propagation Family Album, ftp://ftp.mpce.mq.edu.au/comp/ techreports/ gibb.ps, Macquarie University, Australia. Gonzalez, R.C., Woods, R.E., 1992, Digital Image Processing, Addison-Wesley Publishing Company, USA. Graham, D. B., Allinson, N. M., 1998, Characterizing Virtual Eigensignatures for General Purpose Face Recognition, (in) Face Recognition: From Theory to Applications, NATO ASI Series F, Computer and Systems Sciences, Vol H. Wechsler, P. J. Phillips, V. Bruce, F. Fogelman- Soulie and T. S. Huang (eds), pp Haykin, S., 1994, Neural Networks: A Comprehensive Foundation, Macmillan College Publishing Company, USA. Hjelmas, E., Low, B.K., 2001, Face Detection: A Survey, Computer Vision and Image Understanding. 83, pp LeCun, Y., Bottou, L., Orr, G.B., Muller, K.R., 1998, Efficient BackProp, Neural Networks: tricks of the trade, Springer. Lew, M. S., Huijsmans, N., 1996, Information Theory and Face Detection, Proc. of International Conference on Pattern Recognition Osuna, E., Freund, R., Girosi, F., 1997, Training Support Vector Machines: An Application to Face Detection, Proc. IEEE Conf. Computer Vision and Pattern Recognition Press, W.H., 1992, Numerical Recipes In C: The Art Of Scientific Computing, Cambridge University Press, USA. Riedmiller, M., 1994, Advanced Supervised Learning in Multi-Layer Perceptrons From Backpropagation to Adaptive Learning Algorithms, Int. Journal of Computer Standards and Interfaces (16) 1994.
71 Rowley, H., Baluja, S., Kanade, T., 1998, Neural Network-Based Face Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 20, no. 1. Rumelhart, D.E., Hinton, G.E., Williams, R.J., 1986, Learning Internal Representations by Error Propagation, Parallel Distributed Processing, chapter 8, MIT Press, Cambridge, MA. Sarle, W.S., ed., 2002, Neural Network FAQ, URL: ftp://ftp.sas.com/pub/neural/ FAQ.html Schiffmann, W., Joost, M., Werner, R., 1993, Comparison of Optimized Backpropagation Algorithms, Proc. of the European Symposium on Artificial Neural Networks (ESANN) 93, Brussels. Schneiderman, H., 2000, A Statistical Approach to 3D Object Detection Applied to Faces and Cars, CMU-RI-TR-00-06, Robotics Institute Carnegie Mellon University. Schneiderman, H., Kanade, T., 2000, A Statistical Approach to 3D Object Detection Applied to Faces and Cars, Proc. IEEE Conf. Computer Vision and Pattern Recognition vol. 1. Sung, K.K., 1996, Learning and Example Selection for Object and Pattern Detection, AITR 1572, Massachusetts Institute of Technology AI Lab. Sung, K.K., Poggio, T., 1994, Example-Based Learning for View-Based Human Face Detection, Technical Report AI Memo 1521, Massachusetts Institute of Technology AI Lab. Turk, M., Pentland, A., 1991, Eigenfaces for Recognition, J. Cognitive Neuroscience, vol. 3, no.1. Yang, M.H., Kriegman, D., Ahuja, N., 2002, Detecting Faces in Images: A Survey, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 24, no. 1.
72 LAMPIRAN 1 Listing program implementasi algoritma Quickprop: int NN1dClass::StartTrainingQuickprop() { /************************************************************ USE QUICKPROP ALGORITHM (reference: Fahlman, 1988) Variable name convention: w => weight, b => bias ***********************************************************/ double Ep; // Error double mju; // learning rate double mgf; // maximum growth factor (denoted mju in some literature) double * xi; // pointer to input training data double t, dfa_y, ynet, del_o, dfa_h, sigma_x; double del_h; int i,j,k; mju = Form1->editLearnRate->Text.ToDouble(); mgf = Form1->editMGF->Text.ToDouble(); nmax_epoch = Form1->editMaxEpoch->Text.ToInt(); errorgoal = Form1->editErrorGoal->Text.ToDouble(); dtargetvalueface = Form1->editTargetValueFace->Text.ToDouble(); max_wrongclass = Form1->edit_max_wrongClass->Text.ToIntDef(0); epoch = 0; TDateTime t1, t2; AnsiString s; s = Form1->edit_Ntrd->Text; Ntrd = s.tointdef(0); if (Ntrd<0) Ntrd=0; t1 = Now(); if (Ntrd==0) {ShowMessage("Ntrd = 0!"); return(0); if (!InitWeight()) return(0); if (!InitTrainingInputDataSet()) return(0); Form1->Memo5->Clear(); // de_dw_wlayer1 --> de/dw utk layer 1,... dst double * de_dw_wlayer1 = new double[nwh]; double * de_dw_blayer1 = new double[nbh]; double * de_dw_wlayer2 = new double[nwo]; double de_dw_blayer2; // de_dw_wlayer1_prev --> previous de/dw utk layer 1,... dst double * de_dw_wlayer1_prev = new double[nwh]; double * de_dw_blayer1_prev = new double[nbh]; double * de_dw_wlayer2_prev = new double[nwo]; double de_dw_blayer2_prev; // dwo, dwh, dbo, dbh --> weight changes // old_dwo, old_dwh, old_dbo, old_dbh --> previous weight changes double dbo, old_dbo; double * dwo = new double[nwo]; double * old_dwo = new double[nwo]; double * dwh = new double[nwh]; double * old_dwh = new double[nwh]; double * dbh = new double[nbh]; double * old_dbh = new double[nbh]; wrt1("=====> Start training (quickprop)..."); wrt1(ansistring("# of weights: ") + numofweights + "; class: " + classname); // dump additional information s = Format("Info: Ntrd:%d; MAX_EPOCH:%d; Error goal:%8.2e; VLR:%d; batch_update:%d.", ARRAYOFCONST((Ntrd, nmax_epoch, errorgoal, VLR, batch_update)));
73 wrt1(s); wrtnnwcomments(s); DumpWeight("Before training:"); Form1->PageControl1->ActivePage = Form1->TabSheet1; Screen->Cursor = crhourglass; blstoppedbyuser = false; blpausedbyuser = false; wrt1("epoch/lr/ep/wrong:"); while (1) { Ep = CalcError(); if ((epoch % SHOW_STEP_EVERY)==0) { Application->ProcessMessages(); // write in log. wrt1(format(" %5d, %15g, %15g, %6d", ARRAYOFCONST((epoch, mju, Ep, wrongclass)))); if (epoch==nmax_epoch) { wrt1("max epoch reached!"); break; if (Ep < errorgoal) { wrt1("error goal reached!"); break; if (wrongclass <= max_wrongclass) { wrt1("maximum wrong class reached!"); break; if (blstoppedbyuser) { wrt1("aborted by user!"); break; if (blpausedbyuser) { ShowMessage("Training paused. Press OK to continue."); blpausedbyuser = false; // Reset semua delta Error for (j=0; j<nwh; j++) { de_dw_wlayer1[j] = 0; zeros1d(de_dw_blayer1, nwo); zeros1d(de_dw_wlayer2, nwo); de_dw_blayer2 = 0; // batch update method if (batch_update==1) { // hitung update bobot for (i=0; i<ntrd; i++) { xi = atrd[i].trd_in; t = atrd[i].trd_out; ynet = yout(xi); // hitung update bobot utk output layer dfa_y = dfa(ynet); del_o = dfa_y*(t-ynet); for (j=0; j<nwo; j++) { de_dw_wlayer2[j] += (del_o * hout[j]); de_dw_blayer2 = de_dw_blayer2 + (del_o); // hitung delta Error utk update bobot utk hidden layer // hidden layer 4x4, masing2 menerima 25 input for (j=0; j<nwo1; j++) { dfa_h = dfa(hout[j]); //% derivative of sigmoid function // hanya ada 1 output sigma_x = (del_o * wo[j]); del_h = dfa_h*sigma_x;
74 int st = start_16[j]; de_dw_wlayer1[st] += (del_h*xi[st]); de_dw_wlayer1[st+1] += (del_h*xi[st+1]); de_dw_wlayer1[st+2] += (del_h*xi[st+2]); de_dw_wlayer1[st+3] += (del_h*xi[st+3]); de_dw_wlayer1[st+4] += (del_h*xi[st+4]); de_dw_wlayer1[st+20] += (del_h*xi[st+20]); de_dw_wlayer1[st+21] += (del_h*xi[st+21]); de_dw_wlayer1[st+22] += (del_h*xi[st+22]); de_dw_wlayer1[st+23] += (del_h*xi[st+23]); de_dw_wlayer1[st+24] += (del_h*xi[st+24]); de_dw_wlayer1[st+40] += (del_h*xi[st+40]); de_dw_wlayer1[st+41] += (del_h*xi[st+41]); de_dw_wlayer1[st+42] += (del_h*xi[st+42]); de_dw_wlayer1[st+43] += (del_h*xi[st+43]); de_dw_wlayer1[st+44] += (del_h*xi[st+44]); de_dw_wlayer1[st+60] += (del_h*xi[st+60]); de_dw_wlayer1[st+61] += (del_h*xi[st+61]); de_dw_wlayer1[st+62] += (del_h*xi[st+62]); de_dw_wlayer1[st+63] += (del_h*xi[st+63]); de_dw_wlayer1[st+64] += (del_h*xi[st+64]); de_dw_wlayer1[st+80] += (del_h*xi[st+80]); de_dw_wlayer1[st+81] += (del_h*xi[st+81]); de_dw_wlayer1[st+82] += (del_h*xi[st+82]); de_dw_wlayer1[st+83] += (del_h*xi[st+83]); de_dw_wlayer1[st+84] += (del_h*xi[st+84]); de_dw_blayer1[j] = de_dw_blayer1[j] + (del_h); // hidden layer 5x5, masing2 menerima 16 input int n; for (j=0; j<nwo2; j++) { dfa_h = dfa(hout[nwo1+j]); //% derivative of sigmoid function // hanya ada 1 output sigma_x = (del_o * wo[nwo1+j]); del_h = dfa_h*sigma_x; int st = start_25[j]; n = st + 0; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 1; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 2; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 3; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 20; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 21; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 22; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 23; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 40; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 41; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 42; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 43; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 60; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 61; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 62; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); n = st + 63; de_dw_wlayer1[nwh1+n] += (del_h*xi[n]); de_dw_blayer1[nwo1+j] += (del_h); // update bobot & bias if (epoch==0) { // reset nilai old_dwh, old_dbh, old_dwo, old_dbo for (int jj=0; jj<nwh; jj++) old_dwh[jj] = 0.0; zeros1d(old_dbh, nwo); zeros1d(old_dwo, nwo);
75 old_dbo = 0.0; // Reset semua delta prev Error zeros1d(de_dw_wlayer1_prev, nwh); zeros1d(de_dw_blayer1_prev, nbh); zeros1d(de_dw_wlayer2_prev, nwo); de_dw_blayer2_prev = 0; // update bobot & bias output layer // mgf --> maximum growth factor (mju in some literature (Fahlman)) // in this program mju is the learning rate. // update bobot output layer for (j=0; j<nwo; j++) { #define de de_dw_wlayer2[j] #define de_prev de_dw_wlayer2_prev[j] #define deltaw dwo[j] #define deltaw_prev old_dwo[j] if (deltaw_prev > 0) { deltaw = 0; if (de > 0) { deltaw = mju * de; if (de > (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) / (de_prev - de)); else if (deltaw_prev < 0) { deltaw = 0; if (de < 0) { deltaw = mju * de; if (de < (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) / (de_prev - de)); else { deltaw = mju * de; wo[j] = wo[j] + dwo[j]; // update bias output layer #define de de_dw_blayer2 #define de_prev de_dw_blayer2_prev #define deltaw dbo #define deltaw_prev old_dbo if (deltaw_prev > 0) { deltaw = 0; if (de > 0) { deltaw = mju * de; if (de > (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) /
76 (de_prev - de)); else if (deltaw_prev < 0) { deltaw = 0; if (de < 0) { deltaw = mju * de; if (de < (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) / (de_prev - de)); else { deltaw = mju * de; bo = bo + dbo; // update bobot & bias hidden layer // update bobot hidden layer #define de de_dw_wlayer1[k] #define de_prev de_dw_wlayer1_prev[k] #define deltaw dwh[k] #define deltaw_prev old_dwh[k] for (k=0; k<nwh; k++) { if (deltaw_prev > 0) { deltaw = 0; if (de > 0) { deltaw = mju * de; if (de > (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) / (de_prev - de)); else if (deltaw_prev < 0) { deltaw = 0; if (de < 0) { deltaw = mju * de; if (de < (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) / (de_prev - de)); else { deltaw = mju * de; wh[k] = wh[k] + dwh[k]; // update bias hidden layer #define de de_dw_blayer1[k] #define de_prev de_dw_blayer1_prev[k] #define deltaw dbh[k]
77 #define deltaw_prev old_dbh[k] for (k=0; k<nwo; k++) { if (deltaw_prev > 0) { deltaw = 0; if (de > 0) { deltaw = mju * de; if (de > (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) / (de_prev - de)); else if (deltaw_prev < 0) { deltaw = 0; if (de < 0) { deltaw = mju * de; if (de < (mgf/(1+mgf)) * de_prev ) { deltaw = deltaw + (mgf * deltaw_prev); else { deltaw = deltaw + ((de * deltaw_prev) / (de_prev - de)); else { deltaw = mju * de; bh[k] = bh[k] + dbh[k]; // if (batch_update==1) // simpan delta bobot terakhir, utk dipakai pada epoch berikutnya for (int j=0; j<nwh; j++) { old_dwh[j] = dwh[j]; for (int k=0; k<nwo; k++) { old_dwo[k] = dwo[k]; old_dbh[k] = dbh[k]; old_dbo = dbo; // simpan semua delta Error terakhir, utk dipakai pada epoch berikutnya for (int j=0; j<nwh; j++) { de_dw_wlayer1_prev[j] = de_dw_wlayer1[j]; for (int i=0; i<nwo; i++) { de_dw_blayer1_prev[i] = de_dw_blayer1[i]; de_dw_wlayer2_prev[i] = de_dw_wlayer2[i]; de_dw_blayer2_prev = de_dw_blayer2; epoch = epoch+1; // go to next epoch... // iterasi training selesai wrt1("finished."); s = Format("Final state: Epoch/LR/Ep/wrongClass = %d / %g / %g / %d", ARRAYOFCONST((epoch, mju, Ep,wrongClass))); wrt1(s); wrtnnwcomments(s); t2 = Now(); s = "Started: " + t1.datetimestring(); wrt1(s); wrtnnwcomments(s);
78 s = "Finished: " + t2.datetimestring(); wrt1(s); wrtnnwcomments(s); wrt1("============================== Training finished."); DumpWeight("After training:"); // dump final output double y, diff; int ndataface=0, ndatanonface=0; wrongclass=0; AnsiString dflag; wrt3(" Final output using training dataset as input:"); wrt3("(pattern # starts from 0)"); wrt3("pattern # Target Output Target-Output "); for (int i=0; i<ntrd; i++) { y = yout(atrd[i].trd_in); diff = fabs(atrd[i].trd_out-y); // selisih target dg actual output if (diff>=0.9) { dflag = "*****"; wrongclass++; else dflag = " "; if (Form1->rgDumpOutput->ItemIndex==1) { if (diff>=1) wrt3(format("%4d %10g %20g %10.4f %s", ARRAYOFCONST((i, atrd[i].trd_out, y, diff, dflag)))); if (Form1->rgDumpOutput->ItemIndex==2) { wrt3(format("%4d %10g %20g %10.4f %s", ARRAYOFCONST((i, atrd[i].trd_out, y, diff, dflag)))); // hitung jumlah data training utk face dan non face if (atrd[i].trd_out > 0) ndataface++; ndatanonface = Ntrd - ndataface; s = Format("Training data: %6d (face: %6d; non-face:%6d).", ARRAYOFCONST((Ntrd, ndataface, ndatanonface))); wrt1(s); wrtnnwcomments(s); s = Format("wrongClass: %4d", ARRAYOFCONST((wrongClass))); wrt3(s); wrtnnwcomments(s); Screen->Cursor = crdefault; wrt1(""); delete [] dwo; delete [] old_dwo; delete [] dwh; delete [] old_dwh; delete [] dbh; delete [] old_dbh; delete [] atrd; delete [] de_dw_wlayer1; delete [] de_dw_blayer1; delete [] de_dw_wlayer2; delete [] de_dw_wlayer1_prev; delete [] de_dw_blayer1_prev; delete [] de_dw_wlayer2_prev; return(1);
SISTEM PENDETEKSI WAJAH MANUSIA PADA CITRA DIGITAL
1 SISTEM PENDETEKSI WAJAH MANUSIA PADA CITRA DIGITAL (Human Face Detection System on Digital Images) Setyo Nugroho 1, Agus Harjoko 2 Program Studi Ilmu Komputer Program Pascasarjana Universitas Gadjah
SISTEM PENDETEKSI WAJAH MANUSIA PADA CITRA DIGITAL (PROPOSAL SKRIPSI) diajukan oleh. NamaMhs NIM: XX.YY.ZZZ. Kepada
SISTEM PENDETEKSI WAJAH MANUSIA PADA CITRA DIGITAL (PROPOSAL SKRIPSI) diajukan oleh NamaMhs NIM: XX.YY.ZZZ Kepada JURUSAN TEKNIK INFORMATIKA STMIK STIKOM BALIKPAPAN LEMBAR PERSETUJUAN Proposal Skripsi
BAB II TINJAUAN PUSTAKA
BAB II TINJAUAN PUSTAKA 2.1 Citra Digital Gambar atau citra merupakan informasi yang berbentuk visual. Menurut kamus Webster citra adalah suatu representasi, kemiripan atau imitasi dari suatu objek atau
JARINGAN SARAF TIRUAN
MAKALAH KECERDASAN BUATAN JARINGAN SARAF TIRUAN (ARTIFICIAL NEURAL NETWORK) Disusun Oleh: KELOMPOK VI Hery Munazar (100411068) Rizky Ramadhan(100411066) PROGRAM STUDI TEKNIK INFORMATIKA POLITEKNIK NEGERI
BAB III PERANCANGAN DAN IMPLEMENTASI SISTEM
BAB III PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan dijelaskan mengenai tahapan dan algoritma yang akan digunakan pada sistem pengenalan wajah. Bagian yang menjadi titik berat dari tugas akhir
PEMANFAATAAN BIOMETRIKA WAJAH PADA SISTEM PRESENSI MENGGUNAKAN BACKPROPAGATION NEURAL NETWORK
PEMANFAATAAN BIOMETRIKA WAJAH PADA SISTEM PRESENSI MENGGUNAKAN BACKPROPAGATION NEURAL NETWORK Program Studi Matematika FMIPA Universitas Negeri Semarang Abstrak. Saat ini, banyak sekali alternatif dalam
BAB 2 KONSEP DASAR PENGENAL OBJEK
BAB 2 KONSEP DASAR PENGENAL OBJEK 2.1 KONSEP DASAR Pada penelitian ini, penulis menggunakan beberapa teori yang dijadikan acuan untuk menyelesaikan penelitian. Berikut ini teori yang akan digunakan penulis
BAB 2 LANDASAN TEORI. fuzzy logic dengan aplikasi neuro computing. Masing-masing memiliki cara dan proses
8 BAB 2 LANDASAN TEORI 2.1 Teori Neuro Fuzzy Neuro-fuzzy sebenarnya merupakan penggabungan dari dua studi utama yaitu fuzzy logic dengan aplikasi neuro computing. Masing-masing memiliki cara dan proses
BAB II TINJAUAN PUSTAKA. menggunakan PCA, kemudian penelitian yang menggunakan algoritma Fuzzy C-
8 BAB II TINJAUAN PUSTAKA 2.1 Studi Pendahuluan Sebelumnya telah ada penelitian tentang sistem pengenalan wajah 2D menggunakan PCA, kemudian penelitian yang menggunakan algoritma Fuzzy C- Means dan jaringan
BAB 3 PERANCANGAN DAN PEMBUATAN SISTEM
BAB 3 PERANCANGAN DAN PEMBUATAN SISTEM Dalam bab ini akan dibahas mengenai perancangan dan pembuatan sistem aplikasi yang digunakan sebagai user interface untuk menangkap citra ikan, mengolahnya dan menampilkan
BAB III PERANCANGAN SISTEM
BAB III PERANCANGAN SISTEM 3.1 Definisi Masalah Dalam beberapa tahun terakhir perkembangan Computer Vision terutama dalam bidang pengenalan wajah berkembang pesat, hal ini tidak terlepas dari pesatnya
BAB III METODOLOGI PENELITIAN
19 BAB III METODOLOGI PENELITIAN 3.1. Kerangka Pemikiran Kerangka pemikiran untuk penelitian ini seperti pada Gambar 9. Penelitian dibagi dalam empat tahapan yaitu persiapan penelitian, proses pengolahan
Human Face Detection by using eigenface method for various pose of human face
Human Face Detection by using eigenface method for various pose of human face Esty Vidyaningrum, Prihandoko Undergraduate program, Faculty of Industrial Technology, 2009 Gunadarma University http://www.gunadarma.ac.id
BAB 1 PENDAHULUAN. 1.1 Latar Belakang
1 BAB 1 PENDAHULUAN 1.1 Latar Belakang Biometrik adalah salah satu teknologi cangih yang banyak dipakai untuk menjadi bagian dari system keamanan di berbagai bidang. Biometrik ini bahkan sudah digunakan
BAB 1 PENDAHULUAN Latar Belakang
BAB 1 PENDAHULUAN 1. 1 Latar Belakang Jaringan saraf buatan merupakan kumpulan dari elemen-elemen pemrosesan buatan yang disebut neuron. Sebuah neuron akan mempunyai banyak nilai masukan yang berasal dari
BAB III METODE PENELITIAN. menjawab segala permasalahan yang ada dalam penelitian ini.
BAB III METODE PENELITIAN Pada bab ini akan dijelaskan bahan yang digunakan dalam membantu menyelesaikan permasalahan, dan juga langkah-langkah yang dilakukan dalam menjawab segala permasalahan yang ada
BAB II DASAR TEORI. 2.1 Meter Air. Gambar 2.1 Meter Air. Meter air merupakan alat untuk mengukur banyaknya aliran air secara terus
BAB II DASAR TEORI 2.1 Meter Air Gambar 2.1 Meter Air Meter air merupakan alat untuk mengukur banyaknya aliran air secara terus menerus melalui sistem kerja peralatan yang dilengkapi dengan unit sensor,
PENGENALAN POLA TANDA TANGAN MENGGUNAKAN METODE MOMENT INVARIANT DAN JARINGAN SYARAF RADIAL BASIS FUNCTION (RBF)
Prosiding Seminar Nasional Penelitian, Pendidikan dan Penerapan MIPA, Fakultas MIPA, Universitas Yogyakarta, 14 Mei 2011 PENGENALAN POLA TANDA TANGAN MENGGUNAKAN METODE MOMENT INVARIANT DAN JARINGAN SYARAF
BAB III PERANCANGAN SISTEM
BAB III PERANCANGAN SISTEM Dalam pengerjaan perancangan dan pembuatan aplikasi pengenalan karakter alfanumerik JST algoritma Hopfield ini menggunakan software Borland Delphi 7.0. 3.1 Alur Proses Sistem
BAB 3 ANALISIS DAN PERANCANGAN PROGRAM APLIKASI
BAB 3 ANALISIS DAN PERANCANGAN PROGRAM APLIKASI Bab ini berisi analisis pengembangan program aplikasi pengenalan karakter mandarin, meliputi analisis kebutuhan sistem, gambaran umum program aplikasi yang
SISTEM PENGENALAN WAJAH MENGGUNAKAN WEBCAM UNTUK ABSENSI DENGAN METODE TEMPLATE MATCHING
SISTEM PENGENALAN WAJAH MENGGUNAKAN WEBCAM UNTUK ABSENSI DENGAN METODE TEMPLATE MATCHING Mohamad Aditya Rahman, Ir. Sigit Wasista, M.Kom Jurusan Teknik Elektronika, Politeknik Elektronika Negeri Surabaya
BAB II LANDASAN TEORI
BAB II LANDASAN TEORI 2.1. Pengenalan Pola Pengenalan pola adalah suatu ilmu untuk mengklasifikasikan atau menggambarkan sesuatu berdasarkan pengukuran kuantitatif fitur (ciri) atau sifat utama dari suatu
BAB III METODOLOGI PENELITIAN
BAB III METODOLOGI PENELITIAN 3.1 Tahapan Penelitian Tahapan yang dilakukan dalam penelitian ini disajikan pada Gambar 14, terdiri dari tahap identifikasi masalah, pengumpulan dan praproses data, pemodelan
VOL. 01 NO. 02 [JURNAL ILMIAH BINARY] ISSN :
PENERAPAN JARINGAN SYARAF TIRUAN UNTUK MEMPREDIKSI JUMLAH PRODUKSI AIR MINUM MENGGUNAKAN ALGORITMA BACKPROPAGATION (STUDI KASUS : PDAM TIRTA BUKIT SULAP KOTA LUBUKLINGGAU) Robi Yanto STMIK Bina Nusantara
Implementasi Jaringan Syaraf Tiruan Backpropagation dan Steepest Descent untuk Prediksi Data Time Series
Implementasi Jaringan Syaraf Tiruan Backpropagation dan Steepest Descent untuk Prediksi Data Time Series Oleh: ABD. ROHIM (1206 100 058) Dosen Pembimbing: Prof. Dr. M. Isa Irawan, MT Jurusan Matematika
SISTEM PENGENALAN KARAKTER DENGAN JARINGAN SYARAF TIRUAN ALGORITMA PERCEPTRON
Jurnal Informatika Mulawarman Vol. 7 No. 3 Edisi September 2012 105 SISTEM PENGENALAN KARAKTER DENGAN JARINGAN SYARAF TIRUAN ALGORITMA PERCEPTRON Anindita Septiarini Program Studi Ilmu Komputer FMIPA,
Identifikasi Gender Berdasarkan Citra Wajah Menggunakan Deteksi Tepi dan Backpropagation
Identifikasi Gender Berdasarkan Citra Wajah Menggunakan Deteksi Tepi dan Backpropagation Destri Wulansari, Esmeralda C. Djamal, Ridwan Ilyas Jurusan Informatika, Fakultas MIPA Universitas Jenderal Achmad
BAB II NEURAL NETWORK (NN)
BAB II NEURAL NETWORK (NN) 2.1 Neural Network (NN) Secara umum Neural Network (NN) adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan jaringan syaraf manusia. NN ini merupakan
Architecture Net, Simple Neural Net
Architecture Net, Simple Neural Net 1 Materi 1. Model Neuron JST 2. Arsitektur JST 3. Jenis Arsitektur JST 4. MsCulloh Pitts 5. Jaringan Hebb 2 Model Neuron JST X1 W1 z n wi xi; i1 y H ( z) Y1 X2 Y2 W2
Neural Network (NN) Keuntungan penggunaan Neural Network : , terdapat tiga jenis neural network Proses Pembelajaran pada Neural Network
Neural Network (NN) adalah suatu prosesor yang melakukan pendistribusian secara besar-besaran, yang memiliki kecenderungan alami untuk menyimpan suatu pengenalan yang pernah dialaminya, dengan kata lain
BAB 3 METODE PERANCANGAN
BAB 3 METODE PERANCANGAN 3.1 Konsep dan Pendekatan Tujuan utama yang ingin dicapai dalam pengenalan objek 3 dimensi adalah kemampuan untuk mengenali suatu objek dalam kondisi beragam. Salah satu faktor
SISTEM PENGENALAN WAJAH DENGAN METODE EIGENFACE DAN JARINGAN SYARAF TIRUAN (JST)
Berkala Fisika ISSN : 1410-9662 Vol. 15, No. 1, Januari 2012, hal 15-20 SISTEM PENGENALAN WAJAH DENGAN METODE EIGENFACE DAN JARINGAN SYARAF TIRUAN (JST) Tri Mulyono, Kusworo Adi dan Rahmat Gernowo Jurusan
BAB I PENDAHULUAN. 1.1 Latar Belakang
1 BAB I PENDAHULUAN 1.1 Latar Belakang Home security saat ini sudah menjadi kebutuhan setiap pemilik rumah yang menginginkan tingkat keamanan yang baik. Salah satu sistem keamanan konvensional yang masih
Verifikasi Citra Wajah Menggunakan Metode Discrete Cosine Transform Untuk Aplikasi Login
The 13 th Industrial Electronics Seminar 011 (IES 011) Electronic Engineering Polytechnic Institute of Surabaya (EEPIS), Indonesia, October 6, 011 Verifikasi Citra Wajah Menggunakan Metode Discrete Cosine
PERANCANGAN PROGRAM PENGENALAN BENTUK MOBIL DENGAN METODE BACKPROPAGATION DAN ARTIFICIAL NEURAL NETWORK SKRIPSI
PERANCANGAN PROGRAM PENGENALAN BENTUK MOBIL DENGAN METODE BACKPROPAGATION DAN ARTIFICIAL NEURAL NETWORK SKRIPSI Oleh Nama : Januar Wiguna Nim : 0700717655 PROGRAM GANDA TEKNIK INFORMATIKA DAN MATEMATIKA
BAB 4 HASIL DAN PEMBAHASAN
68 BAB 4 HASIL DAN PEMBAHASAN 4.1. Uji Algoritma Pengujian dilakukan untuk mendapatkan algoritma yang paling optimal dari segi kecepatan dan tingkat akurasi yang dapat berjalan secara real time pada smartphone
Penerapan Jaringan Saraf Tiruan Metode Backpropagation Menggunakan VB 6
Penerapan Jaringan Saraf Tiruan Metode Backpropagation Menggunakan VB 6 Sari Indah Anatta Setiawan SofTech, Tangerang, Indonesia [email protected] Diterima 30 November 2011 Disetujui 14 Desember 2011
BAB III METODE PENELITIAN. dan bahan, agar mendapatkan hasil yang baik dan terstruktur. Processor Intel Core i3-350m.
BAB III METODE PENELITIAN 3.1 Alat dan Bahan Untuk menunjang penelitian yang akan dilakukan, maka diperlukan alat dan bahan, agar mendapatkan hasil yang baik dan terstruktur. 3.1.1 Alat Penelitian Adapun
BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI Pada bab ini akan dielaskan mengenai teori-teori yang berhubungan dengan penelitian ini, sehingga dapat diadikan sebagai landasan berpikir dan akan mempermudah dalam hal pembahasan
BAB 3 PERANCANGAN SISTEM. Bab ini menguraikan analisa penelitian terhadap metode Backpropagation yang
BAB 3 PERANCANGAN SISTEM Bab ini menguraikan analisa penelitian terhadap metode Backpropagation yang diimplementasikan sebagai model estimasi harga saham. Analisis yang dilakukan adalah menguraikan penjelasan
IDENTIFIKASI TANDA TANGAN MENGGUNAKAN ALGORITMA DOUBLE BACKPROPAGATION ABSTRAK
IDENTIFIKASI TANDA TANGAN MENGGUNAKAN ALGORITMA DOUBLE BACKPROPAGATION Disusun oleh: Togu Pangaribuan 0722087 Jurusan Teknik Elektro, Fakultas Teknik, Jl. Prof.Drg. Suria Sumantri, MPH No. 65, Bandung
BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.6. Jaringan Syaraf Tiruan Jaringan syaraf tiruan atau neural network merupakan suatu sistem informasi yang mempunyai cara kerja dan karakteristik menyerupai jaringan syaraf pada
METODOLOGI PENELITIAN
III. METODOLOGI PENELITIAN A. Kerangka Pemikiran Perusahaan dalam era globalisasi pada saat ini, banyak tumbuh dan berkembang, baik dalam bidang perdagangan, jasa maupun industri manufaktur. Perusahaan
IMPLEMENTASI PENGENALAN WAJAH MENGGUNAKAN ALGORITMA PRINCIPAL COMPONENT ANALYSIS(PCA) DAN IMPROVED BACKPROPAGATION
J~ICON, Vol. 3 No. 2, Oktober 2015, pp. 89 ~ 95 89 IMPLEMENTASI PENGENALAN WAJAH MENGGUNAKAN ALGORITMA PRINCIPAL COMPONENT ANALYSIS(PCA) DAN IMPROVED BACKPROPAGATION Rini Miyanti Maubara 1, Adriana Fanggidae
Algoritma Kohonen dalam Mengubah Citra Graylevel Menjadi Citra Biner
Jurnal Ilmiah Teknologi dan Informasia ASIA (JITIKA) Vol.9, No.2, Agustus 2015 ISSN: 0852-730X Algoritma Kohonen dalam Mengubah Citra Graylevel Menjadi Citra Biner Nur Nafi'iyah Prodi Teknik Informatika
1. Pendahuluan Perumusan Masalah Dari latar belakang yang dipaparkan di atas, masalah yang dapat dirumuskan adalah:
1. Pendahuluan 1.1. Latar Belakang Wajah manusia dapat menunjukkan dimorfisme seksual yang cukup jelas [1][2][3][4][5]. Wajah pria dan wanita memiliki bentuk dan tekstur yang berbeda, dan petunjuk yang
BAB 2 LANDASAN TEORI. Pengenalan suara (voice recognition) dibagi menjadi dua jenis, yaitu
BAB 2 LANDASAN TEORI 2.1 Pengenalan Suara. Pengenalan suara (voice recognition) dibagi menjadi dua jenis, yaitu speech recognition dan speaker recognition. Speech recognition adalah proses yang dilakukan
BAB III ANALISIS DAN PERANCANGAN
32 BAB III ANALISIS DAN PERANCANGAN Pada bab ini akan dibahas tentang analisis sistem melalui pendekatan secara terstruktur dan perancangan yang akan dibangun dengan tujuan menghasilkan model atau representasi
BAB II DASAR TEORI. luar dan daging iga sangat umum digunakan di Eropa dan di Amerika Serikat
6 BAB II DASAR TEORI 2.1. Daging Sapi dan Daging Babi 2.1.1.Daging Sapi Daging sapi adalah daging yang diperoleh dari sapi yang biasa dan umum digunakan untuk keperluan konsumsi makanan. Di setiap daerah,
PENGEMBANGAN SISTEM PENGENALAN EKSPRESI WAJAH MENGGUNAKAN JARINGAN SYARAF TIRUAN BACKPROPAGATION (STUDI KASUS PADA DATABASE MUG)
PENGEMBANGAN SISTEM PENGENALAN EKSPRESI WAJAH MENGGUNAKAN JARINGAN SYARAF TIRUAN BACKPROPAGATION (STUDI KASUS PADA DATABASE MUG) Zaenal Abidin Jurusan Matematika Universitas Negeri Semarang Kampus Sekaran
PENDAHULUAN. Latar Belakang
Latar Belakang PENDAHULUAN Penelitian mengenai pengenalan wajah termotivasi oleh banyaknya aplikasi praktis yang diperlukan dalam identifikasi wajah. Pengenalan wajah sebagai salah satu dari teknologi
BAB 1 PENDAHULUAN. 1.1 Latar Belakang
1 BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi perangkat lunak dewasa ini tidak terlepas dari berkembangnya studi mengenai kecerdasan buatan. Ada dua hal yang termasuk dari kecerdasan buatan
PERANCANGAN SISTEM PENGENALAN DAN PENYORTIRAN KARTU POS BERDASARKAN KODE POS DENGAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK
PERANCANGAN SISTEM PENGENALAN DAN PENYORTIRAN KARTU POS BERDASARKAN KODE POS DENGAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK OLEH ARIF MIFTAHU5R ROHMAN (2200 100 032) Pembimbing: Dr. Ir Djoko Purwanto, M.Eng,
PENGENALAN POLA GARIS DASAR KALIMAT PADA TULISAN TANGAN UNTUK MENGETAHUI KARAKTER SESEORANG DENGAN MENGGUNAKAN ALGORITMA RESILIENT BACKPROPAGATION
PENGENALAN POLA GARIS DASAR KALIMAT PADA TULISAN TANGAN UNTUK MENGETAHUI KARAKTER SESEORANG DENGAN MENGGUNAKAN ALGORITMA RESILIENT BACKPROPAGATION ABSTRAK Juventus Suharta (0722026) Jurusan Teknik Elektro
BAB II DASAR TEORI Jaringan Syaraf Tiruan. Universitas Sumatera Utara
BAB II DASAR TEORI Landasan teori adalah teori-teori yang relevan dan dapat digunakan untuk menjelaskan variabel-variabel penelitian. Landasan teori ini juga berfungsi sebagai dasar untuk memberi jawaban
KLASIFIKASI CITRA PARU MENGGUNAKAN MODEL SELF-ORGANIZING MAPS RADIAL BASIS FUNCTION NEURAL NETWORKS (SOM-RBFNN) SKRIPSI
KLASIFIKASI CITRA PARU MENGGUNAKAN MODEL SELF-ORGANIZING MAPS RADIAL BASIS FUNCTION NEURAL NETWORKS (SOM-RBFNN) SKRIPSI Diajukan kepada Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Negeri
BAB IV IMPLEMENTASI DAN PENGUJIAN
68 BAB IV IMPLEMENTASI DAN PENGUJIAN Bab ini membahas tentang program yang telah dianalisis dan dirancang atau realisasi program yang telah dibuat. Pada bab ini juga akan dilakukan pengujian program. 4.1
BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1. Forecasting Forecasting (peramalan) adalah seni dan ilmu untuk memperkirakan kejadian di masa yang akan datang. Hal ini dapat dilakukan dengan melibatkan data historis dan memproyeksikannya
BAB IV PENGUJIAN DAN ANALISIS
BAB IV PENGUJIAN DAN ANALISIS Bab ini akan membahas tentang pengujian dan analisis sistem. Pada pengujian akan dijelaskan tentang kriteria pengujian serta analisis dari pengujian 4.1. Kriteria Pengujian
BAB 3 METODOLOGI PENELITIAN
BAB 3 METODOLOGI PENELITIAN 3.1. Data Yang Digunakan Dalam melakukan penelitian ini, penulis membutuhkan data input dalam proses jaringan saraf tiruan backpropagation. Data tersebut akan digunakan sebagai
PENDAHULUAN. Latar Belakang
Latar Belakang PENDAHULUAN Biometrik adalah ilmu untuk menetapkan identitas seseorang berdasarkan ciri fisik, kimia, ataupun tingkah laku dari orang tersebut. Dewasa ini, biometrik telah menjadi suatu
Aplikasi yang dibuat adalah aplikasi untuk menghitung. prediksi jumlah dalam hal ini diambil studi kasus data balita
BAB III ANALISA DAN PERANCANGAN SISTEM 3.1. Analisa dan Kebutuhan Sistem Analisa sistem merupakan penjabaran deskripsi dari sistem yang akan dibangun kali ini. Sistem berfungsi untuk membantu menganalisis
BAB II DASAR TEORI. 2.1 Citra Digital
BAB II DASAR TEORI 2.1 Citra Digital Citra digital didefinisikan sebagai fungsi f (x,y) dua dimensi,dimana x dan y adalah koordinat spasial dan f(x,y) adalah disebut dengan intensitas atau tingkat keabuan
BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1 Citra Berikut adalah beberapa definisi dari citra, antara lain: rupa; gambar; gambaran (Kamus Besar Bahasa Indonesia). Sebuah fungsi dua dimensi, f(x, y), di mana x dan y adalah
BAB I PENDAHULUAN. mengenai deteksi wajah dengan Differential Evolution Based Neural Network
BAB I PENDAHULUAN 1.1. Latar Belakang Masalah Berdasarkan penelitian yang telah dilakukan oleh Yudistira Dewanata mengenai deteksi wajah dengan Differential Evolution Based Neural Network mendapatkan total
Neural Networks. Machine Learning
MMA10991 Topik Khusus - Machine Learning Dr. rer. nat. Hendri Murfi Intelligent Data Analysis (IDA) Group Departemen Matematika, Universitas Indonesia Depok 16424 Telp. +62-21-7862719/7863439, Fax. +62-21-7863439,
BAB 3 PROSEDUR DAN METODOLOGI. menawarkan pencarian citra dengan menggunakan fitur low level yang terdapat
BAB 3 PROSEDUR DAN METODOLOGI 3.1 Permasalahan CBIR ( Content Based Image Retrieval) akhir-akhir ini merupakan salah satu bidang riset yang sedang berkembang pesat (Carneiro, 2005, p1). CBIR ini menawarkan
BAB 3 PEMBAHASAN. 3.1 Sistem Absensi Berbasis Webcam
BAB PEMBAHASAN.1 Sistem Absensi Berbasis Webcam Sistem absensi berbasis webcam adalah sistem yang melakukan absensi karyawan berdasarkan input citra hasil capture webcam. Sistem akan melakukan posting
BAB 2 TINJAUAN PUSTAKA
5 BAB 2 TINJAUAN PUSTAKA 2.1. Analisis Analisis adalah kemampuan pemecahan masalah subjek kedalam elemen-elemen konstituen, mencari hubungan-hubungan internal dan diantara elemen-elemen, serta mengatur
BAB III METODE PENELITIAN
BAB III METODE PENELITIAN 3.1 Waktu dan Tempat Penelitian Waktu yang digunakan dalam penelitian ini yaitu dalam kurun waktu enam bulan terhitung mulai februari 2012 sampai juli 2012. Tempat yang digunakan
BAB III METODELOGI PENELITIAN. Alat yang digunakan dalam penelitian ini adalah: a. Prosesor : Intel Core i5-6198du (4 CPUs), ~2.
BAB III METODELOGI PENELITIAN 3.1 Alat dan Bahan Penelitian 3.1.1 Alat Alat yang digunakan dalam penelitian ini adalah: 1. Hardware a. Prosesor : Intel Core i5-6198du CPU @2.30GHz (4 CPUs), ~2.40GHz b.
Bab 5 Penerapan Neural Network Dalam Klasifikasi Citra Penginderaan Jauh
Penerapan Neural Dalam Klasifikasi Citra Penginderaan Jauh Klasifikasi citra penginderaan jarak jauh (inderaja) merupakan proses penentuan piksel-piksel masuk ke dalam suatu kelas obyek tertentu. Pendekatan
BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1 Definisi Citra, Pengolahan Citra, dan Pengenalan Pola Citra dapat dijelaskan sebagai dua dimensi dari fungsi f(x,y) dimana x dan y tersebut adalah sebuah koordinat pada bidang
BAB 1 PENDAHULUAN 1.1 Latar Belakang
BAB 1 PENDAHULUAN 1.1 Latar Belakang Pada masa sekarang ini komputer memiliki peran yang cukup besar dalam membantu menyelesaikan pekerjaan manusia. Seiring dengan perkembangan teknologi dan kecerdasan
BAB II LANDASAN TEORI
5 BAB II LANDASAN TEORI 2.1. Citra Digital Citra digital dapat didefenisikan sebagai fungsi f(x,y) yaitu dua dimensi, dimana x dan y merupakan koordinat spasial dan f(x,y) disebut dengan intensitas atau
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) IMPLEMENTASI JARINGAN SYARAF TIRUAN BACKPROPAGATION UNTUK MENGENALI MOTIF BATIK
IMPLEMENTASI JARINGAN SYARAF TIRUAN BACKPROPAGATION UNTUK MENGENALI MOTIF BATIK Fany Hermawan Teknik Informatika Universitas Komputer Indonesia Jl. Dipatiukur 112-114 Bandung E-mail : [email protected]
PENGENALAN WAJAH DENGAN METODE ADJACENT PIXEL INTENSITY DIFFERENCE QUANTIZATION TERMODIFIKASI
PENGENALAN WAJAH DENGAN METODE ADJACENT PIXEL INTENSITY DIFFERENCE QUANTIZATION TERMODIFIKASI Nama Mahasiswa : Yuliono NRP : 1206 100 720 Jurusan : Matematika Dosen Pembimbing : Drs. Soetrisno, M.IKomp
BAB I PENDAHULUAN 1.1 Latar Belakang
BAB I PENDAHULUAN 1.1 Latar Belakang Mata adalah indra terbaik yang dimiliki oleh manusia sehingga citra (gambar) memegang peranan penting dalam perspektif manuasia. Namun mata manusia memiliki keterbatasan
PERAMALAN HARGA SAHAM PERUSAHAAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK DAN AKAIKE INFORMATION CRITERION
Seminar Nasional Aplikasi Teknologi Informasi 20 (SNATI 20) ISSN: 19-5022 Yogyakarta, 16 Juni 20 PERAMALAN HARGA SAHAM PERUSAHAAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK DAN AKAIKE INFORMATION CRITERION
PENGENALAN HURUF DAN ANGKA PADA CITRA BITMAP DENGAN JARINGAN SARAF TIRUAN METODE PROPAGASI BALIK
PENGENALAN HURUF DAN ANGKA PADA CITRA BITMAP DENGAN JARINGAN SARAF TIRUAN METODE PROPAGASI BALIK Naskah Publikasi disusun oleh Zul Chaedir 05.11.0999 Kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
PENGENALAN POLA SIDIK JARI BERBASIS TRANSFORMASI WAVELET DAN JARINGAN SYARAF TIRUAN BACKPROPAGATION
PENGENALAN POLA SIDIK JARI BERBASIS TRANSFORMASI WAVELET DAN JARINGAN SYARAF TIRUAN BACKPROPAGATION 1 Andrian Rakhmatsyah 2 Sayful Hakam 3 Adiwijaya 12 Departemen Teknik Informatika Sekolah Tinggi Teknologi
BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1. Citra Digital Citra digital adalah citra yang bersifat diskrit yang dapat diolah oleh computer. Citra ini dapat dihasilkan melalui kamera digital dan scanner ataupun citra yang
Presentasi Tugas Akhir
Presentasi Tugas Akhir Bagian terpenting dari CRM adalah memahami kebutuhan dari pelanggan terhadap suatu produk yang ditawarkan para pelaku bisnis. CRM membutuhkan sistem yang dapat memberikan suatu
KOMPRESI CITRA DIGITAL DENGAN MENGGUNAKAN HEBBIAN BASED PRINCIPAL COMPONENT ANALYSIS
KOMPRESI CITRA DIGITAL DENGAN MENGGUNAKAN HEBBIAN BASED PRINCIPAL COMPONENT ANALYSIS 1 Sofyan Azhar Ramba 2 Adiwijaya 3 Andrian Rahmatsyah 12 Departemen Teknik Informatika Sekolah Tinggi Teknologi Telkom
PREDIKSI CURAH HUJAN DI KOTA MEDAN MENGGUNAKAN METODE BACKPROPAGATION NEURAL NETWORK
PREDIKSI CURAH HUJAN DI KOTA MEDAN MENGGUNAKAN METODE BACKPROPAGATION NEURAL NETWORK Yudhi Andrian 1, Erlinda Ningsih 2 1 Dosen Teknik Informatika, STMIK Potensi Utama 2 Mahasiswa Sistem Informasi, STMIK
PEMANFAATAN NEURAL NETWORK PERCEPTRON PADA PENGENALAN POLA KARAKTER
PEMANFAATAN NEURAL NETWORK PERCEPTRON PADA PENGENALAN POLA KARAKTER Fakultas Teknologi Informasi Universitas Merdeka Malang Abstract: Various methods on artificial neural network has been applied to identify
EVALUASI PENGARUH FUNGSI AKTIFASI DAN PARAMETER KEMIRINGANNYA TERHADAP UNJUKKERJA PENGENALAN JARINGAN SYARAF TIRUAN
EVALUASI PENGARUH FUNGSI AKTIFASI DAN PARAMETER KEMIRINGANNYA TERHADAP UNJUKKERJA PENGENALAN JARINGAN SYARAF TIRUAN (Studi Kasus pada Pengenalan Karakter Angka Tulisan Tangan) Iwan Suhardi Jurusan Teknik
3. METODE PENELITIAN
19 3. METODE PENELITIAN 3.1 Diagram Alir Penelitian Kerangka pemikiran pada penelitian ini dapat digambarkan dalam suatu bagan alir seperti pada Gambar 8. Gambar 8 Diagram Alir Penelitian Pengumpulan Data
BAB II LANDASAN TEORI
BAB II LANDASAN TEORI 2.1. Face Recognition Face recognition dapat dipandang sebagai masalah klasifikasi pola dimana inputnya adalah citra masukan dan akan ditentukan output yang berupa label kelas dari
TOLERANSI UNJUK PENGENALAN JARINGAN SYARAF TIRUAN PADA PENAMBAHAN DERAU DAN SUDUT PUTARAN TERHADAP POLA KARAKTER TULISAN TANGAN JENIS ANGKA
Iwan Suhardi, Toleransi Jaringan Syaraf Tiruan TOLERANSI UNJUK PENGENALAN JARINGAN SYARAF TIRUAN PADA PENAMBAHAN DERAU DAN SUDUT PUTARAN TERHADAP POLA KARAKTER TULISAN TANGAN JENIS ANGKA Iwan Suhardi Jurusan
Program Aplikasi Komputer Pengenalan Angka Dengan Pose Jari Tangan Sebagai Media Pembelajaran Interaktif Anak Usia Dini
Program Aplikasi Komputer Pengenalan Angka Dengan Pose Jari Tangan Sebagai Media Pembelajaran Interaktif Anak Usia Dini Wawan Kurniawan Jurusan PMIPA, FKIP Universitas Jambi [email protected] Abstrak
RANCANGAN AWAL SISTEM PRESENSI KARYAWAN STMIK BANJARBARU DENGAN PENDEKATAN EIGENFACE ALGORITHM
RANCANGAN AWAL SISTEM PRESENSI KARYAWAN STMIK BANJARBARU DENGAN PENDEKATAN EIGENFACE ALGORITHM RULIAH Jurusan Sistem Informasi STMIK Banjarbaru Jl. Jend. Ahmad Yani Km. 33.3 Loktabat Banjarbaru [email protected]
IDENTIFIKASI TANDA TANGAN MENGGUNAKAN MOMENT INVARIANT DAN ALGORITMA BACK PROPAGATION ABSTRAK
IDENTIFIKASI TANDA TANGAN MENGGUNAKAN MOMENT INVARIANT DAN ALGORITMA BACK PROPAGATION Nasep Muhamad Ramdan (0522135) Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg.
Klasifikasi Pola Huruf Vokal dengan Menggunakan Jaringan Saraf Tiruan
JURNAL TEKNIK POMITS 1-7 1 Klasifikasi Pola Huruf Vokal dengan Menggunakan Jaringan Saraf Tiruan Dhita Azzahra Pancorowati, M. Arief Bustomi Jurusan Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam,
IMPLEMENTASI JARINGAN SYARAF TIRUAN MULTI LAYER FEEDFORWARD DENGAN ALGORITMA BACKPROPAGATION SEBAGAI ESTIMASI NILAI KURS JUAL SGD-IDR
Seminar Nasional Teknologi Informasi dan Multimedia 205 STMIK AMIKOM Yogyakarta, 6-8 Februari 205 IMPLEMENTASI JARINGAN SYARAF TIRUAN MULTI LAYER FEEDFORWARD DENGAN ALGORITMA BACKPROPAGATION SEBAGAI ESTIMASI
KLASIFIKASI POLA HURUF VOKAL DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN BACKPROPAGATION. Dhita Azzahra Pancorowati
KLASIFIKASI POLA HURUF VOKAL DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN BACKPROPAGATION Dhita Azzahra Pancorowati 1110100053 Jurusan Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi
BAB 3 METODOLOGI. seseorang. Hal inilah yang mendorong adanya perkembangan teknologi
BAB 3 METODOLOGI 3.1. Kerangka Berpikir Pengenalan ekspresi wajah adalah salah satu bentuk representasi kecerdasan manusia yang dapat digunakan untuk mendeteksi kondisi emosi seseorang. Hal inilah yang
BAB IV HASIL PENELITIAN DAN PEMBAHASAN. 4.1 Pengembangan Sistem Pengenalan Wajah 2D
30 BAB IV HASIL PENELITIAN DAN PEMBAHASAN 4.1 Pengembangan Sistem Pengenalan Wajah 2D Penelitian ini mengembangkan model sistem pengenalan wajah dua dimensi pada citra wajah yang telah disiapkan dalam
