Object Detection
ultralytics
ONNX
yolov8
pothole-detection
road-distress
road-damage
computer-vision
Instructions to use vinothvikas1987/pothole-detection-yolov8 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use vinothvikas1987/pothole-detection-yolov8 with ultralytics:
from ultralytics import YOLOvv8 model = YOLOvv8.from_pretrained("vinothvikas1987/pothole-detection-yolov8") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
Pothole & Road Distress Detection (YOLOv8s)
Fine-tuned YOLOv8s model for detecting 5 types of road surface distress from drone and dashcam imagery.
Training Data Labels
Distribution of bounding boxes across classes, positions, and sizes in the training set
Example training images with augmented bounding boxes during training
Realistic Capabilities
Where This Model Works Best
| Scenario | Performance | Notes |
|---|---|---|
| Drone/ aerial road survey | β Good | Model trained on Japan/India drone datasets |
| Dashcam footage | β Good | Standard road-facing camera angles |
| Well-lit conditions | β Good | Training data is mostly daylight |
| Pothole detection | mAP50=0.782 | Best-performing class β distinct visual features |
| Alligator crack detection | mAP50=0.671 | Moderate β interconnected cracks are distinctive |
| Longitudinal/ Transverse cracks | mAP50~0.57 | Harder β thin features, requires good resolution |
| "Other" class (manholes, patches) | mAP50=0.494 | Weakest β too diverse, consider ignoring |
Limitations
| Limitation | Why |
|---|---|
| Poor in heavy rain/ fog | Training data lacks adverse weather |
| Night detection degraded | No night-time training images |
| Thin hairline cracks | May miss cracks thinner than ~5px at 640px input |
| Class imbalance | "Other" class has few examples (965 instances vs 3890 for Longitudinal) |
| Overlapping cracks | Struggles when multiple crack types intersect |
| Very wide potholes (>5m) | Rare in training data |
Recommended Use
- Automated road inspection from drones for municipal maintenance
- Pre-screening dashcam footage for pothole alerts
- Asset management β quantifying crack density per road segment
- NOT recommended for safety-critical real-time braking systems (use as advisory only)
Model Performance
Per-Class Performance
| Class | mAP50 | Precision | Recall |
|---|---|---|---|
| Longitudinal Crack | 0.571 | 0.618 | 0.537 |
| Transverse Crack | 0.562 | 0.631 | 0.521 |
| Alligator Crack | 0.671 | 0.663 | 0.639 |
| Pothole | 0.782 | 0.706 | 0.740 |
| Other | 0.494 | 0.628 | 0.451 |
Classes
0: Longitudinal Crack β cracks parallel to road direction (thin, linear)
1: Transverse Crack β cracks across the road (thin, linear)
2: Alligator Crack β interconnected web of cracks (fatigue cracking)
3: Pothole β bowl-shaped depressions (most detectable)
4: Other β manholes, patches, oil spills, road markings
Quick Usage
from ultralytics import YOLO
model = YOLO("best.pt")
results = model.predict("road_image.jpg", conf=0.25, save=True)
# Results saved to runs/detect/predict/
# CLI
yolo predict model=best.pt source=video.mp4 conf=0.25
yolo predict model=best.onnx source=image.jpg conf=0.25
Adjusting Confidence Threshold
# For pothole detection (high precision) β use conf=0.4
results = model.predict("image.jpg", conf=0.4)
# For crack screening (high recall, more false positives) β use conf=0.15
results = model.predict("image.jpg", conf=0.15)
Model Files
| File | Size | Format |
|---|---|---|
best.pt |
67 MB | PyTorch (Ultralytics YOLO) |
best.onnx |
45 MB | ONNX (cross-platform) |
best.torchscript |
45 MB | TorchScript (C++ inference) |
Training Details
- Base model: YOLOv8s (COCO pretrained, 11.1M params)
- Dataset: RDD (Road Damage Dataset) β 26,869 training images from Japan, India, Czech Republic
- Epochs: 76 (stopped by Kaggle 9h time limit, still improving)
- Input size: 640Γ640
- Hardware: NVIDIA Tesla T4 (16GB) Γ 2
- Batch: 64
- Training time: ~9 hours
Training script: training/train_improved.py
Citation
@misc{pothole-detection-yolov8-2026,
author = {vinothvikas1987},
title = {Pothole and Road Distress Detection with YOLOv8s},
year = {2026},
publisher = {Hugging Face},
howpublished = {https://huggingface.co/vinothvikas1987/pothole-detection-yolov8}
}
License
Apache 2.0
- Downloads last month
- 137