|
|
--- |
|
|
license: mit |
|
|
tags: |
|
|
- yolov8 |
|
|
- object-detection |
|
|
- railway |
|
|
- wagon-number-recognition |
|
|
- ocr |
|
|
- computer-vision |
|
|
- ultralytics |
|
|
datasets: |
|
|
- custom |
|
|
language: |
|
|
- en |
|
|
pipeline_tag: object-detection |
|
|
--- |
|
|
|
|
|
# YOLOv8 — Railway Wagon Big Number Detection |
|
|
|
|
|
<p align="center"> |
|
|
<img src="001_20241208064334_[M][0@0][0].jpg" alt="Example prediction" width="600"/> |
|
|
</p> |
|
|
|
|
|
## Model Description |
|
|
|
|
|
A fine-tuned **YOLOv8** model for detecting and localizing **large identification numbers** on railway wagons. This model was developed as part of a **government railway monitoring system** to automate wagon identification in real-time video streams. |
|
|
|
|
|
The model accurately detects oversized wagon numbers painted on the side of freight and passenger cars, even under challenging conditions such as varying lighting, weather, partial occlusion, and motion blur. |
|
|
|
|
|
## Intended Use |
|
|
|
|
|
| Use Case | Description | |
|
|
|----------|-------------| |
|
|
| **Railway monitoring** | Automated wagon identification in surveillance camera feeds | |
|
|
| **Logistics tracking** | Real-time wagon number extraction for freight management | |
|
|
| **Infrastructure inspection** | Integration into railway digitization pipelines | |
|
|
|
|
|
> ⚠️ **Not intended for:** General-purpose OCR, license plate recognition, or non-railway number detection. |
|
|
|
|
|
## Performance |
|
|
|
|
|
| Metric | Score | |
|
|
|--------|-------| |
|
|
| F1 Score | `98.1%` | |
|
|
|
|
|
|
|
|
<!-- 🔧 TODO: Replace XX.X% with your actual metric values --> |
|
|
|
|
|
## Training Details |
|
|
|
|
|
### Dataset |
|
|
|
|
|
- **Source:** Custom-annotated dataset of railway wagon images |
|
|
- **Size:** 1240X800 images <!-- TODO: fill in --> |
|
|
- **Annotation format:** YOLO (bounding boxes) |
|
|
- **Classes:** 1 (big_number) |
|
|
- **Train/Val split:** 80/20 |
|
|
|
|
|
### Hyperparameters |
|
|
|
|
|
| Parameter | Value | |
|
|
|-----------|-------| |
|
|
| Base model | YOLOv8n / YOLOv8s <!-- specify which --> | |
|
|
| Image size | 640 | |
|
|
| Batch size | 16 | |
|
|
| Epochs | `4` | |
|
|
| Optimizer | AdamW | |
|
|
| Learning rate | 0.01 | |
|
|
| Device | NVIDIA GPU | |
|
|
|
|
|
<!-- 🔧 TODO: Update hyperparameters with actual values --> |
|
|
|
|
|
### Training Framework |
|
|
|
|
|
- [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) |
|
|
- Python 3.10+ |
|
|
- PyTorch 2.x |
|
|
|
|
|
## How to Use |
|
|
|
|
|
```python |
|
|
from ultralytics import YOLO |
|
|
|
|
|
# Load the model |
|
|
model = YOLO("best.pt") |
|
|
|
|
|
# Run inference on an image |
|
|
results = model("wagon_image.jpg") |
|
|
|
|
|
# Display results |
|
|
for result in results: |
|
|
boxes = result.boxes |
|
|
for box in boxes: |
|
|
print(f"Big Number detected | Confidence: {box.conf[0]:.2f} | BBox: {box.xyxy[0]}") |
|
|
``` |
|
|
|
|
|
## Model Files |
|
|
|
|
|
| File | Description | |
|
|
|------|-------------| |
|
|
| `best.pt` | Best checkpoint (highest validation metric) | |
|
|
| `last.pt` | Last training epoch checkpoint | |
|
|
|
|
|
## Limitations |
|
|
|
|
|
- Trained specifically on railway wagon numbers; may not generalize to other number detection tasks |
|
|
- Performance may degrade on heavily occluded or damaged wagon surfaces |
|
|
- Optimized for daytime footage; low-light performance may vary |
|
|
|
|
|
## Citation |
|
|
|
|
|
```bibtex |
|
|
@misc{yolo8_bignumbers_2024, |
|
|
author = {Zarina}, |
|
|
title = {YOLOv8 Railway Wagon Big Number Detection}, |
|
|
year = {2024}, |
|
|
url = {https://huggingface.co/Zarinaaa/yolo8_BigNumbers_model} |
|
|
} |
|
|
``` |
|
|
|
|
|
## Author |
|
|
|
|
|
**Zarina** — Machine Learning Engineer specializing in Computer Vision, NLP, and Speech Technologies. |
|
|
|
|
|
- 🤗 [HuggingFace](https://huggingface.co/Zarinaaa) |
|
|
- 💼 [LinkedIn](https://linkedin.com/in/YOUR_LINKEDIN) <!-- TODO: add your link --> |