Anda di halaman 1dari 104

PENGEMBANGAN ALAT PENDETEKSI

PENGGUNAAN MASKER DENGAN SSDLITE


MOBILENETV3 SMALL BERBASIS RASPBERRY PI 4

Skripsi

Oleh :
Syarif Hilmi Ramadhani
NIM: 11170910000036

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
1443 H / 2022 M
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI

Sebagai civitas akademik UIN Syarif Hidayatullah Jakarta, saya yang


bertandatangan dibawah ini:
Nama : Syarif Hilmi Ramadhani
NIM : 11170910000036
Program Studi : Teknik Informatika
Fakultas : Fakultas Sains dan Teknologi
Jenis Karya : Skripsi
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada
Universitas Islam Negeri Syarif Hidayatullah Jakarta Hak Bebas Royalti Non
Eksklusif (Non-exclusive Royalti Free Right) atas karya ilmiah saya yang berjudul:

PENGEMBANGAN ALAT PENDETEKSI PENGGUNAAN MASKER


DENGAN SSDLITE MOBILENETV3 SMALL BERBASIS RASPBERRY PI
4
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non
Eksklusif ini Universitas Islam Negeri Syarif Hidayatullah Jakarta berhak
menyimpan, mengalihmedia/formatkan, mengelola dalam bentuk pangkalan data
(database), merawat, dan mempublikasikan tugas akhir saya selama tetap
mencantumkan nama saya sebagai penulis/pencipta dan sebagai pemilik Hak Cipta.

Demikian pernyataan ini saya buat dengan sebenarnya.


Dibuat di : Jakarta
Pada tanggal 26 April 2022
Yang menyatakan,

(Syarif Hilmi Ramadhani)

vi
Penulis : Syarif Hilmi Ramadhani (11170910000036)
Program Studi : Teknik Informatika
Judul : PENGEMBANGAN ALAT PENDETEKSI
PENGGUNAAN MASKER DENGAN SSDLITE MOBILENETV3
SMALL BERBASIS RASPBERRY PI 4

ABSTRAK

Penggunaan masker dibutuhkan untuk mengurangi penyebaran COVID-19. Metode


deteksi objek satu tahap lebih cepat dibandingkan dengan metode deteksi dua tahap.
Kekurangan metode deteksi objek satu tahap adalah memiliki tingkat akurasi tidak
sebaik dengan metode deteksi dua tahap. SSDLite MobilenetV3 Small merupakan
model dengan metode deteksi satu tahap. MobilenetV3 memiliki akurasi yang lebih
tinggi dibandingkan dengan MobilenetV2 dengan latensi 20-40 ms. SSDLite
merupakan versi efisiensi dari SSD. Tujuan penelitian ini adalah melakukan
pengembangan alat deteksi penggunaan masker dengan SSDLite MobilenetV3
Small berbasis Raspberry Pi 4 . Metode yang digunakan dalam penelitian ini adalah
metode pengembagan sistem yaitu metode prototipe Berdasarkan hasil pengujian,
didapatkan sistem dengan model SSDLite MobilenetV3 Small memiliki kecepatan
deteksi yang lebih cepat dibandingkan dengan sistem yang menggunakan model
SSDLite MobilenetV3 Large, SSDLite MobilenetV2, SSD MobilenetV2, SSDLite
Mobiledets, dan SSDMNV2. Sementara unntuk model dengan deteksi terbaik
adalah model SSDLite Mobilenet V2, namun sistem dengan model SSDLite
MobilenetV3 Small tetap mampu mendeteksi penggunaan masker.

Kata Kunci : COVID-19, mask, ssdmnv2, ssd, ssdlite, mobilenetv2,


mobilenetv3, mobildets, raspberry pi 4, deteksi objek
Jumlah Halaman : xv halaman + 85 halaman

vii
Writer : Syarif Hilmi Ramadhani (11170910000036)
Study Program : Teknik Informatika
Title : DEVELOPMENT OF MASK USE DETECTION
TOOL WITH SSDLITE MOBILENETV3 SMALL BASED ON
RASPBERRY PI 4
ABSTRACT
The use of masks is needed to reduce the spread of COVID-19. The single-stage
object detection method is faster than the two-stage detection method. The
disadvantage of the one-stage object detection method is that it has a level of
accuracy that is not as good as the two-stage detection method. SSDLite
MobilenetV3 Small is a model with a single-stage detection method. MobilenetV3
has higher accuracy than MobilenetV2 with 20-40 ms latency. SSDLite is an
efficient version of SSD. The purpose of this study is to develop a mask detection
tool with SSDLite MobilenetV3 Small based on Raspberry Pi 4. The method used
in this research is a system development method, namely the prototype method.
with systems using SSDLite MobilenetV3 Large, SSDLite MobilenetV2, SSD
MobilenetV2, SSDLite Mobileedets, and SSDMNV2 models. While the model
with the best detection is the SSDLite Mobilenet V2 model, the system with the
SSDLite MobilenetV3 Small model is still able to detect the use of masks.

Keywords : COVID-19, mask, ssdmnv2, ssd, ssdlite, mobilenetv2,


mobilenetv3, mobildets, raspberry pi 4, object detection
Number of Pages : xv pages + 85 pages

viii
KATA PENGANTAR

Assalamu’alaikum Wr. Wb.


Puji syukur senantiasa dipanjatkan kehadirat Allah SWT yang telah
melimpahkan rahmat, hidayat serta nikmat-Nya sehingga penyusunan skripsi ini
dapat diselesaikan. Sholawat dan salam senantiasa dihaturkan kepada junjungan
kita baginda Nabi Muhammad Shallahu Alaihi Wassalam beserta keluarganya, para
sahabatnya serta umatnya hingga akhir zaman. Penulisan skripsi ini mengambil
tema dengan judul:

PENGEMBANGAN ALAT PENDETEKSI PENGGUNAAN MASKER


DENGAN SSDLITE MOBILENETV3 SMALL BERBASIS RASPBERRY PI
4
Penyusunan skripsi ini adalah salah satu syarat untuk memperoleh gelar
Sarjana Komputer (S.Kom) pada program studi Teknik Informatika, Fakultas Sains
dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta.
Dalam penyusunan skripsi ini, telah banyak bimbingan dan bantuan serta
dukungan yang didapat, sehingga skripsi ini dapat berjalan dengan lancar. Oleh
karena itu, penulis ingin mengucapkan banyak terima kasih kepada:
1. Keluarga tercinta, Bapak, Ibu, dan adik yang senantiasa mendukung dan
mendoakan penulis agar dapat menyelesaikan skripsi ini.
2. Nenny Anggraini, MT, selaku Dosen Pembimbing I penulis, yang
senantiasa membimbing penulis, meluangkan waktu, serta memberikan
motivasi dan semangat dalam menyelesaikan skripsi ini.
3. Ir. Nasrul Hakiem, S.Si., MT., Ph.D, selaku Dekan Fakultas Sains dan
Teknologi sekaligus Dosem Pembimbing II penulis, yang telah
membimbing penulis, meluangkan waktu, serta memberikan motivasi dan
semangat dalam menyelesaikan skripsi ini.

ix
4. Dr. Imam Marzuki Shofi, MT selaku Ketua Program Studi Teknik
Informatika sekaligus menjadi Dosen Pembimbing Akademik penulis, yang
senantiasa membimbing dan meluangkan waktu dalam mengurus akademik
perkuliahan penulis.
5. Seluruh dosen dan staff UIN Jakarta, khususnya Fakultas Sains dan
Teknologi yang telah memberikan ilmu serta pengalaman yang berharga.
6. Teman – teman teknik Informatika 2017, khususnya kelas B, yang tidak bisa
disebutkan satu per satu.
7. Seluruh pihak yang tidak dapat disebutkan satu persatu yang secara
langsung maupun tidak langsung telah membantu dalam menyelesaikan
skripsi ini.
Penulisan skripsi ini masih jauh dari kata sempurna. Untuk itu, sangat
diperlukan kritik dan saran yang membangun bagi penulis. Akhir kata, semoga
laporan skripsi ini dapat bermanfaat bagi penulis dan orang lain.
Wassalamualaikum, Wr. Wb.

Tangerang Selatan, 26 April 2022


Penulis

Syarif Hilmi Ramadhani


11170910000036

x
DAFTAR ISI

LEMBAR PERSETUJUAN ............................................................................................ iii


HALAMAN PENGESAHAN ...........................................................................................iv
PERNYATAAN ORISINALITAS................................................................................... v
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI ...........................................vi
ABSTRAK ........................................................................................................................vii
KATA PENGANTAR .......................................................................................................ix
DAFTAR ISI......................................................................................................................xi
DAFTAR GAMBAR ....................................................................................................... xiv
DAFTAR TABEL ............................................................................................................ xv
BAB 1 PENDAHULUAN ................................................................................................. 1
1.1 Latar Belakang ................................................................................................ 1
1.2 Rumusan Masalah ........................................................................................... 3
1.3 Batasan Masalah .............................................................................................. 3
1.3.1 Metode............................................................................................................... 3
1.3.2 Proses ................................................................................................................ 3
1.3.3 Tools .................................................................................................................. 4
1.4 Tujuan Penelitian ............................................................................................ 4
1.5 Manfaat Penelitian .......................................................................................... 4
1.5.1 Bagi Penulis ................................................................................................... 4
1.5.2 Bagi Universitas ........................................................................................... 4
1.6 Metodologi Penelitian ...................................................................................... 5
1.6.1 Metode Pengumpulan Data ........................................................................ 5
1.6.2 Metode Pengembangan Sistem .................................................................. 5
1.7 Sistematika Penulisan...................................................................................... 5
BAB 2 LANDASAN TEORI DAN TINJAUAN PUSTAKA ......................................... 7
2.1 Object Detection .............................................................................................. 7
2.2 Penggunaan Masker ........................................................................................ 8
2.3 SSD .................................................................................................................... 8
2.4 SSDLite ............................................................................................................. 9
2.5 MobilenetV2 .................................................................................................... 10

xi
2.6 MobilenetV3 .................................................................................................... 10
2.7 Mobiledets ....................................................................................................... 12
2.8 SSDMNV2....................................................................................................... 14
2.9 Raspberry Pi 4 Model B.................................................................................. 15
2.10 Raspberry Pi Cam V.1.................................................................................... 16
2.11 Tensorflow ...................................................................................................... 17
2.12 Keras................................................................................................................ 18
2.13 OpenCV ........................................................................................................... 18
2.14 Membuat Prototipe........................................................................................ 19
BAB 3 METODOLOGI PENELITIAN ........................................................................ 25
3.1 Metode Studi Literatur dan Pustaka ........................................................... 25
3.2 Metode Pengembangan Sistem ..................................................................... 29
3.2.1 Komunikasi ................................................................................................ 29
3.2.2 Perencanaan cepat .................................................................................... 29
3.2.3 Pemodelan cepat ........................................................................................ 30
3.2.4 Konstruksi.................................................................................................. 30
3.2.5 Penerapan dan Evaluasi ........................................................................... 31
3.3 Dataset ............................................................................................................ 32
3.4 Alur Penelitian ............................................................................................... 33
BAB 4 ANALISIS, PERANCANGAN SISTEM, IMPLEMENTASI DAN
PENGUJIAN SISTEM ................................................................................................... 34
4.1 Komunikasi .................................................................................................... 34
4.2 Perencanaan Cepat ........................................................................................ 34
4.2.1 Analisis Klasifikasi Peggunaan Masker .................................................. 35
4.2.2 Analisis Dataset ......................................................................................... 35
4.2.5 Analisis Kebutuhan Fungsional Sistem ................................................... 37
4.2.6 Analisis Kebutuhan Perangkat Keras ..................................................... 38
4.2.7 Analisis Kebutuhan Perangkat Lunak .................................................... 38
4.3 Pemodelan Cepat ........................................................................................... 39
4.4.1 Kamera ....................................................................................................... 40
4.4.2 Tombol Daya dan Tombol Program........................................................ 40
4.4.3 Kipas ........................................................................................................... 41
4.4.4 Monitor dan Sumber Daya ....................................................................... 42
4.4 Konstruksi ...................................................................................................... 42

xii
4.4.1 Model Deteksi ............................................................................................ 42
4.4.2 Alat ............................................................................................................. 47
4.5 Penerapan dan Evaluasi................................................................................ 50
BAB 5 HASIL DAN PEMBAHASAN ........................................................................... 63
5.1 Hasil Evaluasi Deteksi Penggunaan Masker ............................................... 63
5.2 Hasil Evaluasi FPS ........................................................................................ 67
5.3 Hasil Evaluasi Daya ....................................................................................... 67
5.4 Pengujian Akurasi Model ............................................................................. 68
5.5 Pengujian Jarak Deteksi ............................................................................... 79
5.6 Pengujian Jumlah Deteksi ............................................................................ 80
5.7 Pengujian Kondisi Pencahayaan .................................................................. 81
BAB 6 KESIMPULAN DAN SARAN ........................................................................... 83
6.1 Kesimpulan .................................................................................................... 83
6.2 Saran ............................................................................................................... 83
DAFTAR PUSTAKA ...................................................................................................... 84
LAMPIRAN..................................................................................................................... 86

xiii
DAFTAR GAMBAR
Gambar 2.1 Perbedaan image classfication dengan object detection ................................. 7
Gambar 2.2 SSD ................................................................................................................. 9
Gambar 2.3 Layer pada MobilenetV2 ............................................................................... 10
Gambar 2.4. Layer pada MobilenetV3 .............................................................................. 11
Gambar 2.5 Perbedaan Latensi MobilenetV3 Large dan Small ........................................ 11
Gambar 2.6 Perbedaan blok MobilenetV2 dengan MobilenetV3 ...................................... 12
Gambar 2.7 Arsitektur Mobiledets .................................................................................... 13
Gambar 2.8 Algoritma SSDMNV2 .................................................................................... 14
Gambar 2.9 Raspberry Pi 4 Model B ................................................................................ 15
Gambar 2.10 Pin GPIO raspberry pi 4 model b ............................................................... 16
Gambar 2.11 Paradigma prototipe .................................................................................... 19
Gambar 3.1 Alur Penelitian .............................................................................................. 33
Gambar 4.1 Contoh dataset yang digunakan oleh (Nagrath et al., 2 2021) ...................... 36
Gambar 4.2 Contoh dataset MaskedFace-Net .................................................................. 37
Gambar 4.3 Flowchart program........................................................................................ 37
Gambar 4.4 Blok diagram alat .......................................................................................... 39
Gambar 4.5 Port CSI ......................................................................................................... 40
Gambar 4.6 Rangkaian tombol ......................................................................................... 41
Gambar 4.7 Rangkaian kipas ............................................................................................ 41
Gambar 4.8 Port USB Type-C, micro HDMI .................................................................... 42
Gambar 4.9 Tahapan pembuatan model deteksi satu tahap .............................................. 43
Gambar 4.10 Tahapan pembuatan model klasifikasi penggunaan masker ....................... 47
Gambar 5.1 Hasil pengujian jarak..................................................................................... 80
Gambar 5.2 Hasil pengujian jumlah deteksi ..................................................................... 81
Gambar 5.3 Hasil pengujian saat cahaya redup ................................................................ 81
Gambar 5.4 Hasil pengujian saat gelap............................................................................. 82
Gambar 5.5 Hasil pengujian saat gelap dengan bantuan lampu........................................ 82

xiv
DAFTAR TABEL
Tabel 2.1 Perbandingan SSD dengan SSDLite .................................................................... 9
Tabel 2.2 Perbandingan Mobiledets dengan model lain ................................................... 12
Tabel 2.3 Perbandingan Mobiledets gpu dengan model lain ............................................ 13
Tabel 2.4 Spesifikasi Raspberry Pi Cam V.1 .................................................................... 16
Tabel 3.1 Kelebihan dan kekurangan literatur sejenis ...................................................... 27
Tabel 3.2 Perbedaan penelitian ......................................................................................... 29
Tabel 4.1 Kebutuhan perangkat keras ............................................................................... 38
Tabel 4.2 Kebutuhan perangkat lunak .............................................................................. 38
Tabel 4.3 Pelatihan tanpa Fine Tuning ............................................................................. 44
Tabel 4.4 Pelatihan dengan fine tuning ............................................................................. 45
Tabel 4.5 Tabel penampakan alat ..................................................................................... 48
Tabel 4.6 Percobaan SSDLite MobilenetV3 Small Menggunakan Fine Tuning .............. 51
Tabel 4.7 Percobaan SSDLite MobilenetV3 Small Tanpa Fine Tuning ........................... 52
Tabel 4.8 Percobaan SSDLite MobilenetV3 Large Menggunakan Fine Tuning .............. 53
Tabel 4.9 Percobaan SSDLite MobilenetV3 Large Tanpa Menggunakan Fine Tuning ... 54
Tabel 4.10 Percobaan SSD MobilenetV2 Menggunakan Fine Tuning ............................. 55
Tabel 4.11 Percobaan SSD MobilenetV2 Tanpa Menggunakan Fine Tuning .................. 56
Tabel 4.12 Percobaan SSDLite MobilenetV2 Menggunakan Fine Tuning ...................... 57
Tabel 4.13 Percobaan SSDLite MobilenetV2 Tanpa Menggunakan Fine Tuning ........... 58
Tabel 4.14 Percobaan SSDLite Mobiledets Menggunakan Fine Tuning ......................... 59
Tabel 4.15 Percobaan SSDLite Mobiledets Tanpa Menggunakan Fine Tuning ............... 60
Tabel 4.16 Percobaan SSDMNV2 .................................................................................... 61
Tabel 5.1 Rekap hasil evaluasi.......................................................................................... 65
Tabel 5.2 Hasil evaluasi fps .............................................................................................. 67
Tabel 5.3 Hasil evaluasi daya ........................................................................................... 68
Tabel 5.4 Pengujian Confusion Matrix ............................................................................. 69
Tabel 5.5 Hasil pengujian ................................................................................................. 78

xv
BAB 1
PENDAHULUAN

1.1 Latar Belakang


Sejak Desember 2019 Coronavirus jenis baru ditemukan pada manusia di
Wuhan Cina. Coronavirus jenis baru ini kemudian diberi nama Severe Acute
Respiratory Syndrome Coronavirus 2 (SARS-COV2) dan menyebabkan penyakit
Coronavirus Disease-2019 (COVID-19). Penyakit ini dapat menyebar melalui
tetesan kecil (droplet) dari hidung atau mulut pada saat batuk, bersin, atau berbicara
(Kementrian Kesehatan, 2020). Pemakaian masker diwajibkan untuk semua orang,
Bagi orang yang memiliki gejala infeksi pernapasan (batuk atau bersin), dicurigai
infeksi COVID-19 dengan gejala ringan, merawat orang yang bergejala seperti
demam dan batuk. Orang yang sehat disarankan untuk menggunakan masker kain.
Sedangkangan, untuk petugas kesehatan menggunakan masker bedah (Kementrian
Kesehatan, 2020). Terdapat penelitian sebelumnya yang membuat sistem
pendeteksi penggunaan masker dengan menggunakan kamera untuk membantu
penerapan kewajiban penggunaan masker. Sistem ini akan mengklasifikasikan
penggunaan masker dengan metode klasifikasi objek dan deteksi objek.
Berdasarkan hasil studi literatur, metode klasifikasi objek terdapat pada
penelitian (Darmasita, 2020) mengunakan Xception dan penelitian (Lambacing &
Ferdiansyah, 2020) menggunakan MobileNetV2. Untuk metode deteksi objek
terdapat pada penelitan (Giancini et al., 2020) menggunakan YOLOV3-Tiny,
penelitian (Loey et al., 2021) mengunakan YOLOV2, penilitan (Jiang et al., 2021)
menggunakan basis YOLOV3, penelitian (Militante & Dionisio, 2020)
menggunakan VGG-16, dan penelitian (Aprilian Anarki et al., 2021) serta (Thariq
& Yusliana, 2021) menggunakan Haar Cascade serta penelitian (Abdul et al., 2020)
dan (Nagrath et al., 2021) menggunakan deteksi wajah manusia dari OpenCV dan
diklasifikasikan penggunaan maskernya menggunakan MobilenetV2. Pada
penelitian (Nagrath et al., 2021) algoritma ini disebut dengan SSDMNV2. Terdapat
3 penelitian yang menggunakan Raspberry Pi sebagai alat komputasi untuk
menjalankan programnya. Pada penelitian (Abdul et al., 2020), (Lambacing &

1
2

Ferdiansyah, 2020), dan (Militante & Dionisio, 2020). Ini membuktikan bahwa
Raspberry Pi dapat digunakan untuk penelitian pendeteksi penggunaan masker
dengan mengandalkan kemampuan komputasi SoC yang dimiliki oleh Raspberry
Pi. Raspberry Pi 3 Model B dengan SoC Quad Core 1.2GHz Broadcom BCM2837
64-bit dan versi selanjutnya, yaitu Raspberry Pi 4 dengan SoC Broadcom
BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit. Pada penelitian (Abdul et al.,
2020) tidak terdapat keterangan seberapa cepat deteksi yang didapatkan saat
program objek deteksi dilakukan.
Pada algoritma SSDMNV2 terdapat dua tahapan untuk mendeteksi
penggunaan masker. Menurut (Elgendy, 2020), metode deteksi objek terbagi
menjadi 2 jenis, yaitu dua tahap dan satu tahap. Deteksi objek dua tahap memiliki
tingkat akurasi yang tinggi namun kecepatan deteksinya lebih lambat dari objek
deteksi satu tahap. Sedangkan deteksi objek satu tahap memiliki tingkat akurasi
yang lebih rendah, namun memiliki kecepatan deteksi yang lebih cepat
dibandingkan dengan metode objek deteksi dua tahap. Berdasarkan hasil studi
literatur, terdapat model deteksi satu tahap SSDLite MobilenetV3 Small. Menurut
(Howard et al., 2019), MobilenetV3 Small memiliki tingkat akurasi yang lebih
tinggi dari MoblinetV2 dengan latensi 20 – 40 ms saat diuji coba pada Pixel 1. Dan
pada penelitian (Sandler et al., 2019) diperkenalkan SSDLite yaitu versi yang lebih
efisien daripada SSD, pada SSDLite mengganti semua regular convolutions dengan
separable convolutions. Diharapkan dengan menggunakan SSDLite MobilenetV3
Small pada Raspberry Pi dapat meningkatkan kecepatan deteksi pada alat
pendeteksi penggunaan masker.
Berdasarkan uraian latar belakang yang telah dijelaskan, penulis ingin
membuat penelitian mengenai “Pengembangan Alat Pendeteksi Penggunaan
Masker dengan Ssdlite MobilenetV3 Small Berbasis Raspberry Pi 4” untuk
melihat apakah benar kecepatan deteksinya meningkat dan kemampuan deteksinya.

UIN SYARIF HIDAYATULLAH JAKARTA


3

1.2 Rumusan Masalah


Berdasarkan uraian permasalahan pada latar belakang di atas, maka
rumusan masalah pada skripsi ini yaitu “Bagaimana Mengembangkan Alat
Pendeteksi Penggunaan Masker dengan Ssdlite MobilenetV3 Small Berbasis
Raspberry Pi 4 ?”
1.3 Batasan Masalah
Berdasarkan uraian latar belakang di atas, perlu adanya batasan masalah
agar penelitian yang dilakukan tetap fokus dan dapat menyelesaikan permasalahan
yang ada. Maka ruang lingkup batasan masalah penelitian yakni :
1.3.1 Metode
Pada penelitian ini penulis menggunakan beberapa metode, yaitu :
1. Metode studi literatur dalam pengumpulan data.
2. Metode membuat prototipe dalam pengembangan sistem.
3. Metode deteksi objek dua tahap (SSDMNV2).
4. Metode deteksi satu tahap (SSD MobilenetV2, SSDLite
MobilenetV2, SSDLite MobilenetV3 Large, SSDLite
MobilenetV3 Small, Mobiledets).

1.3.2 Proses
Berikut adalah proses yang terdapat pada skripsi ini, yaitu :
1. Studi Literatur.
2. Membuat model deteksi.
3. Membuat alat dan program dengan Raspberry Pi 4 Model B.
4. Melakukan evaluasi dengan model yang sudah dibuat
sebelumnya, dengan mencoba diterapkan pada alat, evaluasi
meliputi ; evaluasi deteksi, evaluasi fps, dan evaluasi daya
untuk mendapatkan data yang akan digunakan sebagai
pembanding dengan SSDLite MobilenetV3 Small. Model yang
ikut dievaluasin adalah ; SSDLite MobilenetV3 Large,
SSDLite MobilenetV2, SSDLite Mobiledets, SSD
MobilenetV2, dan SSDMNV2.

UIN SYARIF HIDAYATULLAH JAKARTA


4

5. Melakukan pengujian kepada alat dengan model SSDLite


MobilenetV3 Small, pengujian ini meliputi ; pengujian akurasi,
pengujian kondisi cahaya, pengujian jumlah deteksi, dan
pengujian jarak deteksi.
6. Setelah data terkumpul, dibuat kesimpulan dan saran untuk
penelitian selanjutnya.
1.3.3 Tools
Berikut adalah tools yang penulis pergunakan yaitu :
1. Google Colaboratory yang digunakan sebagai tempat
pelatihan model.
2. Thonny IDE sebagi text editor untuk membuat program.
3. Raspberry Pi 4 Model B 4 Model B dengan RAM 4GB
sebagai kontroller dan server dari sistem.
4. Kamera Raspberry Pi 4 Model B V.1 5MP sebagai alat input
sistem.
5. Monitor sebagai alat output visualisasi.

1.4 Tujuan Penelitian


Tujuan yang ingin dicapai oleh penulis dari penelitian ini adalah melakukan
pengembangan alat deteksi penggunaan masker dengan SSDLite MobilenetV3
Small berbasis Raspberry Pi 4.

1.5 Manfaat Penelitian


Adapun manfaat yang didapatkan adalah sebagai berikut :
1.5.1 Bagi Penulis
Menerapkan ilmu yang sudah didapatkan di perkuliahan. Dan
membandingkan teori yang telah didapat di kuliah dengan masalah di dunia
nyata.
1.5.2 Bagi Universitas
Sebagai media pembelajaran penerapan deteksi objek pada
Raspberry Pi 4.

UIN SYARIF HIDAYATULLAH JAKARTA


5

1.6 Metodologi Penelitian


Metode yang digunakan penulis dalam penulisan dan penelitian dibagi
menjadi dua, yaitu metode pengumpulan data dan metode pengembangan sistem.
Berikut penjelasan kedua metode tersebut:
1.6.1 Metode Pengumpulan Data
Dalam melakukan analisis data dan penulisan skripsi ini, penulis
menggunakan metode pengumpulan data studi literatur.

1.6.2 Metode Pengembangan Sistem


Pada penelitian ini penulis menggunakan Prototyping (prototype).
Dalam pengembangan sistem ini, menggunakan metode pengembangan
sistem prototipe. Terdapat 5 tahapan dalam metode ini (Pressman &
Maxim, 2015) yaitu:
1) Komunikasi.
2) Perencanaan cepat.
3) Pemodelan cepat.
4) Konstruksi protipe.
5) Penerapan dan Evaluasi.

1.7 Sistematika Penulisan


Dalam sistematika laporan ini penulis akan melakukan pembahasan dengan
membagi kedalam 5 bab, yaitu:

BAB I PENDAHULUAN
Dalam bab ini akan dibahas mengenai latar belakang, Batasan
masalah, tujuan, dan manfaat serta sistematika penulisan.
BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI
Dalam bab ini akan dibahas mengenai berbagai teori yang
mendasari analisis permasalahan dan berhubungan dengan
topik yang dibahas.
BAB III METODOLOGI PENELITIAN

UIN SYARIF HIDAYATULLAH JAKARTA


6

Bab ini membahas mengenai metode penelitian yang akan


digunakan dalam merancang dan membangun prototipe
sistem.
BAB IV ANALISIS, DESAIN, IMPLEMENTASI, DAN
PENGUJIAN SISTEM
Pada bab ini membahas mengenai hasil dari analisis,
perancangan, implementasi sesuai dengan metode yang
dilakukan pada sistem yang dibuat serta hasil dari pengujian.
BAB V HASIL DAN PEMBAHASAN
Bab ini berisi hasil dari pembahasan yang didapat dari
penelitian.
BAB VI KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dari penelitian yang telah
dilakukan dan saran yang diusulkan untuk pengembangan
lebih lanjut agar tercapai hasil yang lebih baik.

UIN SYARIF HIDAYATULLAH JAKARTA


BAB 2
LANDASAN TEORI DAN TINJAUAN PUSTAKA

2.1 Object Detection


Object detection adalah salah satu bagian dari computer vision yang
melibatkan 2 tugas utama, yaitu : melokalisasi satu atau lebih objek dalam suatu
citra dan mengklasifikasikan setiap objek dalam citra tersebut. Dapat
divisualisasikan perbedaan image classification dengan object detection seperti di
bawah ini (Elgendy, 2020)

Gambar 2.1 Perbedaan image classfication dengan object detection

Ini dilakukan dengan menggambar bounding box di sekitar objek yang


diidentifikasi dengan kelas yang diprediksi. Ini dapat diartikan sistem tidak hanyak
memprediksi kelas dari objek tersebut, tapi juga memprediksi koordinatnya.
Dalam praktiknya object detection terbagi menjadi 2 tipe model, yaitu two-
stage models dan one-stage models. Pada two-stage models, pada tahap pertama
adalah penentuan wilayah yang akan diklasifikasikan, dan tahap kedua adalah tahap
klasifikasi dari citra yang didapat dari tahap pertama. Dengan metode ini memiliki
tingkat akurasi yang baik, namun memiliki kelemahan di kecepatan pemrosesan.
Sementara one-stage models, hanya membutuhkan satu tahap. Pada model ini
biasanya membagi gambar menjadi kisi-kisi N x N. Setiap sel kisi bertanggung
jawab atas objek yang pusatnya jatuh ke dalam kisi tersebut. Jadi, output nya adalah

7
8

N x N x S tensor. Setiap feature maps S adalah matriks N x N, dengan setiap elemen


menggambarkan fitur pada sel grid yang sesuai. Desain umum dari feature maps ini
untuk satu objek terdiri dari nilai S =(5 + C) berikut : (Kaidong Li et al., 2019)
 Empat nilai untuk dimensi bounding box (koordinat x, koordinat y,
tinggi, dan lebar)
 Satu nilai untuk kemungkinan sel grid berisi objek
 Nilai C yang menunjukkan kelas mana yang dimiliki objek ini

2.2 Penggunaan Masker


Masker digunakan untuk melindungi diri dari penyebaran COVID-19,
sebagaimana telah diuraikan pada latar belakang. Berdasarkan hasil studi literatur,
penggunaan masker dapat dibagi menjadi 3, yaitu : (Darmasita, 2020)
1. Menggunakan masker sesuai dengan standar
2. Menggunakan masker tidak sesuai dengan standar
3. Tidak menggunakan masker

Sesuai dengan standar yang dimaksud adalah menutup bagian hidung,


mulut, dan dagu. Sementara masker yang tidak sesuai dengan standar tidak
menutup bagian hidung, mulut dan dagu. Klasifikasi penggunaan masker menjadi
3 juga dilakukan oleh (Jiang et al., 2021).
2.3 SSD
Single Shot Detector (SSD) adalah metode sederhana yang membutuhkan
objek proposal karena sepenuhnya menghilangkan pembuatan proposal dan
selanjutnya tahapan resampling piksel atau fitur dan merangkum semua komputasi
dalam satu jaringan. Hal ini membuat SSD mudah dilatih dan langsung
diintegrasikan ke dalam sistem yang memerlukan komponen deteksi.
Inti dari SSD adalah memprediksi skor kategori dan kotak offset untuk satu
set tetap. kotak pembatas default menggunakan filter konvolusi kecil yang
diterapkan pada peta fitur. Untuk mencapai akurasi deteksi yang tinggi, kami
menghasilkan prediksi skala yang berbeda dari menampilkan feature maps yang
berbeda, dan secara eksplisit memisahkan prediksi berdasarkan rasio aspek.

UIN SYARIF HIDAYATULLAH JAKARTA


9

Gambar 2.2 SSD

(a) SSD hanya membutuhkan gambar masukan dan kotak kebenaran dasar
untuk setiap objek selama pelatihan. Dalam mode konvolusi, kami mengevaluasi
set kecil (misalnya 4) kotak default dengan rasio aspek yang berbeda di setiap lokasi
di beberapa peta fitur dengan skala yang berbeda (misalnya 8 × 8 dan 4 × 4 di (b)
dan (c)). Untuk setiap kotak default, kami memprediksi baik offset bentuk dan
kepercayaan untuk semua kategori objek ((c1, c2, · · · , cp)). Pada waktu pelatihan,
pertama-tama kami mencocokkan kotak standar ini dengan kotak kebenaran dasar.
Untuk contoh, kami telah mencocokkan dua kotak default dengan kucing dan satu
dengan anjing, yang diperlakukan sebagai positif dan sisanya sebagai negatif.
Kerugian model adalah jumlah tertimbang antara kehilangan lokalisasi (misalnya
Smooth L1 [6]) dan kehilangan kepercayaan (misalnya Softmax).
2.4 SSDLite
SSDLite merupakan varian yang lebih efisien daripada SSD. SSDLite
diperkenalkan pada penelitian MobilenetV2. Mengganti semua regular
convolutions dengan separable convolutions. Dengan perubahan tersebut membuat
penurunan pada jumlah parameter dan tingkat komputasi, seperti yang ditunjukkan
pada tabel di bawah : (Sandler et al., 2019)
Tabel 2.1 Perbandingan SSD dengan SSDLite

Params MAdds
SSD 14.8M 1.25B
SSDLite 2.1M 0.35B

UIN SYARIF HIDAYATULLAH JAKARTA


10

2.5 MobilenetV2
Berdasarkan jurnal (Sandler et al., 2019). MobilenetV2 adalah penerus dari
MobilenetV1. Dalam arstitektur model penerusnya ini meningkatkan kinerja model
pada model mobile pada pengujian banyak tugas dengan spektrum yang berbeda
beda. Arsitektur MobilenetV2 terdiri atas 32 filter convolution layer, diikuti dengan
19 residual botteleneck layer. Berikut adalah arsitektur dari MobilenetV2.

Gambar 2.3 Layer pada MobilenetV2

Sudah terdapat pre-train model dari MobileNetV2 pada Keras. Kumpulan


pre-train model dapat ditemukan pada Keras Applications. Keras Applications
adalah model deep learning yang sudah tersedia bersama weight yang telah dilatih
sebelumnya (Keras, 2021b).
2.6 MobilenetV3
Berdasarkan jurnal (Howard et al., 2019). MobileNetV3 didefinisikan
sebagai dua model: MobileNetV3-Large dan MobileNetV3-Small. Model-model ini
ditargetkan pada kasus penggunaan sumber daya tinggi dan rendah masing-masing.
Model dibuat melalui penerapan NAS dan NetAdapt platform-aware untuk
penemuan jaringan dan penyatuan jaringan perbaikan yang ditentukan dalam
bagian ini. Berikut, adalah susunan layer dari MobilenetV3-Large dan
MobilenetV3-small.

UIN SYARIF HIDAYATULLAH JAKARTA


11

Gambar 2.4. Layer pada MobilenetV3

Pada MobilenetV3-small, terdapat beberapa layer dari Mobilenetv3-large


yang tidak digunakan, ini berakibat pada latensi deteksi yang lebih cepat.
Perbedaan latensi MobilenetV3 dapat dilihat pada grafik berikut :

Gambar 2.5 Perbedaan Latensi MobilenetV3 Large dan Small

Pada grafik di atas, terlihat bahwa model MobilenetV3 baik yang versi large dan
small unggul dari model lainnya. Dan MobilenetV3-small memiliki tingkat akurasi
yang lebih kecil daripada MobilenetV3-large, namun memiliki latensi yang lebih
kecil dari pada MobilenetV3-large. Perbedaan blok MobilenetV3 dengan
MobilenetV2 dapat dilihat pada gambar di bawah ini :

UIN SYARIF HIDAYATULLAH JAKARTA


12

Gambar 2.6 Perbedaan blok MobilenetV2 dengan MobilenetV3

2.7 Mobiledets
Mobiledets merupakan paket mobile object detection model yang memiliki
kelebihan pada latensi dengan hanya menurunkan sedikit akurasi. Model ini sudah
teruji pada CPU, EdgeTPU, DSP, dan edge GPU. Pada penelitian (Xiong et al.,
2020) menggunakan metode nerual architecture search (NAS) secara substansial
dapat mengambil manfaat dari diperbesarnya ruang pencarian untuk mencapai hasil
dari pertukaran hasil akurasi dan latensi yang lebih baik. Berikut adalah hasil dari
pengujian Mobiledets dengan model pendeteksi objek lainnya berdasarkan
pengujian pada dataset COCO.

Tabel 2.2 Perbandingan Mobiledets dengan model lain

Kalau diperhatikan dari tabel di atas, terdapat CPU, EdgeTPU, serta DSP pada
target perangkat kerasnya. Karena pada Mobiledets memiliki arsitektur yang
berbeda sesuai dengan target dari perangkat kerasnya. Satu arstitektur yang tidak

UIN SYARIF HIDAYATULLAH JAKARTA


13

disertakan dalam pengujian di atas adalah GPU. Performa pengujian yang


dilakukan secara terpisah, arsitektur GPU juga menggungguli model lainnya,
seperti yang ditunjukan pada tabel 2.3 berikut :
Tabel 2.3 Perbandingan Mobiledets gpu dengan model lain

Berikut adalah arsitektur dari masing – masing perangkat keras pada model
Mobiledets berdasarkan penelitian (Xiong et al., 2020)

Gambar 2.7 Arsitektur Mobiledets

Terlihat, setiap perangkat keras memiliki arsitektur yang berbeda. Setiap


arstitektur dilakukan pengujian dengan dataset COCO. Endpoints C4 dan C5
digunakan oleh SSDLite head.
Arsitektur telah diuji dengan perangkat Pixel-1 pada arsitektur CPU,
mendapatkan 23.7 mAP dengan latensi 122ms. Perangkat Pixel-4 EdgeTPU pada

UIN SYARIF HIDAYATULLAH JAKARTA


14

arsitektur EdgeTPU, mendapatkan 25.5 mAP dengan latensi 6.8 ms. Perangkat
Pixel-4 DSP pada arsitektur DSP, mendapatkan 28.5 mAP dengan latensi 12.3 ms.
Dan perangkat Jetson Xavier GPU pada arsitektur GPU, mendapatkan 28.0 mAP
dengan latensi 3.2 ms. Pada penelitian ini, mobiledets akan diuji juga untuk melihat
perbandingan kinerja dengan metode SSDMNV2.

2.8 SSDMNV2
Pada penelitan (Nagrath et al., 2021) menjelaskan bahwa SSDMNV2 adalah
sebuah metode pendeteksi masker yang menggunakan OpenCV Deep Neural
Network berbasis Single Shot Multibox Detector sebagai pendeteksi wajah manusia
dan arsitektur MobilenetV2 sebagai pengklasifikasi penggunaan masker. Berikut
adalah algoritma dari proses pembuatan hingga implementasi pendeteksi wajah
pada SSDMNV2.

Gambar 2.8 Algoritma SSDMNV2

UIN SYARIF HIDAYATULLAH JAKARTA


15

Dari gambar 2.8 dapat ditelaah, terdapat 2 algoritma, yaitu algortima 1


proses pelatihan model klasifikasi dengan MobileNetV2 yang diambil dari Keras.
Selanjutnya model tersebut akan digunakan untuk mengklasifikasi wajah manusia
yang terdeteksi oleh model pendeteksi wajah yang ada di OpenCV.

2.9 Raspberry Pi 4 Model B


Raspberry Pi 4 Model B adalah peningkatan dari versi Raspberry Pi 4
Model B 3 Model B+. Fitur utama dari produk ini mencakup processor quad-core
64 bit, dual-display yang mendukung resolusi hingga 4K dengan port mico HDMI,
video decode hingga 4K60 FPS, kapasitas RAM tersedia hingga 8GB, dual-band
2.4/5.0 GHz Wireless LAN, Bluetooth 5.0, Gigabit Ethernet, USB 3.0, dan
Kemampuan PoE. (Raspberry Pi 4 Model B, 2021)

Gambar 2.9 Raspberry Pi 4 Model B

Raspberry Pi 4 Model B memiliki 40 pin GPIO dengan konfigurasi sebagai


berikut : (Raspberry Pi 4 Model B, n.d.-b)

UIN SYARIF HIDAYATULLAH JAKARTA


16

Gambar 2.10 Pin GPIO raspberry pi 4 model b

Selain pin GPIO, Raspberry Pi 4 Model B 4 Model Bjuga dilengkapi


dengan 2-lane CSI camera port, untuk menghubungkan Raspberry Pi 4 Model B
dengan kamera Raspberry Pi 4 Model B.
2.10 Raspberry Pi Cam V.1
Raspberry Pi 4 Model B Cam versi pertama rilis pada tahun 2013. Saat ini
sudah ada pengembangan dari versi kamera Raspberry Pi 4 Model B. Namun untuk
pasar di Indonesia, harga dari kamera Raspberry Pi 4 Model B versi pertama masih
menjadi yang paling murah. Berikut spesifikasi dari kamera Raspberry Pi 4 Model
B versi pertama (Raspberry Pi 4 Model B, n.d.-a)
Tabel 2.4 Spesifikasi Raspberry Pi Cam V.1

Ukuran Around 25 × 24 × 9 mm
Berat 3g
Resolusi 5 Megapixels
Mode Video 1080p30, 720p60 and 640 × 480p60/90

UIN SYARIF HIDAYATULLAH JAKARTA


17

Integrasi Linux V4L2 driver available


API Pemrogaman C OpenMAX IL and others available
Sensor OmniVision OV5647
Resolusi Sensor 2592 × 1944 pixels
Area Sensor 3.76 × 2.74 mm
Ukuran Pixel 1.4 µm × 1.4 µm
Ukuran Optik 1/4"
Full-frame SLR lens equivalent 35 mm
S/N ratio 36 dB
Dynamic range 67 dB @ 8x gain
Sensitifitas 680 mV/lux-sec
Dark current 16 mV/sec @ 60 C
Well capacity 4.3 Ke-
Fixed focus 1 m to infinity
Focal length 3.60 mm +/- 0.01
Horizontal field of view 53.50 +/- 0.13 degrees
Vertical field of view 41.41 +/- 0.11 degrees
Focal ratio (F-Stop) 2.9

2.11 Tensorflow
Berdasarkan jurnal Tensorflow (Abadi et al., 2016). Tensorflow adalah
antarmuka untuk mengekspresikan algoritma pembelajaran mesin dan
implementasi untuk mengeksekusi algoritma tersebut. Perhitungan yang
diekspresikan menggunakan Tensorflow dapat dijalankan dengan sedikit atau tanpa
perubahan pada sistem heterogenus, mulai dari perangkat seluler seperti telepon
dan tablet hingga sistem terdistribusi berskala besar hingga ratusan mesin dan
ribuan perangkat komputasi seperti GPU.
Sistemnya fleksibel dan dapat digunakan untuk mengekspresikan berbagai
macam algoritma, termasuk pelatihan dan inferensi algortima untuk model neural
networ dan telah melakukan penelitian dan menerapkan pembelajaran mesin ke
banyak area ilmu computer dan bidang lainnya. Seperti pengenalan suara, computer

UIN SYARIF HIDAYATULLAH JAKARTA


18

vision, robotika, pencarian informasi, natural language processing, ektraksi


informasi gegrafis dan computational drug discovery. Tensorflow berada di bawah
linsensi open source Apache 2.0 pada November, 2015.
Tensorflow Object Detection API adalah sebuah framework open source
yang dibuat dengan Tensorflow. Framework ini memudahkan dalam membuat,
melatih, dan mengimplementasikan object detection model. Karena open source,
framework ini dapat diakses pada laman github. Peneliti yang berjasa dalam
pengembangan API ini membuat jurnal penelitian untuk membandingkan
beberapa model yang ada pada API tersebut. Penelitan ini terdapat pada penelitian
(Huang et al., 2017).
2.12 Keras
Berdasarkan laman resmi Keras (Keras, 2021a). Keras adalah API deep
learning yang dibuat dengan bahasa pemrogaman Python. berjalan di atas platform
pembelajaran mesin Tensorflow ini dikembangan dengan fokus pada kemungkinan
eksperimen cepat.
API Keras termasuk ke daam sequential API, di mana sequiential API
didasarkan pada gagaasan tentang urutan lapisan. Sequential model dapat dianggap
sebagai tumpukan lapisan linear.
2.13 OpenCV
Berdasarkan laman resmi OpenCV (OpenCV, 2021), OpenCV (Open
Source Computer Vision Library) adalah sebuah perpustakaan perangkat lunak
pembelajaran mesin. OpenCV dibangun untuk menyediakan infrastruktur umum
untuk aplikasi computer vision. Perpustakaan ini memiliki lebih dari 2500
algorirma yang dioptimalkan, yang mencakup serangkaian lengkap computer vision
klasik dan canggih.
Algoritma ini dapat digunakan untuk mendeteksi dan mengenali wajah,
mengidentifikasi objek, mengklasifikasikan tindakan manusia dalam video,
melacak pergerakan kamera, melacak objek bergerak, mengekstrak model objek
3D, menghasilkan titik 3D dari kamera stereo, menggabungkan gambar untuk
resolusi tinggi, penyatuan gambar untuk membuat resolusi gambar yang lebih
tinggi, menemukan gambar serupa dari database, dan masih banyak lagi. Pustaka

UIN SYARIF HIDAYATULLAH JAKARTA


19

ini mememiliki antar muka C++, Python, Java, dan MATLAB dan mendukung
Windows, Linux, Android, dan Mac OS.
Model pendeteksi wajah yang digunakan dari pustaka OpenCV adalah
model dengan nama res10_300x300_ssd_iter_140000.caffemodel yang terdapat
pada laman github OpenCV.

2.14 Membuat Prototipe


Dalam kasus calon pengguna perangkat lunak memiliki definisi tujuan dari
dibuatnya perangkat lunak tapi tidak memiliki detail kebutuhan untuk fungsi dan
fiturnya, pada kasus lainnya, pengembang perangkat lunak belum yakin dengan
efisiensi dari algoritma yang diterapkan pada perangkat lunak atau interaksi dengan
pengguna nantinya. Metode membuat prototipe ini menjadi pendekatan yang bagus
untuk kasus di atas (Pressman & Maxim, 2015).
Metode membuat prototipe dimulai dengan komunikasi, mendefenisikan
tujuan dari perangkat lunak, identifikasi kebutuhan apa saja yang sudah dipahami
dan yang belum unutk dicari tahu lebih lanjut. Iterasi metode membuat prototipe
direncanakan dengan cepat dengan pembuatan model yang cepat diterapkan juga.
Pemodelan cepat difokuskan untuk merepresentasikan aspek yang terlihat oleh
pengguna nanti. Setelah pembuatan model selesai, dilanjutkan dengan konstruksi
pembuatan perangkat lunak. Selanjutnya prototipe diterapkan dan dievaluasi.
Metode ini dapat digambarkan seperti pada gambar 2.11 : (Pressman & Maxim,
2015)

Gambar 2.11 Paradigma prototipe

UIN SYARIF HIDAYATULLAH JAKARTA


BAB 3
METODOLOGI PENELITIAN

Pembahasan pada bab 3 ini penulis melakukan proses pengumpulan data


dengan menggunakan metode studi literatur dan pustaka. Setelah melakukan studi
literatur dan pustaka untuk mendapatkan data yang telah diperlukan untuk proses
penelitian, selanjutnya penulis memulai penelitian dengan menggunakan metode
pengembangan sistem yaitu prototipe.

3.1 Metode Studi Literatur dan Pustaka


Metode pengumpulan data digunakan untuk mencari dan mengumpulkan
data yang terkait dengan penelitian seperti dasar teori, metodologi penulisan,
metodologi proses, dan acuan penelitian sejenis. Dalam penelitian ini, metode
pengumpulan data yang dilakukan adalah studi literatur.
Tahapan pengumpulan data dengan cara studi pustaka, penulis mencari
referensi-referensi yang berkaitan dengan penelitian. Pencarian referensi dilakukan
secara online melalui internet, seperti portal berita. Setelah mendapatkan referensi
tersebut, kemudian dipilih berbagai informasi yang dibutuhkan dalam penelitian ini.
Studi literatur sejenis merupakan kegiatan mencari literatur yang
mempunyai persamaan atau keterkaitan dengan penelitian yang sedang dilakukan.
Literatur sejenis yang didapatkan berupa skripsi, jurnal, dan paper yang kemudian
ditelaah dan dibuat perbandingan sehingga penelitian ini dapat menjadi pelengkap
atau penyempurnaan dari penelitian-penelitian yang sudah dilakukan sebelumnya

25
27

Studi Literatur Sejenis


Tabel 3.1 Kelebihan dan kekurangan literatur sejenis

Tahun
No Judul Penelitian Penulis Asal Universitas Penelitian Kelebihan Kekurangan
Deteksi Penggunaan Masker Universitas Islam
Menggunakan Xception Transfer Negeri Alauddin
1 Learning Darmatasia Makassar 2020 Memiliki 3 klasifkasi Deteksi tidak real-time
Dicky Giancini, Universitas - Pada proses uji cobanya
Identifikasi Penggunaan Masker Eva Yulia Pembangunan Terdapat menggunakan satu tipe
Menggunakan Algoritma Cnn Puspaningrum, Nasional “Veteran” Melakukan proses augmentasi masker
2 Yolov3-tiny Yisti Vita Via Jawa Timur 2020 data - Terdapat 2 klasifikasi
- Jenis masker yang ada gambar
- Mengintegrasikan deteksi mulut dan hidung memiliki
Prototipe Pendeteksi Masker Muhammad masker dengan kendali pintu akurasi yang rendah
Pada Ruangan Wajib Masker Abdul Rahman - Melakukan banyak ujicoba - Benda lain selain masker yang
Untuk Kendali Pintu Otomatis Irham Harfi Universitas terhadap alat menutupi sebagian wajah masuk
Berbasis Deep Learning Sebagai ,Dedi Ari Muhammadiyah - Program sudah diaplikasikan ke deteksi
3 Pencegahan Penularan Covid-19 Prasetya Surakarta 2020 di Raspberry Pi 4 Model B - Terdapat 2 klasifikasi
- Mengintegrasikan pendeteksi
Rancang Bangun New Normal Musakkarul masker dengan notifikasi
Covid-19 Masker Detektor Mu’minim telegram
Dengan Notifikasi Telegram Lambacing, Universitas Budi - Program sudah diaplikasikan - Streaming video sedikit lambat
4 Berbasis Internet Of Things Ferdiansyah Luhur 2020 di Raspberry Pi 4 Model B - Terdapat 2 klasifikasi
Sammy V.
Real-time Facemask Recognition Militante,
With Alarm System Using Deep Nanette V. University of Mengintegrasikan pendeteksi
5 Learning Dionisio Antique 2020 masker dengan notifikasi suara Terdapat 2 klasifikasi

UIN SYARIF HIDAYATULLAH JAKARTA


28

- Memiliki dataset dengan


Xianbei Jiang, anotasi yang sudah siap latih
Tianhan Gao, - Mampu mengklasifikasikan
Real-Time Face Mask Detection Zichen Zhu, Northeastearn tidak menggunakan masker - Proses komputasi model tidak
6 Method Based on YOLOv3 Yukang Zhano University 2021 saat wajah ditutup koran dilakukan pada raspberry pi
Mohamed Loey,
Gunasekaran
Fighting Against Covid-19: A Manogaran, Benha University,
Novel Deep Learning Model Mohamed Yniversity of
Based On Yolo-v2 With Resnet- Hamed N. Taha, California, Asia
50 For Medical Face Mask Nour Eldeen M. University, Cairo
7 Detection Khalifa University 2021 Menggunakan augmentasi data - Terdapat 2 klasifikasi
Galang Aprilian Fakultas Teknologi - Tidak dijelaskan hardware yang
Anarki, Karina Industri Institut digunakan
Penerapan Metode Haar Cascade Auliasari, Mira Teknologi Nasional Melakukan banyak ujicoba - Belum ada notifikasi
8 Pada Aplikasi Deteksi Masker Orisa Malang 2021 terhadap program - Terdapat 2 klasifikasi
Sistem Deteksi Masker Dengan Ahmad Thariq, - Tidak dijelaskan hardware yang
Metode Haar Cascade Pada Era Rizki Yusliana Politeknik Negeri Mengintegrasikan pendeteksi digunakan
9 New Normal Covid-19 Bakti Ambon 2021 masker dengan notifikasi suara - Terdapat 2 klasifikasi
Preeti Nagrath, - Menggunakan augmentasi
Ssdmnv2: A Real Time Dnn- Rachna Jain, data
based Face Mask Detection Agam Madan, Bharati - Menggunakan algortima SSD
System Using Single Shot Rohan Arora , Vidyapeeth’s dan MobilenetV2 yang ringan - Terdapat 2 klasifikasi
Multibox Detector And Piyush Kataria College of untuk komputasi perangkat - Belum terintegrasi dengan
10 Mobilenetv2 ,Jude Hemanth Engineering 2021 komputer kecil peringatan

UIN SYARIF HIDAYATULLAH JAKARTA


29

Perbedaan Penelitian
Tabel 3.2 Perbedaan penelitian

Jumlah Komputasi model pada Algoritma


No. Nama Peneliti / Tahun Judul Penelitian Klasifikasi Raspberry Pi
Deteksi Penggunaan Masker Menggunakan
Xception
1 (Darmatasia, 2020) Xception Transfer Learning 3 -
Identifikasi Penggunaan Masker
YOLOV3-Tiny
2 (Giancini et.al, 2020) Menggunakan Algoritma Cnn Yolov3-tiny 2 -
Prototipe Pendeteksi Masker Pada Ruangan Deteksi wajah tidak disebutkan
Wajib Masker Untuk Kendali Pintu menggunakan algoritma apa,
Otomatis Berbasis Deep Learning Sebagai Klasifikasi menggunakan
3 (Abdul et.al, 2020) Pencegahan Penularan Covid-19 2 ✔ MobilenetV2
Rancang Bangun New Normal Covid-19
Masker Detektor Dengan Notifikasi MobilenetV2
4 (Lambacing et.al, 2020) Telegram Berbasis Internet Of Things 2 ✔
Real-time Facemask Recognition With
VGG-16
5 (Militante et.al, 2020) Alarm System Using Deep Learning 2 ✔
Real-Time Face Mask Detection Method
YOLOV3
6 (Jiang et.al, 2021) Based on YOLOv3 3 -
Fighting Against Covid-19: A Novel Deep
Learning Model Based On Yolo-v2 With
Yolo-v2
Resnet-50 For Medical Face Mask
7 (Loey et.al ,2021) Detection 2 -
Penerapan Metode Haar Cascade Pada
Haar Cascade
8 (Anarki et.al,2021) Aplikasi Deteksi Masker 2 -

UIN SYARIF HIDAYATULLAH JAKARTA


30

Sistem Deteksi Masker Dengan Metode


Haar Cascade Pada Era New Normal Haar Cascade
9 (Thariq et.al, 2021) Covid-19 2 -
SSDMNV2: A Real Time Dnn-based Face SSD sebagai pendeteksi wajah, dan
Mask Detection System Using Single Shot MobileNetV2 sebagai pendeteksi
10 (Nagrath et.al, 2021) Multibox Detector And Mobilenetv2 2 - masker (SSDMNV2)
SSDMNV2, SSD-MobilenetV2,
Perbandingan Sistem Deteksi Penggunaan SSDLite MobilenetV2, SSDLite-
Masker Menggunakan SSDMNV2 dengan MobilenetV3-Large, SSDLite-
Objek Deteksi Satu Tahap Berbasis MobilenetV3-Small, SSDLiite-
11 (Ramadhani,2021) Raspberry Pi 4 Model B 3 ✔ Mobiledet

UIN SYARIF HIDAYATULLAH JAKARTA


29

3.2 Metode Pengembangan Sistem


Dalam pengembangan sistem ini, menggunakan metode pengembangan
sistem prototipe. Metode ini sesuai untuk keperluan pengembang sistem yang
belum yakin dengan efisiensi dari algoritma yang digunakan dalam sebuah sistem
(Pressman & Maxim, 2015), ini sesuai dengan kebutuhan dalam penelitian ini,
dimana peneliti ingin melihat seberapa pengaruh SSD MobilenetV2, SSDLite
MobilenetV2, SSDLite MobilenetV3 Large, SSDLite MobilenetV3 Small, dan
Mobiledets pada sistem deteksi penggunaan masker.
Metode prototipe dimulai dengan komunikasi (communication) untuk
mengumpulkan informasi mengenai tujuan, objektif apa saja yang ingin dicapai,
dan kebutuhan untuk sistem, dilanjutkan dengan perencanaan cepat (quick plan),
dan pemodelan cepat (modeling quick design) untuk menggambarkan bagaimana
sistem yang nanti akan dibuat, selanjutnya tahap konstruksi (construction of
prototype) dari pemodelan yang sudah dibuat, dan terakhir adalah tahap
(deployment, delevery and feedback) atau dirangkum menjadi penerapan dan
evaluasi, dimana setelah sistem sudah selesai, diuji coba. Tahapan selanjutnya
adalah kembali ke tahap pertama yaitu komunikasi, sampai mendapat sistem yang
diinginkan (Pressman & Maxim, 2015). Berikut penjelasan lengkap tahapan yang
penulis lakukan berdasarkan penjelasan di atas.

3.2.1 Komunikasi
Pada tahapan ini komunikasi yang dilakukan adalah dengan mencari
informasi terkait, melalui referensi jurnal tentang deteksi penggunaan masker.
Kemudian dikomunikasikan kepada dosen pembimbing

3.2.2 Perencanaan cepat


Pada tahapan perencanaan, penulis membuat analisis dari kebutuhan yang
didapatkan dari tahap komunikasi. Perencanaan meliputi analisis terhadap
algoritma dan analisis terhadap perangkat keras serta perangkat lunak yang
akan digunakan.

UIN SYARIF HIDAYATULLAH JAKARTA


30

Pada tahap ini penulis memilih untuk membuat sistem dengan


Raspberry Pi 4 Model B dengan RAM 4Gb. Raspberry Pi 4 Model B dipilih,
karena berdasarkan studi literatur yang penulis dapatkan, sistem seperti ini
dapat dibuat dengan Raspberry Pi. Versi 4 dipilih karena versi ini merupakan
versi selanjutnya dari Raspberry Pi 4 Model B 3 Model B+. Raspberry Pi 4
Model B 4 memiliki 4 tipe RAM, 1Gb, 2Gb, 4Gb, dan 8Gb. RAM 4Gb dipilih
karena merupakan versi RAM yang tidak terlalu kecil untuk sebuah sistem dan
tidak terlalu besar, karena semakin besar RAM semakin tinggi harganya.
Menggunakan sensor kamera Raspberry Pi 4 Model B Cam V.1
karena harganya relatif terjangkau dibandingkan dengan versi kamera
Raspberry Pi 4 Model B lainnya. Serta monitor sebagai pendukung untuk
output sistem. Serta menggunakan mobiledets sebagai model klasifikasinya

3.2.3 Pemodelan cepat


Pada tahap ini penulis membuat gambaran sistem berdasarkan hasil
dari tahap perencanaan. Penulis membuat gambaran tersebut dengan blok
diagram.

3.2.4 Konstruksi
Pada tahap ini, dibagi menjadi dua. Pertama konstruksi model
klasifikasi penggunaan masker memanfaatkan GPU yang disediakan oleh
Google Colab. Untuk pelatihan model deteksi satu tahap, setelah melakukan
pelatihan model, penulis melakukan perhitungan F-Score berdasarkan nilai
precission dan recall yang didapatkan saat pelatihan. Sementara, untuk model
deteksi dua tahap, yang dilakukan pelatihan oleh penulis hanya MobilenetV2
untuk klasifikasinya saja, sehingga tidak ikut dihitung F-Score -nya. Tahap
berikutnya adalah konstruksi sistem pada Raspberry Pi 4 Model B. Tahap ini
meliputi pembuatan alat dan pembuatan program.

UIN SYARIF HIDAYATULLAH JAKARTA


31

3.2.5 Penerapan dan Evaluasi


Pada tahap ini, penulis melakukan pengujian sistem dengan mencoba
input berupa mengunakan masker dengan kondisi :
1. Menggunakan masker medis
2. Menggunakan masker medis salah
3. Tidak mengunakan masker
4. Menggunakan masker kain
5. Menggunakan masker kain salah
6. Menutup wajah dengan tangan
7. Menutup wajah dengan koran

Selama evaluasi input di atas, penulis juga melakukan pemantauan


FPS dan daya yang dibutuhkan selama proses evaluasi berlangsung. Evaluasi
dilakukan dengan menghubungkan alat ke monitor dan merekam monitor
beserta alat pengukur daya selama proses evaluasi berlangsung. Pada tahap
evaluasi penulis juga menggunakan penerangan tambahan berupa lampu
belajar yang disorot ke arah wajah.
Pada tahap penerapan dan evaluasi ini penulis juga menguji sistem
dengan SSDMNV2 untuk membandingkan hasil akhirnya engan sistem yang
menggunakan SSD MobilenetV2, SSDLite MobilenetV2, SSDLite
MobilenetV3 Large, SSDLite MobilenetV3 Small, dan Mobiledets.
Selain evaluasi sebagai pembanding antar model yang nantinya akan
dituliskan hasilnya di Bab 4, penulis juga melakukan evaluasi berupa
pengujian akurasi, pengujian jarak deteksi, pengujian kondisi pencahayaan,
dan pengujian jumlah deteksi yang dapat dideteksi dalam satu frame pada
model yang dijadikan model pilihan pada penelitian ini. Pengujian ini akan
dimuat pada Bab 5.
Pengujian akurasi dilakukan dengan mencoba input berupa 10 kali
masker medis, 10 kali masker kain, 10 kali masker medis dengan cara yang
salah, 10 kali masker kain dengan cara yang salah, 10 kali tidak menggunakan
masker, 10 kali menutup wajah dengan koran, 10 kali menutup wajah dengan
tangan. Hitungan 10 kali ini mengikuti pengujian yang dilakukan oleh (Abdul

UIN SYARIF HIDAYATULLAH JAKARTA


32

et al., 2020) yang menguji dengan setiap objek percobaan sebanyak 10 kali.
Sementara untuk menghitung tingkat akurasinya, pada pengujian ini penulis
menggunakan confusion matrix yang nantinya akan dihitung dengan rumus
akurasi.
Pengujian jarak deteksi dilakukan dengan mencari titik terjauh dari
deteksi alat. Selanjutnya penulis akan menandai titik jarak tersebut dan
mengukurnya. Pengujian dengan kondisi pencahayaan dilakukan dengan
mencoba melakukan deteksi dengan kondisi cahaya yang kurang memadai.
Dan yang terakhir adalah pengujian jumlah deteksi yang dapat dideteksi
dalam satu frame. Pada pengujian ini penulis mencoba mengarahkan alat ke
layar monitor, pada layar monitor terdapat foto dari penulis yang sudah
disatukan, sejumlah 8 foto. Hal ini dilakukan untuk mensimulasikan input
dengan banyak wajah.
3.3 Dataset
Dataset yang digunakan dalam penelitian ini terbagi menjadi dua,
pertama, dataset (Jiang et al., 2021) yang digunakan untuk pelatihan deteksi
objek. Dataset ini sudah terbagi menjadi dataset latih dan dataset uji.
Dataset latih memiliki 7385 gambar yang terdiri atas 6702 anotasi
menggunakan masker (withmask), 9680 anotasi tanpa masker
(without_mask) dan 320 anotasi menggunakan masker yang salah
(incorrect_mask). Sementara itu, dataset uji memiliki 1820 gambar yang
terdiri atas 993 anotasi menggunakan masker (withmask), 791 anotasi tanpa
masker (without_mask) dan 46 anotasi menggunakan masker yang salah
(incorrect_mask).
Kedua, dataset (Nagrath et al., 2021) sejumlah 5521 gambar
menggunakan masker dan 5521 gambar tidak menggunakan yang masker,
ditambahkan dengan dataset (Cabani et al., 2021) sejumlah 5521 gambar
menggunakan masker yang salah. Dataset ini digunakan untuk pelatihan
model klasifikasi gambar yang nantinya akan digunakan pada program yang
menggunakan model SSDMNV2.

UIN SYARIF HIDAYATULLAH JAKARTA


33

3.4 Alur Penelitian


Pembuatan sistem klasifikasi penggunaan masker dengan mobiledets berbasis
Raspberry Pi 4 Model B disusun melalui beberapa tahapan yang dilakukan untuk
memudahkan proses penelitian. Alur tahapan metode yang digunakan dalan
penelitian ini dapat dilihat pada gambar 3.1.

Gambar 3.1 Alur Penelitian

UIN SYARIF HIDAYATULLAH JAKARTA


34

BAB 4
ANALISIS, PERANCANGAN SISTEM, IMPLEMENTASI DAN
PENGUJIAN SISTEM

Bab ini akan membahas secara terperinci mengenai analisis, perancangan


sistem, implementasi, dan pengujian sistem deteksi penggunaan masker dengan
SSDLite Mobilenet V3 Small. Selain model SSDLite Mobilenet V3 Small, Pada
tahap ini penulis juga melakukan pengujian dengan metode SSDMNV2 serta model
deteksi satu tahap SSD Mobilenet V2, SSDLite Mobilenet V2, SSDLite Mobilenet
V3 Large, dan SSDLite Mobiledets.
Terdapat perbedaan skenario proses pembuatan sistem deteksi penggunaan
masker dengan metode SSDMNV2 dengan model deteksi satu tahap. Hal ini
dikarenakan metode pembuatan sistem yang berbeda. Pembuatan sistem dengan
SSDMNV2 hanya melakukan proses pelatihan klasifikasi objek dengan model
Mobilenet V2 sebagai klasifikasi penggunaan masker. Sementara untuk model
deteksi satu tahap, proses pelatihan yang dilakukan adalah deteksi objek dengan
model yang telah disebutkan di atas. Walaupun pengujian dilakukan dengan
menggunakan 5 model dan satu metode. Tahapan protipe pada tahap pemodelan
dan konstruksi alat tetap sama. Karena pengujian dilakukan pada alat yang sama.

4.1 Komunikasi
Pada tahap ini penulis melakukan pengumpulan data terkait dengan dasar
teori. Metodologi penulisan, metodologi proses, dan acuan penelitian sejenis.
Dalam penelitan ini metdoe pengumpulan data yang dilakukan adalah studi
literatur.
Komunikasi dilakukan dengan dosen pembimbing untuk
mengkonsultasikan data yang didapatkan serta mengetahui gambaran sistem yang
diperlukan, untuk selanjutnya dijadikan bahan pertimbangan dalam membangun
sistem yang dibutuhkan.
4.2 Perencanaan Cepat
Pada tahap ini penulis membuat rencana sistem bekerja dengan
menggunakan beberapa analisis sebagaimana di bawah ini :

UIN SYARIF HIDAYATULLAH JAKARTA


35

4.2.1 Analisis Klasifikasi Peggunaan Masker


Klasfikasi penggunaan masker yang penulis akan buat pada sistem
adalah 3 klasifikasi, menggunakan masker, tidak menggunakan masker,
menggunakan masker dengan cara yang salah.
4.2.2 Analisis Dataset
Pada algoritma SSDMNV2, model untuk pendeteksi wajah sudah
tersedia dari OpenCV, sehingga pada algortima SSDMNV2, penulis hanya
melakukan latihan pada model untuk klasifikasi penggunaan masker
menggunakan algoritma MobilenetV2. Penulis menggunakan model pra
latih dari Keras untuk dilatih dengan dataset dari penulis. Tujuan
menggunakan model pra latih ini agar proses pelatihan lebih cepat. Proses
pelatihan untuk model klasifikasi penggunaan masker, membutuhkan
dataset berupa gambar yang diberi label dengan folder. Tiap folder
merupakan satu label dari klasifikasi tersebut.
Pada algoritma SSD MobilenetV2, SSDLite MobilenetV2, SSDLite
MobilenetV3 Large, SSDLite MobilenetV3 Small, dan Mobiledets.
Pelatihan model untuk algoritma ini berbeda dari yang sebelumnya. Jika
sebelumnya melakukan pelatihan untuk model klasifikasi objek, untuk
algoritma ini melakukan pelatihan untuk model deteksi objek. Label tidak
dibuat dengan folder, tetapi perlu dilakukan notasi bounding box untuk
setiap target objek pada contoh gambar. Notasi ini nantinya diberi label,
sesuai dengan klasifikasinya.
Oleh karena itu, dataset yang digunakan pada pelatihan
MobilenetV2 dengan algoritma objek deteksi satu tahap berbeda. Untuk
pelatihan objek deteksi satu tahap, memerlukan proses lebih banyak
dibandingkan dengan pelatihan klasifikasi objek dalam menyiapkan
datasetnya.
Penulis menggunakan dataset (Jiang et al., 2021) yang sudah terbagi
menjadi dataset latih dan dataset uji. Dataset latih memiliki 7385 gambar
yang terdiri atas 6702 anotasi menggunakan masker (withmask), 9680
anotasi tanpa masker (without_mask) dan 320 anotasi menggunakan masker

UIN SYARIF HIDAYATULLAH JAKARTA


36

yang salah (incorrect_mask). Sementara itu, dataset uji memiliki 1820


gambar yang terdiri atas 993 anotasi menggunakan masker (withmask), 791
anotasi tanpa masker (without_mask) dan 46 anotasi menggunakan masker
yang salah (incorrect_mask).
Selain dataset di atas, penulis juga menggunakan dataset (Nagrath et
al., 2021) untuk melatih model klasifikasi masker dengan MobileNetV2,
yang terdiri dari 5521 gambar menggunakan masker dengan label
with_mask dan 5521 gambar tanpa menggunakan masker dengan label
without_mask.

Gambar 4.1 Contoh dataset yang digunakan oleh (Nagrath et al., 2 2021)

Selanjutnya dari dataset tersebut, penulis menambahkan 5521


gambar penggunaan masker yang salah, yang didapat dari (Cabani et al.,
2021). Dataset ini diberi nama dengan MaskedFace-Net. Terdapat 70.000
gambar pada dataset tersebut. Pada dataset ini, dari foto wajah manuisa,
masker diberikan secara otomatis melalui program. Untuk menyesuaikan
dengan jumlah dataset yang digunakan oleh (Nagrath et al., 2021). Penulis
mengambil 1841 gambar dengan label Mask_Mouth_Chin di mana masker
hanya menutup bagian mulut dan dagu. 1840 gambar dengan label
Mask_Nose_Mouth di mana masker hanya menutup bagian hidung dan
mulut. Dan 1840 gambar dengan label Mask_Chin di mana masker hanya
menutup bagian dagu.

UIN SYARIF HIDAYATULLAH JAKARTA


37

Gambar 4.2 Contoh dataset MaskedFace-Net

4.2.5 Analisis Kebutuhan Fungsional Sistem


Kebutuhan sistem adalah mampu mengklasifikasikan penggunaan
masker dan memberikan output berupa suara. Seperti yang digambarkan
pada gambar 4.3 di bawah ini :

Gambar 4.3 Flowchart program

UIN SYARIF HIDAYATULLAH JAKARTA


38

4.2.6 Analisis Kebutuhan Perangkat Keras


Pemilihan perangkat keras didasari atas kebutuhan fungsional
sistem dan studi literatur yang sudah dilakukan. Dalam pembuatan sistem
ini dibutuhkan perangkat keras sebagaimana yang ditunjukkan pada tabel
4.1 :

Tabel 4.1 Kebutuhan perangkat keras

No. Komponen Jumlah Kegunaan


1. Raspberry Pi 4 Model B 1 Sebagai pusat kontrol dari
4Gb sistem. Diantaranya berperan
sebagai komputasi unit untuk
pemrosesan klasifikasi.
2. Raspberry Pi 4 Model B 1 Perangkat masukan yang
Cam V.1 berfungsi mengambil video.
4. Monitor DELL 17inch 1 Perangkat keluaran berupa
visualisasi deteksi objek.
5. Tombol Tekan Non 1 Sebagai tombol menyala dan
Momentary Switch mematikan Raspberry Pi 4
Model B
6. Kipas 1 Sebagai pendingin Raspberry
Pi 4 Model B
7. Dioda 1N4001 1 Sebagai pengaman tegangan
8. Resistor 470 Ohm 3 Sebagai pengaman tegangan
9. Transistor 2n2222 1 Sebagai sakelar untuk kipas

4.2.7 Analisis Kebutuhan Perangkat Lunak


Pemilihan perangkat lunak didasari atas kebutuhan fungsional
sistem dan studi literatur yang sudah dilakukan. Dalam pembuatan sistem
ini dibutuhkan perangkat lunak sebagaimana yang ditunjukkan pada tabel
4.2 :

Tabel 4.2 Kebutuhan perangkat lunak

No. Perangkat Lunak Kegunaan


1. Thonny IDE Untuk menulis kode
program di Raspberry Pi
4 Model B os
2. Google Colab Untuk pembuatan model
klasifikasi

UIN SYARIF HIDAYATULLAH JAKARTA


39

3. Draw.io Untuk pembuatan


diagram
4. Pemrogaman Python Sebagai bahasa
pemrogaman yang
digunakan untuk
membangun sistem dan
membuat model
5. Tensorflow Framework yang
memudahkan untuk
membuat model deep
learning
6. OpenCV Library yang membantu
untuk mengakses
computer vision

4.3 Pemodelan Cepat


Pada tahap pemodelan cepat ini, penulis membuat blok diagram dari sistem
klasifikasi penggunaan masker:

Gambar 4.4 Blok diagram alat

UIN SYARIF HIDAYATULLAH JAKARTA


40

Dalam satu kemasan terdapat kamera, Raspberry Pi 4 Model B, led, dan


tombol daya, tombol program, kipas, beserta dengan perangkat pendukungnya.
Kemasan ini sebagai inti dari sistem. Sementara di bagian terpisah terdapat speaker
dan monitor sebagai perangkat keluaran. Serta sumber daya yang diambil dari
listrik AC (listrik PLN) menggunakan adaptor. Baik adaptor untuk monitor dan
adaptor untuk Raspberry Pi 4 Model B. Pemasangan perangkat lain dengan
Raspberry Pi 4 Model B akan dijelaskan lebih rinci di bawah ini.
4.4.1 Kamera
Pemasangan kamera dilakukan dengan menghubungkan
kabel kamera dengan port CSI camera pada Raspberry Pi 4 Model B.

Gambar 4.5 Port CSI

4.4.2 Tombol Daya dan Tombol Program


Menghubungkan tombol dengan Raspberry Pi 4 Model B
memerlukan perangkat pendukung, yaitu resistor. Masing – masing
tombol yang digunakan memiliki jenis yang berbeda. Untuk tombol
daya menggunakan tombol tekan tanpa momentary switch. Sementara
tombol program menggunakan tombol tekan dengan momentary switch.
Untuk tombol daya, hubungkan pin GPIO 3 ke salah satu
kaki tombol, dan untuk kaki yang satunya, hubungkan dengan resistor
470 Ohm, setelahnya hubungkan ke pin 9 pada papan Raspberry Pi 4
Model B.

UIN SYARIF HIDAYATULLAH JAKARTA


41

Gambar 4.6 Rangkaian tombol

4.4.3 Kipas
Menghubungkan kipas dengan Raspberry Pi 4 Model B
memerlukan perangkat pendukung, yaitu, resistor, dioda, dan transistor.
Hubungkan kabel positif kipas dengan pin 4 pada papan Raspberry Pi 4
Model B dan kutub katoda diode.
Untuk kabel negative kipas, akan dihubungkan dengan
collector transistor. Base dari transistor akan terhubung dengan resistor
sebelum menyambung dengan pin GPIO 14. Untuk emitter transistor
akan terhubung dengan pin 6 pada papan Raspberry Pi 4 Model B.

Gambar 4.7 Rangkaian kipas

UIN SYARIF HIDAYATULLAH JAKARTA


42

4.4.4 Monitor dan Sumber Daya


Sumber daya akan terhubung dengan port usb Type C (1)
yang terhubung dengan adaptor. Monitor akan terhubung dengan micro-
HDMI 1 (2).

1 2

Gambar 4.8 Port USB Type-C, micro HDMI

4.4 Konstruksi
Tahapan selanjutnya adalah konstruksi, pada tahap ini penulis bagi menjadi
2, yaitu pembuatan model deteksi di mana model ini nanti akan digunakan sistem
untuk mendeteksi penggunaan masker.

4.4.1 Model Deteksi


Dalam pembuatan model deteksi, pada penelitian ini dibagi menjadi
2, yaitu pelatihan untuk model deteksi satu tahap dan pelatihan untuk model
deteksi dua tahap. Pada gambar 4.9 ditunjukkan proses pembuatan model
deteksi satu tahap

UIN SYARIF HIDAYATULLAH JAKARTA


43

Gambar 4.9 Tahapan pembuatan model deteksi satu tahap

Proses dimulai dengan mengunduh dataset. Untuk model deteksi


satu tahap, dataset yang digunakan sudah dibagi menjadi 7385 gambar
untuk proses pelatihan dan 1820 gambar untuk proses validasi. Setelah
dataset diunduh, dilakukan pembuatan file yang bernama labelmap,
labelmap ini berisi kategori klasifikasi untuk proses pelatihan nanti. Setelah
dataset dan labelmap sudah ada, dilanjutkan dengan proses konversi
keduanya menjadi file .record. Sebuah file yang nantinya akan digunakan
dalam proses pelatihan dengan Tensorflow Object Detection API.
Dalam pelatihan ini, pengujian model deteksi objek satu tahap
memiliki 2 kategori, yaitu dengan menggunakan model yang sudah dilatih
sebelumnya atau disebut dengan fine tuning dan melakukan proses pelatihan
dari awal, tanpa bantuan model yang sudah dilatih sebelumnya. Jika
menggunakan fine tuning maka diharuskan mengunduh model yang sudah
dilatih sebelumnya terlebih dahulu. Setelah itu, dilakukan konfigurasi
pipeline. Pipeline di sini berisi konfigurasi mengenai pelatihan yang akan
dilakukan. Konfigurasi mencakup, model apa yang digunakan,

UIN SYARIF HIDAYATULLAH JAKARTA


44

menggunakan fine tuning atau tidak, berapa jumlah stepsnya, lokasi


penyimpanan dataset, dan lokasi penyimpanan labelmap. Setelah selesai
dengan persiapan dan konfigurasi. Maka dilakukan pelatihan.
Setelah pelatihan selesai, model yang sudah dilatih akan dikonversi
menjadi frozen graph. Setelah menjadi frozen graph, dilakukan proses
konversi lagi menjadi .tflite. Di mana file .tflite ini nantinya akan digunakan
pada Raspberry Pi.
Setiap pelatihan model deteksi satu tahap akan menghasilkan 5
chekpoint, dari setiap checkpoint ini dapat diubah ke model dengan format
tflite. Dari setiap pelatihan juga terdapat data kemajuan proses pelatihan dari
awal sampai akhir pelatihan. Data ini dimuat dalam grafik, dan nilai yang
terdapat pada grafik tersebut tidak setiap langkah ada, melainkan dalam
bentuk titik yang saling terhubung membentuk sebuah grafik.
Dalam memilih checkpoint mana yang akan digunakan pada
Raspberry Pi nanti, penulis menggunakan nilai F-Score. Nilai F-Score
diambil dari nilai precission dan recall pada data pasca pelatihan. Adapun
rumus dari F-Score adalah sebagai berikut :
2𝑝𝑟
𝐹𝑠𝑐𝑜𝑟𝑒 =
𝑝+𝑟
Dengan p adalah precission dan r adalah recall. Pada tabel 4.3 Ditunjukkan
nilai F-Score dari masing masing pelatihan model yang melakukan
pelatihan tanpa fine tuning, berikut dengan keterangan ketika langkah
pelatihan ke berapa dan checkpoint yang tersedia :
Tabel 4.3 Pelatihan tanpa Fine Tuning

Model Checkpoint Steps Precision Recall F-Score


20000 20000 0,5515 0,6763 0,6075573383
19417 19420 0,5666 0,6952 0,6243466793
SSD Mobilenet V2 18688
18066 18070 0,597 0,7067 0,6472346399
17452 17450 0,5032 0,67 0,5747425844
SSDLite Mobilenet V2 20000 20000 0,4021 0,5951 0,479923205

UIN SYARIF HIDAYATULLAH JAKARTA


45

19812 19810 0,6014 0,7071 0,6499808024


19193 19190 0,586 0,695 0,6358626073
18587 18590 0,5125 0,6623 0,5778494212
17968 17970 0,567 0,7024 0,6274788089
20000 20000 0,4806 0,6668 0,5585917378
19320 19320 0,4834 0,7036 0,5730753833
SSDLite Mobilenet V3 Small 18374 18350 0,4384 0,6491 0,5233387402
17341 17340 0,466 0,6845 0,5545015211
16157 15170 0,4672 0,657 0,5460779221
20000 20000 0,58 0,7053 0,6365424415
19384 19380 0,5461 0,6873 0,6086176909
SSDLite Mobilenet V3 Large 18693 18690 0,5565 0,6979 0,6192304688
18001 18000 0,536 0,6825 0,6004431678
17310 17310 0,4248 0,6484 0,5133065971
20000 20000 0,392 0,6446 0,4875230561
19898 19900 0,5198 0,6785 0,5886410749
SSDLite Mobiledets 19374 19370 0,4862 0,6427 0,5536021614
18846 18850 0,3378 0,622 0,4378237133
18319 18320 0,4585 0,6382 0,5336276101

Dan berikut adalah hasil dari pealtihan model dengan menggunakan fine
tuning yang ditunjukkan pada tabel 4.4
Tabel 4.4 Pelatihan dengan fine tuning

Model Checkpoint Steps Precision Recall F-Score


20000 20000 0,4566 0,6416 0,5335176835
19775 19780 0,5277 0,672 0,5911717929
SSD Mobilenet V2 19169 19170 0,5901 0,6979 0,6394888043
18571 18570 0,5677 0,6953 0,625054331
17955 17960 0,5638 0,7001 0,6246006488
20000 20000 0,4993 0,6977 0,5820578279
19893 19890 0,5438 0,676 0,6027361863
SSDLite Mobilenet V2 19164
18556 18560 0,5695 0,6974 0,6269939222
17944 17940 0,5565 0,6844 0,613858651
SSDLite Mobilenet V3 Small 20000 20000 0,5173 0,7069 0,5974176932

UIN SYARIF HIDAYATULLAH JAKARTA


46

19337 19340 0,5159 0,6683 0,5822934808


18561 18650 0,4966 0,6646 0,5684470548
17952 17950 0,5106 0,6907 0,5871496212
17262 17260 0,4409 0,6781 0,5343597676
20000 20000 0,5015 0,6845 0,5788815346
19416 19420 0,5624 0,7104 0,6277953488
SSDLite Mobilenet V3 Large 18719 18720 0,5517 0,708 0,6201533698
18026 18030 0,4548 0,6507 0,5353927815
17330 17330 0,5394 0,6933 0,6067429545
20000 20000 0,2756 0,6484 0,3867944589
19930 19930 0,5317 0,6922 0,6014261623
SSDLite Mobiledets 19532 19530 0,3914 0,6576 0,4907238132
19132 19130 0,4756 0,6741 0,5577141167
18735 18740 0,4875 0,6637 0,5621156185

Pada tabel 4.3 dan 4.4 Terlihat ada beberapa nilai langkah yang
kosong, itu dikarenakan tidak ada titik langkah pada grafik pasca pelatihan
yang mendekati checkpoint tersedia. Untuk SSDLite MobilenetV2 pada
pelatihan tanpa fine tuning menggunakan model dengan nilai F-Score yang
nomer dua tertinggi. Hal ini dikarenakan karena untuk nilai yang
tertingginya, antara titik langkah pada grafik dan checkpointnya berbeda
dan cenderung menurun grafiknya sampai ke titik langkah 20.000.
Pada gambar 4.10 dijelaskan mengenai tahapan pembuatan model
deteksi dua tahap. Pada pembuatan model deteksi dua tahap, dalam
penelitian ini hanya membuat bagian untuk mengklasifikasikan
penggunaan masker. Jadi pada model deteksi dua tahap, tahap pertama
adalah mengenali wajah manusia terlebih dahulu. Setelah wajah manusia
dikenali, nantinya akan diambil daerah dari wajah tersebut yang
selanjutnya akan dilakukan proses klasifikasi pada daerah tersebut. Proses
dua tahap ini terjadi pada Raspberry Pi. Pada penelitian ini menggunakan
SSD sebagai pendeteksi wajah yang sudah ada modelnya. Dan
MobilenetV2 untuk mengklasifikasikan penggunaan masker yang pada
penelitian ini penulis membuatnya sendiri.

UIN SYARIF HIDAYATULLAH JAKARTA


47

Gambar 4.10 Tahapan pembuatan model klasifikasi penggunaan masker

Proses pembuatan klasifikasi penggunaan masker untuk model


deteksi dua tahap diawali dengan persiapan dataset. Dataset ini merupakan
gabungan dari beberapa dataset sebagaimana yang telah dijelaskan
sebelumnya. Dataset masih berupa gambar biasa, oleh karena itu
ditambahkan proses augmentasi untuk menambah keanekaragaman bentuk.
Setelah itu, dataset dibagi menjadi 80% data latih dan 20% data uji.
Selanjutnya, siapkan model MobilenetV2 yang sudah dilatih
sebelumnya. Gunanya menggunakan model yang sudah dilatih sebelumnya
adalah untuk mempercepat proses pengenalan objek sehingga tidak
membutuhkan waktu yang lama untuk mendapatkan hasil yang baik.
Setelah model disiapkan, maka model akan di-compile untuk nantinya
digunakan pada tahap pelatihan. Setelah semuanya siap, proses pelatihan
dapat dilakukan.
Terkahir, setelah proses pelatihan selesai, konversi model yang
telah dilatih menjadi format .tflite. Format ini nantinya akan digunakan pada
Raspberry Pi.
4.4.2 Alat
Alat di susun berdasarkan blok diagram pada pemodelan. Pada
bagian atas, terdapat kipas yang dipasang menggunakan baut, kipas berguna

UIN SYARIF HIDAYATULLAH JAKARTA


48

untuk mendinginkan Raspberry Pi ketika suhunya mulai panas. Pada bagian


depan, terdapat kamera yang dipasang menggunakan baut, kamera
menghadap ke depan agar dapat menangkap objek dengan baik. Pada bagian
bawah, tidak terdapat komponen, hanya nampak 4 baut yang digunakan
untuk mengunci Raspberry Pi ke casing. Pada bagian belakang, terdapat
tombol daya, port power, port micro-hdmi, dan port jack audio. Pada bagian
kanan terdapat port usb yang dapat dimanfaatkan sebagai penghubung ke
keyboard dan mouse serta port ehternet agar dapat terhubung ke jaringan
melalui kabel LAN. Pada bagian kiri tidak terdapat komponen. Jika dilihat
bagian dalamnya, terdapatnya raspbery pi 4 model b, kabel jumper, dan
resistor. Untuk komponen pendukung kipas, tidak nampak, karena sudah
dilapisi dengan flame tube. Berikut adalah penampakannya, ditunjukkan
pada gambar dalam tabel 4.5 :

Tabel 4.5 Tabel penampakan alat

Posisi Tampak
Atas

UIN SYARIF HIDAYATULLAH JAKARTA


49

Depan

Bawah

Belakang

UIN SYARIF HIDAYATULLAH JAKARTA


50

Kanan

Kiri

Dalam

4.5 Penerapan dan Evaluasi


Pengujian ini dilakukan sampai mendapatkan output yang diinginkan. Ketika
sudah beberapa kali percobaan, klasifikasi tetap tidak berhasil, maka hasil itu yang
dimasukan ke dalam tabel.
Percobaan SSDLite MobilenetV3 Small Menggunakan Fine Tuning.
Selama proses evaluasi, FPS maksimal yang didapatkan adalah 9.79 FPS dan

UIN SYARIF HIDAYATULLAH JAKARTA


51

minimal FPS 8.67 FPS. Serta konsumsi daya yang digunakan adalah 7.4 – 8.0 Watt.
Pada tabel 4.6 di bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

Tabel 4.6 Percobaan SSDLite MobilenetV3 Small Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Terkadang terdeteksi benar,


medis salah terkadang terdeteksi salah

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Terdeteksi tanpa masker,


kain salah seharusnya terdeteksi salah

6. Menutup dengan tangan Mudah terdeteksi

7. Menutup dengan koran Mudah terdeteksi

Percobaan SSDLite MobilenetV3 Small Tanpa Fine Tuning. Selama proses


evaluasi, FPS maksimal yang didapatkan adalah 10 FPS dan minimal FPS 8.83 FPS.
Serta konsumsi daya yang digunakan adalah 7.4 – 8.1 Watt. Pada tabel 4.7 di bawah
ini adalah hasil dari evaluasi kemampuan deteksinya.

UIN SYARIF HIDAYATULLAH JAKARTA


52

Tabel 4.7 Percobaan SSDLite MobilenetV3 Small Tanpa Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Terdeksi benar, seharusnya


medis salah terdeteksi salah

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Terdeteksi tanpa masker, seharusnya


kain salah terdeteksi salah

6. Menutup dengan tangan Dapat terdeteksi, namun sulit

7. Menutup dengan koran Dapat terdeteksi namun sulit

Percobaan SSDLite MobilenetV3 Large Menggunakan Fine Tuning. Selama


proses evaluasi, FPS maksimal yang didapatkan adalah 4.26 FPS dan minimal FPS
3.81 FPS. Serta konsumsi daya yang digunakan adalah 7.3 – 8.0 Watt. Pada tabel
4.8 di bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

UIN SYARIF HIDAYATULLAH JAKARTA


53

Tabel 4.8 Percobaan SSDLite MobilenetV3 Large Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Terdeteksi benar, seharusnya


medis salah terdeteksi salah

3. Tidak menggunakan Mudah terdetksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Terdeteksi benar, seharusnya


kain salah terdeteksi salah

6. Menutup dengan Mudah terdeteksi


tangan

7. Menutup dengan koran Dapat terdeteksi, namun sulit

Percobaan SSDLite MobilenetV3 Large Tanpa Menggunakan Fine Tuning.


Selama proses evaluasi, FPS maksimal yang didapatkan adalah 4.21 FPS dan
minimal FPS 4.01 FPS. Serta konsumsi daya yang digunakan adalah 7.3 – 8.0 Watt.
Pada tabel 4.9 di bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

UIN SYARIF HIDAYATULLAH JAKARTA


54

Tabel 4.9 Percobaan SSDLite MobilenetV3 Large Tanpa Menggunakan Fine


Tuning
No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Mudah terdeteksi


medis salah

3. Tidak menggunakan Mudah terdetksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Terdeteksi tanpa masker,


kain salah seharusnya terdeteksi salah

6. Menutup dengan tangan Mudah terdeteksi

7. Menutup dengan koran Mudah terdeteksi

Percobaan SSD MobilenetV2 Menggunakan Fine Tuning. Selama proses


evaluasi, FPS maksimal yang didapatkan adalah 3.42 FPS dan minimal FPS 3.21
FPS. Serta konsumsi daya yang digunakan adalah 7.3 – 8.0 Watt. Pada tabel 4.10 di
bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

UIN SYARIF HIDAYATULLAH JAKARTA


55

Tabel 4.10 Percobaan SSD MobilenetV2 Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Terkadang terdeteksi salah,


medis salah terkadang tereteksi benar,
terkadang tidak terdeteksi

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Terdeteksi tanpa masker,


kain salah seharusnya terdeteksi salah

6. Menutup dengan Tidak terdeteksi


tangan

7. Menutup dengan koran Tidak terdeteksi

Percobaan SSD MobilenetV2 Tanpa Menggunakan Fine Tuning. Selama


proses evaluasi, FPS maksimal yang didapatkan adalah 3.42 FPS dan minimal FPS
3.27 FPS. Serta konsumsi daya yang digunakan adalah 7.7 – 8.1 Watt. Pada tabel
4.11 di bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

UIN SYARIF HIDAYATULLAH JAKARTA


56

Tabel 4.11 Percobaan SSD MobilenetV2 Tanpa Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Terdeteksi benar, seharusnya


medis salah terdeteksi salah

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Mudah terdeteksi


kain salah

6. Menutup dengan tangan Mudah terdeteksi

7. Menutup dengan koran Mudah terdeteksi

Percobaan SSDLite MobilenetV2 Menggunakan Fine Tuning. Selama proses


evaluasi, FPS maksimal yang didapatkan adalah 3.57 FPS dan minimal FPS 3.43
FPS. Serta konsumsi daya yang digunakan adalah 7.2 – 7.9 Watt. Pada tabel 4.12 di
bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

UIN SYARIF HIDAYATULLAH JAKARTA


57

Tabel 4.12 Percobaan SSDLite MobilenetV2 Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Mudah Terdeteksi


medis salah

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Mudah terdeteksi


kain salah

6. Menutup dengan tangan Mudah terdeteksi

7. Menutup dengan koran Mudah terdeteksi

Percobaan SSDLite MobilenetV2 Tanpa Menggunakan Fine Tuning. Selama


proses evaluasi, FPS maksimal yang didapatkan adalah 3.49 FPS dan minimal FPS

UIN SYARIF HIDAYATULLAH JAKARTA


58

3.33 FPS. Serta konsumsi daya yang digunakan adalah 7.3 – 8.0 Watt. Pada tabel
4.13 di bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

Tabel 4.13 Percobaan SSDLite MobilenetV2 Tanpa Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Terdeteksi benar, seharusnya


medis salah terdeteksi salah

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Terkadang terdeteksi tidak


kain salah menggunakan masker, terkadang
terdeteksi benar, seharunsya
terdeteksi salah

6. Menutup dengan tangan Mudah terdeteksi

UIN SYARIF HIDAYATULLAH JAKARTA


59

7. Menutup dengan koran Mudah terdeteksi

Percobaan SSDLite Mobiledets Menggunakan Fine Tuning. Selama proses


evaluasi, FPS maksimal yang didapatkan adalah 3.81 FPS dan minimal FPS 3.59
FPS. Serta konsumsi daya yang digunakan adalah 7.3 – 8.1 Watt. Pada tabel 4.14 di
bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

Tabel 4.14 Percobaan SSDLite Mobiledets Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker Terkadang terdeteksi benar,


medis salah terkadang terdeteksi salah

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker Mudah terdeteksi


kain

5. Menggunakan masker Mudah terdeteksi


kain salah

UIN SYARIF HIDAYATULLAH JAKARTA


60

6. Menutup dengan tangan Mudah terdeteksi

7. Menutup dengan koran Terdeteksi benar, seharusnya


terdeteksi tanpa masker

Percobaan SSDLite Mobiledets Tanpa Menggunakan Fine Tuning. Selama


proses evaluasi, FPS maksimal yang didapatkan adalah 3.83 FPS dan minimal FPS
3.40 FPS. Serta konsumsi daya yang digunakan adalah 7.3 – 8.0 Watt. Pada tabel
4.15 di bawah ini adalah hasil dari evaluasi kemampuan deteksinya.

Tabel 4.15 Percobaan SSDLite Mobiledets Tanpa Menggunakan Fine Tuning


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker medis Terdeteksi tanpa masker,


salah seharusnya salah

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker kain Mudah terdeteksi

5. Menggunakan masker kain Terdeteksi benar, seharusnya


salah salah

UIN SYARIF HIDAYATULLAH JAKARTA


61

6. Menutup dengan tangan Tidak terdeteksi

7. Menutup dengan koran Tidak terdeteksi

Percobaan SSDMNV2. Selama proses evaluasi, FPS maksimal yang


didapatkan adalah 1.42 FPS dan minimal FPS 0.78 FPS. Serta konsumsi daya yang
digunakan adalah 8.1 – 9.2 Watt. Pada tabel 4.16 di bawah ini adalah hasil dari
evaluasi kemampuan deteksinya.

Tabel 4.16 Percobaan SSDMNV2


No. Input Output Visual Keterangan
1. Menggunakan masker Mudah terdeteksi
medis

2. Penggunaan masker medis Harus mendekatkan wajah ke


salah kamera

3. Tidak menggunakan Mudah terdeteksi


masker

4. Menguunakan masker kain Mudah terdeteksi

5. Menggunakan masker kain Berhasil terdeteksi namun sulit


salah

UIN SYARIF HIDAYATULLAH JAKARTA


62

6. Menutup dengan tangan Mudah terdeteksi

7. Menutup dengan koran Terdeteksi benar, seharusnya


terdeteksi tanpa masker

UIN SYARIF HIDAYATULLAH JAKARTA


63

BAB 5
HASIL DAN PEMBAHASAN

5.1 Hasil Evaluasi Deteksi Penggunaan Masker

Berdasarkan tabel hasil evaluasi deteksi pada bab 4, setiap model dengan
konfigurasi pelatihan yang berbeda memiliki hasil evaluasi deteksi yang berbeda.
Dari evaluasi deteksi, dapat dilihat pada tabel 4.12 Model SSDLite Mobilenet V2
dengan pelatihan menggunakan finet tuning memiliki kemampuan deteksi yang
lebih baik daripada model lainnya yang diuji dalam penelitian ini. Namun, dalam
penelitian ini model ini memiliki kemampuan deteksi yang lebih baik daripada
model lainnya karena mampu mendeteksi semua input dengan mudah. Sementara,
dengan tipe model yang sama namun melakukan pelatihan tanpa fine tuning
mendapatkan hasil masih terdapat kesalahan deteksi pada saat diuji coba
menggunakan masker dengan cara yang salah. Kesalahan saat mendeteksi
menggunakan masker dengan penggunaan yang salah juga ditemui di model
lainnya selain model SSDLite Mobilenet V2 dengan fine tuning. Namun, untuk
model SSDLite Mobiledets menggunakan fine tuning mendapatkan hasil mudah
mendeteksi penggunaan masker yang salah ketika menggunakan masker kain, serta
model dengan SSDMNV2 berhasil mendeteksi penggunaan masker yang salah
namun sulit.
Terdapat ketidakmampuan deteksi saat diuji coba menggunakan input
menutup wajah dengan kain dan koran pada model SSDLite Mobiledets tanpa fine
tuning dan model SSD Mobilenet V2 dengan fine tuning. Serta kesalahan deteksi
saat diuji coba input menutup wajah dengan koran pada model SSD Mobiledets
dengan fine tuning dan model dengan SSDMNV2.
Untuk model yang dijadikan tujuan penelitian pada penelitian ini sendiri,
adalah SSDLite MobilenetV3 Small. Terdapat dua konfigurasi penelitian pada
penelitian ini, pelatihan dengan fine tuning dan pelatihan tanpa fine tuning. Kedua
model sama-sama tidak berhasil dalam mendeteksi penggunaan masker yang salah.
Namun saat evaluasi, ditemukan model dengan pelatihan tanpa fine tuning memiliki

UIN SYARIF HIDAYATULLAH JAKARTA


64

kesulitan deteksi saat dicoba dengan input menutup wajah dengan tangan dan
koran. Oleh karena itu, untuk pengujian lanjutan akan menggunakan SSDLite
MobilenetV3 Small dengan fine tuning.
Pada penelitian ini dapat mengklasifikasikan menutup wajah dengan koran
dengan tidak menggunakan masker, sementara pada penelitian (Abdul et al., 2020)
saat menutup wajah dengan hal lain seperti buku dan tisu masih diklasifikasikan
sebagai menggunakan masker.
Perlu dijadikan catatan bahwa setiap pelatihan dengan konfigurasi yang
berbeda dapat menghasilkan hasil akhir model yang berbeda juga. Hasil evaluasi
deteksi ini tidak dapat menjadikan patokan model A lebih baik kemampuan
deteksinya daripada model B secara keseluruhan, karena setiap pelatihan bisa
dengan konfigurasi tertentu dapat menghasilkan hasil akhir model yang berbeda.
Adapun rekap hasil evaluasi deteksi pada penelitian ini ditunjukkan pada tabel 5.1
Di bawah ini.

UIN SYARIF HIDAYATULLAH JAKARTA


65

Tabel 5.1 Rekap hasil evaluasi


No Percobaan Pengujian
Menggunakan Menggunakan Tidak Menggunakan Menggunakan Menutup wajh Menutup wajah
masker medis masker medis menggunakan masker kain masker kain salah dengan tangan dengan koran
salah masker
1. SSDLite Mudah terdeteksi Terkadang Mudah terdeteksi Mudah Terdeteksi tanpa Mudah terdeteksi Mudah terdeteksi
MobilenetV3 terdeteksi benar, terdeteksi masker, seharusnya
Small Fine terkadang masker salah
Tuning terdeteksi salah
2. SSDLite Mudah terdeteksi Terdeksi benar, Mudah terdeteksi Mudah terdeteksi Terdeteksi tanpa Dapat Dapat
MobilenetV3 seharusnya masker, seharusnya terdeteksi, terdeteksi,
Small Tanpa terdeteksi salah terdeteksi salah namun sulit namun sulit
Fine Tuning
3. SSDLite Mudah terdeteksi Terdeteksi Mudah terdetksi Mudah terdetksi Terdeteksi benar, Mudah terdeteksi Dapat
MobilenetV3 benar, seharusnya terdeteksi,
Large Fine seharusnya terdeteksi salah namun sulit
Tuning terdeteksi salah
4. SSDLite Mudah terdeteksi Mudah Mudah terdetksi Mudah terdeteksi Terdeteksi tanpa Mudah terdeteksi Mudah terdeteksi
MobilenetV3 terdeteksi masker, seharusnya
Large Tanpa terdeteksi salah
Fine Tuning
5. SSDLite Mudah terdeteksi Mudah Mudah terdeteksi Mudah terdeteksi Mudah Mudah terdeteksi Mudah terdeteksi
MobilenetV2 Terdeteksi Terdeteksi
Fine Tuning
6. SSDLite Mudah terdeteksi Terdeteksi Mudah terdeteksi Mudah terdeteksi Terkadang Mudah terdeteksi Mudah terdeteksi
MobilenetV2 benar, terdeteksi tidak
Tanpa Fine seharusnya menggunakan
Tuning terdeteksi salah masker,
terkadang
terdeteksi benar,
seharunsya
terdeteksi salah

UIN SYARIF HIDAYATULLAH JAKARTA


66

7. SSD Mudah terdeteksi Terkadang Mudah terdeteksi Mudah terdeteksi Terdeteksi tanpa Tidak Tidak terdeteksi
MobilenetV2 terdeteksi salah, masker, terdeteksi
Fine Tuning terkadang seharusnya
tereteksi benar, terdeteksi salah
terkadang tidak
terdeteksi
8. SSD Mudah terdeteksi Terdeteksi Mudah terdeteksi Mudah terdeteksi Mudah terdeteksi Mudah terdeteksi Mudah terdeteksi
MobilenetV2 benar,
Tanpa Fine seharusnya
Tuning terdeteksi salah
9. SSDLite Mudah terdeteksi Terkadang Mudah terdeteksi Mudah terdeteksi Mudah terdeteksi Mudah terdeteksi Terdeteksi
Mobiledets terdeteksi benar, benar,
Fne Tuning terkadang seharusnya
terdeteksi salah terdeteksi tanpa
masker
10. SSDLite Mudah terdeteksi Terdeteksi tanpa Mudah terdeteksi Mudah terdeteksi Terdeteksi benar, Tidak Tidak terdeteksi
Mobiledets masker, seharusnya salah terdeteksi
Tanpa Fine seharusnya salah
Tuning
11. SSDMNV2 Mudah terdeteksi Harus Mudah terdeteksi Mudah terdeteksi Berhasil terdeteksi Mudah terdeteksi Terdeteksi benar,
mendekatkan namun sulit seharusnya
wajah ke kamera terdeteksi tanpa
masker

UIN SYARIF HIDAYATULLAH JAKARTA


67

5.2 Hasil Evaluasi FPS


Tabel 5.2 adalah hasil evaluasi FPS dari percobaan yang telah dilakukan
sebelumnya. Dalam percobaan tersebut, peneliti mengambil nilai FPS maksimum
dan minimum selama percobaan berlangsung.
Tabel 5.2 Hasil evaluasi fps

No Percobaan FPS
1. SSDLite MobilenetV3 Small Fine Tuning 8.67 – 9.79 FPS
2. SSDLite MobilenetV3 Small Tanpa Fine 8.83 – 10.0 FPS
Tuning
3. SSDLite MobilenetV3 Large Fine Tuning 3.81 – 4.26 FPS
4. SSDLite MobilenetV3 Large Tanpa Fine 4.01 – 4.21 FPS
Tuning
5. SSDLite MobilenetV2 Fine Tuning 3.43 – 3.57 FPS
6. SSDLite MobilenetV2 Tanpa Fine Tuning 3.33 – 3.49 FPS
7. SSD MobilenetV2 Fine Tuning 3.21 – 3.42 FPS
8. SSD MobilenetV2 Tanpa Fine Tuning 3.27 – 3.42 FPS
9. SSDLite Mobiledets Fine Tuning 3.59 – 3.81 FPS
10. SSDLite Mobiledets Tanpa Fine Tuning 3.40 – 3.83 FPS
11. SSDMNV2 0.78 – 1.42 FPS

Berdasarkan hasil evaluasi pada tabel 5.2, SSDLite Mobilenet V3 Small


memiliki kecepatan deteksi lebih tinggi daripada model lainnya, ini terlihat dari fps
yang didapat ketika program berjalan. SSDLite Mobilenet V3 Small mendapatkan
FPS di angka 8,67 – 10,0.
Hasil ini juga menunjukkan sistem deteksi satu tahap memang benar lebih
cepat jika dibandingkan dengan sistem deteksi yang menggunakan dua tahap dalam
mendeteksinya.
5.3 Hasil Evaluasi Daya
Berikut adalah tabel pengujian daya yang dibutuhkan saat menjalankan
sistem. Daya yang dibutuhkan relatif sama. Adapun naik turunnya daya juga
dipengaruhi oleh kipas pada sistem, di mana kipas akan otomatis menyala saat suhu
CPU mencapai 60 derajat celcius, dan akan berhenti jika sudah di bawah itu.

UIN SYARIF HIDAYATULLAH JAKARTA


68

Tabel 5.3 Hasil evaluasi daya

No Percobaan Daya
1. SSDLite MobilenetV3 Small Fine Tuning 7.4 – 8.0 W
2. SSDLite MobilenetV3 Small Tanpa Fine 7.4 – 8.1 W
Tuning
3. SSDLite MobilenetV3 Large Fine Tuning 7.3 – 8.0 W
4. SSDLite MobilenetV3 Large Tanpa Fine 7.3 – 8.0 W
Tuning
5. SSDLite MobilenetV2 Fine Tuning 7.2 – 7.9 W
6. SSDLite MobilenetV2 Tanpa Fine Tuning 7.3 – 8.0 W
7. SSD MobilenetV2 Fine Tuning 7.3 – 8.0 W
8. SSD MobilenetV2 Tanpa Fine Tuning 7.7 – 8.1 W
9. SSDLite Mobiledets Fine Tuning 7.3 – 8.1 W
10. SSDLite Mobiledets Tanpa Fine Tuning 7.3 – 8.0 W
11. SSDMNV2 8.1 – 9.2 W

Berdasarkan hasil evaluasi pada tabel 5.3, model deteksi satu tahap memiliki
konsumsi daya sedikit lebih kecil dibandingkan dengan model deteksi dua tahap.
Model deteksi satu tahap memiliki konsumsi daya antara 7,3 W – 8,1 W. Sementara
model deteksi dua tahap memiliki konsumsi daya anatara 8.1 W – 9,6 W. Perbedaan
daya yang dibutuhkan tidak begitu berbeda jauh.

5.4 Pengujian Akurasi Model


Model deteksi yang dipilih adalah SSDLite Mobilenet V3 Small Fine Tuning.
Pada pengujian akurasi ini penulis melakukan input sebanyak 10 kali untuk setiap
jenis input, Adapun jenis input-nya meliputi tanpa menggunakan masker,
menggunakan masker medis, menggunakan masker medis dengan cara yang salah,
menggunakan masker kain, menggunakan masker kain dengan cara yang salah,
menutup wajah dengan tangan, dan menutup wajah dengan koran.

UIN SYARIF HIDAYATULLAH JAKARTA


69

Tabel 5.4 Pengujian Confusion Matrix

No. Citra Diharapkan Aktual Keterangan


1. Tanpa Masker Tanpa Masker True Negative

2. Tanpa Masker Tanpa Masker True Negative

3. Tanpa Masker Tanpa Masker True Negative

4. Tanpa Masker Tanpa Masker True Negative

5. Tanpa Masker Tanpa Masker True Negative

6. Tanpa Masker Tanpa Masker True Negative

7. Tanpa Masker Tanpa Masker True Negative

8. Tanpa Masker Tanpa Masker True Negative

UIN SYARIF HIDAYATULLAH JAKARTA


70

9. Tanpa Masker Tanpa Masker True Negative

10. Tanpa Masker Tanpa Masker True Negative

11. Tanpa Masker Tanpa Masker True Negative

12. Tanpa Masker Tanpa Masker True Negative

13. Tanpa Masker Tanpa Masker True Negative

14. Tanpa Masker Tanpa Masker True Negative

15. Tanpa Masker Tanpa Masker True Negative

UIN SYARIF HIDAYATULLAH JAKARTA


71

16. Tanpa Masker Tanpa Masker True Negative

17. Tanpa Masker Tanpa Masker True Negative

18. Tanpa Masker Tanpa Masker True Negative

19. Tanpa Masker Tanpa Masker True Negative

20. Tanpa Masker Tanpa Masker True Negative

21. Tanpa Masker Tanpa Masker True Negative

22. Tanpa Masker Tanpa Masker True Negative

UIN SYARIF HIDAYATULLAH JAKARTA


72

23. Tanpa Masker Tanpa Masker True Negative

24. Tanpa Masker Tanpa Masker True Negative

25. Tanpa Masker Tanpa Masker True Negative

26. Tanpa Masker Tanpa Masker True Negative

27. Tanpa Masker Tanpa Masker True Negative

28. Tanpa Masker Tanpa Masker True Negative

29. Tanpa Masker Tanpa Masker True Negative

30. Tanpa Masker Tanpa Masker True Negative

UIN SYARIF HIDAYATULLAH JAKARTA


73

31. Benar Benar True Positive

32. Benar Benar True Positive

33. Benar Benar True Positive

34. Benar Benar True Positive

35. Benar Benar True Positive

36. Benar Benar True Positive

37. Benar Benar True Positive

UIN SYARIF HIDAYATULLAH JAKARTA


74

38. Benar Benar True Positive

39. Benar Benar True Positive

40. Benar Tanpa Masker False Negative

41. Benar Benar True Positive

42. Benar Benar True Positive

43. Benar Benar True Positive

44. Benar Benar True Positive

UIN SYARIF HIDAYATULLAH JAKARTA


75

45. Benar Benar True Positive

46. Benar Benar True Positive

47. Benar Benar True Positive

48. Benar Benar True Positive

49. Benar Benar True Positive

50. Benar Benar True Positive

51. Salah Benar False Positive

UIN SYARIF HIDAYATULLAH JAKARTA


76

52. Salah Benar False Positive

53. Salah Benar False Positive

54. Salah Benar False Positive

55. Salah Benar False Positive

56. Salah Benar False Positive

57. Salah Benar False Positive

58. Salah Benar False Positive

UIN SYARIF HIDAYATULLAH JAKARTA


77

59. Salah Benar False Positive

60. Salah Tanpa Masker False Negative

61. Salah Tanpa Masker False Negative

62. Salah Tanpa Masker False Negative

63. Salah Tanpa Masker False Negative

64. Salah Benar False Positive

65. Salah Benar False Positive

UIN SYARIF HIDAYATULLAH JAKARTA


78

66. Salah Tanpa Masker False Negative

67. Salah Benar False Positive

68. Salah Benar False Positive

69. Salah Tanpa Masker False Negative

70. Salah Benar False Positive

Setelah melakukan rangkain pengujian dengan hasil yang ditunjukkan pada


tabel 5.4 di atas, maka dapat digunakan confusion matrix untuk mengetahui nilai
akurasi dari model yang digunakan

Tabel 5.5 Hasil pengujian

Prediksi Benar Prediksi Salah Prediksi Tanpa


Masker
Aktual Benar 19 24 0

UIN SYARIF HIDAYATULLAH JAKARTA


79

Aktual Salah 0 0 0
Aktual Tanpa 1 6 30
Masker

Untuk menghitung akurasi dari pengujian di atas maka digunakan


persamaan akurasi
Akurasi =

Berdasarkan tabel 5.5, maka akurasi keseluruhan dapat dihitung, akurasi


keseluruhan diperoleh dengan persamaan akurasi dan dapat digunakan sebagai
berikut
Akurasi = = 70 %

Aktual dengan hasil deteksi yang tidak tepat ditemukan saat melakukan pengujian
untuk prediksi salah. Tidak ada hasil prediksi salah yang memiliki aktual salah juga.
Sementara, untuk prediksi tanpa masker memiliki hasil deteksi yang tepat untuk
semua pengujiannya. Dan prediksi benar memiliki satu hasil aktual yang tidak
salah, ini ketika mencoba menggunakan input dengan menundukkan wajah ke
kamera, dan menghasilkan hasil aktual tanpa masker. Berdasarkan hasil tersebut
dapat diketahui bahwa yang berbeperan besar sehingga nilai akurasi pengujian
model ini menjadi 70% karena ketidakmampuan model dalam mendeteksi
penggunaan masker yang salah.

5.5 Pengujian Jarak Deteksi


Pada pengujian ini penulis mencoba mencari titik di mana alat masih dapat
mendeteksi. Setelah titik tersebut didapat, penulis akan menandainya dan setelah
diukur dengan alat ukur. Dalam pengujian ini, penulis mendapatkan hasil, untuk
deteksi penggunaan masker dan tanpa masker dengan input tidak mengenakan
masker, maksimal di 169 cm. Untuk deteksi tanpa masker dengan menutup wajah
dengan tangan, maksimal di 146 cm. Untuk deteksi tanpa masker dengan menutup
wajah dengan koran, maksimal di 133 cm. Dan untuk deteksi masker dengan

UIN SYARIF HIDAYATULLAH JAKARTA


80

penggunaan yang salah, sebagaimana di pengujian akurasi sebelumnya, hal tersebut


tidak didapatkan. Hasil saat melakukan deteksi ditunjukkan pada gambar 5.1 di
bawah ini

Gambar 5.1 Hasil pengujian jarak

5.6 Pengujian Jumlah Deteksi


Pada pengujian ini penulis mencoba mencari berapa banyak deteksi yang
dapat dilakukan dalam satu frame deteksi. Pengujian ini dilakukan dengan
mengarahkan alat ke sebuah layer monitor, pada layar monitor tersebut sudah
terdapat kolase foto penulis yang terdiri dari 8 foto. Pada pengujian ini didapatkan
alat mampu mendeteksi 7 deteksi secara bersamaan. Hasil pada penelitian ini
ditunjukkan pada gamabar 5.2 di bawah ini

UIN SYARIF HIDAYATULLAH JAKARTA


81

Gambar 5.2 Hasil pengujian jumlah deteksi

5.7 Pengujian Kondisi Pencahayaan


Pada pengujian ini penulis mencoba mencari sampai di mana kemampuan
alat dalam mendeteksi pada keadaan pencahayaan yang kurang memadai.
Pengujian ini dilakukan dengan mencoba deteksi pada saat kondisi cahaya redup,
gelap, serta gelap namun dengan pencahayaan tambahan. Hasil yang didapatkan
alat memiliki kesulitan saat mendeteksi pada saat kondisi pencahayaan kurang
memadai. Saat cahaya redup, alat hanya mampu mendeteksi masker medis, yang
mana masker medis memiliki warna masker cenderung terang dan mencolok, untuk
tanpa masker dan masker kain dengna warna biru tua tidak terdeteksi.

Gambar 5.3 Hasil pengujian saat cahaya redup

Selanjutnya, saat keadaan gelap tanpa pencahayaan, alat tidak mampu mendeteksi
apapun.

UIN SYARIF HIDAYATULLAH JAKARTA


82

Gambar 5.4 Hasil pengujian saat gelap

Saat dalam keadaan gelap namun menggunakan pencahayaan tambahan, alat dapat
mendeteksi tidak menggunakan masker dan saat menggunakan masker medis,
sementara, saat menggunakan masker kain dengan warna biru tua, terdeteksi tanpa
masker

Gambar 5.5 Hasil pengujian saat gelap dengan bantuan lampu

Dari pengujian ini, dapat terlihat kalau alat membutuhkan pencahayaan yang
memadai untuk mendapatkan hasil deteksi yang maksimal

UIN SYARIF HIDAYATULLAH JAKARTA


83

BAB 6
KESIMPULAN DAN SARAN

6.1 Kesimpulan
Dari penelitian ini dapat ditarik kesimpulan, bahwa SSDLite MobilenetV3
Small, memiliki kecepatan deteksi yang lebih tinggi daripada model lain yang diuji
dalam penelitian ini. Model SSDLite MobilenetV3 Small dapat mengklasifikasikan
menutup wajah dengan koran dengan tidak menggunakan masker. Namun, untuk
kemampuan deteksinya masih kalah dibandingkan model SSDLite MobilenetV2
saat mendeteksi penggunaan masker yang salah. Nilai akurasi yang didapatkan
berada di angka 70%. Serta, karena SSDLite MobilenetV3 Small termasuk model
deteksi satu tahap, konsumsi daya yang dihasilkan sedikit lebih kecil daripada
program dengan model deteksi dua tahap. Walaupun demikian, konsumsi daya
yang sedikit lebih kecil tersebut juga dapat terjadi karena program untuk
menjalankan model deteksi satu tahap dan deteksi dua tahap berbeda. Alat memiliki
keterbatasan dalam hal jarak deteksi, kemampuan deteksi saat kondisi cahaya yang
kurang memadai, serta jumlah deteksi yang dapat terdeteksi maksimal 7 objek.

6.2 Saran
Adapun untuk mengembangkan penelitian ini lebih jauh, penulis memiliki
beberapa saran, yaitu :
1. Dapat melakukan penelitian dengan menggunakan dataset atau konfigurasi
pelatihan model yang berbeda dari yang penelitian ini gunakan. Dan dilihat
apakah ada perbedaan hasil kemampuan deteksi yang dihasilkan.
2. Dapat melakukan penelitian dengan menggunakan tipe kamera yang berbeda
dari penelitian ini. Pada penelitian ini menggunakan kamera Raspberry Pi
Cam V.1. Dengan menggunakan tipe kamera yang berbeda apakah dapat
meningkatkan kemampuan deteksi alat atau tidak.
3. Dapat dikembangkan lebih lanjut untuk penggunaan terhadap objek orang
yang mengenakan jilbab, pada penelitian ini belum melakukan
pengembangan ke arah itu.

UIN SYARIF HIDAYATULLAH JAKARTA


84

DAFTAR PUSTAKA
Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C., Corrado, G.
S., Davis, A., Dean, J., Devin, M., Ghemawat, S., Goodfellow, I., Harp, A.,
Irving, G., Isard, M., Jia, Y., Jozefowicz, R., Kaiser, L., Kudlur, M., …
Zheng, X. (2016). TensorFlow: Large-Scale Machine Learning on
Heterogeneous Distributed Systems. Distributed, Parallel, and Cluster
Computing (Cs.DC), 2. http://arxiv.org/abs/1603.04467
Abdul, M., Irham, R., & Prasetya, D. A. (2020). PROTOTIPE PENDETEKSI
MASKER PADA RUANGAN WAJIB MASKER UNTUK KENDALI
PINTU OTOMATIS BERBASIS DEEP LEARNING SEBAGAI
PENCEGAHAN PENULARAN COVID-19. Simposium Nasional RAPI XIX
Tahun 2020 FT UMS, 47–55. http://hdl.handle.net/11617/12377
Aprilian Anarki, G., Auliasari, K., & Orisa, M. (2021). Penerapan Metode Haar
Cascade Pada Aplikasi Deteksi Masker. JATI (Jurnal Mahasiswa Teknik
Informatika), 5(1), 179–186. https://doi.org/10.36040/jati.v5i1.3214
Cabani, A., Hammoudi, K., Benhabiles, H., & Melkemi, M. (2021). MaskedFace-
Net – A dataset of correctly/incorrectly masked face images in the context of
COVID-19. Smart Health, 19(November 2020), 100144.
https://doi.org/10.1016/j.smhl.2020.100144
Darmasita. (2020). Deteksi Penggunaan Masker Menggunakan Xception Transfer
Learning. JURNAL INSTEK (Informatika Sains Dan Teknologi), 5, 279–288.
https://doi.org/https://doi.org/10.24252/instek.v5i2.20132
Elgendy, M. (2020). Deep Learning for Vision Systems. Manning Publications Co.
Giancini, D., Puspaningrum, E. Y., & Via, Y. V. (2020). Identifikasi Penggunaan
Masker Menggunakan Algoritma CNN YOLOv3-Tiny. Seminar Nasional
Informatika Bela Negara (SANTIKA), 1, 153–159.
Howard, A., Sandler, M., Chen, B., Wang, W., Chen, L. C., Tan, M., Chu, G.,
Vasudevan, V., Zhu, Y., Pang, R., Le, Q., & Adam, H. (2019). Searching for
mobileNetV3. Proceedings of the IEEE International Conference on
Computer Vision, 2019-Octob, 1314–1324.
https://doi.org/10.1109/ICCV.2019.00140
Huang, J., Rathod, V., Sun, C., Zhu, M., Korattikara, A., Fathi, A., Fischer, I.,
Wojna, Z., Song, Y., Guadarrama, S., & Murphy, K. (2017). Speed/accuracy
trade-offs for modern convolutional object detectors. Proceedings - 30th
IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2017,
2017-Janua, 3296–3305. https://doi.org/10.1109/CVPR.2017.351
Jiang, X., Gao, T., Zhu, Z., & Zhao, Y. (2021). Real-time face mask detection
method based on yolov3. Electronics (Switzerland), 10(7), 1–17.
https://doi.org/10.3390/electronics10070837
Kaidong Li, Ma, W., Sajid, U., Wu, Y., & Wang, G. (2019). Object Detection
with Convolutional Neural Networks. Computer Vision and Pattern
Recognition, 1. https://doi.org/https://doi.org/10.48550/arXiv.1912.01844
Kementrian Kesehatan. (2020). QnA : Pertanyaan dan Jawaban Terkait COVID-
19. https://infeksiemerging.kemkes.go.id/uncategorized/qna-pertanyaan-dan-
jawaban-terkait-covid-19
Keras. (2021a). About Keras. https://keras.io/about/
Keras. (2021b). Keras Applications. https://keras.io/api/applications/

UIN SYARIF HIDAYATULLAH JAKARTA


85

Lambacing, M. M., & Ferdiansyah, F. (2020). Rancang Bangun New Normal


Covid-19 Masker Detektor Dengan Notifikasi Telegram Berbasis Internet of
Things. Dinamik, 25(2), 77–84. https://doi.org/10.35315/dinamik.v25i2.8070
Loey, M., Manogaran, G., Taha, M. H. N., & Khalifa, N. E. M. (2021). Fighting
against COVID-19: A novel deep learning model based on YOLO-v2 with
ResNet-50 for medical face mask detection. Sustainable Cities and Society,
65(June 2020), 102600. https://doi.org/10.1016/j.scs.2020.102600
Militante, S. V., & Dionisio, N. V. (2020). Real-Time Facemask Recognition with
Alarm System using Deep Learning. 2020 11th IEEE Control and System
Graduate Research Colloquium, ICSGRC 2020 - Proceedings, August, 106–
110. https://doi.org/10.1109/ICSGRC49013.2020.9232610
Nagrath, P., Jain, R., Madan, A., Arora, R., Kataria, P., & Hemanth, J. (2021).
SSDMNV2: A real time DNN-based face mask detection system using single
shot multibox detector and MobileNetV2. Sustainable Cities and Society,
66(December 2020), 102692. https://doi.org/10.1016/j.scs.2020.102692
OpenCV. (2021). About. https://opencv.org/about/
Pressman, R. S., & Maxim, B. R. (2015). Software Engineering A
PRACTITIONER ’ S APPROACH (8th ed.). McGraw-Hill Education, 2 Penn
Plaza, New York, NY 10121.
Raspberry Pi. (n.d.-a). Camera Module.
https://www.raspberrypi.org/documentation/hardware/camera/
Raspberry Pi. (n.d.-b). GPIO.
https://www.raspberrypi.org/documentation/usage/gpio/
Raspberry Pi. (2021). Raspberry Pi 4 Tech Specs.
https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/
Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L.-C. (2019).
MobileNet v2. Computer Vision and Pattern Recognition, 4.
https://doi.org/10.1007/978-1-4842-6168-2_9
Thariq, A., & Yusliana, R. (2021). Sistem Deteksi Masker dengan Metode Haar
Cascade pada Era New Normal COVID-19 Mask Detection System using
Haar Cascade Method in New Normal Era of COVID-19. Jurnal Sistem Dan
Teknologi Informasi, 9(2), 241–244.
https://doi.org/10.26418/justin.v9i2.44309
Xiong, Y., Liu, H., Gupta, S., Akin, B., Bender, G., Wang, Y., Kindermans, P.-J.,
Tan, M., Singh, V., & Chen, B. (2020). MobileDets: Searching for Object
Detection Architectures for Mobile Accelerators. Computer Vision and
Pattern Recognition, 3. http://arxiv.org/abs/2004.14525

UIN SYARIF HIDAYATULLAH JAKARTA


86

LAMPIRAN
Script saat membuat pemodelan MobilenetV2 di Colab
Warna, menandakan beda cell

1. !pip install tensorflow==2.4.0


2.
3. import tensorflow as tf; print(tf.__version__)
4.
5. from google.colab import drive
6. drive.mount('/content/gdrive')
7.
8. import tensorflow as tf
9. from tensorflow.keras.optimizers import RMSprop
10. from tensorflow.keras.preprocessing.image import ImageDataGenerator
11. from sklearn.model_selection import train_test_split
12. import os
13. tf.test.gpu_device_name()
14.
15. train_dir = '/content/gdrive/My Drive/raw_masker'
16.
17. #Membuat augmentasi gambar
18. batch_size = 256
19. train_datagen = ImageDataGenerator(
20. rescale=1./255,
21. rotation_range=20,
22. zoom_range=0.2,
23. shear_range=0.2,
24. fill_mode = 'nearest',
25. validation_split=0.2) # set validation split
26.
27. #Mempersiapkan data latih dan validasi
28. train_generator = train_datagen.flow_from_directory(
29. train_dir,
30. target_size =(224,224),
31. batch_size = batch_size,
32. class_mode = 'categorical',
33. subset='training'
34. )
35. validation_generator = train_datagen.flow_from_directory(
36. train_dir,
37. target_size = (224,224),
38. batch_size = batch_size,
39. class_mode = 'categorical',
40. subset='validation'
41. )
42.
43. from tensorflow.keras.applications import MobileNetV2
44. from tensorflow.keras.layers import Input
45. base_model = MobileNetV2(include_top=False, input_tensor=Input(shape=(224,224,3)))
46. base_model.trainable = False
47. base_model.summary()
48.
49. model = tf.keras.models.Sequential([
50. base_model,
51. tf.keras.layers.Flatten(),
52. tf.keras.layers.Flatten(),
53. tf.keras.layers.Dense(512, activation='relu'),
54. tf.keras.layers.Dense(256, activation='relu'),
55. tf.keras.layers.Dense(3, activation='softmax')
56. ])

UIN SYARIF HIDAYATULLAH JAKARTA


87

57.
58. model.compile(optimizer=tf.optimizers.Adam(),
59. loss='categorical_crossentropy',
60. metrics = ['accuracy'])
61.
62. with tf.device('/device:GPU:0'):
63. history = history = model.fit(train_generator,
64. validation_data=validation_generator,
65. validation_steps= validation_generator.samples // batch_size,
66. steps_per_epoch = train_generator.samples // batch_size,
67. epochs=10,
68. verbose=2)
69.
70. import matplotlib.pyplot as plt
71. plt.plot(history.history['accuracy'])
72. plt.plot(history.history['val_accuracy'])
73. plt.title('Akurasi Model')
74. plt.ylabel('accuracy')
75. plt.xlabel('epoch')
76. plt.legend(['train', 'test'], loc='upper left')
77. plt.show()
78.
79. plt.plot(history.history['loss'])
80. plt.plot(history.history['val_loss'])
81. plt.title('Loss Model')
82. plt.ylabel('loss')
83. plt.xlabel('epoch')
84. plt.legend(['train', 'test'], loc='upper left')
85. plt.show()
86.
87. model.save("masker_polos1.h5")

Script pelatihan model mobiledets di colab


Warna, menandakan beda cell. Penulis menggunakan script yang bersumber dari
laman :
https://colab.research.google.com/github/google-
coral/tutorials/blob/master/retrain_ssdlite_mobiledet_qat_tf1.ipynb
Pada laman tersebut, membuat model mobiledets untuk mendeteksi anjing yang
akan digunakan pada edgeTPU, penulis menyesuaikan dengan kebutuhan penulis.

1. %tensorflow_version 1.x
2.
3. %cd models/research
4. ! protoc object_detection/protos/*.proto --python_out=.
5. ! cp object_detection/packages/tf1/setup.py .
6. ! python -m pip install .
7. ! python object_detection/builders/model_builder_test.py
8.
9. from google.colab import drive
10. drive.mount('/content/gdrive')
11.
12. test_record_fname = '/content/gdrive/MyDrive/semangat1/test.record'
13. train_record_fname = '/content/gdrive/MyDrive/semangat1/train.record'
14. label_map_pbtxt_fname = '/content/gdrive/MyDrive/semangat1/label_map.pbtxt'
15.

UIN SYARIF HIDAYATULLAH JAKARTA


88

16. !mkdir /content/pretrained_model


17. %cd /content/pretrained_model
18. ! wget
http://download.tensorflow.org/models/object_detection/ssdlite_mobiledet_cpu_320x320_coco_2020_0
5_19.tar.gz
19. ! tar xvf ssdlite_mobiledet_cpu_320x320_coco_2020_05_19.tar.gz
20.
21. NUM_STEPS = 13000
22. BATCH_SIZE = 32
23. NUM_CLASSES = 3
24.
25. import tensorflow as tf
26. from google.protobuf import text_format
27. from object_detection.protos import pipeline_pb2
28. import os
29.
30. pipeline = pipeline_pb2.TrainEvalPipelineConfig()
31. config_path = '/content/models/research/object_detection/samples/configs/ssdlite_mobiledet_cpu_320x3
20_coco_sync_4x4.config'
32. with tf.gfile.GFile(config_path, "r") as f:
33. proto_str = f.read()
34. text_format.Merge(proto_str, pipeline)
35.
36. pipeline.train_input_reader.tf_record_input_reader.input_path[:] = [train_record_fname]
37. pipeline.train_input_reader.label_map_path = label_map_pbtxt_fname
38. pipeline.eval_input_reader[0].tf_record_input_reader.input_path[:] = [test_record_fname]
39. pipeline.eval_input_reader[0].label_map_path = label_map_pbtxt_fname
40. pipeline.train_config.fine_tune_checkpoint = '/content/pretrained_model/ssdlite_mobiledet_cpu_320x32
0_coco_2020_05_19/fp32/model.ckpt'
41. pipeline.train_config.batch_size = BATCH_SIZE
42. pipeline.train_config.num_steps = NUM_STEPS
43. pipeline.model.ssd.num_classes = NUM_CLASSES
44.
45. config_text = text_format.MessageToString(pipeline)

46. with tf.gfile.Open(config_path, "wb") as f:


47. f.write(config_text)
48.
49. with tf.gfile.Open(config_path, "wb") as f:
50. f.write(config_text)
51.
52. ! cat /content/models/research/object_detection/samples/configs/ssdlite_mobiledet_cpu_320x320_coco_
sync_4x4.config
53.
54. from datetime import datetime
55. start = datetime.now()
56.
57. %cd /content/models/research/
58. ! python3 object_detection/model_main.py \
59. --logtostderr=true \
60. --model_dir=/content/train \
61. --
pipeline_config_path=/content/models/research/object_detection/samples/configs/ssdlite_mobiledet_cpu
_320x320_coco_sync_4x4.config
62.
63. end = datetime.now()
64. duration = end - start
65. seconds_in_hour = 60 * 60
66. hours, seconds = divmod(duration.seconds, seconds_in_hour)
67. minutes = int(seconds / 60)
68. print('TRAINING TIME:', str(hours) + ':' + str(minutes if minutes > 10 else '%02d' % minutes))
69.

UIN SYARIF HIDAYATULLAH JAKARTA


89

70. %load_ext tensorboard


71. %tensorboard --logdir /content/train
72.
73. %cd /content/models/research
74.
75. ! python3 object_detection/export_tflite_ssd_graph.py \
76. --
pipeline_config_path=/content/models/research/object_detection/samples/configs/ssdlite_mobiledet_cpu
_320x320_coco_sync_4x4.config \
77. --trained_checkpoint_prefix=/content/train/model.ckpt-$NUM_STEPS \
78. --output_directory=/content \
79. --add_postprocessing_op=true
80.
81. ! tflite_convert \
82. --output_file="/content/detect.tflite" \
83. --graph_def_file="/content/tflite_graph.pb" \
84. --input_arrays="normalized_input_image_tensor" \
85. --
output_arrays="TFLite_Detection_PostProcess,TFLite_Detection_PostProcess:1,TFLite_Detection_Post
Process:2,TFLite_Detection_PostProcess:3" \
86. --mean_values=128 \
87. --std_dev_values=128 \
88. --input_shapes=1,320,320,3 \
89. --allow_custom_ops

Program untuk two stage detection


Program ini bersumber dari laman :
https://www.tomshardware.com/how-to/raspberry-pi-face-mask-detector
yang disesuaikan dengan kebutuhan penulis, pada laman tersebut program hanya
untuk 2 klasifikasi, sementara penulis memiliki 3 klasifikasi

1. # import the necessary packages


2. import cv2
3. from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
4. from tensorflow.keras.preprocessing.image import img_to_array
5. from tensorflow.keras.models import load_model
6. from imutils.video import VideoStream
7. import numpy as np
8. import argparse
9. import imutils
10. import time
11.
12. import os
13.
14. def detect_and_predict_mask(frame, faceNet, maskNet):
15. # grab the dimensions of the frame and then construct a blob
16. # from it
17. (h, w) = frame.shape[:2]
18. blob = cv2.dnn.blobFromImage(frame, 1.0, (300, 300),
19. (104.0, 177.0, 123.0))
20.
21. # pass the blob through the network and obtain the face detections
22. faceNet.setInput(blob)
23. detections = faceNet.forward()
24.
25. # initialize our list of faces, their corresponding locations,
26. # and the list of predictions from our face mask network

UIN SYARIF HIDAYATULLAH JAKARTA


90

27. faces = []
28. locs = []
29. preds = []
30.
31. # loop over the detections
32. for i in range(0, detections.shape[2]):
33. # extract the confidence (i.e., probability) associated with
34. # the detection
35. confidence = detections[0, 0, i, 2]
36.
37. # filter out weak detections by ensuring the confidence is
38. # greater than the minimum confidence
39. if confidence > MIN_CONF:
40. # compute the (x, y)-coordinates of the bounding box for
41. # the object
42. box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
43. (startX, startY, endX, endY) = box.astype("int")
44.
45. # ensure the bounding boxes fall within the dimensions of
46. # the frame
47. (startX, startY) = (max(0, startX), max(0, startY))
48. (endX, endY) = (min(w - 1, endX), min(h - 1, endY))
49.
50. # extract the face ROI, convert it from BGR to RGB channel
51. # ordering, resize it to 224x224, and preprocess it
52. face = frame[startY:endY, startX:endX]
53. face = cv2.cvtColor(face, cv2.COLOR_BGR2RGB)
54. face = cv2.resize(face, (224, 224))
55. face = img_to_array(face)
56. face = preprocess_input(face)
57.
58. # add the face and bounding boxes to their respective
59. # lists
60. faces.append(face)
61. locs.append((startX, startY, endX, endY))
62.
63. # only make a predictions if at least one face was detected
64. if len(faces) > 0:
65. # for faster inference we'll make batch predictions on *all*
66. # faces at the same time rather than one-by-one predictions
67. # in the above `for` loop
68. faces = np.array(faces, dtype="float32")
69. preds = maskNet.predict(faces, batch_size=32)
70. return (locs, preds)
71.
72. # return a 2-tuple of the face locations and their corresponding
73. # locations
74. # construct the argument parser and parse the arguments
75. MODEL = "model.h5"
76. MIN_CONF = 0.5
77. # load our serialized face detector model from disk
78. print("[INFO] loading face detector model...")
79. faceNet = cv2.dnn.readNet("face_detector/deploy.prototxt", "face_detector/res10_300x300_ssd_iter
_140000.caffemodel")
80.
81. # load the face mask detector model from disk
82. print("[INFO] loading face mask detector model...")
83. maskNet = load_model(MODEL)
84.
85. # initialize the video stream and allow the camera sensor to warm up
86. print("[INFO] starting video stream...")
87. #vs = VideoStream(src=0).start()

UIN SYARIF HIDAYATULLAH JAKARTA


91

88. vs = VideoStream(resolution=(1980,1080),framerate=30).start()
89. time.sleep(2.0)
90. frame_rate_calc = 1
91. freq = cv2.getTickFrequency()
92. counter = 0
93. min_fps = 0
94. max_fps = 0
95. # loop over the frames from the video stream
96. while True:
97. # grab the frame from the threaded video stream and resize it
98. # to have a maximum width of 400 pixels
99. t1 = cv2.getTickCount()
100. frame = vs.read()
101. frame = imutils.resize(frame, width=1080)
102. # detect faces in the frame and determine if they are wearing a
103. # face mask or not
104. (locs, preds) = detect_and_predict_mask(frame, faceNet, maskNet)
105. # Calculate framerate
106.
107. # loop over the detected face locations and their corresponding
108. # locations
109. for (box, pred) in zip(locs, preds):
110. # unpack the bounding box and predictions
111. counter = counter + 1
112. (startX, startY, endX, endY) = box
113. ( mask_worn_incorrectly, with_mask,without_mask ) = pred
114.
115. # determine the class label and color we'll use to draw
116. # the bounding box and text
117. if with_mask > without_mask and with_mask > mask_worn_incorrectly:
118. label = "benar"
119. color = (0, 255, 0)
120. else:
121. if without_mask > mask_worn_incorrectly:
122. label = "tanpa masker"
123. color = (0,0,255)
124. elif without_mask < mask_worn_incorrectly:
125. label = "salah"
126. color = (255,0,0)
127.
128.
129. # include the probability in the label
130. label = "{}: {:.2f}%".format(label, max(mask_worn_incorrectly, with_mask, without_mask) *
100)
131.
132. # display the label and bounding box rectangle on the output
133. # frame
134. cv2.putText(frame, label, (startX-50, startY - 10),
135. cv2.FONT_HERSHEY_SIMPLEX, 0.7, color, 2)
136. cv2.rectangle(frame, (startX, startY), (endX, endY), color, 2)
137. if counter > 20:
138. if frame_rate_calc > max_fps:
139. max_fps = frame_rate_calc
140. if frame_rate_calc < min_fps or min_fps == 0:
141. min_fps = frame_rate_calc
142.
143. cv2.putText(frame,'MAX FPS: {0:.2f}'.format(max_fps),(30,85),cv2.FONT_HERSHEY_SIMPLE
X,1,(255,255,0),2,cv2.LINE_AA)
144. cv2.putText(frame,'MIN FPS: {0:.2f}'.format(min_fps),(30,115),cv2.FONT_HERSHEY_SIMPLE
X,1,(255,255,0),2,cv2.LINE_AA)
145. cv2.putText(frame,'FPS: {0:.2f}'.format(frame_rate_calc),(30,50),cv2.FONT_HERSHEY_SIMPLE
X,1,(255,255,0),2,cv2.LINE_AA)

UIN SYARIF HIDAYATULLAH JAKARTA


92

146. # show the output frame


147. cv2.imshow("Face Mask Detector", frame)
148. key = cv2.waitKey(1) & 0xFF
149. t2 = cv2.getTickCount()
150. time1 = (t2-t1)/freq
151. frame_rate_calc= 1/time1
152. # if the `q` key was pressed, break from the loop
153. if key == ord("q"):
154. break
155.
156. # do a bit of cleanup
157. cv2.destroyAllWindows()
158. vs.stop()

Program untuk onestage detection


Program untuk onestage detection terbagi menjadi 2 file, yaitu app.py dan
stream.py. Program ini bersumber dari laman :
https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-
Android-and-Raspberry-Pi/blob/master/Raspberry_Pi_Guide.md
yang disesuaikan dengan kebutuhan penulis. Pada laman tersebut program dibuat
untuk mendeteksi benda apa saja menggunakan model ssd-mobilenetv2 yang sudah
dilatih dengan dataset COCO.

stream.py

1. import cv2
2. from threading import Thread
3. # Define VideoStream class to handle streaming of video from webcam in separate processing threa
d
4. # Source - Adrian Rosebrock, PyImageSearch: https://www.pyimagesearch.com/2015/12/28/increas
ing-raspberry-pi-fps-with-python-and-opencv/
5. class VideoStream:
6. """Camera object that controls video streaming from the Picamera"""
7. def __init__(self,resolution=(1280,720),framerate=30):
8. # Initialize the PiCamera and the camera image stream
9. self.stream = cv2.VideoCapture(0)
10. ret = self.stream.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
11. ret = self.stream.set(3,resolution[0])
12. ret = self.stream.set(4,resolution[1])
13.
14. # Read first frame from the stream
15. (self.grabbed, self.frame) = self.stream.read()
16.
17. # Variable to control when the camera is stopped
18. self.stopped = False
19.
20. def start(self):
21. # Start the thread that reads frames from the video stream
22. Thread(target=self.update,args=()).start()
23. return self
24.
25. def update(self):
26. # Keep looping indefinitely until the thread is stopped
27. while True:

UIN SYARIF HIDAYATULLAH JAKARTA


93

28. # If the camera is stopped, stop the thread


29. if self.stopped:
30. # Close camera resources
31. self.stream.release()
32. return
33.
34. # Otherwise, grab the next frame from the stream
35. (self.grabbed, self.frame) = self.stream.read()
36.
37. def read(self):
38. # Return the most recent frame
39. return self.frame
40.
41. def stop(self):
42. # Indicate that the camera and thread should be stopped
43. self.stopped = True

app.py

1. import cv2
2. import os
3. import argparse
4. import numpy as np
5. import sys
6. import time
7. from threading import Thread
8. import importlib.util
9. from stream import VideoStream
10. from datetime import datetime
11.
12. MODEL_NAME = 'fix_polos'
13. min_fps = 0
14. max_fps = 0
15. GRAPH_NAME = 'detect.tflite'
16. LABELMAP_NAME = 'labelmap.txt'
17. min_conf_threshold = float(0.55)
18. imW, imH = 1280, 720
19.
20. # Import TensorFlow libraries
21. # If tflite_runtime is installed, import interpreter from tflite_runtime, else import from regular tenso
rflow
22. # If using Coral Edge TPU, import the load_delegate library
23. pkg = importlib.util.find_spec('tflite_runtime')
24. if pkg:
25. from tflite_runtime.interpreter import Interpreter
26. else:
27. from tensorflow.lite.python.interpreter import Interpreter
28. # Get path to current working directory
29. CWD_PATH = os.getcwd()
30.
31. # Path to .tflite file, which contains the model that is used for object detection
32. PATH_TO_CKPT = os.path.join(CWD_PATH,MODEL_NAME,GRAPH_NAME)
33.
34. # Path to label map file
35. PATH_TO_LABELS = os.path.join(CWD_PATH,MODEL_NAME,LABELMAP_NAME)
36.
37. # Load the label map
38. with open(PATH_TO_LABELS, 'r') as f:
39. labels = [line.strip() for line in f.readlines()]
40.
41. # Load the Tensorflow Lite model.

UIN SYARIF HIDAYATULLAH JAKARTA


94

42. interpreter = Interpreter(model_path=PATH_TO_CKPT)


43.
44. interpreter.allocate_tensors()
45.
46. # Get model details
47. input_details = interpreter.get_input_details()
48. output_details = interpreter.get_output_details()
49. height = input_details[0]['shape'][1]
50. width = input_details[0]['shape'][2]
51.
52. floating_model = (input_details[0]['dtype'] == np.float32)
53. input_mean = 127.5
54. input_std = 127.5
55.
56. # Initialize frame rate calculation
57. frame_rate_calc = 1
58. freq = cv2.getTickFrequency()
59.
60. # Initialize video stream
61. videostream = VideoStream(resolution=(imW,imH),framerate=30).start()
62. time.sleep(1)
63. counter = 0
64. try:
65. #for frame1 in camera.capture_continuous(rawCapture, format="bgr",use_video_port=True):
66. while True:
67. # Start timer (for calculating frame rate)
68. counter = counter + 1
69. t1 = cv2.getTickCount()
70.
71. # Grab frame from video stream
72. frame1 = videostream.read()
73.
74. # Acquire frame and resize to expected shape [1xHxWx3]
75. frame = frame1.copy()
76. frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
77. frame_resized = cv2.resize(frame_rgb, (width, height))
78. input_data = np.expand_dims(frame_resized, axis=0)
79.
80. # Normalize pixel values if using a floating model (i.e. if model is non-quantized)
81. if floating_model:
82. input_data = (np.float32(input_data) - input_mean) / input_std
83.
84. # Perform the actual detection by running the model with the image as input
85. interpreter.set_tensor(input_details[0]['index'],input_data)
86. interpreter.invoke()
87.
88. # Retrieve detection results
89. boxes = interpreter.get_tensor(output_details[0]['index'])[0] # Bounding box coordinates of
detected objects
90. classes = interpreter.get_tensor(output_details[1]['index'])[0] # Class index of detected objec
ts
91. scores = interpreter.get_tensor(output_details[2]['index'])[0] # Confidence of detected object
s
92. #num = interpreter.get_tensor(output_details[3]['index'])[0] # Total number of detected obj
ects (inaccurate and not needed)
93.
94. # Loop over all detections and draw detection box if confidence is above minimum threshol
d
95. for i in range(len(scores)):
96. if ((scores[i] > min_conf_threshold) and (scores[i] <= 1.0)):
97.
98. # Get bounding box coordinates and draw box

UIN SYARIF HIDAYATULLAH JAKARTA


95

99. # Interpreter can return coordinates that are outside of image dimensions, need to force
them to be within image using max() and min()
100. ymin = int(max(1,(boxes[i][0] * imH)))
101. xmin = int(max(1,(boxes[i][1] * imW)))
102. ymax = int(min(imH,(boxes[i][2] * imH)))
103. xmax = int(min(imW,(boxes[i][3] * imW)))
104.
105. # Draw label
106. object_name = labels[int(classes[i])] # Look up object name from "labels" array using c
lass index
107. if object_name == "with_mask" :
108. klasifikasi = "benar"
109. color = (0, 255, 0)
110. elif object_name == "without_mask" :
111. klasifikasi = "tanpa masker"
112. color = (0,0,255)
113. elif object_name == "incorrect_mask":
114. klasifikasi = "salah"
115. color = (255,0,0)
116.
117. label ='%s: %d%%' % (klasifikasi, int(scores[i]*100))
118. labelSize, baseLine = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.7, 2
) # Get font size
119. label_ymin = max(ymin, labelSize[1] + 10) # Make sure not to draw label too close to t
op of window
120. cv2.rectangle(frame, (xmin,ymin), (xmax,ymax), color, 2)
121. #cv2.rectangle(frame, (xmin, label_ymin-labelSize[1]-
10), (xmin+labelSize[0], label_ymin+baseLine-
10), color, cv2.FILLED) # Draw white box to put label text in
122. cv2.putText(frame, label, (xmin, label_ymin-
7), cv2.FONT_HERSHEY_SIMPLEX, 0.7, color , 2) # Draw label text
123.
124. #label = '%s'% (object_name) # Example: 'person: 72%'
125. #cv2.rectangle(frame, (startX, startY), (endX, endY), color, 2)
126.
127.
128. cv2.putText(frame,'MAX FPS: {0:.2f}'.format(max_fps),(30,85),cv2.FONT_HERSHEY_SI
MPLEX,1,(255,255,0),2,cv2.LINE_AA)
129. cv2.putText(frame,'MIN FPS: {0:.2f}'.format(min_fps),(30,115),cv2.FONT_HERSHEY_SI
MPLEX,1,(255,255,0),2,cv2.LINE_AA)
130. # Draw framerate in corner of frame
131. cv2.putText(frame,'FPS: {0:.2f}'.format(frame_rate_calc),(30,50),cv2.FONT_HERSHEY_S
IMPLEX,1,(255,255,0),2,cv2.LINE_AA)
132.
133. # All the results have been drawn on the frame, so it's time to display it.
134. cv2.imshow('Object detector', frame)
135.
136. # Calculate framerate
137. t2 = cv2.getTickCount()
138. time1 = (t2-t1)/freq
139. frame_rate_calc= 1/time1
140.
141. if counter > 20:
142. if frame_rate_calc > max_fps:
143. max_fps = frame_rate_calc
144. if frame_rate_calc < min_fps or min_fps == 0:
145. min_fps = frame_rate_calc
146. # Press 'q' to quit
147. if cv2.waitKey(1) == ord('q'):
148. break
149. except KeyboardInterrupt:
150. pass

UIN SYARIF HIDAYATULLAH JAKARTA


96

151. finally:
152. videostream.stop()
153. cv2.destroyAllWindows()
154.

UIN SYARIF HIDAYATULLAH JAKARTA

Anda mungkin juga menyukai