Nguyễn Quốc Việt
Upload README.md with huggingface_hub
721c42a verified
|
raw
history blame
6.36 kB
---
license: mit
tags:
- computer-vision
- object-detection
- yolov8
- vehicle-detection
- traffic-analysis
- highway-monitoring
library_name: ultralytics
pipeline_tag: object-detection
---
# Highway Vehicle Detection - Code & Models
A complete vehicle detection system for highway traffic monitoring. This repository contains the trained models, source code, and documentation - ready to use without requiring dataset downloads.
## Quick Start
### Installation
```bash
pip install ultralytics opencv-python numpy
```
### Basic Usage
```python
from ultralytics import YOLO
# Load the trained model
model = YOLO('models/yolov8m_stage2_improved_best.pt')
# Run inference on an image
results = model('path/to/image.jpg')
results[0].show()
# Process video
results = model('path/to/video.mp4', save=True)
```
### Using the Main Application
```bash
python main.py
```
## Repository Contents
### Trained Models
- `models/yolov8m_stage2_improved_best.pt` - **Final model** (recommended)
- `models/yolov8m_stage1_smart_best.pt` - Stage 1 model (for comparison)
### Source Code
- `main.py` - Complete vehicle detection and counting application
- `example_usage.py` - Simple usage examples
- `requirements.txt` - Python dependencies
- `test_improved_model.bat` - Windows testing script
### Fine-tuning Dataset
- `finetune_dataset/images/` - 92 fine-tuning images
- `finetune_dataset/labels/` - Corresponding annotation files
- `finetune_dataset/README.dataset.txt` - Dataset information
- `finetune_dataset/README.roboflow.txt` - Roboflow export info
### Configuration
- `dataset_configs/main_data.yaml` - Main dataset configuration (8 classes)
- `dataset_configs/finetune_data.yaml` - Fine-tuning dataset configuration
### Training Logs
- `training_logs/stage2_results.png` - Training results visualization
- `training_logs/stage2_confusion_matrix.png` - Confusion matrix
- `training_logs/stage2_results.csv` - Detailed training metrics
- `training_logs/stage2_val_batch0_pred.jpg` - Sample validation predictions
### Training Runs Structure
- `training_runs/stage1_smart/` - Stage 1 training configuration and weights
- `args.yaml` - Training arguments
- `weights/last.pt` - Last epoch weights
- `training_runs/stage2_improved/` - Stage 2 training configuration and weights
- `args.yaml` - Training arguments
- `weights/last.pt` - Last epoch weights
- `BoxF1_curve.png` - F1 score curve
- `BoxPR_curve.png` - Precision-Recall curve
- `labels.jpg` - Label distribution visualization
### Documentation
- `PROJECT_REPORT.md` - Complete project documentation
- `README.md` - This file
## Model Performance
### Classes Detected
1. **auto** - Three-wheelers
2. **bus** - Public transport vehicles
3. **car** - Passenger cars
4. **lcv** - Light Commercial Vehicles
5. **motorcycle** - Two-wheelers
6. **multiaxle** - Multi-axle heavy vehicles
7. **tractor** - Agricultural/construction vehicles
8. **truck** - Heavy vehicles
### Training Stages
- **Stage 1**: Initial training on 8,219 highway images
- **Stage 2**: Fine-tuning on 92 additional images for improved truck/bus detection
### Fine-tuning Dataset Details
- **Images**: 92 carefully selected highway images
- **Focus**: Improved detection of trucks and buses
- **Classes**: Enhanced examples for problematic vehicle types
- **Format**: YOLO format with bounding box annotations
- **Quality**: High-quality images with clear vehicle visibility
## External Resources
### Test Video
Watch the model in action on YouTube:
[Highway Vehicle Detection Demo](https://www.youtube.com/watch?v=wqctLW0Hb_0&list=PLJKyZ_NuOhJQzif2-6-Kq9OiOj_UjJWvi)
### Main Dataset
Download the complete training dataset from Kaggle:
[Vehicle Detection 8 Classes Dataset](https://www.kaggle.com/datasets/sakshamjn/vehicle-detection-8-classes-object-detection/data)
## Technical Details
- **Architecture**: YOLOv8m (Medium)
- **Framework**: Ultralytics YOLO
- **Input**: Images/Videos
- **Output**: Bounding boxes with class labels and confidence scores
- **Hardware**: CPU/GPU compatible
## Usage Examples
### Vehicle Detection
```python
from ultralytics import YOLO
import cv2
# Load the final model
model = YOLO('models/yolov8m_stage2_improved_best.pt')
# Detect vehicles in image
results = model('highway_image.jpg')
# Process results
for result in results:
boxes = result.boxes
for box in boxes:
x1, y1, x2, y2 = box.xyxy[0]
conf = box.conf[0]
cls = int(box.cls[0])
class_name = model.names[cls]
print(f"Detected: {class_name} (confidence: {conf:.2f})")
```
### Video Processing with Counting
```python
# Process video with vehicle counting
results = model('traffic_video.mp4', save=True, save_txt=True)
# The main.py script provides advanced counting and tracking features
```
### Using the Complete Application
```python
# Run the full application with counting and visualization
from main import VehicleCounter
counter = VehicleCounter()
counter.process_video('input_video.mp4', 'output_video.mp4')
```
## Applications
- Highway traffic monitoring
- Vehicle counting and classification
- Traffic flow analysis
- Automated surveillance systems
- Road safety monitoring
- Traffic data collection
## Related Repositories
- **Full Dataset**: [highway-vehicle-detection-full](https://huggingface.co/datasets/bichuche0705/highway-vehicle-detection-full) - Complete project with datasets and videos
- **Model Only**: [highway-vehicle-detection](https://huggingface.co/bichuche0705/highway-vehicle-detection) - Just the trained model
## License
MIT License - Free to use for research and commercial purposes
## Contributing
This is a research project. For questions or improvements, please contact the author.
## Contact
**Author**: Nguyen Quoc Viet
**Repository**: https://huggingface.co/bichuche0705/highway-vehicle-detection-code
## Citation
If you use this model in your research, please cite:
```bibtex
@misc{highway-vehicle-detection-code,
title={Highway Vehicle Detection - Code \& Models},
author={Nguyen Quoc Viet},
year={2024},
url={https://huggingface.co/bichuche0705/highway-vehicle-detection-code}
}
```