Pendeteksian Wajah Menggunakan YOLO v10

Derajat Salim Wibowo

Sosial Media


0 orang menyukai ini
Suka

Summary

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:

  1. Pengumpulan Data dan Pra-pemrosesan
    Dataset yang digunakan mencakup gambar wajah dari berbagai latar belakang dan kondisi pencahayaan. Proses pra-pemrosesan dilakukan untuk memastikan data yang digunakan berkualitas tinggi, meliputi anotasi wajah dan normalisasi data.
  2. Pelatihan Model
    Model YOLOv10 dilatih menggunakan dataset yang telah diproses. Proses pelatihan melibatkan optimalisasi hyperparameter untuk meningkatkan akurasi deteksi wajah dan mengurangi jumlah kesalahan.
  3. Evaluasi dan Validasi
    Model diuji menggunakan data uji yang tidak terlihat selama pelatihan untuk mengevaluasi kinerja berdasarkan metrik seperti mean average precision (mAP), recall, dan precision.
  4. Implementasi Sistem
    Setelah model terlatih dan tervalidasi, sistem diintegrasikan ke dalam aplikasi berbasis real-time menggunakan framework seperti TensorFlow atau PyTorch.

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.

Description

 

1. Pengumpulan Data dan Pra-pemrosesan

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:

  • nc: Jumlah kelas dalam dataset, yaitu 1 untuk pendeteksian wajah.
  • names: Nama kelas, yang dalam kasus ini adalah "face".
  • train: Path ke folder data pelatihan.
  • val: Path ke folder data validasi.

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.

 

2. Pelatihan Model

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:

  • Jumlah Parameter: 7.2M, lebih kecil dibandingkan beberapa model lain seperti Gold-YOLO-S (21.5M) dan YOLOv6-3.0-S (18.5M), sehingga lebih ringan untuk digunakan.
  • FLOPs (Floating Point Operations): 21.6G, menunjukkan efisiensi komputasi yang lebih baik dibandingkan YOLOv8-S (28.6G) atau Gold-YOLO-S (46.0G).
  • mAPval 50-95: 46.8, yang merupakan skor tertinggi di antara semua model dalam tabel, menunjukkan akurasi deteksi yang superior.
  • Latency: 2.49 ms, menunjukkan waktu inferensi yang cepat, lebih rendah dibandingkan Gold-YOLO-S (3.82 ms) atau YOLOv6-3.0-S (3.42 ms).

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.

 

3. Evaluasi dan Validasi

Log di atas merangkum hasil pelatihan model YOLOv10-S selama 10 epoch. Berikut penjelasan metrik utama:

Metric Pelatihan per Epoch

  • GPU_mem: Penggunaan memori GPU selama pelatihan.
  • box_om, cls_om, dfl_om: Loss untuk prediksi bounding box (box), klasifikasi (cls), dan distribution focal loss (dfl) pada data pelatihan.
  • box_oo, cls_oo, dfl_oo: Loss yang sama tetapi diukur pada data validasi.
  • Instances: Jumlah objek yang terdeteksi pada batch.
  • Size: Ukuran gambar masukan (640x640).

Evaluasi Validasi per Epoch

  • P (Precision): Ketepatan model dalam mengidentifikasi wajah yang benar.
  • R (Recall): Kemampuan model mendeteksi seluruh wajah yang ada di dataset.
  • mAP50: Rata-rata presisi dengan ambang IOU ≥ 50%.
  • mAP50-95: Rata-rata presisi di berbagai ambang IOU dari 50% hingga 95%.

Hasil Akhir

  • Model mencapai mAP50 sebesar 86.2% dan mAP50-95 sebesar 56.4% pada epoch ke-10.
  • Bobot terbaik disimpan di:
    • runs/detect/train/weights/best.pt
    • runs/detect/train/weights/last.pt
      File ini digunakan untuk inferensi atau pelatihan lanjutan.

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.

 

4. Implementasi Sistem

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.

 

Informasi Course Terkait
  Kategori: Computer Vision
  Course: Master Class Computer Vision