Segmentasi Objek dengan YOLOV8

M. Mahameru. A

Sosial Media


1 orang menyukai ini
Suka

Summary

Proyek ini mengimplementasikan deteksi dan pelacakan objek dalam video menggunakan model YOLOv8n-seg dari Ultralytics. Dengan menggunakan Python dan pustaka OpenCV, program ini membaca video input, mendeteksi objek di setiap frame, dan melacak pergerakan mereka menggunakan segmentasi instance. Hasilnya adalah video output yang menampilkan objek yang terdeteksi dengan anotasi warna-warni yang menunjukkan ID pelacakan mereka, memberikan gambaran detail dan akurat tentang pergerakan objek dalam video. Proyek ini menunjukkan aplikasi nyata dari teknologi computer vision untuk analisis video yang canggih dan efisien.

Description

 

Deskripsi Proyek

Proyek ini berfokus pada penerapan teknik computer vision untuk deteksi dan pelacakan objek dalam video menggunakan model YOLOv8n-seg. Tujuan utama dari proyek ini adalah untuk mendeteksi berbagai objek dalam video dan melacak pergerakan mereka dari frame ke frame menggunakan segmentasi instance. Segmentasi instance tidak hanya membedakan objek dari latar belakang, tetapi juga membedakan objek satu sama lain, memberikan hasil yang lebih detail dan akurat.

Teknologi dan Perpustakaan yang Digunakan

  1. Python: Bahasa pemrograman yang digunakan untuk mengimplementasikan algoritma deteksi dan pelacakan objek.
  2. OpenCV: Perpustakaan untuk pemrosesan gambar dan video, digunakan untuk membaca video input, memproses frame, dan menyimpan video output.
  3. Ultralytics YOLO: Pustaka yang menyediakan implementasi model YOLO (You Only Look Once) untuk deteksi objek.
  4. collections: Modul Python yang menyediakan tipe data kontainer khusus seperti defaultdict yang digunakan untuk mengelola riwayat pelacakan objek.

Langkah-langkah Implementasi

1. Inisialisasi Lingkungan

  • Import modul-modul yang diperlukan seperti os, collections, cv2, dan Ultralytics.
  • Membuat direktori 'output' jika belum ada untuk menyimpan hasil video yang telah diproses.

Inisialisasi Model YOLO

  • Model YOLOv8n-seg diinisialisasi menggunakan file pre-trained model "yolov8n-seg.pt".

Membaca Video Input

  • Menggunakan OpenCV untuk membuka video input "mobil.mp4".
  • Mengambil informasi tentang lebar, tinggi, dan frame per detik dari video input untuk digunakan dalam pengaturan video output.

Mempersiapkan Video Output

  • Menyiapkan penulisan video output dengan resolusi dan frame per detik yang sama dengan video input.
  • Menggunakan codec MJPG untuk kompresi video.

Looping Melalui Frame Video

  • Memulai loop untuk membaca setiap frame dari video input.
  • Menggunakan model YOLO untuk mendeteksi dan melacak objek dalam frame.

Annotasi Objek dengan Mask Segmentation

  • Mengekstrak informasi mask dan ID pelacakan dari hasil deteksi.
  • Menambahkan anotasi pada setiap frame untuk setiap objek yang terdeteksi dan dilacak menggunakan warna yang berbeda untuk setiap ID pelacakan.

Menyimpan dan Menampilkan Frame yang Telah Diberi Anotasi

  • Menyimpan frame yang telah diberi anotasi ke dalam video output.
  • Menampilkan frame yang telah diproses pada jendela GUI.

Membersihkan Sumber Daya

  • Setelah selesai memproses semua frame atau jika pengguna menghentikan proses, menutup video writer dan melepaskan video capture serta menutup semua jendela yang dibuka oleh OpenCV.

Hasil

 

Link GitHub

Anda dapat melihat kode lengkap dan detail implementasi proyek ini disini.

Informasi Course Terkait
  Kategori: Artificial Intelligence
  Course: Object Detection Deep Learning