Spaces:
Sleeping
Sleeping
A newer version of the Streamlit SDK is available: 1.62.0
metadata
title: Vehicle Detection Tracking Counting
emoji: π
colorFrom: blue
colorTo: purple
sdk: streamlit
sdk_version: 1.28.0
app_file: app.py
pinned: false
Vehicle Detection, Tracking & Counting
Proyek portofolio AI Engineer untuk deteksi, tracking, dan penghitungan kendaraan secara otomatis dari video menggunakan RT-DETR sebagai model deteksi dan ByteTrack sebagai multi-object tracker.
Fitur
- Object Detection: Deteksi kendaraan menggunakan RT-DETR yang sudah di-fine-tune pada dataset UA-DETRAC
- Object Tracking: Multi-object tracking dengan ByteTrack, setiap kendaraan mendapat ID unik
- Vehicle Counting: Dua metode counting tersedia:
- Virtual Line Counting: hitung kendaraan yang melewati garis virtual
- Polygon Region Counting: hitung kendaraan yang masuk area tertentu
- Dashboard: Statistik real-time, FPS, progress bar
- Export: Download video hasil dan CSV hasil counting
Tech Stack
| Komponen | Teknologi |
|---|---|
| Object Detection | RT-DETR (Ultralytics) |
| Object Tracking | ByteTrack (custom implementation) |
| Video Processing | OpenCV |
| Web App | Streamlit |
| Deep Learning | PyTorch |
| Deployment | Hugging Face Spaces |
Struktur Proyek
vehicle-counting-rtdetr/
βββ notebooks/
β βββ kaggle_training.ipynb # Notebook training di Kaggle
βββ core/
β βββ detector.py # RT-DETR inference wrapper
β βββ tracker.py # ByteTrack implementation
β βββ counter.py # Virtual line & polygon counting
β βββ exporter.py # CSV export utilities
βββ ui/
β βββ sidebar.py # Streamlit sidebar components
βββ models/
β βββ best.pt # Model hasil fine-tuning (dari Kaggle)
βββ outputs/ # Folder output video & CSV
βββ app.py # Main Streamlit application
βββ utils.py # Drawing & helper functions
βββ requirements.txt
βββ packages.txt
βββ README.md
Setup
Training (Kaggle)
- Upload notebook
notebooks/kaggle_training.ipynbke Kaggle - Aktifkan GPU (P100 atau T4)
- Jalankan semua cell
- Download file
best.ptdari output Kaggle - Letakkan
best.ptdi foldermodels/
Local Development
# install dependencies
pip install -r requirements.txt
# jalankan app
streamlit run app.py
Deploy ke Hugging Face Spaces
- Buat repository baru di Hugging Face Spaces (pilih Streamlit SDK)
- Upload semua file dari repository ini
- Pastikan
best.ptada di foldermodels/ - Spaces akan otomatis build dan deploy
Cara Pakai
- Buka aplikasi
- Upload video (.mp4 / .avi) di sidebar
- Atur confidence threshold
- Pilih metode counting (Virtual Line atau Polygon Region)
- Klik "Mulai Proses"
- Tunggu sampai selesai
- Download hasil video dan CSV
Model Performance
Hasil evaluasi model RT-DETR setelah fine-tuning pada dataset kendaraan:
| Metric | Nilai |
|---|---|
| mAP50 | - |
| mAP50-95 | - |
| Precision | - |
| Recall | - |
| F1-Score | - |
Tabel ini akan diupdate setelah training selesai di Kaggle.
Dataset
UA-DETRAC Dataset 10K dari Roboflow Universe:
- Link: https://universe.roboflow.com/rjacaac1/ua-detrac-dataset-10k
- Format: YOLOv8 (kompatibel dengan RT-DETR Ultralytics)
- Nama kelas dibaca otomatis dari
data.yamldataset
Referensi
- RT-DETR Paper - DETRs Beat YOLOs on Real-time Object Detection
- ByteTrack Paper - Multi-Object Tracking by Associating Every Detection Box
- Ultralytics - YOLO & RT-DETR Framework
- Roboflow - Dataset Management
License
MIT License