AI - Deep Learning : Mask Detection
Jumat, 24 Oktober 2025 | oleh Selamat Muliyadi Harjono | Artikel
Pengantar
Pandemi COVID-19 telah menegaskan pentingnya kepatuhan terhadap protokol kesehatan, termasuk penggunaan masker. Dalam konteks ini, sistem otomatis untuk mendeteksi apakah seseorang memakai masker atau tidak menjadi sangat relevan—baik untuk pengawasan (automated monitoring) maupun edukasi. Sistem yang di-hosting di alamat di atas menggunakan teknologi AI untuk mendeteksi masker pada wajah pengguna. Artikel ini akan menguraikan secara mendetail bagaimana implementasi semacam ini bisa dilakukan—mulai dari data, pemodelan, hingga pengujian.
Hasil Implementasi : https://tanmarajo.my.id/mask-detection
Dataset : https://www.kaggle.com/datasets/andrewmvd/face-mask-detection
Kerangka Teoretis
Deteksi Objek dan Wajah
Deteksi masker pada wajah dapat dilihat sebagai dua sub-masalah: deteksi wajah (face detection) dan klasifikasi (mask vs no-mask). Untuk deteksi objek obyek seperti wajah sering digunakan algoritma seperti YOLOv5 (You Only Look Once version 5) yang mampu mendeteksi objek dalam satu pass (single shot detection). Sistem yang Anda lihat di situs mengklaim “Powered by YOLOv5”.
Setelah lokasi wajah terdeteksi, gambar wajah tersebut bisa di-crop dan kemudian diberikan ke model klasifikasi (misalnya CNN) untuk memutuskan “with mask” vs “without mask”.
Pembelajaran Mesin & Deep Learning
Model deteksi dan klasifikasi menggunakan pendekatan deep learning. Arsitektur yang umum termasuk Convolutional Neural Networks (CNN) untuk ekstraksi fitur dari citra. Pelatihan model memerlukan dataset yang cukup besar dan beragam untuk menangani variabilitas: sudut wajah, jenis masker, pencahayaan, warna kulit, ukuran wajah, occlusion, dll.
Evaluasi Model
Metode evaluasi meliputi:
- Akurasi: proporsi prediksi yang benar.
- Precision / Recall / F1-score: terutama penting jika data tidak seimbang (misalnya lebih banyak “with mask” dibanding “without mask”).
- Confusion Matrix: untuk melihat jumlah True Positive, False Positive, True Negative, False Negative.
- ROC Curve / AUC: untuk melihat trade-off threshold, terutama bila muncul confidence score (lihat bagian threshold di situs: “Confidence Threshold: 0.5”).
Threshold Sensitivity
Sistem di situs menyediakan Confidence Threshold: minimal tingkat kepercayaan yang diperlukan agar model menganggap deteksi wajah/masker valid. Demikian juga ada pilihan Sensitivity (Low / Medium / High) yang menandakan tingkat kepekaan deteksi yang diizinkan. Ini penting untuk penyesuaian di lingkungan nyata yang mungkin memiliki banyak noise atau kondisi pencahayaan buruk.
Persiapan Data
Pengumpulan Dataset
Pengguna sistem seperti ini harus mengumpulkan dataset citra yang menampilkan wajah-manusia dalam dua kelas: “with mask” dan “without mask”. Dataset sebaiknya mencakup:
- Variasi jenis masker (bedah, kain, N95, dll).
- Variasi posisi wajah (frontal, miring, sebagian tertutup).
- Variasi pencahayaan, latar belakang, resolusi.
- Banyak orang dengan latar-belakang berbeda (multietnis) agar model tidak bias terhadap satu jenis wajah saja.
Labeling & Anotasi
Setelah citra dikumpulkan, perlu dilakukan anotasi. Untuk deteksi objek (untuk YOLOv5) maka bounding-box perlu ditentukan di wajah dan (jika model langsung dari wajah) area masker. Label yang umum: “mask”, “no_mask”. Format anotasi bisa dalam YOLO format: satu file teks per citra, baris: <class_index> <x_center> <y_center> <width> <height> (normalkan ke [0,1]). Pastikan semua kelas memiliki jumlah data yang cukup seimbang atau lakukan oversampling/undersampling bila perlu.
Pratraining & Split Data
Dataset dibagi menjadi subset: train, validation, dan test. Misalnya: 70% train, 20% validation, 10% test. Validation digunakan selama pelatihan untuk memilih hyperparameter, test digunakan hanya di akhir untuk evaluasi objektif. Pastikan distribusi kelas tetap seragam di tiap subset.
Augmentasi Data
Karena kondisi real sering bervariasi, penting menggunakan augmentasi: rotasi, flipping, perubahan brightness/contrast, gaussian noise, skala, dan crop random. Ini membantu model agar lebih robust terhadap variasi.
Pelatihan Model
Memilih Arsitektur
Untuk deteksi wajah + masker, pendekatan umum:
- Gunakan YOLOv5 (pre-trained pada COCO atau dataset lain) sebagai detektor objek. Deteksi wajah atau langsung masker. Keunggulan YOLOv5: cepat, real-time, akurasi baik.
- Setelah deteksi bounding-box pada wajah, lakukan klasifikasi pada crop wajah — atau gunakan satu model terintegrasi yang mendeteksi dua kelas secara langsung (“mask” vs “no_mask”).
Setup Training
- Framework: PyTorch + YOLOv5 (GitHub).
- Pre-trained weight: mulai dari weight yang sudah dilatih (transfer learning) untuk mempercepat dan mencegah over-fitting.
- Hyperparameter penting:
- Learning rate (contoh: 0.001, 0.0001)
- Batch size (tergantung GPU; misalnya 16/32)
- Epochs (misalnya 50–100)
- Input image size (misalnya 640×640 untuk YOLOv5)
- Loss functions: untuk deteksi (bounding box + classification) YOLOv5 sudah menggabungkan.
- Monitoring: Loss train & validation, metric (mAP – mean Average Precision) untuk deteksi, Accuracy/Recall/F1 untuk klasifikasi.
Training & Validasi
- Jalankan training dan pantau progress terhadap validation set.
- Jika validation loss mulai stagnan atau meningkat, lakukan early stopping atau penurunan learning rate (learning rate scheduler).
- Setelah selesai, pilih epoch terbaik berdasarkan validation metric.
Fine-tuning & Optimasi
- Bisa menggunakan learning rate decay, data augmentasi lebih agresif, freeze/unfreeze layers pre-trained.
- Untuk mengurangi false positives/negatives, pertimbangkan thresholding confidence dan Non-Maximum Suppression (NMS) pada deteksi objek.
Pengujian dan Prediksi
Pengujian Akhir (Test Set)
- Jalankan model pada test set yang sebelumnya tidak pernah dilihat. Hitung confusion matrix dan metric: accuracy, precision, recall, F1-score.
- Untuk deteksi objek, hitung mAP (misalnya IoU threshold 0.5).
- Analisis error: misalnya wajah miring, masker sebagian tertutup, pencahayaan rendah—apa penyebab kesalahan?
Implementasi Prediksi – Sistem Web
Pada sistem di situs Anda:
- Pengguna upload gambar (JPG, PNG, JPEG, maksimal 5 MB) ke antarmuka yang tersedia.
- Terdapat parameter: Confidence Threshold (default 0.5) dan Sensitivity (Low / Medium / High) yang memungkinkan pengguna memilih tingkat kepekaan deteksi.
- Sistem melakukan proses:
- Deteksi objek (wajah) + klasifikasi masker vs tanpa masker.
- Output: jumlah wajah terdeteksi, jumlah “with mask”, jumlah “without mask”.
- Menampilkan hasil deteksi di antarmuka: misalnya bounding box, label, confidence score. (Meski di situs mungkin belum menampilkan gambar hasil deteksi secara eksplisit, antarmuka menampilkan angka hasil).
- Parameter Threshold & Sensitivity memungkinkan adaptasi ke kondisi penggunaan nyata:
- Threshold menolak prediksi yang confidence-nya di bawah ambang batas.
- Sensitivity mungkin menyesuaikan parameter seperti NMS, minimal size wajah, atau weight decay untuk deteksi lebih sensitif.
Interpretasi Hasil
- Jika pengguna memilih «High Sensitivity», maka sistem mungkin mendeteksi lebih banyak wajah dan masker (lebih agresif), tetapi berisiko false positives (mendeteksi masker padahal tidak ada).
- Jika «Low Sensitivity», sistem mungkin lebih konservatif—hanya mendeteksi bila cukup yakin, mengurangi false positives tetapi bisa kena false negatives (tidak mendeteksi masker yang sebenarnya ada).
- Confidence Threshold yang lebih tinggi akan meningkatkan precision (prediksi yang muncul lebih biasanya benar), tetapi menurunkan recall (beberapa masker mungkin terlewat).
Diskusi Akademis
Tantangan
- Variasi lingkungan nyata: pencahayaan berbeda, sinar matahari, bayangan, masker sebagian saja, wajah miring, objek terhalang. Model yang dilatih di kondisi ideal bisa gagal di kondisi nyata.
- Bias dataset: jika data latih hanya dari satu populasi etnis atau satu jenis masker, model bisa kurang perform di populasi lain.
- Deteksi real-time vs batch: Untuk implementasi lapangan (misalnya kamera CCTV), kecepatan dan latensi penting. Model ringan dan optimasi diperlukan.
- Privasi: Sistem deteksi wajah memunculkan isu privasi—implementasi harus mempertimbangkan regulasi data pribadi dan etika.
- Eksternalitas penggunaan: Prediksi hanya alat bantu—tidak menggantikan kebijakan manual atau pengawasan manusia.
Implementasi di Ruang Kelas
- Mahasiswa dapat menjalankan eksperimen: kumpulkan dataset kecil (misalnya 200-300 gambar “mask” dan “no_mask”), latih model sederhana (misalnya MobileNet + klasifikasi) lalu bandingkan performa dengan model YOLOv5.
- Diskusikan bagaimana threshold dan sensitivity mempengaruhi precision/recall.
- Uji di kondisi berbeda (ruangan terang, ruangan gelap) lalu analisis kesalahan.
- Bandingkan hasil teoretis vs hasil nyata di sistem web.
Saran untuk Pengembangan Selanjutnya
- Implementasi video streaming real-time untuk mask detection (bukan hanya gambar statis).
- Tambahkan deteksi jenis masker (bedah vs kain vs N95) sebagai klasifikasi multi-kelas.
- Integrasi dengan sistem pengumuman atau alarm bila ditemukan banyak tanpa masker.
- Penggunaan edge computing (misalnya Raspberry Pi + kamera) untuk deployment lapangan.
- Eksperimen dengan AI modern seperti Transformers untuk visi komputer (misalnya Vision Transformer) atau segmentasi wajah plus masker.
Kesimpulan
Implementasi sistem deteksi masker berbasis AI merupakan aplikasi nyata dari deteksi objek dan klasifikasi citra. Dengan langkah-langkah yang sistematis — dari pengumpulan dan anotasi data, pelatihan model, evaluasi, hingga implementasi prediksi di antarmuka web — mahasiswa dan praktisi dapat memahami seluruh siklus pengembangan AI. Situs yang Anda sediakan (dengan YOLOv5) menjadi contoh konkret yang bisa dipelajari dan dikembangkan lebih lanjut.
Sebagai bahan pembelajaran di kelas, sistem ini bisa dijadikan proyek mini: mahasiswa mencoba membangun, menguji, dan mengkritisi performa sistem deteksi masker, kemudian merekomendasikan peningkatan berdasarkan analisis mereka.