This project is an intelligent traffic video analytics system developed for the G-TRISP internship task. The system performs vehicle detection, multi-object tracking, trajectory extraction, vehicle counting, speed estimation, and congestion analytics on traffic videos.
The pipeline is designed specifically for real-world Indian traffic conditions and includes custom auto-rickshaw reclassification for improved vehicle categorization.
- Vehicle Detection using YOLOv8
- Multi-Object Tracking using ByteTrack
- Persistent Vehicle IDs
- Auto-Rickshaw Reclassification
- Vehicle Trajectory Extraction
- Vehicle Trajectory Visualization
- Vehicle Counting using Line-Crossing Analytics
- Vehicle Speed Estimation
- Congestion Analytics
- Annotated Video Generation
- CSV Trajectory Export
- Final Traffic Analytics Summary Export
Input Traffic Video
↓
YOLOv8 Vehicle Detection
↓
Vehicle Reclassification
↓
ByteTrack Multi-Object Tracking
↓
Trajectory Extraction
↓
Speed Estimation
↓
Vehicle Counting + Congestion Analytics
↓
Annotated Video + CSV Export + Summary Report
- Python
- OpenCV
- YOLOv8 (Ultralytics)
- ByteTrack
- PyTorch
- MobileNetV2
- NumPy
- CSV Analytics
gtrisp-vehicle-analytics/
│
├── input/
│
├── outputs/
│ ├── csv/
│ │ └── trajectories.csv
│ │
│ ├── detection_output.mp4
│ └── final_summary.txt
│
├── models/
│
├── src/
│ ├── classifier_inference.py
│ ├── congestion_utils.py
│ ├── counting_utils.py
│ ├── detect_track.py
│ ├── speed_utils.py
│ ├── summary_utils.py
│ ├── tracking_utils.py
│ ├── trajectory_utils.py
│ └── visualization_utils.py
│
├── run.py
├── requirements.txt
└── README.md
Create a virtual environment:
python -m venv .venv
source .venv/bin/activateInstall dependencies:
pip install -r requirements.txtRun the complete traffic analytics pipeline:
python run.pyAfter running the pipeline, the generated outputs are stored at:
outputs/detection_output.mp4
outputs/csv/trajectories.csv
outputs/final_summary.txt
The trajectory CSV contains:
- Frame Number
- Timestamp
- Track ID
- Vehicle Class
- Detection Confidence
- Bounding Box Coordinates
- Centroid Coordinates
- Bounding Box Dimensions
- Bounding Box Area
Vehicles are counted using persistent ByteTrack IDs and line-crossing analytics.
Vehicle speed is estimated using trajectory displacement over time.
Traffic congestion is estimated using:
- active tracked vehicles
- average vehicle speed
- traffic density heuristics
The annotated output video includes:
- Persistent Tracking IDs
- Vehicle Class Labels
- Speed Estimation Overlays
- Vehicle Trajectories
- Vehicle Counting
- Congestion Analytics Dashboard