|
|
---
|
|
|
language:
|
|
|
- en
|
|
|
license: cc-by-4.0
|
|
|
library_name: ultralytics
|
|
|
tags:
|
|
|
- real-time
|
|
|
- object-detection
|
|
|
- yolo
|
|
|
- yolov12
|
|
|
- traffic-signs
|
|
|
- autonomous-driving
|
|
|
- adas
|
|
|
datasets:
|
|
|
- AlessandroFerrante/StreetSignSet
|
|
|
metrics:
|
|
|
- mAP
|
|
|
- f1
|
|
|
- precision
|
|
|
- recall
|
|
|
pipeline_tag: object-detection
|
|
|
---
|
|
|
|
|
|
<div align="center">
|
|
|
|
|
|
# StreetSignSenseYOLO12m
|
|
|
|
|
|
[](https://github.com/ultralytics/ultralytics)
|
|
|
[](https://github.com/ultralytics/ultralytics)
|
|
|
[](https://github.com/sunsmarterjie/yolov12)
|
|
|
|
|
|
[](https://www.python.org/)
|
|
|
[](https://pytorch.org/)
|
|
|
[](LICENSE)
|
|
|
[](LICENSE)
|
|
|
|
|
|
[](https://github.com/AlessandroFerrante/StreetSignSense/)
|
|
|
[](https://alessandroferrante.github.io/StreetSignSense/report/Report.pdf)
|
|
|
|
|
|
[](https://github.com/AlessandroFerrante/StreetSignSense/releases)
|
|
|
[](https://github.com/AlessandroFerrante/StreetSignSense/releases)
|
|
|
[](https://github.com/AlessandroFerrante/StreetSignSense/releases)
|
|
|
|
|
|
[](https://www.kaggle.com/models/ferrantealessandro/streetsignsensey12n/)
|
|
|
[](https://www.kaggle.com/models/ferrantealessandro/streetsignsensey12s/)
|
|
|
[](https://www.kaggle.com/models/ferrantealessandro/streetsignsensey12m/)
|
|
|
|
|
|
[](https://huggingface.co/AlessandroFerrante/StreetSignSenseY12n)
|
|
|
[](https://HuggingFace.co/AlessandroFerrante/StreetSignSenseY12s)
|
|
|
[](https://huggingface.co/AlessandroFerrante/StreetSignSenseY12m)
|
|
|
|
|
|
</div>
|
|
|
|
|
|
---
|
|
|
|
|
|
# Model Summary
|
|
|
|
|
|
**Street Sign Sense (YOLO12m)** is an object detection model designed to identify and classify traffic signs in real-time. Based on the advanced **YOLO12 Medium** architecture, this model balances high accuracy with computational efficiency, making it suitable for Advanced Driver Assistance Systems (ADAS) research. It has been trained on the custom **Street Sign Set**, covering **63 distinct classes** of traffic signs.
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
### Live Demo
|
|
|
|
|
|
You can test this model instantly in your browser without any setup: π **[Interactive Web Demo](http://alessandroferrante.github.io/StreetSignSense)**
|
|
|
|
|
|
#### Python
|
|
|
|
|
|
This model can be used with the Ultralytics framework or the official YOLO12 repository. It takes an image as input and outputs bounding boxes with class labels and confidence scores.
|
|
|
|
|
|
### Code Snippet (Python)
|
|
|
|
|
|
```python
|
|
|
from ultralytics import YOLO
|
|
|
|
|
|
# Load the model
|
|
|
model = YOLO('path/to/streetsignsense-yolo12m.pt') # Replace with the downloaded model path
|
|
|
|
|
|
# Run inference on an image
|
|
|
results = model.predict(source='path/to/image.jpg')
|
|
|
|
|
|
# Show results
|
|
|
results[0].show()
|
|
|
|
|
|
```
|
|
|
|
|
|
**Inputs:** Images (RGB) of various resolutions (model trained at standard YOLO resolutions, e.g., 640x640).
|
|
|
**Outputs:** List of `Results` objects containing bounding boxes (`xyxy`), class IDs, and confidence scores.
|
|
|
``` text
|
|
|
/StreetSignSenseY12m
|
|
|
βββ .gitattributes
|
|
|
βββ README.md
|
|
|
βββ streetsignsense-yolo12m.pt
|
|
|
βββ metrics/ # metrics image folder
|
|
|
```
|
|
|
|
|
|
## System
|
|
|
|
|
|
**Standalone Model:** Yes, this is a standalone object detection model.
|
|
|
**Input Requirements:** Standard RGB images. No specific metadata required.
|
|
|
**Downstream Dependencies:** The output (detected classes and locations) is intended to be used by decision-making logic in ADAS simulations or autonomous driving pipelines.
|
|
|
|
|
|
## Implementation requirements
|
|
|
|
|
|
**Hardware:** Training was performed on Kaggle Notebooks using NVIDIA GPUs (e.g., Tesla P100 or T4).
|
|
|
**Software:** PyTorch, Ultralytics YOLO framework.
|
|
|
**Compute:**
|
|
|
|
|
|
* **Training Time:** 13h 23m 53s Β· GPU T4 x (depending on epochs).
|
|
|
* **Inference:** Capable of real-time performance (>30 FPS) on modern GPUs.
|
|
|
|
|
|
# Model Characteristics
|
|
|
|
|
|
## Model initialization
|
|
|
|
|
|
**Fine-tuned:** The model was initialized with pre-trained COCO weights (Transfer Learning) and then fine-tuned on the "Street Sign Sense" dataset to specialize in traffic sign detection.
|
|
|
|
|
|
## Model stats
|
|
|
|
|
|
**Architecture:** YOLO12m (Medium).
|
|
|
**Characteristics:** Utilizes attention-centric mechanisms to improve feature extraction compared to previous YOLO versions.
|
|
|
**Size:** Medium-sized model, offering a trade-off between the speed of the 'Nano/Small' versions and the raw accuracy of the 'Large/X-Large' versions.
|
|
|
|
|
|
## Other details
|
|
|
|
|
|
**Precision:** Trained using Mixed Precision (AMP).
|
|
|
**Pruning/Quantization:** The uploaded weights are standard FP32/FP16. No post-training quantization has been applied yet.
|
|
|
|
|
|
# Data Overview
|
|
|
|
|
|
## Training data
|
|
|
|
|
|
The model was trained on the **Street Sign Set** (available on Kaggle).
|
|
|
|
|
|
* **Source:** A combination of public datasets and manually collected/annotated images.
|
|
|
* **Size:** Contains thousands of images with bounding box annotations.
|
|
|
* **Classes:** 63 specific traffic sign classes (speed limits, warnings, prohibitions, etc.).
|
|
|
* **Preprocessing:** Images were resized, and data augmentation (Mosaic, scaling, color adjustments) was applied during training to improve robustness.
|
|
|
|
|
|
## Demographic groups
|
|
|
|
|
|
**N/A:** The dataset consists of street signs and environmental imagery. No human demographic data is involved or analyzed.
|
|
|
|
|
|
## Evaluation data
|
|
|
|
|
|
The dataset was split into:
|
|
|
|
|
|
* **Train:** 70-80%
|
|
|
* **Validation:** 10-20%
|
|
|
* **Test:** 10%
|
|
|
**Differences:** The test set contains unseen images from different environmental conditions to test generalization.
|
|
|
|
|
|
# Evaluation Results
|
|
|
* **Overview Risultati:**
|
|
|

|
|
|
* **Confusion Matrix:**
|
|
|

|
|
|
|
|
|
#### Detailed Curves (Small)
|
|
|
|
|
|
| Precision-Recall | F1 Score |
|
|
|
| :----------------------------------------: | :----------------------------------------: |
|
|
|
|  |  |
|
|
|
| **Precision** | **Recall** |
|
|
|
|  |  |
|
|
|
|
|
|
## Summary
|
|
|
|
|
|
The model achieves high Mean Average Precision (mAP) on the test set, demonstrating strong capabilities in detecting small objects (traffic signs at a distance) and operating in varied lighting conditions.
|
|
|
|
|
|
* **Detailed Metrics:** Please refer to the training graphs (F1-score, Precision-Recall curve) included in the attached notebooks.
|
|
|
|
|
|
## Subgroup evaluation results
|
|
|
|
|
|
Performance is generally consistent across major classes (e.g., Speed Limits, Stop signs). However, classes with significantly fewer samples in the dataset may show slightly lower recall.
|
|
|
|
|
|
## Fairness
|
|
|
|
|
|
**Definition:** Fairness in this context is defined as the model's ability to detect signs regardless of background clutter or slight occlusions.
|
|
|
**Results:** The model shows robust performance in standard driving scenarios.
|
|
|
|
|
|
## Usage limitations
|
|
|
|
|
|
* **Lighting:** Performance may degrade in extreme low-light conditions (night without streetlights) or heavy weather (dense fog/heavy rain) if not sufficiently represented in the training data.
|
|
|
* **Occlusion:** Signs that are more than 50% occluded may not be detected reliably.
|
|
|
* **Geography:** The model is trained primarily on European/International standard signs; it may not recognize signs specific to other regions that differ significantly in shape or color.
|
|
|
|
|
|
## Ethics
|
|
|
|
|
|
**Safety:** This model is for research and educational purposes (ADAS development). It should **not** be used as the sole system for controlling a real vehicle on public roads without extensive safety validation and redundancy.
|
|
|
**Privacy:** The dataset focuses on public street signs. Any incidental faces or license plates in the background are not the target of this model.
|
|
|
|
|
|
## π¨βπ» Author
|
|
|
|
|
|
[Alessandro Ferrante](https://alessandroferrante.net)
|
|
|
|
|
|
Email: [streetsignsense@alessandroferrante.net](mailto:streetsignsense@alessandroferrante.net)
|
|
|
|