4854281 tesis sistem pendeteksi wajah manusia pada citra digital setyo nugroho

Upload: benny-s-purba

Post on 15-Jul-2015

672 views

Category:

Documents


0 download

TRANSCRIPT

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 iii PERNYATAAN Denganinisayamenyatakanbahwadalamtesisinitidakterdapatkarya yangpernahdiajukanuntukmemperolehgelarkesarjanaandisuatuPerguruan Tinggi,dansepanjangpengetahuansayatidakterdapatkaryaataupendapatyang pernahditulisatauditerbitkanolehoranglain,kecualiyangsecaratertulisdiacu dalam naskah ini dan disebutkan di dalam daftar pustaka. Jogjakarta, Maret 2004 SETYO NUGROHO iv vnv[ Iivn vvn )vviv ,vn cvn ncnv]vi[v vn,v[ nv [c]v [cv., .cnvnv, [c.vvvn, .inv v KATA PENGANTAR DenganmengucapAlhamdulillahirabbilalaminkamimemanjatkanpuji syukur ke hadirat Allah swt, atas rahmat, nikmat dan hidayah-Nya sehingga kami dapatmenyelesaikanpenulisantugasakhirini.Tugasakhirinidisusununtuk memenuhisebagianpersyaratanmencapaiderajatsarjanaS-2dalambidangIlmu Komputer di Program Pascasarjana Universitas Gadjah Mada Jogjakarta. Selamapenulisantesisinikamimenyadaribanyakpihaktelah memberikan bantuannya, sehingga pada kesempatan ini kami ingin mengucapkan terima kasih yang tulus kepada: Drs.AgusHarjoko,M.Sc,Ph.D,selakupembimbingtesisyangtelah memberikan bimbingannya dengan penuh kesabaran. Drs.RetantyoWardoyo,M.Sc,Ph.D,selakupengelolaprogramstudi Pascasarjana S2 Ilmu Komputer UGM Jogjakarta. Drs.SatriaDharma,selakuKetuaSTMIKSTIKOMBalikpapanyang telahmemberikankesempatankepadapenulisuntukmenempuhstudi lanjut dan selalu memberikan semangat kepada penulis untuk terus maju. DianFaridaAniesdanNadiaFitriZafira,istridananakkutercinta,yang dengan tulus telah memberikan kesempatan, dukungan, doa, pengorbanan, pengertian,kesabarandanketabahanyangluarbiasa,sehinggapenulis dapat menyelesaikan semua ini. Ibubapakdi Wonogiri dan di Surabaya, serta seluruh keluarga yang telah memberikan dukungan dan doanya. vi Teman-temanyangtelahmemberikanbanyakbantuan,pelajarandan pengalamanbarubagipenulisselamatinggaldiJogja:Murinto,Umar, Nusirwan, Eman, Yudhi, Hesti, Pak Nana, Aziz, Sari, Pak Jumhadi, Joko, Tito,MbakLia,Bernard,PakManik,BuUmi,PakSugeng,Eko,Rika, Eny,Adib,Harry,Robby,Devan,Dody,Jose,Dila,Iche,Leli,Dewi, Desti, Rama, Kevin. Pihak-pihaklainyangtidakbisakamisebutkansatu-persatuyangtelah memberikan bantuannya selama ini. Akhirkata,kamisadarbahwakamimasihmemilikiketerbatasandan kekurangansehinggakaryainimungkinmasihjauhdarisempurna.Untukitu saran dan kritik yang membangun akan kami terima dengan tangan terbuka. Jogjakarta, Maret 2004 Setyo Nugroho vii 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.......................................................................................... 1 1.1. Latar Belakang.............................................................................. 11.2. Perumusan Masalah...................................................................... 2 1.3. Batasan Masalah........................................................................... 2 1.4. Keaslian Penelitian ........................................................................ 2 1.5. Manfaat Penelitian........................................................................ 31.6. Tujuan Penelitian.......................................................................... 4 1.7. Tinjauan Pustaka........................................................................... 41.8. Sistematika Penulisan................................................................... 5 viii BAB II. Landasan Teori ...................................................................................... 6 2.1. Citra Digital.................................................................................. 6 2.2. Deteksi Wajah............................................................................... 7 2.2.1. Knowledge-Based Method.................................................... 9 2.2.2. Feature Invariant Approach ................................................. 10 2.2.3. Template Matching............................................................. 11 2.2.4. Appearance-Based Method................................................. 12 2.3. Jaringan Syaraf Tiruan.................................................................. 12 2.3.1. Multi-Layer Perceptron........................................................ 13 2.3.2. Supervised Learning ............................................................ 14 2.3.3. Algoritma Backpropagation................................................ 15 2.3.4. Variasi pada Algoritma Backpropagation........................... 17 2.3.5. Algoritma Quickprop.......................................................... 18 BAB III. Perancangan dan Implementasi Sistem ............................................. 20 3.1. Data dan Peralatan Penelitian ........................................................ 20 3.2. Perancangan Sistem ....................................................................... 21 3.2.1. Diagram Aliran Data (Data Flow Diagram) ........................ 22 3.2.2. Jaringan Syaraf Tiruan........................................................ 26 3.2.3. Pelatihan Active Learning................................................... 28 3.2.4. Detektor Wajah................................................................... 30 3.2.4.1. Ekstraksi Subcitra................................................... 32 3.2.4.2. Resizing.................................................................. 32 3.2.4.3. Histogram Equalization ........................................... 33 ix 3.2.4.4. Masking.................................................................. 34 3.2.4.5. Penggabungan (Merging) Kandidat Wajah ............. 34 3.2.4.6. User Interface .......................................................... 35 3.3. Implementasi Sistem..................................................................... 35 3.3.1. Jaringan Syaraf Tiruan........................................................ 36 3.3.2. Window Scanning ................................................................ 39 3.3.3. Resizing................................................................................ 40 3.3.4. Histogram Equalization........................................................ 41 3.3.5. Masking............................................................................... 42 3.3.6. Penggabungan (Merging) Kandidat Wajah ......................... 45 BAB IV. Hasil dan Pembahasan...................................................................... 47 4.1. Pengukuran Evaluasi Unjuk Kerja................................................ 47 4.2. Hasil Deteksi Kandidat Wajah...................................................... 47 4.3. Hasil Deteksi................................................................................. 48 4.4. Pengaruh Jumlah Data Training yang Digunakan........................ 52 4.5. Pengaruh Algoritma Quickprop pada Kecepatan Training............ 53 4.6. Pengaruh Metode Active Learning............................................... 53 BAB V. Kesimpulan Dan Saran...................................................................... 55 5.1. Kesimpulan................................................................................... 55 5.2. Saran .............................................................................................. 56 Daftar Pustaka Lampiran x 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 3.10.Contoh citra yang telah mengalami prosesresizing, histogram equalization, dan masking ......................... 44 Gambar 3.11.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 Positivedan Wajah yang Tidak Terdeteksi............................................ 51 xi DAFTAR TABEL Halaman Tabel 4.1. Beberapa hasil deteksi pada data uji MIT-23 .................................. 49 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 INTISARI Pendeteksianwajah(facedetection)adalahsalahsatutahapawalyang sangat penting dalam sistem pengenalan wajah (face recognition) yang digunakan dalam identifikasi biometrik. Deteksi wajah juga dapat digunakan untuk pencarian ataupengindeksandatawajahdaricitraatauvideoyangberisiwajahdengan berbagaiukuran,posisi,danlatarbelakang.Dalampenelitianini diimplementasikan sistem deteksi wajah yang menggunakan jaringan syaraf tiruan multi-layerperceptrondanalgoritmaQuickprop.Sistemdeteksiwajah memperolehkemampuandeteksinya dengan cara belajar dari contoh (learning by examples).Pelatihandilakukandenganmetodeactivelearninguntuk meminimalkanbanyaknyadatayangdigunakanuntukpelatihan.Hasilpenelitian menunjukkanbahwaakurasidarisistemdeteksiwajahsangattergantungpada jumlah dan jenis data yang digunakan dalam pelatihan. Algoritma Quickprop dan teknikactivelearningdapatdimanfaatkanuntukmembantumempercepatproses pelatihan. (Kata kunci: deteksi wajah, jaringan syaraf tiruan, Quickprop, active learning)

ABSTRACT Facedetectionisoneofthemostimportantpreprocessingstepinface recognitionsystemsusedinbiometricidentification.Facedetectioncanalsobe usedinsearchingandindexingstillimageorvideocontainingfacesinvarious size, position, and background. This paper describes a face detection system using multi-layerperceptronandQuickpropalgorithm.Thesystemachievesitsability by means of learning by examples. The training is performed using active learning methodtominimizetheamountofdatausedintraining.Experimentalresults 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) 1 BAB I PENDAHULUAN 1.1. Latar Belakang Masalah Teknologipengenalanwajahsemakinbanyakdimanfaatkan,antaralain untuksistempengenalanbiometrik(disampingfiturbiometrikyanglainseperti sidik jari dan suara), sistem pencarian dan pengindeksan database citra digital dan databasevideodigital,sistemkeamanankontrolaksesareaterbatas,konferensi video, dan interaksi manusia dengan komputer.Pendeteksianwajah(facedetection)adalahsalahsatutahapawalyang sangatpentingsebelumdilakukanprosespengenalanwajah(facerecognition). Pada kasus seperti pemotretan untuk pembuatan KTP, SIM, dan kartu kredit, citra yangdidapatkanumumnyahanyaberisisatuwajahdanmemilikilatarbelakang seragamdankondisipencahayaanyangtelahdiatursebelumnyasehinggadeteksi wajah dapat dilakukan dengan lebih mudah.Namunpadakasuslainseringdidapatkancitrayangberisilebihdarisatu wajah,memilikilatarbelakangyangbervariasi,kondisipencahayaanyangtidak tentu,danukuranwajahyangbervariasididalamcitra.Contohnyaadalahcitra yang diperoleh di bandara, terminal, pintu masuk gedung, pusat perbelanjaan, dan citra yang didapatkan dari foto di media massa atau hasil rekaman video. 2 1.2. Perumusan Masalah Masalahdeteksiwajahdapatdirumuskansebagaiberikut:diberikan masukansebuahcitradigitalsembarang,makasistemakanmendeteksiapakah adawajahmanusiadidalamcitratersebut.Jikaadamakasistemakan memberitahuberapawajahyangditemukandanlokasiwajah-wajahtersebutdi dalam citra. Keluaran dari sistem adalah posisi subcitra berisi wajah yang berhasil dideteksi. 1.3. Batasan Masalah Untukmenjagafokusdaripenelitianini,makabeberapabatasanyang diberikan adalah sebagai berikut : Wajahyangakandideteksiadalahwajahyangmenghadapkedepan (frontal), dalam posisi tegak, dan tidak terhalangi sebagian oleh objek lain. Metodeyangdipakaiadalahjaringansyaraftiruanmulti-layerperceptron dengan algoritma pelatihan Quickprop. Citra yang dideteksi menggunakan format BMP atau JPG. 1.4.Keaslian Penelitian Penelitiantentangdeteksiwajahdanpengenalanwajahtelahdilakukan sebelumnya,antaralaindenganmenggunakanmetodeEigenface[Turkdan Pentland,1991],dengandistribusiGaussiandanclustering[SungdanPoggio, 1994],denganjaringansyaraftiruandanarbitrasi[Rowleyetal.,1998],dengan 3 supportvectormachine[Osunaetal.,1997],dandenganmetodestatistikdan wavelet [Schneiderman, 2000]. Padapenelitian[Rowleyetal.,1998]digunakanjaringansyaraftiruan yangdilatihdenganmenggunakanalgoritmabackpropagationstandardengan momentum.Sedangkanpadatesisiniakandibuatsistempendeteksiwajahyang menggunakanjaringansyaraftiruandandilatihdenganmenggunakanalgoritma Quickprop.AlgoritmaQuickpropinipertamakalidiperkenalkanpada[Fahlman, 1988]dengantujuanuntukmempercepatprosestrainingpadajaringansyaraf tiruan. Kemudianakandilakukanpenelitianpadapengaruhberbagaiparameter yangdigunakanterhadapunjukkerjadarisistem.Parameter-parameteryang digunakanmisalnyabanyaknyadatatraining,penggunaanalgoritmaQuickprop padakecepatantraining,danpenggunaanmetodeactivelearningpadahasil pelatihan. 1.5. Manfaat Penelitian Manfaat daripenelitian ini adalah : Dapat digunakan untuk mendeteksi wajah manusia pada citra digital. Dapatdimanfaatkansebagaisalahsatutahappraprosesdarisistem pengenalan wajah atau verifikasi wajah. Dapatdigunakanuntukmengumpulkandatawajahsecaraotomatisdari citra yang berisi wajah dengan berbagai ukuran, posisi, dan latar belakang. 4 1.6.Tujuan Penelitian Tujuandaripenelitianiniadalahuntukmembuatsistemdeteksiwajah denganmasukanberupacitradigitalsembarang.Sisteminiakanmenghasilkan subcitra berisi wajah-wajah yang berhasil dideteksi. 1.7. Tinjauan Pustaka Deteksiwajahdapatdipandangsebagaimasalahklasifikasipoladimana dengan input berupa citra masukan akan ditentukan output berupa label kelas dari citratersebut.Dalamhaliniterdapatdualabelkelas,yaituwajahdannon-wajah [Sung, 1996]. Teknik-teknikpengenalanwajahyangdilakukanselamainibanyakyang menggunakan asumsi bahwa data wajah yang tersedia memiliki ukuran yang sama danlatarbelakangyangseragam.Didunianyata,asumsiinitidakselaluberlaku karenawajahdapatmunculdidalamcitradenganberbagaiukuran,berbagai posisi, dan latar belakang yang bervariasi [Hjelmas, Low, 2001]. Pendeteksianwajah(facedetection)adalahsalahsatutahapawal (preprocessing)yangsangatpenting sebelum dilakukan proses pengenalan wajah (facerecognition).Bidang-bidangpenelitianyangjugaberkaitandengan pemrosesanwajah(faceprocessing)adalahautentikasiwajah(face authentication),lokalisasiwajah(facelocalization),penjejakanwajah(face tracking),danpengenalanekspresiwajah(facialexpressionrecognition)[Yang, 2002]. 5 1.8. Sistematika Penulisan Sistematika penulisan terdiri dari : BAB I. Pendahuluan Babinimenguraikantentanglatarbelakang,perumusanmasalah,batasan masalah, keaslian penelitian, manfaat penelitian, tujuan penelitian, tinjauan pustaka, dan sistematika penulisan. BAB II. Landasan Teori Babinimembahasdasar-dasarteoridaricitradigital,deteksiwajah, jaringansyaraftiruan,algoritmabackpropagation,algoritmaQuickprop, 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 Babinimembahastentanghasilpengujiandanpembahasandarisistem deteksi wajah. BAB V. Kesimpulan dan Saran Bab ini menguraikan kesimpulan dari penelitian dan saran-saran. 6 BAB IILANDASAN TEORI 2.1. Citra Digital Citra digital adalah suatu citra f(x,y) yang memiliki koordinat spatial, dan tingkatkecerahanyangdiskrit.Citrayangterlihatmerupakancahayayang direfleksikandarisebuahobjek.Fungsi( ) y x f , dapatdilihatsebagaifungsi dengan dua unsur. Unsur yang pertama merupakan kekuatan sumber cahaya yang melingkupipandangankitaterhadapobjek(illumination).Unsuryangkedua merupakanbesarnyacahayayangdirefleksikanolehobjekkedalampandangan kita(reflectancecomponents).Keduanyadituliskansebagaifungsi( ) y x i , dan ( ) y x r , yangdigabungkansebagaiperkalianfungsiuntukmembentukfungsi ( ) y x f , . Fungsi( ) y x f ,dapat dituliskan dengan persamaan : ( ) ( ) ( ) y x r y x i y x f , , , = (2.1) di mana( ) ( ) 1 , 0 dan, 0 < < < < y x r y x iCitradigitalmerupakansuatumatriksyangterdiridaribarisdankolom, dimana setiap pasangan indeks baris dan kolom menyatakan suatu titik pada citra. Nilaimatriksnyamenyatakannilaikecerahantitiktersebut.Titik-titiktersebut dinamakansebagaielemencitra,ataupixel(pictureelemen).[Gonzalesand Woods, 1992]. 7 Histogram equalization Histogramequalizationdigunakanuntukmelakukanperluasankontras 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 pr(rk) adalah probabilitas munculnya level grayscale rk di dalam citra. 1 ,..., 1 , 0 1 0 ) ( = = L k dan rnnr pkkk r(2.2) dimanaLadalahbanyaknyalevelgrayscale,nk adalahbanyaknyapixeldengan level grayscale rk muncul di dalam citra, dan n adalah banyaknya seluruh pixel di dalam citra.1 ,..., 1 , 0 1 0 ) (0 0 = = = = = =L k dan rnnnnr T skkjjkjjk k(2.3) 2.2. Deteksi Wajah Deteksiwajahdapatdipandangsebagaimasalahklasifikasipoladimana inputnya adalah citra masukan dan akan ditentukan output yang berupa label kelas daricitratersebut.Dalamhaliniterdapatdualabelkelas,yaituwajahdannon-wajah [Sung, 1996]. Teknik-teknikpengenalanwajahyangdilakukanselamainibanyakyang menggunakan asumsi bahwa data wajah yang tersedia memiliki ukuran yang sama danlatarbelakangyangseragam.Didunianyata,asumsiinitidakselaluberlaku karena wajah dapat muncul dengan berbagai ukuran dan posisi di dalam citra dan dengan latar belakang yang bervariasi [Hjelmas, Low, 2001]. 8 Pendeteksianwajah(facedetection)adalahsalahsatutahapawalyang sangatpentingsebelumdilakukanprosespengenalanwajah(facerecognition). Bidang-bidangpenelitianyangberkaitandenganpemrosesanwajah(face processing) adalah [Yang, 2002]: Pengenalanwajah(facerecognition)yaitumembandingkancitrawajah masukan dengan suatu database wajah dan menemukan wajah yang paling cocok dengan citra masukan tersebut. Autentikasiwajah(faceauthentication)yaitumengujikeaslian/kesamaan suatu wajah dengan data wajah yang telah diinputkan sebelumnya. Lokalisasiwajah(facelocalization)yaitupendeteksianwajahnamun dengan asumsi hanya ada satu wajah di dalam citra Penjejakan wajah (face tracking) yaitu memperkirakan lokasi suatu wajah di dalam video secara real time. Pengenalanekspresiwajah(facialexpressionrecognition)untuk mengenali kondisi emosi manusia. Tantanganyangdihadapipadamasalahdeteksiwajahdisebabkanoleh 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-komponenpadawajahyangbisaada 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. 9 Terhalangobjeklain.Citrawajahdapatterhalangisebagianolehobjek atau wajah lain, misalnya pada citra berisi sekelompok orang. Kondisipengambilancitra.Citrayangdiperolehsangatdipengaruhioleh faktor-faktorsepertiintensitascahayaruangan,arahsumbercahaya,dan karakteristik sensor dan lensa kamera. Penelitiandari[Yang,2002]mengelompokkanmetodedeteksiwajah menjadi empat kategori, yaitu: 1.Knowledge-basedmethod.Metodeinikebanyakandigunakanuntuk lokalisasi wajah. 2.Featureinvariantapproach.Metodeinikebanyakandigunakanuntuk lokalisasi wajah. 3.Template matching method. Metode ini digunakan untuk lokalisasi wajah maupun deteksi wajah. 4.Appearance-basedmethod.Metodeinikebanyakandigunakanuntuk deteksi wajah. 2.2.1. Knowledge-Based Method Metodeinimenggunakandasaraturan-aturanyangbiasanyadigunakan olehmanusiauntukmenentukanapasajayangmembentuksuatuwajah.Pada pendekatanini,metodedeteksiwajahdikembangkanberdasarpadaaturan(rule) yang didapat dari pengetahuan para peneliti tentang wajah manusia. Sebagaicontoh,suatuwajahdidalamcitrabiasanyamemilikiduabuah matayangsimetris,sebuahhidung,dansebuahmulut.Relasiantarafitur-fitur 10 tersebutdapatdirepresentasikansebagaijarakatauposisi.Padatahappertama fitur-fiturwajahdiekstraksilebihdulu,kemudiankandidatwajahditentukan berdasarkan aturan yang dipakai. Masalahutamapadapendekataniniadalahkesulitandalam menerjemahkanpengetahuanmanusiakedalamaturanyangakandipakai.Jika aturannyaterlaludetail(strict),makaakanseringgagalmendeteksiwajahyang tidakmemenuhiaturantersebut.Jikaaturannyaterlaluumum(general),akan menghasilkan terlalu banyak false positive. Masalahnya akan bertambah sulit jika harusmendeteksiwajahdenganposeyangbervariasikarenaaturanyangdipakai harusdapatmenghadapisemuakemungkinanyangada.Metodeinibiasanya hanyadapatbekerjadenganbaikpadawajahfrontaldantegakdenganlatar belakang sederhana. 2.2.2. Feature Invariant Approach Algoritmapadametodeinibertujuanuntukmenemukanfitur-fitur strukturaldariwajahyangtetapeksismeskipunterdapatvariasipose,sudut pandang,dankondisicahaya.Padapendekatanini,parapenelitimencoba menemukanfitur-fituryangtidakberubah(invariant)padawajah.Asumsiini didasarkan pada observasi bahwa manusia dapat dengan mudah mendeteksi wajah denganberbagaiposedan kondisi cahaya, sehingga disimpulkan bahwa pasti ada sifat-sifatataufitur-fituryangbersifatinvariant.Fiturwajahsepertialis,mata, hidung,mulut,biasanyadiekstraksidenganedgedetector.Selanjutnyadibentuk 11 suatumodelstatistikyangmendeskripsikanhubunganantarafitur-fiturtersebut untuk menentukan ada tidaknya wajah. Warnakulitmanusiajugadapatdigunakanuntukmembantu memperkirakanareawajah.Namunbiasanyadeteksiwarnakulitini dikombinasikandenganmetodelainnyasepertishapeanalysisdanmotion information [Yang, 1998]. 2.2.3. Template Matching Padametodeiniakandisimpanbeberapapolawajahstandaruntuk mendeskripsikanwajahsecarakeseluruhanmaupunbagian-bagiannya.Padasaat pendeteksianakandihitungkorelasiantaracitrainputdengancitrapolawajah yang tersimpan sebelumnya. Padapendekatanini,parapenelitimencobamenemukanfitur-fituryang tidakberubah(invariant)padawajah.Asumsiinididasarkanpadaobservasi bahwa manusia dapat dengan mudah mendeteksi wajah dengan berbagai pose dan kondisicahaya,sehinggatentunyaadasifat-sifatataufitur-fituryangbersifat invariant.Fiturwajahsepertialis,mata,hidung,mulut,biasanyadiekstraksi denganedgedetector.Selanjutnyadibentuksuatumodelstatistikyang mendeskripsikanhubunganantarafitur-fiturtersebutuntukmenentukanada tidaknya wajah. 12 2.2.4. Appearance-Based Method Padametodeini,modelwajahdipelajarimelaluiprosestrainingdengan menggunakan satu set data pelatihan yang berisi contoh-contoh wajah. Kemudian hasiltraininginidigunakanuntukmendeteksiwajah.Secaraumummetodeini menggunakanteknik-teknikdarianalisastatistikdanmachinelearninguntuk menemukankarakteristik-karakteristikyangrelevandariwajahmaupunnon-wajah. Yangtermasukdalamkelompok ini antara lain adalah metode Eigenfaces [Kirby,Sirovich,1990],distribution-baseddanclustering[Sung,Poggio,1994], jaringansyaraftiruan[Rowley,1998],supportvectormachines(SVM)[Osuna, 1997], Sparse Network of Winnows (SNoW) [Yang, 2000], Naive Bayes Classifier [Schneiderman,1998],HiddenMarkovModel(HMM)[Nefian,1998],Kullback relative information [Colmenarez, 1997], dan decision trees [Huang, 1996]. 2.3. Jaringan Syaraf Tiruan Jaringansyaraftiruanadalahsuatusistempemrosesaninformasiyang carakerjanyamemilikikesamaantertentudenganjaringansyarafbiologis [Fausett,1994].Jaringansyaraftiruandikembangkansebagaimodelmatematis 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.Setiappenghubungmemilikibobotyangakanmengalikansinyalyang lewat. 13 4.Setiap neuron memiliki fungsi aktivasi yang akan menentukan nilai sinyal output. Jaringansyarafdapatdigolongkanmenjadiberbagaijenisberdasarkan padaarsitekturnya,yaitupolahubunganantaraneuron-neuron,danalgoritma trainingnya, yaitu cara penentuan nilai bobot pada penghubung. 2.3.1. Multi-Layer Perceptron Multi-LayerPerceptronadalahjaringansyaraftiruanfeed-forwardyang terdiridarisejumlahneuronyangdihubungkanolehbobot-bobotpenghubung. Neuron-neurontersebutdisusundalamlapisan-lapisanyangterdiridarisatu lapisan input (input layer), satu atau lebih lapisan tersembunyi (hidden layer), dan satulapisanoutput(outputlayer).Lapisaninputmenerimasinyaldariluar, kemudianmelewatkannyakelapisantersembunyipertama,yangakanditeruskan sehingga akhirnya mencapai lapisan output [Riedmiller, 1994]. Setiapneuronididalamjaringanadalahsebuahunitpemrosesan sederhana yang menghitung nilai aktivasinya yaitu si terhadap input eksitasi yang juga disebut net input neti.

=) (i pred ji ij j iw s net (2.4) dimanapred(i)melambangkanhimpunanpredesesordariuniti,wij melambangkanbobotkoneksidariunitjkeuniti,daniadalahnilaibiasdari uniti.Untukmembuatrepresentasimenjadilebihmudah,seringkalibias digantikandengansuatubobotyangterhubungdenganunitbernilai1.Dengan demikian bias dapat diperlakukan secara sama dengan bobot koneksi. 14 Aktivasidariuniti,yaitusi,dihitungdenganmemasukkannetinputke dalamsebuahfungsiaktivasinon-linear.Biasanyadigunakanfungsilogistik sigmoid: ineti ienet f s+= =11) (log(2.5) Salahsatukeuntungandarifungsiiniadalahmemilikiderivatifyangmudah dihitung: ) 1 ( * ) (log i i iiis s net fnets = =(2.6) Nilai dari fungsi sigmoid di atas memiliki nilai output antara 0 dan 1. Jika diinginkannilaioutputantara1dan1,dapatdigunakanfungsibipolarsigmoid berikut [Fausett, 1994]: 112) (log+= =ineti ienet g s (2.7) Derivatif dari fungsi tersebut adalah: ) 1 ( * ) 1 (21) (log i i iiis s net gnets + = (2.8) 2.3.2. Supervised Learning Tujuanpadapembelajaransupervisedlearningadalahuntukmenentukan nilaibobot-bobotkoneksididalamjaringansehinggajaringandapatmelakukan pemetaan(mapping)dariinputkeoutputsesuaidenganyangdiinginkan. Pemetaan ini ditentukan melalui satu set pola contoh atau data pelatihan (training data set). 15 Setiappasanganpolapterdiridarivektorinputxpdanvektortargettp. Setelahselesaipelatihan,jikadiberikanmasukanxpseharusnyajaringan menghasilkan nilai output tp. Besarnya perbedaan antara nilai vektor target dengan output aktual diukur dengan nilai error yang disebut juga dengan cost function:

=P p npnpns t E2) (21(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. 2.3.3. Algoritma Backpropagation Salahsatualgoritmapelatihanjaringansyaraftiruanyangbanyak dimanfaatkandalambidangpengenalanpolaadalahbackpropagation.Algoritma iniumumnyadigunakanpadajaringansyaraftiruanyangberjenismulti-layer feed-forward,yangtersusundaribeberapalapisandansinyaldialirkansecara searah dari input menuju output. Algoritmapelatihanbackpropagationpadadasarnyaterdiridaritiga 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 Ketigatahapantersebutdiulangiterus-menerussampaimendapatkannilaierror yangdiinginkan.Setelahtrainingselesaidilakukan,hanyatahappertamayang diperlukan untuk memanfaatkan jaringan syaraf tiruan tersebut. 16 Secaramatematis[Rumelhart,1986],idedasardarialgoritma backpropagationinisesungguhnyaadalahpenerapandariaturanrantai(chain rule) untuk menghitung pengaruh masing-masing bobot terhadap fungsi error: ijii ijwssEwE=(2.10) dan j iijiiiijis net fwnetnetsws) (log ==(2.11) dimana ijwadalah bobot penghubung dari neuron j ke neuron i, isadalah output, dan inetadalah jumlah hasilkali pada input dari neuron i. Untukmenghitung is E ,yaitupengaruhoutputsiterhadaperrorE, dapat dibedakan menjadi dua kasus berikut: jika i adalah unit output, maka: ) () (212i iii iis tss tsE = =(2.12) jikaibukanunitoutput,makaperhitungan is E menjadisedikitlebih kompleks. Di sini digunakan lagi aturan rantai:

=) (i succ k ikk isssEsE

=) (i succ k ikkkksnetnetssE

=) (log) (i succ kki kkw net fsE(2.13) 17 dimanasucc(i)melambangkansemuaunitkyangadadidalamlayer berikutnya ke arah output layer. Persamaan (2.11) memiliki asumsi bahwa nilai ks E untuk unit di layer berikutnyayangterhubungdenganunititelahdiketahuinilainya.Untukitu perhitungandilakukanmulaidarioutputlayer,kemudianbarumenghitung derivatifunit-unitdilayersebelumnyadenganmenggunakanpersamaan(2.11). Dengankatalain,informasierrordipropagasikansecaraberurutanbermuladari outputlayerdanberakhirpadainputlayer,sehinggaalgoritmainidiberinama backpropagation [Riedmiller, 1994]. Setelahdidapatkanderivatifparsialdarisetiapbobotpenghubung, maka untuk meminimisasi fungsi error dilakukan metode gradient descent: ) ( ) ( ) 1 ( t w t w t wij ij ij + = + (2.14) dan ) ( ) ( twEt wijij = (2.15) Pilihan nilai learning rateakan sangat berpengaruh pada proses training. Jikaterlalukecil,trainingakanmemerlukaniterasiyangbanyaksehinggalamauntuk mencapai konvergen. Jikaterlalu besar, bisa timbul osilasi sehingga tidak akan mencapai nilai error yang diharapkan. 2.3.4. Variasi pada Algoritma Backpropagation Salahsatumetodepalingawalyangdiusulkanuntukmengatasi masalah lamanya waktu training adalah dengan menambahkan term momentum: 18 ) 1 ( ) ( ) ( + = t w twEt wijijij (2.16) di mana parameter momentumakan menentukan besarnya pengaruh perubahan bobotpadaiterasisebelumnya.Carainidapatbekerjadenganbaikpadakasus tertentu,namuntidakbersifatumum.Kadang-kadangmalahdiperolehhasil yang lebih baik tanpa menggunakan momentum sama sekali [Riedmiller, 1994]. Adabeberapaalgoritmayangtelahdiusulkanuntukmempercepatproses trainingpadajaringanmulti-layerperceptron.Diantaranyaadalahalgoritma Quickprop[Fahlman,1988],resilientpropagation(RPROP)[Riedmiller,1993], dan Scaled Conjugate Gradient (SCG) [Moller, 1990]. 2.3.5. Algoritma Quickprop PadaalgoritmaQuickpropdilakukanpendekatandenganasumsibahwa kurva fungsi error terhadap masing-masing bobot penghubung berbentuk parabola yangterbukakeatas,dangradiendarikurvaerroruntuksuatubobottidak terpengaruholehbobot-bobotyanglain[Fahlman,1988].Dengandemikian perhitunganperubahanbobothanyamenggunakaninformasilokalpadamasing-masingbobot.PerubahanbobotpadaalgoritmaQuickpropdirumuskansebagai berikut: ) 1 ( *) ( ) 1 () () ( ) ( + = t wtwEtwEtwEtwEt w (2.17) di mana: 19 ) (t w : perubahan bobot ) 1 ( t w: perubahan bobot pada epoch sebelumnya : adalah learning rate ) (twE : derivatif error ) 1 ( twE : derivatif error pada epoch sebelumnya PadaeksperimendenganmasalahXORdanencoder/decoder[Fahlman, 1988],terbuktibahwaalgoritmaQuickpropdapatmeningkatkankecepatan training.Eksperimendari[Schiffmann,1993]jugamenunjukkanpeningkatan kecepatan training dan unjuk kerja yang signifikan. 20 BAB III PERANCANGAN DAN IMPLEMENTASI SISTEM 3.1. Data dan Peralatan Penelitian Datayangdigunakandalampenelitianiniterdiridarisekumpulancitra untuk pelatihan (training data set) dan sekumpulan citra untuk pengujian (testing dataset).Citrauntukpelatihanmaupununtukpengujiandiperolehdariberbagai sumbersepertifoto,majalah,koran,televisi,daninternet.Citrayangakan digunakanuntukpengujiantidakakandigunakandalampelatihan.Citrayang digunakan memiliki 256 level keabuan (grayscale).Datacitrauntukpelatihandanpengujianyangdiperolehdariinternet antara lain berasal dari: -TheORLDatabaseofFaces,AT&TLaboratoriesCambridge(URL: http://www.uk.research.att.com/pub/data/att_faces.tar.Z),-TestImagesfortheFaceDetectionTaskdariMITdanCMU(URL: http://www.cs.cmu.edu/~har/faces.html), -CBCLFaceDatabase#1,MITCenterForBiologicalandComputation Learning (URL: http://www.ai.mit.edu/projects/cbcl), -UMISTFaceDatabase[Graham,Allinson,1998](URL: http://images.ee.umist.ac.uk/danny/index.html). Jumlahcitradatawajahyangdigunakansebanyak1000citrawajah berukuran20x20pixel.Prosespemotongan(cropping)bagianwajahdaricitra dilakukansecaramanual.Kemudiandilakukanpreprocessingyangberupa 21 resizing, histogram equalization, dan masking. Dari 1000 citra wajah tersebut juga dibuat 2000 citra tambahan dengan cara melakukan proses pencerminan dan rotasi dari5sampai10derajatterhadapcitraasalsecararandom,sehinggasecara keseluruhan diperoleh 3000 citra wajah. Citranon-wajahdiambildari96filecitrayangtidakterdapatwajahdi dalamnya.Contohcitranon-wajahadalahgambarpemandangandalamdanluar ruangan,pepohonan,bunga,batuan,bangunan,danlain-lain.Jikadiambil seluruhnya,akandidapatkanlebihdari36jutasubcitraberukuran20x20pixel. Tidaksemuasubcitranon-wajahtersebutakandiambiluntukpelatihan,namun dipilih secara otomatis dengan teknik active learning sebagaimana akan dijelaskan kemudian. Peralatanyangdigunakandalampenelitianiniadalahseperangkat komputerdenganprosesorIntelCeleron667MHz,memori256MBSDRAM, harddisk20GB,danscanner.Implementasiperangkatlunaknyaditulisdengan menggunakan bahasa program C++ dengan compiler Borland C++ Builder. 3.2. Perancangan Sistem Secaragarisbesarsistemdeteksiwajahyangdibangundisinidibagi menjadi dua bagian utama, yaitu: -TrainerJST(JaringanSyarafTiruan),digunakanuntukpelatihanyang akan menghasilkan nilai bobot-bobot penghubung jaringan syaraf tiruan. -Detektorwajah,digunakanuntukmendeteksiwajahdidalamcitrasetelah pelatihan selesai dilakukan. 22 Gambarberikutmenunjukkanperancangansistemdeteksiwajahsecaragaris besar. Gambar 3.1. Sistem Deteksi Wajah 3.2.1. Diagram Aliran Data (Data Flow Diagram) Diagramalirandata(DFD) dari sistem deteksi wajah terdiri dari 2 bagian utama,yaitu:SistemTrainerJSTdanSistemDetektorWajah.Gambar3.2 menunjukkan DFD level 0 dari Sistem Trainer JST. Gambar 3.2. DFD level 0 Sistem Trainer JST HasilDeteksi TestingData Set TrainingData Set DetektorWajah Trainer JST Bobot JST Hasil Training Citra Masukan SistemTrainer JST User Training Data Set TampilanProses Training User 23 SistemTrainerJSTdijabarkanlebihlanjutdenganDFDlevel1yang ditunjukkan pada gambar 3.3. Training data set terdiri dari contoh wajah maupun non-wajahberukuran20x20pixel.Trainingdatasetakanmengalami preprocessing berupa histogram equalization, masking, dan normalisasi. Hasil dari preprocessinginidijadikansebagaiinputuntukprosestrainingyang 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 disimpankedalamfileyangdikehendakiolehuser.Fileininantinyaakan digunakan di dalam proses deteksi wajah. Gambar 3.3. DFD level 1 Sistem Trainer JST User Contoh wajah User Citra telahdi-normalisasi Bobot JST 1. Histogram Equalization Nilai Bobot JST Tampilan Proses Training Contoh non-wajah 2. Masking 3. Normalisasi Citra telahdi-masking Citra telah diproses hist. equalization 4. Training 24 Gambar3.4menunjukkanDFDlevel0dariSistemDetektorWajah. Sedangkan penjabaran lebih lanjut dari Sistem Detektor Wajah yang berupa DFD level 1 ditunjukkan pada gambar 3.5. Gambar 3.4. DFD level 0 Sistem Detektor Wajah Usermemberikanmasukankepadasistemdetektorwajahberupacitra masukanyangakandideteksidanfilebobotJSTyangdiperolehdarihasil training. Citra masukan ini akan dibaca dan dikonversi menjadi array.Selanjutnyapadacitratersebutdilakukanpencariankandidatwajah. Pencariankandidatwajahdilakukandenganekstraksisubcitramenggunakan window berukuran 20x20. Window ini digeser ke seluruh daerah citra, mulai dari sudutkiriatassampaisudutkananbawah,dengantujuanagardapatmendeteksi wajah di semua posisi di dalam citra. Pada proses ekstraksi subcitra ini citra juga akandiperkecilsecaraberulangdenganperbandingan1:1.2dengantujuanagar dapat mendeteksi wajah dengan semua ukuran di dalam citra. Selanjutnyasubcitra20x20pixeltersebutakanmengalamipreprocessing berupahistogramequalization,masking,dannormalisasiyangsamasepertipada SistemDetektor Wajah User Lokasi Wajah User Citra Masukan Pilihan Bobot JST 25 saat training. Hasil preprocessing ini dijadikan sebagai input untuk pengklasifikasi JST. Pengklasifikasi JST ini akan menghasilkan kandidat-kandidat wajah. Gambar 3.5. DFD level 1 Sistem Detektor Wajah Citra Masukan User Pilihan Bobot JST Bobot JST TerpilihArray Pixel Citra Lokasi WajahKandidatWajahBobot JST 1. Pilih Bobot JST User Nilai Bobot JST 3. Cari kandidat wajah 4. Merging 2. Baca citra 26 Selanjutnyakandidat-kandidatwajahiniakanmengalamiprosesmerging untukmendapatkanhasilakhirberupalokasidanukuranwajahyangterdeteksi. Hasilakhirdeteksiiniakanditampilkankepadauser,dandapatdisimpanke dalam file jika diinginkan oleh user. 3.2.2. Jaringan Syaraf Tiruan Jaringan syaraf yang digunakan pada sistem ini menggunakan jenis multi-layerperceptron.Arsitekturyangdigunakandiadaptasidarihasilpenelitian [Rowley,1998]dengansedikitmodifikasi.Susunanunitdarijaringanini ditunjukkan pada gambar 3.6. Lapisaninputterdiridari400unitinput,yangmenerimamasukandari nilaigrayscalepixel20x20darisubcitrayangakandideteksi.Sebelumdijadikan inputuntukJST,nilaigrayscaleyangberkisardari0sampai255dinormalisasi menjadiantara1dan1.Carainidisarankanoleh[LeCun,1998]yang menunjukkanbahwakonvergensiumumnyaakanlebihcepattercapaijikanilai rata-rata dari input data training mendekati nol. Lapisanoutputterdiridarisebuahunitdengannilaikeluaranberkisar antara 1 dan 1. Pada training data set didefinisikan nilai 1 untuk data wajah dan 1untukdatanon-wajah.AgarnilaioutputdariJSTmemilikirangeantara1 sampai dengan 1, digunakan fungsi aktivasi sigmoid bipolar: 112) (log+= =ineti ienet g s Lapisantersembunyi(hiddenlayer)terdiridaritotal25+16=41unit. Bagianpertamaterhubungdenganlapisaninputyangmembentuk25area 27 berukuran4x4pixel.Bagiankeduaterhubungdenganlapisaninputyang membentuk 16 area berukuran 5x5 pixel. Susunankoneksisepertiinidipilihdengantujuanagarunit-unit tersembunyidapatmendeteksifitur-fiturlokaldariwajahyangberperandalam membedakanantaracitrawajahdengannon-wajah.Susunansemacaminijuga umum digunakan pada kasus pengenalan suara dan karakter [Rowley, 1998]. Secarakeseluruhanjaringaninimemiliki883bobotpenghubung,sudah termasukbias.Padasistem[Rowley,1998]yanglebihkompleks,jumlahbobot penghubungnyamencapai4357.Denganjumlahbobotyangsemakinbesar diperlukan data pelatihan yang lebih banyak, waktu training yang lebih lama, dan waktu deteksi yang lebih lama. Gambar 3.6. Arsitektur Jaringan Syaraf Tiruan input 20x20 pixel grid 5x5 pixel Hidden Layer grid 4x4 pixel Output Input Layer 28 Untukmeningkatkankecepatanprosespelatihandigunakanalgoritma Quickprop.AlgoritmaQuickpropinipertamakalidiperkenalkanpada[Fahlman, 1988]sebagaisalahsatualternatifdarialgoritmabackpropagationuntuk melakukan pelatihan pada multi-layer perceptron. Hasilakhirtrainingyangberupanilaibobot-bobotpenghubungakan disimpankesuatufile.Fileininantinyaakandigunakanolehdetektorwajah untuk melakukan tugasnya. 3.2.3. 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. Karenaitupelatihandilakukandenganmenggunakan teknik yang disebut dengan activelearningyangjugadigunakanpada[Sung,1996].Carainidisebutjuga dengan bootstrapping pada [Rowley, 1998]. Padateknikactivelearninginitrainingdilakukansecarabertahap.Pada tahap pertama training dimulai dengan menggunakan sedikit data non-wajah. Pada tahapberikutnya,datatrainingnon-wajahditambahsedikitdemisedikit.Namun datatambahantersebutdiseleksihanyauntukdatatertentusaja,yaitudatayang yangdideteksisebagaiwajah(falsepositive)padahasiltrainingtahap sebelumnya. 29 Gambar 3.7. Metode Pelatihan Active Learning Dengancaraini,datatambahanyangterpilihuntuktraininghanyadata yangbelumberhasildiklasifikasidenganbenarolehjaringansyaraftiruan.Data yang sudah dapat diklasifikasi dengan baik oleh jaringan syaraf tiruan tidak perlu ditambahkansebagaidatatraining.Dengandemikianjumlahdatatrainingyang digunakanuntukjaringansyaraftiruanakanlebihsedikit.Karenadatatraining yangdigunakanlebihsedikit,waktuyangdiperlukanuntukprosestrainingjuga lebih singkat. Koleksi Contoh Data Wajah Data Tambahan Non-Wajah Hasil Deteksi (False Positive) Koleksi Contoh Data Non-Wajah DetektorWajah Trainer JST Data Training Data Awal Non-Wajah Pilih random Bobot JST Hasil Training 30 Padatahappertama,bobotawalyangdigunakanuntukjaringansyaraf tiruandipilihsecararandom.Padatahapberikutnya,bobotawalyangdigunakan adalah bobot yang dihasilkan pada tahap sebelumnya. 3.2.4. Detektor Wajah Bagiandetektorwajahinimenggunakanarsitekturjaringansyarafyang samadenganyangdigunakanuntuktraining.Bobotpenghubungyangdigunakan diambildaribobotterakhiryangdihasilkanpadaprosestrainingdengan menggunakan teknik active learning. Hasil deteksi akan diputuskan sebagai wajah jikaoutputdariJSTlebihdari0,dandiputuskansebagainon-wajahjikaoutput JSTkurangdariatausamadengan0.Gambar3.8menunjukkandiagramalir bagian detektor wajah. 31 Gambar 3.8. Diagram Alir Bagian Detektor Wajah Merging Kandidat Wajah Simpan Kandidat Wajah Pengklasifikasi JST Histogram Equalization Perkecil citra Geser window Window Terakhir? Ukuran citra > 20x20 pixel? Baca Window Pertama Start Pilih Bobot JST, Baca Citra Ya Ya Tidak Tidak Masking Normalisasi Ditemukan Wajah? Tidak Ya Tampilkan Lokasi Wajah End 32 3.2.4.1. Ekstraksi Subcitra Padacitrayangakandideteksi,posisiwajahbisaberadadimanasaja. Pengklasifikasi jaringan syaraf tiruan pada detektor wajah memerlukan input citra 20x20pixel.Karenaitudigunakanwindow20x20pixelyangdigesermelalui seluruhdaerahcitra.Detektorakanmemeriksasatupersatusubcitrayangdilalui oleh window tersebut. Padacitrayangdideteksi,wajahbisamemilikiukuranyangbervariasi. Karenaitucitra akan diperkecil secara bertahap dengan skala perbandingan 1:1,2 sebagaimanadilakukanpada[Rowley,1998].Padasetiapukurancitrayang diperkecil,window20x20pixelakandigesermelaluiseluruhareacitra.Dengan demikian detektor dapat mendeteksi wajah dengan berbagai ukuran. Cara ini juga dilakukan pada [Sung, 1996] dan [Rowley, 1998]. 3.2.4.2. Resizing Proses resizing digunakan baik pada citra data pelatihan maupun pada citra yangakandideteksi.Padacitradatapelatihan,citrawajahyangdiperolehdari berbagaisumbermemilikiukuranyangberagam,karenaituharusdiseragamkan sehingga memiliki ukuran 20x20 pixel. Proses resizing atau resampling dilakukan dengan menggunakan metode bilinear interpolation [Press, 1992].Disinicitradigitaldengandimensimxnpixeldapatdianggapsebagai matriksduadimensi.Matrikstersebutmemilikinilaiya[1..m][1..n]yangisinya adalahlevel grayscale dari pixel-pixel di dalam citra. Informasi lokasi dari pixel-33 pixeltersebutdisimpandalamarrayx1a[1..m]danx2a[1..n].Relasiantara nilai-nilai 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) dimanax1danx2bukannilaiintegerdiantara1..mdan1..n.Formulauntuk melakukan bilinear interpolasi adalah: t = (x1 x1a[j]) / (x1a[j+1] x1a[j]) u = (x2 x2a[k]) / (x2a[k+1] x2a[k]) dany(x1, x2) = (1 t)(1 u)y1 + t(1 u)y2 + tuy3 + (1 t)uy4

di mana y1 = ya[j][k] y2 = ya[j+1][k] y3 = ya[j+1][k+1] y4 = ya[j][k+1] yaitu titik-titik yang berada di sekeliling titik yang akan diinterpolasi. 3.2.4.3. Histogram Equalization Histogramequalizationdigunakanuntukmelakukanperluasankontras citra (contrast strecthing) secara otomatis. Setelah melalui histogram equalization, citra akan memiliki histogram yang mendekati sama [Gonzalez, 1992]. 34 Misalkan r adalah nilai graylevel pixel citra yang akan diproses, dan pr(rk) adalah probabilitas munculnya level grayscale rk di dalam citra. 1 ,..., 1 , 0 1 0 ) ( = = L k dan rnnr pkkk r dimanaLadalahbanyaknyalevelgrayscale,nkadalahbanyaknyapixeldengan level grayscale rk muncul di dalam citra, dan n adalah banyaknya seluruh pixel di dalam citra.1 ,..., 1 , 0 1 0 ) (0 0 = = = = = =L k dan rnnnnr T skkjjkjjk k 3.2.4.4. Masking Prosesmaskingdilakukanuntukmenutupbagiansudut-sudutcitra sehinggamengurangikemungkinanvariasidatayangmunculpada bagian-bagian tersebut. Dengan demikian dimensi dari data juga akan menjadi lebih kecil. Proses ini juga dilakukan pada penelitian [Sung, 1996] dan [Rowley, 1998]. 3.2.4.5. Penggabungan (Merging) Kandidat Wajah Padasaatmendeteksiwajahdisuatucitra,seringkalipengklasifikasiJST mendeteksiwajahdibeberapalokasiyangbersinggunganuntuksebuahwajah yang sama. Untuk itu dilakukan penggabungan (merging) pada hasil deteksi yang bersinggungantersebutdenganmengambilnilairata-ratadariposisidanukuran window dimana wajah tersebut dideteksi. Proses penggabungan ini juga dilakukan pada penelitian [Rowley, 1998]. 35 3.2.4.6. 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. Outputdarihasildeteksiadalahlokasi-lokasiwajahyangberhasil dideteksi. Area di mana wajah terdeteksi juga akan ditandai dengan kotak. Lokasi-lokasi wajah yang terdeteksi dapat disimpan ke suatu file, sehingga di lain waktu dapat dilihat kembali tanpa harus mengulangi proses deteksi. Pemakaidapatmemilihsetnilaibobotpenghubungyangdiinginkan.Jika trainerJSTmenjalanitraininglebihlanjutdengantambahandatatrainingbaru, makaakandihasilkannilaibobotyangbaru.Nilaibobotyangbaruinidapat digunakanuntukmelakukandeteksiwajahdenganmenggunakanprogramyang sama. Sistemdetektorwajahinijugadirancangagardapatmelakukandeteksi wajah pada beberapa citra sekaligus secara batch, dan menyimpan informasi hasil deteksinyadisuatufile.Dengancaraini,pemakaidapatmembiarkanprogram melakukan deteksi untuk sejumlah file citra sekaligus, kemudian baru mengamati hasil deteksinya setelah seluruh citra selesai di deteksi. 3.3. Implementasi Sistem Untukmengimplementasikansistem,dibuatprogramaplikasidengan menggunakanbahasaC++.Userinterfacedibuatdenganmenggunakanfasilitas komponen visual yang disediakan Borland C++ Builder. 36 3.3.1. Jaringan Syaraf Tiruan Jaringansyarafyangdigunakandiimplementasikansebagaiobjekpada C++.Sebuahkelasabstrakuntukjaringansyaraftiruandibuatagardapat diturunkanmenjadikelas-kelasbaruyangmemilikisusunanunitdankoneksi yangberbeda-beda.Kelasinimendefinisikanfungsi-fungsiyangharus diimplementasikanpadasetiapjaringansyaraftiruan.Berikutinikelasabstrak yang digunakan: class NNBaseClass // abstract class { public: double dTargetValueFace; virtualvoidSetInitWeightFileName(AnsiStringsInitWeightFileName)= 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(); }; Trainingdatasetdanbobotjaringansyaraftiruandiimplementasikandengan struktur data sebagai berikut: struct TrainingDataClass { double trd_out; double trd_in[400]; }; 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 Outputdarijaringansyaraftiruandihitungdenganlebihdulumenghitung nilaidariunit-unitpadahiddenlayer.Implementasiprogramuntukmenghitung 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; jImage1b->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; } 47 BAB IV HASIL DAN PEMBAHASAN 4.1. Pengukuran Evaluasi Unjuk Kerja Untuk mengukur evaluasi unjuk kerja dari detektor wajah, pada umumnya digunakanduaparameter,yaitudetectionratedanfalsepositiverate[Yang, 2002].Detectionrateadalahperbandinganantarajumlahwajahyangberhasil dideteksidenganjumlahseluruhwajahyangada.Sedangkanfalsepositiverate adalah banyaknya subcitra non-wajah yang dideteksi sebagai wajah. 4.2. Hasil Deteksi Kandidat Wajah Padasaatdilakukandeteksiwajahpadacitra,biasanyasebuahwajah 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.Gambar4.1.adalahcontohhasildeteksisebelumdansesudahproses merging.Tampakbahwasebelumdilakukanprosesmerging,terdapatbeberapa lokasikandidatwajahyangterdeteksi,sedangkankenyataannyahanyaterdapat satuwajahdidalamcitratersebut.Setelahdilakukanprosesmerging,hanyasatu lokasi yang dianggap sebagai lokasi wajah yang terdeteksi. 48 Gambar 4.1. Hasil deteksi sebelum dan sesudah proses merging 4.3. Hasil Deteksi Gambar4.2.dan4.3.menunjukkancontoh-contohhasildeteksiyang dilakukanpadabeberapacitrapengujian.Untukmembandingkandenganhasil penelitianyangtelahdilakukansebelumnya,dilakukanpengujiandengandata citra standar yang sering digunakan dalam penelitian di bidang deteksi wajah. DatacitrastandaryangdigunakanberasaldariMITyangterdiridari23 filecitrayangsecarakeseluruhanberisi149wajah(MIT-23).Kumpulancitra standarinipertamakalidipublikasikanpada[Sung,1994].Padadataujiini diperolehhasildetectionratesebesar71,14%danfalsepositivessebanyak62. Hasilinidiperolehdenganmelakukantrainingyangmenggunakan3000data wajah dan 5200 data non-wajah. 49 Tabel4.1menunjukkanhasildeteksiyangpernahdilakukanolehpara penelitilaindenganmenggunakandataujiMIT-23.Namundemikianharus diingatbahwamenurut[Hjelmas,2001]perbandinganinitidakbisadijadikan patokanmutlakuntukmenyimpulkanbahwasatumetodelebihbaikdarimetode 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 6189datanon-wajah.Padasistem[Rowley,1998]dilaporkanmenggunakan sekitar16000datawajahdan8000datanon-wajah.Padasistem[Osuna,1997] digunakan 50000 data, namun tidak dilaporkan berapa banyaknya data wajah dan non-wajah.Padasistemyanglaintidakdilaporkanberapajumlahdatayang digunakan. Metode Detection Rate False 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 50 Gambar 4.2. Contoh Hasil Deteksi Wajah 51 Gambar 4.3. Contoh Hasil Deteksi dengan False Positivedan Wajah yang Tidak Terdeteksi 52 4.4. Pengaruh Jumlah Data Training yang Digunakan Tabel4.2menunjukkanpengaruhjumlahdatatrainingyangdigunakan terhadaphasildeteksi.Tabeliniberdasarkanhasildeteksipadasuatucitraberisi 15wajahdanmemilikitotal790.797window.Terlihatbahwasemakinbanyak datatrainingnon-wajahyangdigunakan,semakinkecil angka false positive yang dihasilkan. Hal ini menunjukkan bahwa dengan data yang semakin lengkap, hasil belajar sistem akan semakin baik. Jumlah data training wajah non-wajah total Detection Rate False Positif 100040014009/1564 1000600160012/1551 1000800180014/1544 10001000200015/1542 10001200220015/1532 10001400240015/1531 10001600260015/1524 10001800280015/1523 10002000300015/1519 10002200320015/1510 10002400340015/155 1000 2600360015/154 1000 2800380015/152 1000 3000400015/152 1000 3200420015/152 1000 3400440015/152 1000 3600460015/151 1000 3800480015/151 1000 4000500015/151 Tabel 4.2 Pengaruh Jumlah Data Training pada Unjuk Kerja Deteksi Wajah 53 4.5. Pengaruh Algoritma Quickprop pada Kecepatan Training Tabel4.3menunjukkanperbandinganwaktutrainingyangdiperlukan antaratrainingyangmenggunakanalgoritmabackpropagationstandardengan trainingyangmenggunakanalgoritmaQuickprop.Terlihatbahwadenganjumlah datatrainingyangsemakinbesar,algoritmaQuickpropmemberikanpeningkatan kecepatan yang signifikan. Waktu training (detik) JumlahData training MSE ErrorBackprop standar Quickprop 20000.054912 30000.0564996 40000.054664867 Tabel 4.3 Pengaruh Algoritma Quickprop pada Kecepatan Training 4.6. Pengaruh Metode Active Learning Kamimencobamembandingkanhasilyangdiperolehantaratraining denganmenggunakandatayangdidapatkanmelaluimetodeactivelearning, dengan training yang menggunakan data yang diambil secara random. Jumlah data yangdigunakanadalahsama.Tabel4.4menunjukkanhasilnya.Terlihatbahwa teknikactivelearningbergunadalammemilihdatatrainingyangbenar-benar perluditambahkan,sehinggadapatmeminimalkanjumlahdatatrainingyang digunakan. 54 Data trainingRandom DataActive Learning wajah non-wajah total Detection Rate False Positive Detection Rate False Positive 30005200820063,76%73271,14%62 30003000600062,42%116071,14%201 Tabel 4.4 Pengaruh Active Learning pada Unjuk Kerja Deteksi Wajah 55 BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan Darihasilpenelitiandanpembahasanyangtelahdilakukanmenunjukkan bahwajaringansyaraftiruandapatdimanfaatkanuntukmelakukandeteksiwajah padacitradigital.Denganmenggunakandataujistandar(MIT-23)yangterdiri dari23filecitraberisi149wajah,dengantotaljumlahwindowyangdideteksi sebanyak 9.720.932, didapatkan hasil detection rate 71,14% dan false positive 62. Padasistemdeteksiwajahyangberbasiscontoh,hasilyangdiperoleh sangat dipengaruhi oleh banyaknya contoh data dan kualitas data yang digunakan dalam training. Padaprosestrainingdenganmenggunakandatayangberjumlahbesar, algoritmaQuickpropdapatmemberikanpeningkatankecepatanyangsignifikan terhadap algoritma backpropagation standar. Metodeactivelearningdapatdigunakanuntukmemilihtambahandata trainingsecaraselektif.Metodeinibermanfaatuntukmeminimalkanjumlahdata training yang digunakan sehingga membantu mempercepat proses training. 56 5.2. Saran Untukmeningkatkanunjukkerjadarisistempendeteksiwajah,dapat dilakukandenganmemberikanpelatihanlebihlanjutdengantambahandata training yang lebih banyak dan lebih bervariasi.Padakasuspendeteksianwajahdidalamcitraberwarna,akurasidapat ditingkatkandenganmengkombinasikansisteminidengansistempendeteksi warna kulit. Kecepatan deteksi juga dapat ditingkatkan dengan bantuan pendeteksi warnakulit,karenadengandemikiandeteksidenganjaringan syaraf tiruan hanya perlu dilakukan pada area yang mengandung warna kulit. Teknologideteksiwajahadalahsalahsatubidangpenelitianyangmasih terusberkembang.Hasildarideteksiwajahinidapatdimanfaatkanlebihlanjut untuk membangun sistem pengenalan wajah (face recognition).

DAFTAR PUSTAKA Fahlman,S.E.,1988,AnEmpiricalStudyofLearningSpeedinBack-PropagationNetworks,TechnicalReportCMU-CS-88-162,Carnegie Mellon University, USA. Fausett,L.,1994,FundamentalsofNeuralNetworks:Architectures,Algorithms, and Applications, Prentice-Hall Inc., USA. Gibb,J.,1996,Back Propagation Family Album, ftp://ftp.mpce.mq.edu.au/comp/ techreports/960005.gibb.ps,Macquarie University, Australia. Gonzalez,R.C.,Woods,R.E.,1992,DigitalImageProcessing,Addison-Wesley Publishing Company, USA. Graham,D.B.,Allinson,N.M.,1998,CharacterizingVirtualEigensignatures forGeneralPurposeFaceRecognition,(in)FaceRecognition:From TheorytoApplications,NATOASISeriesF,ComputerandSystems Sciences,Vol.163.H.Wechsler,P.J.Phillips,V.Bruce,F.Fogelman-Soulie and T. S. Huang (eds), pp 446-456. Haykin,S.,1994,NeuralNetworks:AComprehensiveFoundation,Macmillan College Publishing Company, USA. Hjelmas, E., Low, B.K., 2001, Face Detection: A Survey, Computer Vision and Image Understanding. 83, pp. 236-274. LeCun,Y.,Bottou,L.,Orr,G.B.,Muller,K.R.,1998,EfficientBackProp, Neural Networks: tricks of the trade, Springer. Lew,M.S.,Huijsmans,N.,1996,InformationTheoryandFaceDetection, Proc. of International Conference on Pattern Recognition 1996. Osuna,E.,Freund,R.,Girosi,F.,1997,TrainingSupportVectorMachines:An ApplicationtoFaceDetection,Proc.IEEEConf.ComputerVisionand Pattern Recognition 1997. Press,W.H.,1992,NumericalRecipesInC:TheArtOfScientificComputing, Cambridge University Press, USA. Riedmiller,M.,1994,AdvancedSupervisedLearninginMulti-Layer PerceptronsFromBackpropagationtoAdaptiveLearningAlgorithms, Int. Journal of Computer Standards and Interfaces (16) 1994. Rowley,H.,Baluja,S.,Kanade,T.,1998,NeuralNetwork-BasedFace Detection,IEEETrans.PatternAnalysisandMachineIntelligence,vol. 20, no. 1. Rumelhart,D.E.,Hinton,G.E.,Williams,R.J.,1986,LearningInternal RepresentationsbyErrorPropagation,ParallelDistributedProcessing, 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,ComparisonofOptimized BackpropagationAlgorithms,Proc.oftheEuropeanSymposiumon Artificial Neural Networks (ESANN) 93, Brussels. Schneiderman, H., 2000, A Statistical Approach to 3D Object Detection Applied toFacesandCars,CMU-RI-TR-00-06,RoboticsInstituteCarnegie Mellon University. Schneiderman,H.,Kanade,T.,2000,AStatisticalApproachto3DObject Detection Applied to Faces and Cars, Proc. IEEE Conf. Computer Vision and Pattern Recognition vol. 1. Sung,K.K.,1996,LearningandExampleSelectionforObjectandPattern 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,EigenfacesforRecognition,J.Cognitive Neuroscience, vol. 3, no.1. Yang,M.H.,Kriegman,D.,Ahuja,N.,2002,DetectingFacesinImages:A Survey, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 24, no. 1. 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 (NtrdMemo5->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))); 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 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 dEdE_dw_blayer1[k] #define dE_prev dE_dw_blayer1_prev[k] #define deltawdbh[k] #define deltaw_prev old_dbh[k] for (k=0; k 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; jrgDumpOutput->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("Trainingdata:%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); }