Sistem analisis lalu lintas berbasis web yang menyediakan deteksi dan penghitungan kendaraan secara real-time dari stream YouTube, serta pemrosesan video on-demand dengan model AI yang berbeda.
Proyek ini adalah aplikasi web Flask lengkap yang dirancang untuk pemantauan lalu lintas cerdas. Aplikasi ini memiliki dua fungsionalitas inti: (1) Dasbor Pemantauan Live, yang melacak kendaraan dari stream YouTube menggunakan model YOLOv8 kustom dan mencatat total hitungan ke database. (2) Modul Pemrosesan Latar Belakang, yang memungkinkan pengguna mengunggah file video atau link YouTube untuk dianalisis oleh model YOLOv8 standar (yolov8n.pt).
Untuk mengatasi masalah kompatibilitas video, hasil pemrosesan disimpan sebagai kumpulan gambar (JPG) dari setiap event deteksi, yang kemudian dikompresi ke dalam satu file .zip. Seluruh sistem terhubung ke database MySQL yang mencatat total hitungan dan log timestamp terperinci untuk setiap kendaraan yang terdeteksi.
-
🖥️ Dasbor Live Dinamis:
- Streaming video langsung dari YouTube ke antarmuka web.
- Formulir UI untuk mengganti link YouTube kapan saja.
- Reset Otomatis: Mengganti link stream akan secara otomatis mereset total hitungan di database ke 0, memulai sesi pemantauan baru.
- Statistik real-time (FPS, Status DB, Total Kendaraan) diperbarui setiap 2 detik.
-
🚀 Arsitektur Dua Model:
- Live Stream: Menggunakan model YOLOv8 kustom (
best.pt) yang dilatih untuk 4 kelas (Mobil, Motor, Bus, Truk). - Proses Upload: Menggunakan model YOLOv8n standar (
yolov8n.pt) untuk fleksibilitas, memetakan kelas COCO ke database.
- Live Stream: Menggunakan model YOLOv8 kustom (
-
📤 Pemrosesan Latar Belakang & Output ZIP:
- Halaman
/uploadterpisah untuk memproses video atau link YouTube di latar belakang (threading). - Anti-Video Rusak: Prosesor tidak membuat file MP4. Sebaliknya, ia menyimpan satu gambar JPG berkualitas tinggi setiap kali kendaraan dihitung (melintasi garis).
- Secara otomatis mengompres semua gambar hasil deteksi ke dalam satu file
.zipyang siap diunduh. - Halaman status tugas (berwarna merah) yang me-refresh otomatis hingga file ZIP siap.
- Halaman
-
📊 Manajemen Database Ganda (MySQL):
- Tabel
traffic_stats: Menyimpan 1 baris total akumulasi (untuk tampilan dasbor). - Tabel
detection_log: Menyimpan log timestamp terperinci untuk setiap kendaraan yang dihitung dari semua sumber (Live Stream & Upload).
- Tabel
-
📈 Download Laporan CSV:
- Fitur di Navbar untuk mengunduh rekap penuh dari tabel
detection_logsebagai file.csvuntuk analisis data historis.
- Fitur di Navbar untuk mengunduh rekap penuh dari tabel
-
⚙️ Manajemen Server (Siap Hosting):
- Menggunakan
apscheduleruntuk menghapus file secara otomatis dari folderuploads/5-15 menit setelah diunggah/diunduh, mencegah server penuh.
- Menggunakan
Sistem ini berjalan dengan dua alur kerja utama yang berinteraksi dengan database yang sama.
---Ikuti langkah-langkah ini untuk menjalankan aplikasi secara lokal.
- Python 3.11+
- Server MySQL (Contoh: XAMPP dengan phpMyAdmin)
git clone https://github.com/Pashinoh/car-detection-recognition.git
cd car-detection-recognition


