BAB 3 ANALISIS PERMASALAHAN DAN PERANCANGAN 3.1 Analisis Permasalahan Kemampuan manusia yang terbatas untuk mengenali wajah-wajah manusia serta terbatasnya sumber daya manusia menjadi masalah yang kompleks dan diperlukan solusi untuk menyelesaikannya. Perancangan ini berfokus pada proses pengenalan citra wajah dari berbagai pose sehingga objek dapat ditangkap dari berbagai pose, sudut, dan tidak harus selalu menghadap ke depan kamera. Banyak faktor yang mempengaruhi citra wajah, diantaranya perubahan iluminasi, pose, ekspresi, aksesoris, warna, dan kecerahan. Dengan menggunakan teknologi pengenalan citra wajah, dapat membantu pihak kepolisian untuk mencari daftar hitam dan dapat diperoleh data-data yang tepat, akurat, serta meningkatkan efisiensi waktu dan sumber daya manusia karena teknologi ini dapat dimonitor dari suatu tempat dan dapat bekerja dengan waktu yang maksimal (1x24jam). Dari penelitian sebelumnya, Hendrik (2007) membangun sebuah aplikasi yang dapat melakukan pengenalan citra wajah dari depan dan input yang diberikan berupa citra statis, serta tidak memiliki proses deteksi secara otomatis. Yolanda (2009) telah mengembangkan aplikasi absensi identifikasi wajah yang dapat mendeteksi citra wajah secara realtime dan melakukan pengenalan, tetapi pengenalan citra wajah masih harus dilakukan dari depan (frontal face). Reza(2012) memecahkan masalah pengenalan citra wajah menggunakan metode EigenFace. Kelemahan dari metode EigenFace adalah sebarannya tidak hanya memaksimalkan data antar kelas, tetapi juga data di dalam kelas. Sebagian besar sebaran kelasnya disebabkan oleh variasi cahaya sehingga harus diminimalkan dengan membuang tiga 47 48 data PCA yang paling signifikan. Hal ini menyebabkan hilangnya informasi yang mendukung proses diskriminan wajah. (Peter N. Belhumeur, Joao P. Hespanha, and David J. Kriegman, 1997:.712) 3.2 Usulan Pemecahan Masalah Melalui penelitian ini, diusulkan suatu alternatif pemecahan masalah pengenalan citra wajah dalam hal pose yang bervariasi berupa aplikasi yang dapat mendeteksi keberadaan dan luas citra wajah di dalam sebuah gambar dan menyimpannya ke dalam database SQL. Pendeteksian citra wajah harus dapat dilakukan terhadap citra wajah dengan pose selain dari depan. Metode pengenalan citra wajah yang digunakan dalam penelitian ini adalah metode Fisherfaces. Linear Dyscriminant Analysis (LDA) atau yang dikenal sebagai Fisherfaces merupakan teknik yang digunakan untuk mengurangi dimensi data sebelum pengklasifikasian. 3.3 Perancangan Perangkat Lunak Cara kerja program aplikasi pencarian daftar hitam dengan deteksi wajah berdasarkan database SQL adalah : Gambar 3.1 Cara kerja program aplikasi pencarian daftar hitam dengan deteksi wajah menggunakan database SQL 49 1. Camera merekam dan mengambil gambar-gambar orang yang melewati kamera tersebut. 2. Program aplikasi pencarian daftar hitam melakukan deteksi wajah orangorang yang terekam oleh kamera. 3. Wajah yang telah terdeteksi disimpan dalam bentuk foto ke dalam database. 4. Setelah melakukan penyimpanan, maka dilakukan pencocokan fitur antara foto wajah dari kamera dengan foto wajah yang berada dalam database. 5. Bila hasil pencocokan fitur antara foto wajah dari kamera dengan foto wajah yang berada dalam database sama, maka di video akan muncul notifikasi berupa kotak merah di wajah orang tersebut dan suara. 6. Gambar disimpan dan dilakukan pencatatan histori(tanggal, jam, lokasi.) 7. Daftar orang yang ada di dalam database ditemukan. 3.4 Metodologi Pada perancangan ini, masalah-masalah dibagi menjadi beberapa tahap : Gambar 3.2 Metodologi perancangan 50 a. Input image : Merupakan proses masuknya citra (berupa gambar, video, atau real time capture ) ke dalam sistem. b. Processing Module : Merupakan proses penyesuaian citra input (grayscale). Ukuran citra input di-resize menjadi 350mm x 350mm c. LDA Module : Metode ini digunakan untuk mengutip bagian terpenting suatu vektor yang mempresentasikan suatu wajah yang bersifat biasa atau unik. d. Face Database : Merupakan kumpulan data-data berupa citra wajah beserta identitas seseorang(nama, alamat, tempat tanggal lahir,email, dan kasus kriminalitas ). e. Fisherfaces : Berisi kumpulan nilai eigen dan matriks dari semua citra wajah yang ada di dalam database. f. Image Matching : Merupakan proses mencocokkan dua buah citra sehingga membentuk suatu keputusan. Pixel pada citra input harus sesuai dengan pixel pada citra di database. g. Calculate : Pada modul ini dilakukan perhitungan Fisherfaces dari citra input dan Fisherfaces dari citra pada database. Perhitungan ini menghasilkan nilai eigen. h. Show Image : Menampilkan citra yang hasilnya paling dekat dengan eigen image. 51 3.5 Perancangan Modul Aplikasi ini dibagi menjadi dua modul, yaitu : 3.5.1 Perancangan Modul Utama Gambar 3.3 Flowchart menu utama deteksi wajah 52 1. Start Sistem pencarian daftar hitam dengan deteksi wajah berdasarkan database SQL mulai dijalankan. 2. Masukan citra yang harus dideteksi dan dikenali. Kamera menangkap citra yang dapat berupa gambar, file video, maupun tangkapan secara realtime. 3. Deteksi citra wajah Salah satu kunci sukses dalam pengenalan wajah adalah deteksi wajah yang akurat karena gambar wajah yang terdeteksi akan sangat mempengaruhi dalam proses pengenalannya. Langkah pertama pada pengenalan wajah adalah mendeteksi keberadaan wajah dari gambar masukan. Setelah wajah terdeteksi, tugas feature extraction adalah untuk memperoleh ciri-ciri dari wajah yang diperlukan pada klasifikasi wajah. Ciri-ciri yang diperlukan dapat berupa ciri-ciri lokal wajah seperti hidung, mata, mulut, dan lainnya, maupun ciri-ciri global wajah (seluruh bagian wajah). Metode Fisherfaces menggunakan seluruh bagian wajah sebagai data dalam pengenalannya. Deteksi pencarian lokasi wajah menggunakan metode Viola-Jones. Metode Viola-Jones merupakan metode yang mampu memproses gambar dengan sangat cepat dan mampu mendeteksi wajah dengan sangat baik. Metode yang ditemukan oleh Viola dan Jones ini menggunakan beberapa teknik untuk komputasi secara efektif dalam perhitungan skala besar. Metode ini membutuhkan data berupa hasil training dari kumpulan citra sejenis yang ingin dideteksi. Proses yang dilakukan pertama kali pada algoritma deteksi wajah yang digunakan adalah membuang sebanyak mungkin bagian bukan wajah 53 dari gambar input. Hal ini dapat dilakukan dengan memberikan batasan pada nilai intensitas warna (color thresholding) pada gambar input karena pada dasarnya seluruh manusia memiliki range atau batasan nilai warna (chrominance value) yang hampir sama untuk warna kulitnya. Yang membedakannya adalah variasi pada nilai intensitas cahaya (luminance value). Akibatnya, jika nilai chrominance dan luminance dapat dipisahkan dari gambar dan kemudian dilakukan pembatasan nilai intensitas pada komponen chrominance, akan didapat bagian yang merupakan bagian berwarna seperti kulit dari gambar input. Cara memisahkan nilai intensitas cahaya dari komponen warna gambar input adalah mengubah komponen warna gambar masukan yang merupakan gambar berwarna Red, Green, Blue (RGB) ke dalam komponen warna YCbCr (Iluminance, Chrominance-blue, Chrominance-red). Jika pada komponen warna RGB masih terdapat informasi mengenai intensitas pencahayaan pada setiap komponen warnanya, untuk komponen warna YCbCr, komponen Cb dan Cr merupakan komponen warna yang bebas dari intensitas cahaya, karena seluruh informasi mengenai cahaya pada gambar disimpan pada komponen Y. Persamaan transformasi komponen warna RGB ke YCbCr adalah Y 0.275 [Cb] = [0.148 Cr 0.439 R 16 0.504 0.098 −0.291 0.439 ] . [G] + [128] B 128 −0.368 −0.071 54 Gambar 3.4 Korelasi antara nilai Cb dan Cr yang menunjukkan warna kulit (Riko Arlando Saragih, 2007) Gambar 3.5 Komponen Cb dan Cr bagian kulit (Riko Arlando Saragih, 2007) 55 Gambar 3.6 Komponen Cb dan Cr gambar lengkap (Riko Arlando Saragih, 2007) Gambar 3.7 Gambar masukkan citra wajah (Riko Arlando Saragih, 2007) 56 Gambar 3.8 Komponen Y (Riko Arlando Saragih, 2007) Gambar 3.9 Komponen Cb (Riko Arlando Saragih, 2007) Gambar 3.10 Komponen Cr (Riko Arlando Saragih, 2007) 57 Hasil dari proses segmentasi kulit adalah gambar hitam putih (binary image) yang menunjukkan bagian kulit dari gambar input. Akan tetapi gambar hitam putih (binary image) masih terdapat noise dan potongan dari beberapa benda lainnya, seperti latar belakang gambar. Oleh karena itu, perlu dilakukan beberapa tahapan untuk membersihkan gambar dari noise dan potongan tersebut. Untuk gambar biner, pixel berwarna putih bernilai biner 1 (ON) dan pixel berwarna hitam bernilai biner 0 (OFF). Proses morfologi untuk gamber biner adalah proses erosi dan dilasi. Proses erosi merupakan proses membuang pixel dari gambar dengan membuat pixel ON menjadi OFF, yaitu pixel putih yang melekat pada daerah background, sehingga akan menyebabkan pixel putih berkurang luasnya dengan tujuan untuk menghilangkan pixel yang merupakan noise pada gambar hitam putih (binary image). Proses dilasi merupakan kebalikan dari proses erosi, membuat pixel OFF menjadi ON, sehingga akan menyebabkan pixel putih bertambah luasnya (shrinking). Tujuan dilakukan proses dilasi adalah saat proses erosi dilakukan pada gambar hitam putih (binary image), daerah yang merupakan kulit juga ikut mengalami shrinking sehingga perlu dilakukan suatu proses untuk mengembalikan daerah tersebut agar bagian wajah nantinya akan terdeteksi dengan benar. Pada gambar hitam putih (binary image) akan tetap terdapat bagian bukan wajah yang merupakan bagian tubuh lainnya seperti tangan dan bagian lainnya yang memiliki intensitas warna yang menyerupai intensitas warna kulit. Selanjutnya dilakukan analisa untuk mendapatkan satu bagian yang merupakan bagian wajah, yaitu dengan menghitung nilai Euler dari tiap-tiap 58 bagian yang terdapat pada hitam putih (binary image). Nilai Euler pada gambar biner adalah selisih antara region (daerah yang memiliki nilai pixel 1) dengan hole (daerah yang memilki nilai pixel 0) yang ada pada region tersebut. Pada umumnya untuk wajah manusia setidaknya akan memiliki satu region dan tiga buah hole yang menunjukkan sepasang mata dan satu mulut. Setelah didapat satu bagian yang merupakan wajah, proses selanjutnya adalah mengambil (cropping) wajah tersebut dari gambar input dengan ukuran yang sesuai dengan posisi wajah pada gambar topeng dan mengubah ukurannya menjadi ukuran yang sama dengan ukuran gambar wajah pada training set yang digunakan untuk pengenalan wajah. 4. Ekstrasi data citra wajah menggunakan LDA (Linear Discriminant Analysis) Jika terdeteksi adanya citra wajah, maka akan dilakukan proses ekstraksi data citra wajah dengan menggunakan algoritma LDA atau disebut juga Fisherfaces. Konstruksi Fisherfaces adalah pembuatan suatu set Fisherfaces dari suatu set gambar training dengan menggunakan perhitungan Fisherfaces atau Linear Discriminant Analysis (LDA). Perhitungan Fisherfaces dilakukan dengan langkah-langkah sebagai berikut : 1. Mengubah gambar wajah masukan menjadi vektor kolom (Γ𝑖𝑛𝑝𝑢𝑡 ). Misalnya ada sejumlah x individu yang dijadikan sampel : 𝑋 = {𝑋1 , 𝑋2 , 𝑋3 , . . 𝑋𝑐 } 𝑋𝑖 = {𝑥1 , 𝑥2 , 𝑥3 , . . 𝑥𝑛 } 59 2. Menormalisasikan gambar wajah masukan terhadap nilai rata-rata training set (average face,Ψ). Dimana 𝜇 merupakan nilai rata-rata dari Xi : 𝑁 1 𝜇= ∑ 𝑋𝑖 𝑁 𝑖=1 Gambar 3.11 Hasil rata-rata dari 100 kelas (Martinez, 2013) 3. Menghitung jarak rata-rata tiap kelas terhadap nilai proyeksi dengan menggunakan rumus: 𝜇̃𝑖 = 1 1 ∑ 𝑦= ∑ 𝑊 𝑇 𝑥 = 𝑊 𝑇 𝜇𝑖 𝑁𝑖 𝑁 𝑦∈𝑤𝑖 𝑥∈𝑤𝑖 𝑖 60 Gambar 3.12 Linear Discriminant Analysis sebelum normalisasi (Anonim, 2013) 4. Melakukan perhitungan matriks sebaran dalam kelas 𝑆𝑊 dan matriks sebaran antar kelas 𝑆𝐵 . 𝑐 𝑆𝐵 = ∑ 𝑁𝑖 (𝜇𝑖 − 𝜇)(𝜇𝑖 − 𝜇)𝑇 𝑖=1 𝑐 (𝑋𝑗 − 𝜇𝑖 )(𝑋𝑗 − 𝜇𝑖 )𝑇 𝑆𝑊 = ∑ ∑ 𝑗 𝑖=1 𝑥𝑗 ∈ 𝑋𝑖 5. Memilih jarak pada benda yang diproyeksikan. J(w) = |μ̃1 − μ̃2 | = | W T (μ1 − μ2 )| 6. Nilai dari μ̃i digunakan untuk menentukan nilai penyebaran dari masing-masing kelas, supaya penyebaran menyebar secara normal maka harus dilakukan perhitungan sebagai berikut untuk setiap kelas : 𝑆̃𝑖2 = ∑ 𝑦 ∈ 𝑤𝑖 (𝑦 − 𝜇̃𝑖 )2 61 Gambar 3.13 Linear Discriminant Analysis setelah normalisasi (Anonim, 2013) dimana jumlah antara ( 𝑆̃12 + 𝑆̃22 ) disebut dengan penyebaran antara class 𝑁1 dan 𝑁2 . Fisher memaksimalkan fungsi linear w T x dengan mengubah fungsi tersebut menjadi 𝐽(𝑤) = 7. |𝜇̃1 − 𝜇̃2 |2 𝑆̃12 + 𝑆̃22 Untuk mendapatkan nilai 𝐽(𝑊) yang maksimum, maka : −1 𝑆𝑊 𝑆𝐵 𝑊 = 𝐽𝑊 Gambar 3.14 Linear Discriminant Analysis menggunakan Fisher Discriminant (Anonim, 2013) 62 8. Mencari nilai 𝑊 ∗ maksimum dilakukan dengan cara menjabarkan J(W) sebagai fungsi dari 𝑤, dan mendefinisikan jarak berdasarkan koordinat x. 𝑆𝑖 = ∑ (𝑥𝑖 − 𝜇𝑖 )(𝑥𝑖 − 𝜇𝑖 )𝑇 𝑖 𝑥𝑖 ∈ 𝑤𝑖 𝑆𝑊 adalah matrix scatter antara class yang sama. 𝑆𝑊 = 𝑆1 + 𝑆2 𝑆𝐵 adalah matrix scatter antara class yang satu dengan class yang lainnya. 𝑆𝐵 = (𝜇1 − 𝜇2 )(𝜇1 − 𝜇2 )𝑇 9. Dari nilai 𝑆𝑤 dan 𝑆𝐵 dapat disimpulkan : 𝐽(𝑊) = 𝑊 𝑇 𝑆𝐵 𝑊 𝑊 𝑇 𝑆𝑤 𝑊 𝑊 𝑇 𝑆𝐵 𝑊 −1 (𝜇 𝑊 ∗ = 𝑎𝑟𝑔 𝑚𝑎𝑥 [ 𝑇 ] = 𝑆𝑊 1 − 𝜇2 ) [𝑊 𝑆𝑤 𝑊 Setelah melakukan perhitungan Fisherfaces, dilakukan klasifikasi identitas. Klasifikasi identitas merupakan kegiatan membandingkan bobot dari masing-masing Fisherfaces pada citra wajah input dengan citra wajah di training set dengan menghitung jarak Euclidian-nya. Langkah-langkah klasifikasi identitas adalah sebagai berikut: 1. Mengubah gambar wajah masukan menjadi vektor kolom (Γ𝑖𝑛𝑝𝑢𝑡 ). 2. Menormalisasikan gambar wajah masukan terhadap nilai rata-rata training set (average face,Ψ). 𝜙𝑖𝑛𝑝𝑢𝑡 = Γ𝑖𝑛𝑝𝑢𝑡 − Ψ 63 3. Menghitung bobot Fisherfaces pada gambar wajah masukan (U𝑖𝑛𝑝𝑢𝑡 ), yaitu dengan memproyeksikan gambar masukan ke dalam matriks proyeksi optimal (WOPT ) dengan menggunakan rumus: 𝑈𝑖𝑛𝑝𝑢𝑡 = 𝑊𝑂𝑃𝑇 𝑇 𝜙𝑖𝑛𝑝𝑢𝑡 4. Menghitung jarak eucledian (E𝑚𝑖𝑛 ) antara bobot input dengan bobot training set (𝑈𝑑𝑎𝑡𝑎𝑏𝑎𝑠𝑒 ). 𝐸 = |𝑈𝑖𝑛𝑝𝑢𝑡 − 𝑈𝑑𝑎𝑡𝑎𝑏𝑎𝑠𝑒 |2 5. Mencari dan membandingkan jarak minimum (E𝑚𝑖𝑛 ) dengan nilai batas 𝜃. Sebuah wajah dikatakan cocok jika jarak minimumnya lebih kecil dari nilai batas yang diterapkan, yang disebut dengan threshold. Semakin kecil jarak minimum yang diperoleh, semakin besar kesamaan gambar input dengan data yang ada di dalam training set. Nilai batas diperoleh dari hasil percobaan-percobaan hingga ditemukan satu nilai yang memuaskan. 5. Pencocokan dengan data training menggunakan Euclidean Distance Hasil ekstraksi tersebut akan dihitung bobot dengan citra-citra wajah yang ada di dalam data training. Fungsi dari Euclidean Distance adalah mengukur jarak garis-garis lurus. Turunan dari Euclidean Distance antara dua titik data yang melibatkan jumlah dari akar kuadrat dari jumlah kuadrat dari selisih nilai korespondensi(xi dan yi ). Rumus untuk mengukur jarak antara titik X (X1, X2,.., dst) dan titik Y (Y1, Y2,.. , dst) adalah 𝑛 𝑑 = √∑(𝑥𝑖 − 𝑦𝑖 )2 𝑖=1 64 6. Simpan data ke dalam list Jika nilai bobot yang didapat berada di bawah nilai ambang (threshold), maka akan ditambahkan detil hasil identifikasi ke dalam list. Thresholding merupakan metode yang paling sederhana dari segmentasi citra. Dari gambar grayscale, thresholding dapat digunakan untuk membuat gambar biner (hitam dan putih). Sebuah gambar biner dibentuk dari perbedaan warna pixel yang di tentukan oleh threshold. Jika threshold yang ditentukan adalah 128, maka pixel yang berada diatas 128 (lebih gelap) akan ditandai dengan biner 1, dan yang berada dibawah 128 (lebih terang) akan ditandai dengan biner 0. 7. Menampilkan total citra wajah yang ditangkap Citra wajah input yang cocok dengan citra wajah pada database ditampilkan pada list history. 8. End Sistem pencarian daftar hitam dengan deteksi wajah berdasarkan metode Fisherfaces dan database SQL telah selesai dijalankan. 65 3.5.2 Perancangan Modul Training Data Gambar 3.15 Flowchart training data 66 1. Start Sistem training data mulai dijalankan. 2. Deteksi wajah Deteksi pencarian lokasi wajah menggunakan metode Viola-Jones. Metode Viola-Jones merupakan metode yang mampu memproses gambar dengan sangat cepat dan mampu mendeteksi wajah dengan sangat baik. Metode ini membutuhkan data berupa hasil training dari kumpulan citra sejenis yang ingin dideteksi. 3. Capture Proses pengambilan masukan citra wajah berupa gambar dari webcam, posisi pengambilan wajah bervariasi dari kiri, tengah, dan kanan. 4. Tampilkan citra wajah Gambar-gambar wajah yang telah di-capture ditampilkan pada Face Image. Face Image mampu menampung banyak citra wajah dari berbagai posisi dan bermacam-macam ekspresi. 5. Isi Data Proses pengisian data profil seperti nama, alamat, telepon, tanggal lahir, kasus kriminalitas, tanggal masuk penjara, dan tanggal keluar dari penjara. 6. Simpan Data Citra wajah dan detail data-data yang telah diisi disimpan ke dalam database SQL. 7. End Modul training data telah selesai dijalankan. 67 3.6 Perancangan UML (Unified Modeling Language) 3.6.1 Use Case Diagram Main View Gambar 3.16 Use Case Diagram Main View 68 Tabel 0.1 Penjelasan use case diagram main view Mengidentifikasi Citra Wajah dari Use case ini menggambarkan bagaimana Webcam user menambahkan data citra wajah dari tangkapan webcam untuk dicocokkan dengan citra wajah dari data training. Mengidentifikasi Citra Wajah dari Use case ini menggambarkan bagaimana Gambar Digital user menambahkan data citra wajah dari file gambar digital untuk dicocokkan dengan citra wajah dari data training. Mengidentifikasi Citra Wajah dari Use case ini menggambarkan bagaimana Video user menambahkan data citra wajah dari file video untuk dicocokkan dengan citra wajah dari data training. Melihat Histori Data yang Cocok dari Use case ini menggambarkan bagaimana Citra Input dengan Citra di Database user melihat histori dari citra wajah yang cocok dari citra input dengan citra di database. Melihat Semua Data yang Tersimpan Use case ini menggambarkan bagaimana di Database user melihat semua data yang tersimpan di database. Mengatur Nilai Threshold Use case ini menggambarkan bagaimana user melakukan modifikasi pengaturan 69 nilai threshold yang diinginkan. Melakukan Training Data Use case ini menggambarkan bagaimana user menambahkan citra wajah dan data orang-orang yang masuk ke dalam black listing ke dalam database SQL. 3.6.2 Use Case Diagram Training View Gambar 3.17 Use Case Diagram Training View 70 Tabel 0.2 Penjelasan use case diagram training view Menangkap Citra Wajah dari Use case ini menggambarkan bagaimana Webcam user menambahkan data citra wajah dari tangkapan webcam sebagai data training Menambahkan Data Profil Use case ini menggambarkan bagaimana user menambahkan data profil sebagai data training. Melihat Citra Wajah yang Telah Use case ini menggambarkan bagaimana Diambil user melihat citra wajah yang telah diambil sebagai data training. Me-refresh Citra Wajah Use case ini menggambarkan bagaimana user me-refresh citra wajah yang telah diambil sebagai data training. Menghapus Citra Wajah yang Telah Use case ini menggambarkan bagaimana Diambil user menghapus citra wajah yang telah diambil sebagai data training. Menyimpan Citra dan Data Diri ke Use case ini menggambarkan bagaimana Database SQL user menyimpan citra dan data diri ke dalam database SQL. 71 3.6.3 Class Diagram Gambar 3.25 Class Diagram 72 Tabel 3.3 Class Diagram Description Nama Class InputImageForm Deskripsi Class berisi semua attributes dan Operations yang terdiri dari event dari browse_Click untuk mencari dan memasukkan citra wajah berupa image, inputImageForm untuk menampilkan form input Image. MainView Class berisi semua attributes dan Operations. Fungsi dari class ini sebagai form utama, dimana class ini dapat diakses oleh semua fitur-fitur seperti BindingDetectedFaceOnListView. Fungsi ini untuk menampilkan citra wajah masukkan yang cocok dengan citra wajah training di database, btnCamera_Click untuk mengaktifkan realtime capture camera menggunakan kamera webcam, btnInputImage_Click untuk memasukkan citra wajah berupa gambar digital, btnInputVideo_Click untuk memasukkan citra wajah berupa video, btnTrainingData_Click untuk menampilkan form Training Data, setting_Click untuk menampilkan form Settings, viewAllData_Click untuk menampilkan form View All Data, viewAllHistory_Click untuk menampilkan form View All History. Fisherfaces Class berisi semua attributes dan Operations. Class ini berisi semua field dan methods yang diperlukan untuk mengenali dan melatih citra wajah. 73 Settings Class berisi semua attributes dan Operations. Fungsi dari class ini untuk melakukan pengaturan threshold. viewAllDataView Class berisi semua attributes dan Operations. Fungsi utama dari class ini adalah untuk menampilkan detail dari semua data training di database. ViewAllHistoryView Class berisi semua attributes dan Operations. Fungsi utama dari class ini adalah untuk menampilkan history citra wajah masukkan yang cocok dengan citra wajah training di database. History berupa citra wajah dan informasi dari citra wajah yang tertangkap. 74 3.6.4 Sequence Diagram Berikut adalah sequence diagram dari proses yang terdapat dalam aplikasi pengenalan citra wajah dengan pose yang bervariasi. 1. Sequence Diagram Training Data Gambar 3.18 Sequence diagram training data 75 2. Sequence Diagram Input Data Citra Wajah dari Webcam Gambar 3.19 Sequence diagram input data citra wajah dari webcam 76 3. Sequence Diagram Input Data Citra Wajah dari Gambar Digital Gambar 3.20 Sequence diagram input data citra wajah dari gambar digital 77 4. Sequence Diagram Input Data Citra Wajah dari Video Gambar 3.21 Sequence diagram input data citra wajah dari video 78 5. Sequence Diagram View All History Gambar 3.22 Sequence diagram view all history 6. Sequence Diagram View All Data Gambar 3.23 Sequence diagram view all data 79 7. Sequence Diagram Pengaturan Threshold Gambar 3.24 Sequence diagram pengaturan threshold 3.7 Perancangan Layar Aplikasi 3.7.1 Perancangan Layar Main View Gambar 3.26 Rancangan layar form main view 80 Pada tampilan rancangan layar form Main View, citra wajah akan ditampilkan di panel di sebelah kiri saat memilih tombol “Start”. Sistem akan mendeteksi wajah yang tertangkap oleh webcam dan melakukan pengecekan. Bila citra wajah yang tertangkap oleh webcam cocok dengan citra wajah training yang terdapat di database, maka sistem akan menampilkan nama orang tersebut dan melakukan pencatatan. Hasil capture dari citra wajah realtime yang sesuai dengan citra wajah blacklist pada database, serta nama, tanggal, serta waktu capture orang tersebut akan ditampilkan di List View. Selain input dari realtime camera, sistem juga dapat dapat memasukkan gambar lokal dari luar (PC, laptop, flashdisk) dengan memilih “Input Image”. Sistem juga dapat menerima inputan video dengan memilih “Input Video”. Dengan memilih “Input Video” sistem dapat memasukkan video lokal dari luar (PC, laptop, flashdisk). Proses pengisian data ke dalam database dilakukan dengan memilih “Training Data” di panel bagian kanan. Di dalam “Training Data” dilakukan capture citra wajah, pengisian nama, alamat, tanggal lahir, dan lain-lain. Data-data dalam database dapat ditampilkan dengan memilih “View All Data”. Di dalam form “View All Data” akan ditampilkan semua data-data dari citra wajah, serta seluruh detail dari orang yang terdapat dalam data training di database. Histori citra wajah yang cocok dengan citra wajah yang terdapat di database akan ditampilkan di panel bagian kanan di “View All History”. Data-data yang ditampilkan berupa nama, waktu capture, dan gambar dari orang tersebut. 81 Untuk melihat semua data yang ada di database, dapat memilih “View All Data”. Data-data yang ditampilkan berupa nama, jenis kelamin, tanggal lahir, alamat, kasus kejahatan, tanggal masuk dan keluar penjara, dan apakah orang termasuk dalam daftar.hitam. Proses pengaturan threshold dapat dilakukan dengan memilih “Setting” di panel bawah bagian kanan. Di dalam “Setting” dilakukan pengaturan nilai Threshold dengan interval 1000-3000. 3.7.2 Perancangan Layar Form Input Image Gambar 3.27 Rancangan layar form input image Pada tampilan rancangan layar form Input Image, user dapat memasukan citra wajah digital dengan memilih tombol “Browse”. Citra wajah digital yang telah dipilih akan ditampilkan di panel bagian kiri. 82 Untuk mencocokkan citra wajah digital yang dipilih dengan citra wajah dari database, maka dipilih “Predict”. Bila citra wajah digital yang dipilih cocok dengan citra wajah pada database, maka data-data orang tersebut akan dimunculkan di panel bagian kanan. 3.7.3 Perancangan Layar Form Input Video Gambar 3.28 Rancangan layar form input video Pada tampilan rancangan layar form Input Video, user dapat memasukan citra wajah digital dengan memilih tombol “Browse”. Video citra wajah digital yang telah dipilih akan ditampilkan di panel bagian kiri. Bila citra wajah di dalam video cocok dengan citra wajah training yang terdapat dalam daftar blacklist pada database, maka sistem akan menampilkan nama orang tersebut dan melakukan pencatatan. Hasil capture dari citra wajah realtime yang sesuai dengan citra wajah blacklist pada 83 database, serta nama, tanggal, serta waktu capture orang tersebut akan ditampilkan di List View. 3.7.4 Perancangan Layar Form Training View Gambar 3.29 Rancangan layar form training view Pada tampilan rancangan layar form training view, citra wajah akan ditampilkan di panel di sebelah kiri secara otomatis. Untuk meng-capture gambar dapat memilih tombol “Capture”. Citra wajah yang diperlukan adalah citra wajah dari posisi depan, kiri, dan kanan. Citra wajah yang telah di-capture akan ditampilkan pada “Face Image” di panel kiri bagian bawah. Pengisian data-data diri dilakukan pada panel bagian kanan. Data-data yang dimasukkan berupa nama pada “Name”, memilih jenis kelamin pada “Gender”, memasukkan tanggal lahir pada “Date of Birth”, menuliskan alamat pada “Address”, menuliskan kasus kejahatan pada “Crime”, memasukkan tanggal masuk dan keluar 84 penjara pada “Date Arrested”. Apabila semua data telah selesai dimasukkan maka dipilih tombol “Save” untuk menyimpan data-data tersebut ke dalam database atau dapat memilih tombol “Cancel” untuk membatalkan proses penyimpanan data ke database. 3.7.5 Perancangan Layar Form View All History Gambar 3.30 Rancangan layar form view all history 3.7.6 Perancangan Layar Form View All Data Gambar 3.31 Rancangan layar form view all data 85 Untuk melihat semua data yang tersimpan di database. Maka dipilih “View All Data”. Pada form ini akan ditampilkan citra wajah dan data diri secara detail dari setiap orang yang telah disimpan datanya di dalam database seperti citra wajah yang memiliki berbagai variasi sudut, nama, alamat, tanggal lahir, masuk atau tidaknya orang tersebut dalam daftar hitam(blacklisting), kasus kejahatan, jenis kelamin, tanggal masuk, dan tanggal keluar penjara . 3.7.7 Perancangan Layar Form Pengaturan Gambar 3.32 Rancangan layar form pengaturan Pengaturan nilai threshold dilakukan untuk mendapatkan keakuratan pengenalan citra wajah yang semakin baik, bergantung pada kasus yang tersedia. Nilai threshold dapat dipilih dari 1000 hingga 5000, semakin besar nilai ambang (threshold) yang digunakan semakin besar sebuah citra wajah dikenali sebagai salah satu dari citra wajah di dalam data training, tetapi semakin kecil juga tingkat akurasi yang didapat pada hasil pengenalan. 3.8 Pencocokkan Fitur dengan Database SQL 3.8.1 Black List Administration Black List Administration merupakan proses memasukan data-data orang yang masuk ke dalam daftar hitam ke dalam database. 86 Ada beberapa tahap yang dilakukan Black List Administration : 1. Memasukkan data-data orang yang masuk ke dalam daftar hitam. 2. Data input berupa foto, nama, tempat tinggal, asal, tanggal lahir, kasus kriminalitas. 3. Satu data terdiri dari banyak foto(dari depan,samping kiri, kanan), semakin banyak, hasil akan semakin akurat. 3.8.2 Multiple Face Identification Multiple Face Identification merupakan proses identifikasi foto-foto wajah yang tertangkap kamera dengan foto di database. Ada beberapa tahap yang dilakukan Multiple Face Identification : 1. Kamera mengambil dan menyimpan foto setiap 1 detik 2. Program mendeteksi wajah dari foto yang disimpan 3. Wajah dicocokan dengan data yang berada dalam database 4. Wajah yg cocok di database akan dilakukan pencatatan di dalam kolom List View, detail yang terlihat berupa nama, tanggal capture, dan waktu capture. 5. Gambar yang cocok disimpan & dilakukan pencatatan histori.