37 BAB III
METODOLOGI PENELITIAN
Instrumentasi Penelitian 3.1
Dalam penelitian digunakan perangkat keras pada laptop dengan spesifikasi sebagai berikut:
Sistem Operasi : Windows 7 Enterprise Service Pack 1 64-bit Prosesor : Intel(R) Core (TM) i3-2370 CPU @2,40GHz
Memory : 2GB
VGA : Intel(R) HD Graphics 3000
Memory VGA : 1696 MB
Kemudian perangkat lunak yang digunakan dalam pengembangan dan pengumpulan data adalah sebagai berikut:
1. Browser Opera 65.0.3467.48 2. Browser Internet Explorer 8 3. Python 3.6
4. Anaconda Navigator 1.9.7
5. JetBrains PyCharm Community Edition 2019.1.3
Tahapan Penelitian 3.2
3.2.1 Studi Literatur
Merupakan tahapan penelitian dengan menelaah literatur dan mengumpulkan data-data teknis untuk memperoleh informasi yang diperoleh dari buku, hasil penelitian, skripsi, dan media lain yang berhubungan dengan ISS, pengolahan citra, machine learning dan penelitian-penelitian sebelumnya terkait deteksi dan pengenalan wajah.
3.2.2 Perancangan Konsep
Merupakan proses perancangan konsep sistem yang digunakan dalam tugas akhir ini. Berdasarkan uraian latar belakang dan rumusan masalah, sistem
commit to user
diharapkan dapat mengimplementasikan deteksi wajah untuk sistem pengawasan di area Fakultas Teknik UNS dengan mempertimbangkan pemakaian masker.
Gambar 0.1 Diagram Alir Penelitian
Data Penelitian 3.3
Data yang digunakan dalam penelitian ini diperoleh dari berbagai sumber, rincian pengumpulan data adalah sebagai berikut.
Tabel 0.1 Sumber data penelitian
Jenis Data Kegunaan Data Sumber Data
Gambar Dataset
Bing Search API
Masked face oleh Adnane Cabani dkk.
Masked face oleh Prajna Bhandary Database Bing Search API
Dokumentasi pribadi
Video CCTV Pengujian Website CCTV Fakultas Teknik UNS
3.3.1 Pengumpulan Dataset
Dalam penelitian ini, dataset berupa kumpulan gambar terdiri dari dua kategori/label, yaitu gambar orang dengan mengenakan masker dan gambar orang tanpa mengenakan masker. Pertama-tama, gambar dikumpulkan dengan teknik crawling menggunakan Bing Search API. Web Crawler, atau sering disebut dengan spiders, merupakan sebuah tool untuk mengindeks dan mengunduh konten dari internet, lalu disimpan ke dalam database mesin pencari. Web Crawler dimulai dengan membuat daftar url yang akan dikunjungi, yang disebut dengan seed. Kemudian Web Crawler akan mengunjungi URL pada daftar dan mengambil informasi yang dibutuhkan, dalam hal ini gambar. Dengan banyaknya jumlah URL yang mungkin di crawl oleh crawler server yang membuatnya sulit untuk menghindari pengambilan konten yang sama. Sehingga diperlukan pengecekan manual untuk menghilangkan gambar yang tidak relevan/gambar yang berulang.
Adapun langkah pengumpulan data dengan Bing Web Search API adalah dengan mengunjungi situs Azure Cognitive Services, memilih API yang akan digunakan yaitu Bing Search API v7, memilih “Get API Key”, kemudian mendaftarkan akun untuk mendapat API Key.
Gambar 0.2 Bing Search API Key untuk mengunduh dataset
Gambar 0.3 API Key yang diperoleh commit to user
Langkah selanjutnya adalah dengan membuat script python untuk mengunduh dataset. Dimulai dengan mengimport packages yang digunakan.
Package request digunakan untuk mengunduh gambar yang ada di url, kemudian exceptions untuk membuat pengecualian karena terkadang terdapat url yang mati yang dapat menyebabkan error, cv2 untuk membaca lokasi output gambar, os untuk menyimpan gambar pada sebuah folder yang ditentukan. Setelah itu, memasukkan API Key, jumlah pencarian maksimum untuk setiap query, ukuran kelompok pencarian, dan url Bing Search API. Jumlah pencarian maksimum harus ditentukan agar tidak melebihi batas pencarian yang ditentukan Bing Search API.
Gambar 0.4 Import packages dan pengaturan awal API
Dalam pencarian dataset, penulis membatasi pencarian gambar untuk setiap kata kunci/kategori tidak lebih dari 150 gambar dengan jumlah maksimal setiap permintaan adalah 50 gambar. Kemudian diperlukan script exception, mengatur parameter sekaligus melakukan pencarian.
Gambar 0.5 Kata kunci pencarian people wearing mask
Term merupakan query atau kata kunci dari gambar yang hendak dicari, search untuk melakukan pencarian, result untuk mendapatkan hasil pencarian Api, estNumResults untuk mengetahui estimasi jumlah gambar yang dapat diunduh.
Setelah itu, dilakukan proses mengunduh dan menyimpan gambar ke disk penyimpanan dengan script dibawah ini.
Gambar 0.6 Perulangan menyimpan gambar
Jika terdapat error yang membuat tidak dapatnya gambar diunduh – sebagaiamana dalam script sebelumnya telah didefiniskan, maka proses try akan dilewati dan dilanjutkan dengan script selanjutnya untuk menghapus file yang tidak dapat dibaca/tidak ada dan memastikan counter (total) tidak bertambah.
Setelah itu, dilakukan proses pemangkasan dataset secara manual.
Pengumpulan dataset dengan teknik crawling terkadang memberikan gambar yang tidak sesuai, seperti gambar animasi, dan gambar duplikat yang harus dihapus secara manual. Teknik tersebut diulang unutuk mengumpulkan dataset orang yang tidak mengenakan masker.
commit to user
Gambar 0.7 Dataset
Dikarenakan ketersediaan gambar orang memakai masker di internet sangat terbatas, dataset with_mask ditambah dengan kumpulan gambar masked face (pemberian masker pada gambar wajah tanpa masker) yang dibuat oleh Adnane Cabani dkk. [48] dan Prajna Bhandary [49].
Gambar 0.8 Masked face oleh Adnane Cabani dkk.
3.3.2 Pengumpulan Database
Database merupakan beberapa sub-direktori dengan masing-masing sub- direktori berisi kumpulan wajah dari satu orang yang sama. Dalam penelitian ini, digunakan data wajah dari 10 (sepuluh) orang yang berbeda. Untuk mengumpulkan gambar database para artis, digunakan teknik crawling sebagamaina telah dilakukan pada pengumpulan dataset. Adapun gambar-gambar Febri Abdul, Galih Irsyad, Nisa Nurul, dan Ratu Riyaning merupakan hasil dari dokumentasi pribadi.
Tabel 0.2 Database penelitian
Nama Jumlah Gambar
Anne Hethaway 46
Christian Bale 61
Dwayne Johnson 56
Febri Abdul 41
Galih Irsyad 45
Iko Uwais 46
Jason Statham 61
Michael Caine 46
Nisa Nurul 48
Ratu Riyaning 45
Gambar 0.9 Beberapa gambar database Galih Irsyad dan Nisa Nurul
3.3.3 Video CCTV
Sebagaimana dijelaskan dalam Subbab 2.7, video CCTV diperoleh dengan mengakses website sistem CCTV di Fakultas Teknik UNS yang dapat diakses melalui situs “http://cctv.ft.uns.ac.id:81”.
Training dataset 3.4
3.4.1 Preproses Training data
Proses ini diawali dengan inisiasi kelas data dan label. Setelah itu dataset pada disk dimuat ke memori dan dilakukan proses pengubahan ukuran (resizing) gambar menjadi 224x224 piksel, mengubahnya dalam bentuk array, dan melakukan penskalaan intensitas piksel pada gambar ke kisaran [-1, 1] dengan memanfaatkan fungsi preprocess_input. Gambar-gambar yang telah di proses commit to user
tersebut kemudian ditambahkan dalam list kelas data dengan kelas labels merupakan kelas direktori gambar yang sesuai.
Gambar 0.10 Preproses data
Proses selanjutnya adalah melakukan encode label dengan one-hot encode.
Proses ini dimaksudkan untuk memastikan bahwa suatu data gambar hanya memiliki satu label saja mengingat setiap kategori dalam dataset (nama orang) merupakan orang yang berbeda sehingga tidak mungkin termasuk dalam lebih dari satu kelas label. Selain itu, kelas label direpresentasikan dalam bentuk string sedangkan neural network hanya memproses data divektorisasi (vectorized) atau yang telah distandarisasi. Selanjutnya dilakukan partisi dataset menjadi 2 kelompok, yaitu 80% data digunakan untuk training dan 20% data sisanya digunakan untuk testing (validator). Dari hasil testing dengan data test set tersebut akan diketahui tingkat kepresisian masing-masing kategori (with_mask dan without_mask) dan tingkat akurasinya. Dalam proses preproses training data ini juga dilakukan augmentasi data yang meliputi rotasi, zoom, dan gambar saling terbalik untuk meningkatkan generalisasi. Dalam gambar dataset yang dikumpulkan, disediakan beberapa gambar yang telah diedit sedemikian rupa sebagai gambar teraugmentasi.
Gambar 0.11 Beberapa gambar teraugmentasi pada dataset
3.4.2 Pemodelan
Dalam membangun model face mask detector, dilakukan proses transfer learning, yaitu dengan menggunakan jaringan pada classifier yang telah ada sebagai titik awal untuk klasifikasi maupun deteksi objek yang berbeda. Dengan kata lain, transfer learning memungkinkan classifier yang dilatih untuk membedakan kucing dan anjing, digunakan untuk membedakan mobil dan sepeda meskipun mobil dan sepeda tidak digunakan dalam pelatihan awal. Agar jaringan dapat digunakan dalam klasifikasi objek yang baru, dilakukan proses fine tuning.
Dalam penelitian ini, digunakan arsitektur jaringan dari MobileNetV2 yang diimport dengan menghilangkan/menghapus head layer sebagai baseModel.
Selanjutnya dilakukan proses fine tuning dengan membuat head layer yang baru.
Gambar 0.12 Pemodelan face mask detector 3.4.3 Training Model
Untuk melakukan training, terlebih dahulu ditentukan initial learning rate, jumlah epochs dan batch size yang mengatur ukuran setiap grup data yang melewati jaringan. Proses compile dilakukan menggunakan Adam optimizer
commit to user
dengan binary_crossentropy sebagai loss function karena kelas label output hanya 2 saja, yaitu with_mask dan without_mask.
Gambar 0.13 Compile model
Training database 3.5
3.5.1 Preproses Training data
Proses ini diawali dengan inisiasi kelas encoding (untuk data) dan nama (label). Setelah itu data pada disk dimuat ke memori dan dilakukan proses pengubahan warna dari BGR (kanal warna OpenCV) menjadi RGB (kanal warna dlib).
3.5.2 Pemodelan
Dalam training database, penulis tidak membuat model baru ataupun melakukan fine tuning terhadap model yang sudah ada (pretrained model). Akan tetapi, penulis menggunakan model yang telah dibuat oleh Davis King (author dlib) untuk training sekitar 3 juta gambar. Jaringan tersebut kemudian dikembangkan oleh Adam Geitgey dengan mengkhususkannya untuk melakukan embedding wajah dalam package face_recognition sehingga proses embedding wajah dengan dlib dapat dilakukan dengan lebih efisien. Teknik embedding wajah ini memakai metode deep metric learning sebagaimana telah dijelaskan pada subbab 2.12.
Gambar 0.14 Pemodelan training database
3.5.3 Encoding Wajah
Dalam penelitian ini, proses deteksi wajah dilakukan dengan menggunakan metode histogram of oriented gradients (hog). Setelah area wajah pada suatu gambar diketahui, kemudian area tersebut diubah menjadi angka 128-d yang disebut dengan embedding wajah. Hasil embedding tersebut kemudian ditambahkan dalam list kelas knownEncodings dengan kelas knownNames merupakan kelas direktori gambar yang sesuai.
Gambar 0.15 Program encoding wajah
Gambar 0.16 Embedding wajah
commit to user
Metode Pengujian 3.6
3.6.1 Pengujian Pada CCTV
Gambar 0.17 Tahapan pengujian pada CCTV
Metode pengujian diawali dengan memuat frame video dari disk untuk selanjutnya dilakukan preprosessing dengan membuat blob 4 dimensi dari frame video tersebut. Blob adalah pembungkus (wrapper) data aktual yang diproses oleh Caffe. Caffe menyimpan dan mengkomunikasikan data dalam format blob 4 dimensi yang meliputi jumlah frame (n), jumlah kanal warna (k), dan ukuran frame (tinggi h dan lebar w). Proses pembuatan blob adalah dengan mengubah ukuran frame, mengurangi nilai kanal warna frame dengan nilai kanal rata-rata (mean subtraction), dan menskalakan nilai tiap kanal warna tersebut dengan faktor skala. Secara default, nilai faktor skala adalah 1 dan nilai mean tiap kanal warna berdasarkan training ImageNet adalah R=103.93, G=116.77, and B=123.68.
(3.1)
Proses selanjutnya adalah deteksi wajah yang dilakukan dengan menerapkan DNN Face Detector yang merupakan model deteksi wajah yang dibuat dengan framework SSD berdasarkan arsitektur jaringan ResNet-10. Model ini dilatih dalam framework Caffe untuk dataset WIDER FACE dengan iterasi 140.000 kali dan telah disediakan oleh OpenCV dalam repository github.com.
Setelah itu, area wajah hasil deteksi diekstrak dan diubah kanal warnanya dari BGR ke RGB, diubah ukurannya (resizing) menjadi 224x224 piksel, mengubahnya dalam bentuk array, dan melakukan penskalaan intensitas piksel pada gambar ke kisaran [-1, 1] dengan memanfaatkan fungsi preprocess_input.
3.6.2 Pengujian Pada Gambar
Gambar 0.18 Tahapan pengujian gambar
Metode pengujian gambar dilakukan dengan tahapan yang kurang lebih sama dengan pengujian pada CCTV. Gambar yang dimuat dari disk dilakukan preprocessing dengan mengubah ukuran gambar, mean subtraction, menskalakan nilai dengan faktor skala untuk tiap kanal warna, dan membuat blob 4 dimensi dari gambar. Kemudian dilakukan proses deteksi wajah pada blob tersebut. Proses deteksi wajah pada gambar kurang lebih sama dengan deteksi wajah pada CCTV.
Setelah itu dilakukan proses klasifikasi yang menentukan apakah seseorang dalam gambar mengenakan masker atau tidak. Jika seseorang dalam gambar mengenakan masker, maka sistem akan menampilkan gambar yang telah diolah.
Adapun jika seseorang tidak mengenakan masker, maka akan dilanjutkan ke proses selanjutnya yaitu proses embedding wajah. Hasil embedding wajah tersebut kemudian dibandingkan dengan data embedding wajah hasil dari training database (subbab 3.6). Hasil perbandingan tersebut merupakan pengenalan wajah orang yang bersangkutan.
commit to user