Derajat Salim Wibowo
Latar Belakang Portofolio: Pembuatan Sistem Pendeteksian Wajah Menggunakan YOLOv10
Pendeteksian wajah adalah salah satu cabang dari visi komputer yang memiliki banyak aplikasi praktis, seperti sistem keamanan, pengenalan wajah untuk autentikasi, serta analisis perilaku. Di era modern ini, kebutuhan akan teknologi pendeteksian wajah yang cepat, akurat, dan efisien semakin meningkat seiring dengan perkembangan teknologi berbasis kecerdasan buatan (artificial intelligence).
Salah satu metode yang telah banyak digunakan dan terbukti unggul dalam tugas-tugas deteksi objek adalah algoritma YOLO (You Only Look Once). YOLO adalah model deep learning berbasis convolutional neural networks (CNN) yang dirancang untuk mendeteksi objek dalam satu tahap proses, sehingga memungkinkan pendeteksian yang cepat tanpa mengorbankan akurasi. Dengan pembaruan algoritma yang terus berlanjut, YOLOv10 memperkenalkan sejumlah peningkatan, seperti optimalisasi arsitektur model, penambahan mekanisme atensi (attention mechanisms), dan pengelolaan skala fitur yang lebih baik. Hal ini menjadikannya salah satu pendekatan terbaik dalam aplikasi pendeteksian wajah.
Pada portofolio ini, sistem pendeteksian wajah dikembangkan dengan menggunakan YOLOv10 untuk memenuhi kebutuhan sistem yang responsif dan andal dalam berbagai situasi, termasuk pencahayaan yang bervariasi, posisi wajah yang beragam, dan keberadaan banyak individu dalam satu frame. Pengembangan proyek ini dilakukan melalui beberapa tahap, antara lain:
Hasil dari proyek ini menunjukkan bahwa YOLOv10 mampu mendeteksi wajah dengan akurasi yang tinggi dalam berbagai kondisi. Implementasi sistem ini diharapkan dapat diterapkan di berbagai industri, seperti keamanan berbasis kamera CCTV, aplikasi berbasis augmented reality (AR), hingga sistem analitik pemasaran.
Portofolio ini mencerminkan kemampuan untuk mengaplikasikan teknologi mutakhir dalam menyelesaikan masalah dunia nyata serta menunjukkan penguasaan dalam pengembangan model deep learning yang efisien dan adaptif.
Keterangan Data
Dataset ini di ambil dari Face-Detection-Dataset yang terdiri atas 16.700 gambar dengan dua file anotasi dalam format berbeda. File pertama, Label, berisi anotasi dengan skala asli (koordinat piksel), sedangkan file kedua, yolo_format_labels, berisi anotasi dalam format YOLO (koordinat normalisasi).
Dataset ini diperoleh melalui scraping menggunakan OIDv4 toolkit dari Google Open Images dan difokuskan secara eksklusif untuk pendeteksian wajah. Gambar dalam dataset memiliki kualitas tinggi dan telah dianotasi secara teliti dengan bounding box yang mencakup area wajah.
File konfigurasi dataset dibuat dalam format YAML untuk mendefinisikan parameter yang digunakan selama proses pelatihan model YOLO. File ini mencakup:
File YAML dihasilkan melalui kode Python menggunakan modul yaml dan disimpan di direktori /content/datasets/face-detection-dataset/dataset.yaml. File ini digunakan untuk mengatur struktur dataset agar kompatibel dengan pipeline pelatihan YOLO.
Saya memilih model YOLOv10-S untuk proyek ini berdasarkan evaluasi kinerja dan efisiensi dibandingkan model lain yang tersedia. Model YOLOv10-S menawarkan keseimbangan optimal antara performa dan kecepatan, sebagaimana ditunjukkan oleh metrik berikut:
Dengan kombinasi efisiensi komputasi, kecepatan inferensi, dan akurasi yang tinggi, YOLOv10-S adalah pilihan terbaik untuk memenuhi kebutuhan proyek pendeteksian wajah ini, terutama dalam konteks aplikasi real-time dan perangkat dengan sumber daya terbatas.
Perintah tersebut melatih model YOLOv10-S untuk deteksi wajah menggunakan dataset yang dikonfigurasi dalam dataset.yaml. Pelatihan dilakukan selama 10 epoch dengan ukuran batch 32. Model memulai dari bobot awal (yolov10s.pt) dan menghasilkan visualisasi metrik pelatihan untuk evaluasi kinerja.
Log di atas merangkum hasil pelatihan model YOLOv10-S selama 10 epoch. Berikut penjelasan metrik utama:
Metric Pelatihan per Epoch
Evaluasi Validasi per Epoch
Hasil Akhir
Durasi
Pelatihan selesai dalam 1.304 jam dengan waktu rata-rata per epoch sekitar 6 menit 45 detik. Model menunjukkan peningkatan konsisten pada metrik presisi dan recall sepanjang pelatihan.
Kode di atas bertujuan untuk mendeteksi wajah secara real-time menggunakan model YOLOv10 yang telah dilatih untuk deteksi wajah. Pertama, kode memuat model YOLOv10 dan menginisialisasi kamera menggunakan OpenCV. Resolusi kamera diset ke 1280x720 piksel dengan frame rate 30 FPS. Dalam loop utama, setiap frame dari kamera dibaca dan diproses menggunakan model YOLOv10 untuk mendeteksi wajah. Bounding box yang mengelilingi wajah yang terdeteksi digambar pada setiap frame, bersama dengan informasi mengenai posisi dan ukuran bounding box tersebut, serta titik tengahnya.
Kode ini juga menghitung dan menampilkan beberapa metrik kinerja, seperti penggunaan CPU dan GPU (menggunakan pustaka psutil dan GPUtil), serta frame rate per detik (FPS). Semua informasi ini ditampilkan pada setiap frame di layar, bersama dengan tampilan hasil deteksi wajah. Pengguna dapat menghentikan proses deteksi wajah dengan menekan tombol 'q'. Setelah selesai, kamera dan jendela tampilan akan dibersihkan. Kode ini dapat digunakan untuk aplikasi pelacakan wajah dalam berbagai penggunaan, seperti pengawasan atau interaksi berbasis wajah secara real-time.