50 BAB IV
HASIL DAN PEMBAHASAN
Dalam bab ini akan ditampilkan hasil dari implementasi deteksi dan pengenalan wajah pada gambar dan video sistem kamera CCTV yang ada di Fakultas Teknik UNS. Hasil implementasi ini akan dievaluasi dan dianalisa untuk mendapatkan nilai akurasinya.
Face Mask Detector Model 4.1
Face mask detector model merupakan model yang digunakan untuk melakukan pengenalan penggunaan masker pada wajah frame video/gambar yang diuji. Model ini merupakan hasil training dataset sebagaimana telah dijelaskan dalam subbab 3.4. Dengan demikian, model ini berperan sebagai maskNet yang digunakan pada proses pengujian.
4.1.1 Arsitektur Jaringan
Gambar 0.1 Arsitektur jaringan model
Gambar diatas menunjukkan arsitetur jaringan untuk model deteksi pemakain masker (face mask detector model). Gambar yang diproses dalam model ini merupakan gambar wajah dalam frame yang sebelumnya telah melalui proses deteksi wajah dengan DNN Face Detector. Area wajah yang dideteksi (face location) diubah ukurannya (resizing) menjadi 224x224 piksel. Jumlah neuron pada input layer adalah sebanyak 150.528 neuron yang diperoleh dari perkalian
With Mask No Mask
A B C D E F G
commit to user
224x224x3 dengan 3 (tiga) menunjukkan jumlah kanal warna data masukan, yaitu RGB. Setiap neuron memiliki nilai parameter tertentu dimana parameter yang digunakan dalam jaringan tersebut berkisar antara -1 sampai 1.
Tabel 0.1 Arsitektur jaringan model
Input Operator c n s
2242 x 3 3x3 conv 32 1 2
1122 x 32 bottleneck 16 2 1
1122 x 16 bottleneck 24 3 2
562 x 24 bottleneck 32 4 2
282 x 32 bottleneck 64 3 2
142 x 64 bottleneck 96 3 1
72 x 96 bottleneck 160 1 2
72 x 320 bottleneck 320 1 1
72 x 1280 7x7 pooling - 1 -
12 x 1280 flatten - 1 -
1280 128 FC layer - 1 -
128 2 ouput layer - 1 -
Tabel diatas menunjukkan arsitektur jaringan model dengan setiap baris mendeskripsikan urutan dari 1 (satu) atau lebih lapisan identik (modulo stride), yang diulang sebanyak n kali. Semua lapisan dalam urutan yang sama memiliki jumlah kanal keluaran c yang sama. Lapisan pertama dari setiap urutan menggunakan stride s sedangkan untuk lapisan lainnya menggunakan stride 1 (satu). Penerapan stride 1 (satu) pada lapisan model akan menhasilkan feature map dengan ukuran yang sama dengan feature map dari lapisan sebelunya, sehingga dapat diterapkan skip/residual connection. Sebagaimana disebutkan dalam subbab 2.7.2, ukuran filter/kernel konvolusi adalah 3×3. Saat training dataset, basis model dari MobileNetV2 di freeze sehingga bobot-bobot pada filter/kernel bottelencek tidak diperbarui. Hal ini dilakukan untuk mempercepat proses training karena bobot yang diperbarui hanya pada head layer yang dibuat saat fine tuning. Pada model ini, fine tuning dilakukan setelah blok bottleneck ke- 17 (tujuh belas), yaitu dimulai dari pooling layer hingga output layer.
4.1.2 Training Loss and Accuracy
Dari hasil testing dengan data test set (20% dari dataset) akan diketahui tingkat kepresisian masing-masing kategori (with_mask dan without_mask) dan commit to user
tingkat akurasinya. Gambar 4.2 menunjukkan tingkat kepresisian dan tingkat akurasi model training yang telah dibuat.
Tabel 0.2 Jumlah data dan test set pada dataset
Sub-direktori Jumlah data Jumlah test set
with_mask 640 128
without_mask 680 136
Gambar 0.2 Tingkat akurasi pengujian dengan test set mencapai 99%
Gambar 0.3 Kurva model training menunjukkan tingkat akurasi yang baik Gambar 4.3 menunjukkan tingkat akurasi data training dan data test set (validator) yang cukup stabil setelah training pada epoch ke-3. Sedangkan losses data training dan test set (validator) cukup stabil setelah training pada epoch ke- 7. Dengan tingkat akurasi test set yang mencapai 99%, maka model yang telah dibuat dapat diterapkan untuk data pengujian berupa data pengawasan hasil tangkapan CCTV dan gambar.
commit to user
Implementasi Deteksi dan Pengenalan Wajah 4.2
4.2.1 Deteksi dan Pengenalan Wajah
Proses deteksi wajah dilakukan dengan menerapkan DNN Face Detector yang yang dibangun dengan framework SSD berdasarkan arsitektur jaringan ResNet-10. Setelah melalui tahap preprocessing, frame video CCTV maupun gambar diubah dalam format array yang kemudian akan dilakukan proses konvolusi dengan filter/kernel yang berfungsi sebagai bobot. Dalam DNN Face Detector, ukuran filter/kernel konvolusi pertama adalah 7x7 (sesuai dengan ukuran filter/kernel pada ResNet) diikuti dengan pooling layer. Proses konvolusi bertujuan untuk mendapatkan feature map berupa kumpulan angka yang merepresentasikan frame video/gambar yang diolah. Proses konvolusi dilakukan hingga output layer pada model DNN Face Detector yaitu hingga mengetahui lokasi wajah dalam frame. Jika dalam frame diketaui terdapat wajah, maka dilanjutkan tahap selanjutnya untuk mendeteksi pemakaian masker.
Region of Interest (ROI) wajah hasil deteksi wajah diekstrak dan dilakukan preprocessing sebagaimana telah dijelaskan pada subbab 3.6.1. ROI wajah dengan ukuran 224x224 diubah dalam format array dengan rentang nilai [0, 255]. Nilai array tersebut diubah dalam format array dalam rentang nilai [-1, 1] agar sesuai dengan basis model yang digunakan pada face mask detector model, yaitu MobileNetV2. Sebagaimana ditunjukkan pada Tabel 4.1, proses konvolusi pertama dilakukan dengan filter/kernel berukuran 3x3. Proses konvolusi dilakukan hingga output layer pada face mask detector model sehingga model dapat mengetahui landmark ROI wajah seperti posisi mata, hidung, dan mulut. Dari landmark tersebut model akan mengetahui apakah wajah dalam frame tersebut mengenakan masker atau tidak. ROI wajah yang tidak terdeteksi area mulut dan bagian bawah hidung akan dikenali sebagai with_mask atau mengenakan masker.
commit to user
Gambar 0.4 Facial landmark [46]
Permasalahan yang dapat muncul dalam penerapan model ini adalah ketika seseorang dalam frame video atau gambar mengenakan masker yang memiliki motif menyerupai mulut. Motif mulut tersebut dapat dikenali sebagai mulut asli seseorang sehingga orang yang sebenarnya mengenakan masker dianggap tidak mengenakannya. Namun demikian, jenis masker yang sering digunakan di area Fakultas Teknik UNS adalah masker medis dan masker polos.
Gambar 0.5 Kesalahan pengenalan
Ketika seseorang tidak mengenakan masker, maka seluruh bagian wajahnya dapat terlihat dalam frame gambar. ROI wajah tanpa masker tersebut diubah dalam bentuk array dan dilakukan proses konvolusi dengan menerapkan dlib (encoding wajah) sehingga akan diperoleh angka 128-d. Angka 128-d
commit to user
tersebut kemudian dibandingkan dengan data hasil training database sehingga dapat dikenali siapakah orang yang tidak mengenakan masker tersebut
.
4.2.2 Hasil Implementasi Pada Video CCTV
Kamera 02 terletak di halaman parkir gedung 3 Fakultas Teknik. Pada Gambar 4.6 ditunjukkan gambar orang dalam video dikenali dengan “No Mask”
yang berarti orang tersebut tidak mengenakan masker. Sedangkan pada Gambar 4.7 orang dalam video mengenakan masker dan dikenali dengan “With Mask”.
Gambar 0.6 Pengenalan “No Mask” pada kamera 02
Gambar 0.7 Pengenalan “With Mask” pada kamera 02 commit to user
Keberadaan kamera 02 yang berada di luar ruangan sangat membatasi penulis dalam mengambil data pengawasan untuk keperluan pengujian. Hal ini dikarenakan hasil tangkapan kamera sangat dipengaruhi oleh sinar matahari.
Dalam computer vision, sinar matahari dan debu dikategorikan sebagai noise karena sangat berpengaruh terhadap keberhasilan deteksi objek pada suatu frame/gambar, lebih-lebih pengenalan objek. Pun demikian dengan kamera 03 yang terletak di halaman depan gedung 3 Fakultas Teknik juga sangat dipengaruhi oleh sinar matahari.
Gambar 0.8 Pengenalan “No Mask” pada kamera 03
Gambar 0.9 Pengenalan “With Mask” pada kamera 03 commit to user
Berbeda dengan kamera 02 dan kamera 03 yang berada di luar ruangan (outdoor), pemasangan kamera 04 berada didalam ruangan (lobby gedung 3 Fakultas Teknik) sehingga pengaruh cahaya matahari pada frame video tidak terlalu besar. Dengan minimnya pengaruh sinar matahari, pengenalan “With Mask” dan “No Mask” menjadi lebih akurat. Selain itu, posisi seseorang dalam frame juga berpengaruh terhadap tingkat akurasi. Hal ini dikarenakan sistem akan lebih baik dalam mendeteksi wajah yang kurang lebih sejajar atau menghadap ke kamera. Sedangkan pada pemasangannya, CCTV Fakultas Teknik UNS dipasang pada sudut-sudut bangunan sehingga gambar yang ditangkap terlihat lebih keatas –mengingat tujuan awalnya memang untuk keamanan.
Gambar 0.10 Pengenalan “No Mask” pada kamera 04
Gambar 0.11 Pengenalan “With Mask” pada kamera 04
Hasil implementasi deteksi wajah dihitung dan dianalisa agar dapat diketahui tingkat akurasinya berdasarkan Tabel 4.3. Dalam mengambil data kuantitas hasil implementasi, diberlakukan beberapa penghitungan satu wajah tetapi dihitung dua kali. Penghitungan dua kali pada satu wajah ini diterapkan pada orang yang dalam satu video CCTV melakukan gerakan memakai dan/atau melepas masker, sehingga wajah dihitung dua kali yaitu saat memakai masker dan commit to user
saat tidak memakai masker. Selain itu, terkadang terdapat orang yang berjalan melewati kamera CCTV namun dalam kondisi menunduk sehingga wajah tidak dapat terlihat jelas. Wajah orang yang menunduk tersebut tidak dihitung dalam pengambilan data hasil kuantitatif.
Tabel 0.3 Hasil deteksi pada CCTV
Kamera Jumlah wajah
Jumlah terdeteksi Jumlah tidak terdeteksi with
mask
without mask
02 8 2 5 1
03 12 2 7 3
04 22 4 15 3
Adapun untuk menghitung nilai akurasi, digunakan perhitungan:
(4.1)
dengan demikian diperoleh tingkat akurasi deteksi dan pengenalan adalah sebagai berikut:
Tabel 0.4 Tingkat akurasi pada CCTV Kamera Akurasi
02 87,5%
03 75,0%
04 86,4%
4.2.3 Hasil Implementasi Pada Gambar
Gambar 4.12 menunjukkan hasil implementasi pengenalan “With Mask”
pada frame gambar. Melalui gambar tersebut, dapat diketahui pengenalan wajah dengan masker dapat diimplementasikan dengan baik. Bahkan wajah orang yang menghadap ke samping pada gambar kedua dapat dikenali. Sebagaimana saat penerapan deteksi dan pengenalan pada video CCTV, bounding box yang menandakan letak wajah seseorang berwarna hijau ketika seseorang mengenakan masker dan berwarna merah jika tidak mengenakan masker.
commit to user
Gambar 0.12 Pengenalan “With Mask” pada gambar
Adapun pengenalan pada gambar tanpa masker dilakukan dalam tiga tahap. Tahap pertama adalah dengan melakukan deteksi wajah pada frame gambar yang diuji (DNN Face Detector). Tahap kedua adalah melakukan pengenalan dengan mengecek apakah orang dalam frame video tersebut mengenakan masker atau tidak (face mask detector model). Jika orang dalam frame gambar tidak mengenakan masker, maka akan dilakukan pengenalan wajah orang yang tidak mengenakan masker tersebut (dlib). Gambar 4.13 adalah implementasi pengenalan wajah tanpa masker, dengan nama orang dalam gambar tersebut berturut-turut adalah galih_irsyad (Galih Irsyad), febri_abdul (Febri Abdul) dan ratu_riyaning (Ratu Riyaning), jason_statham (Jason Statham) dan michael_caine (Michael Caine).
commit to user
Gambar 0.13 Pengenalan wajah pada gambar
Nama orang dalam gambar 4.14 adalah Ben Affleck, namun karena tidak dilakukan training database ben_afffleck maka orang dalam gambar tersebut tidak dikenali. Dengan demikian, implementasi pengenalan menunjukkan nama
“unknown”.
Gambar 0.14 Ben Affleck tidak dikenali (unknown)
commit to user
Dalam pengujian pada gambar, ditemukan permasalahan pada saat menguji gambar orang berkulit hitam. Gambar 4.15 menunjukkan kesalahan pengenalan pada wajah yang seharusnya dikenali sebagai No Mask namun hasul uji menunjukkan pengenalan With Mask. Kesalahan pengenalan ini dapat disebabkan karena face mask detector model yang tidak dapat menemukan landmark wajah yang merepresentasikan bagian mulut. Dalam gambar tersebut, warna mulut dan kulit disekitarnya cenderung sama sehingga dapat mempengaruhi hasil konversi gambar ke array. Pada dasarnya, nilai array dipengaruhi oleh tingkat keabuan citra, sehingga warna yang cenderung sama akan menghasilkan array yang hampir sama pula. Karena array yang hampir sama itulah model menjadi kesulitan dalam menemukan posisi mulut pada wajah sehingga gambar dikenali sebagai With Mask. Permasalahan ini dapat diatasi dengan menambah data sampel untuk training dataset terutama pada kelas without_mask dengan kumpulan gambar orang berkulit hitam tanpa mengenakan masker. Dengan penambahan data tersebut, model akan menyimpan data array orang berkulit hitam tanpa masker pada saat proses training.
Gambar 0.15 Kesalahan pengenalan pada orang berkulit hitam
Hasil implementasi deteksi wajah dan pengenalan dihitung agar dapat diketahui tingkat akurasinya berdasarkan Tabel 4.5.
commit to user
Tabel 0.5 Hasil deteksi pada gambar
Nama Jumlah
wajah
Jumlah dikenali Jumlah tidak dikenali
Akurasi Sesuai Tidak
sesuai
Anne Hethaway 20 20 0 0 100%
Christian Bale 14 14 0 0 100%
Dwayne Johnson 22 22 0 0 100%
Febri Abdul 17 16 0 1 94%
Galih Irsyad 37 35 2 0 95%
Iko Uwais 24 24 0 0 100%
Jason Statham 26 26 0 0 100%
Michael Caine 36 31 1 4 86%
Nisa Nurul 18 17 0 1 94%
Ratu Riyaning 13 9 4 0 69%
Pada tabel diatas, dituliskan nilai akurasi yang diperoleh dengan perhitungan:
(4.2)
Setelah dilakukan uji implementasi pada gambar, diperoleh hasil nilai akurasi Ratu Riyaning sangat kecil jika dibandingkan dengan nilai akurasi orang lainnya. Hal ini dapat disebabkan oleh kurangnya database yang digunakan dalam training. Sebagaimana telah dibahas sebelumnya, training database dilakukan dengan teknik deep metric learning yang akan menghasilkan nilai pengukuran setiap gambar yang dilatih. Sehingga semakin banyak data training maka akan menghasilkan nilai pengukuran yang semakin akurat. Selain itu, kualitas gambar juga mempengaruhi hasil yang diperoleh. Semakin jernih gambar yang digunakan dalam training maupun dalam testing, maka semakin bagus pula tingkat akurasi yang didapat. Berdasarkan tabel diatas, tingkat akurasi 100% diperoleh dari gambar orang-orang yang gambarnya jernih.
commit to user