CoolFace
Modelpublic

vinothvikas1987/pothole-detection-yolov8

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes365downloads
Model Card

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

[image] Distribution of bounding boxes across classes, positions, and sizes in the training set

[image] Example training images with augmented bounding boxes during training

Realistic Capabilities

Where This Model Works Best

ScenarioPerformanceNotes
Drone/ aerial road survey✅ GoodModel trained on Japan/India drone datasets
Dashcam footage✅ GoodStandard road-facing camera angles
Well-lit conditions✅ GoodTraining data is mostly daylight
Pothole detectionmAP50=0.782Best-performing class — distinct visual features
Alligator crack detectionmAP50=0.671Moderate — interconnected cracks are distinctive
Longitudinal/ Transverse cracksmAP50~0.57Harder — thin features, requires good resolution
"Other" class (manholes, patches)mAP50=0.494Weakest — too diverse, consider ignoring

Limitations

LimitationWhy
Poor in heavy rain/ fogTraining data lacks adverse weather
Night detection degradedNo night-time training images
Thin hairline cracksMay miss cracks thinner than ~5px at 640px input
Class imbalance"Other" class has few examples (965 instances vs 3890 for Longitudinal)
Overlapping cracksStruggles 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

MetricValue
mAP@0.50.629
mAP@0.5:0.950.345
Precision0.662
Recall0.583

Per-Class Performance

ClassmAP50PrecisionRecall
Longitudinal Crack0.5710.6180.537
Transverse Crack0.5620.6310.521
Alligator Crack0.6710.6630.639
Pothole0.7820.7060.740
Other0.4940.6280.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

python
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/
bash
# 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

python
# 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

FileSizeFormat
best.pt67 MBPyTorch (Ultralytics YOLO)
best.onnx45 MBONNX (cross-platform)
best.torchscript45 MBTorchScript (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

bibtex
@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