| --- |
| title: Automated Road Damage Detection |
| emoji: 🛣️ |
| colorFrom: blue |
| colorTo: red |
| sdk: gradio |
| sdk_version: 6.10.0 |
| app_file: app.py |
| pinned: false |
| license: mit |
| short_description: A model fine-tuned for automatic road damage detection |
| --- |
| |
| # 🛣️ Automated Road Damage Detection |
|
|
| > **YOLOv8s** fine-tuned on the **RDD2022** dataset — detecting 4 road damage classes across 6 countries in real time. |
|
|
| [](https://huggingface.co/spaces/ProjectRoadDamageDetection/Automated-Road-Damage-Detection) |
| [](https://opensource.org/licenses/MIT) |
| [](https://github.com/ultralytics/ultralytics) |
| [](https://arxiv.org/abs/2209.08538) |
|
|
| --- |
|
|
| ## 📌 Overview |
|
|
| This project provides an automated road damage detection system powered by **YOLOv8s**, fine-tuned on the **RDD2022 (Road Damage Dataset 2022)**. It detects four types of surface damage from road images and provides per-class counts, pothole severity assessments, and country-specific pothole density context. |
|
|
| Upload any road image and get instant visual annotations along with a structured damage report. |
|
|
| --- |
|
|
| ## 🎯 Damage Classes |
|
|
| | Code | Class Name | Color | |
| |------|---------------------|------------| |
| | D00 | Longitudinal Crack | 🔵 Blue | |
| | D10 | Transverse Crack | 🟢 Green | |
| | D20 | Alligator Crack | 🟠 Orange | |
| | D40 | Pothole | 🔴 Red | |
|
|
| --- |
|
|
| ## 🌍 Supported Countries (Pothole Context) |
|
|
| | Country | Pothole Density | |
| |-------------------|------------------------| |
| | 🇮🇳 India | ⬛⬛⬛ Very High | |
| | 🇳🇴 Norway | ⬛⬛⬛ High | |
| | 🇺🇸 United States | ⬛⬛⬛ Moderate | |
| | 🇨🇿 Czech Republic | ⬛⬛⬛ Moderate | |
| | 🇨🇳 China | ⬛⬛ Low-Moderate | |
| | 🇯🇵 Japan | ⬛ Low | |
|
|
| --- |
|
|
| ## 🚀 How to Use |
|
|
| 1. **Upload a road image** using the image input panel (drag & drop, camera capture, or paste from clipboard). |
| 2. **Adjust thresholds** (optional): |
| - **Confidence Threshold** (default: `0.25`) — minimum detection confidence score. |
| - **IoU Threshold** (default: `0.45`) — suppresses overlapping boxes. |
| 3. **Select the country** where the photo was taken for pothole density context. |
| 4. Click **🔍 Detect Damage** (or the image auto-triggers detection on upload). |
| 5. View the **annotated output image** + **Detection Summary**, **Pothole Report**, and **Country Context** tables. |
|
|
| --- |
|
|
| ## 📊 Output Explained |
|
|
| ### Detection Summary |
|
|
| A per-class breakdown table showing: |
|
|
| - Count of each damage type detected |
| - Percentage of total detections |
|
|
| ### Pothole (D40) Report |
|
|
| | Field | Description | |
| |------------------|------------------------------------------------| |
| | Pothole Count | Number of D40 boxes detected | |
| | % of Detections | Proportion of potholes vs all damage | |
| | Severity | Critical / Moderate / Low / None | |
| | Avg Confidence | Mean confidence score for pothole boxes | |
|
|
| **Severity thresholds:** |
|
|
| - 🔴 **CRITICAL** — Potholes > 30% of all detections → Immediate repair needed |
| - 🟠 **MODERATE** — Potholes > 10% → Schedule maintenance |
| - 🟡 **LOW** — Any potholes detected → Monitor road surface |
| - 🟢 **NONE DETECTED** — Road surface OK |
|
|
| ### Country Context |
|
|
| Provides pothole density, dominant damage types, and data collection method for the selected country as documented in the RDD2022 dataset. |
|
|
| --- |
|
|
| ## 🧠 Model Details |
|
|
| | Property | Value | |
| |---------------|---------------------------| |
| | Architecture | YOLOv8s (small) | |
| | Weights file | `yolov8s_best.pt` | |
| | Input size | 640 × 640 px | |
| | Classes | 4 (D00, D10, D20, D40) | |
| | Framework | Ultralytics YOLOv8 | |
| | Device | CUDA (GPU) / CPU fallback | |
|
|
| --- |
|
|
| ## 📁 Dataset — RDD2022 |
|
|
| - **Total images:** 47,420 |
| - **Countries:** India, Japan, United States, Czech Republic, China, Norway |
| - **Annotation format:** Bounding boxes (YOLO format) |
| - **Reference:** [Arya et al., 2022 — arxiv:2209.08538](https://arxiv.org/abs/2209.08538) |
|
|
| --- |
|
|
| ## 🗂️ Repository Structure |
|
|
| ```text |
| Automated-Road-Damage-Detection/ |
| ├── app.py # Gradio UI + inference pipeline |
| ├── predict.py # Standalone prediction script |
| ├── yolov8s_best.pt # Fine-tuned YOLOv8s weights (22.5 MB) |
| ├── rdd2022.yaml # Dataset config (class names, paths) |
| ├── requirements.txt # Python dependencies |
| ├── examples/ # Sample road images (6 countries) |
| │ ├── india_test_image.jpg |
| │ ├── China_Drone_000253.jpg |
| │ ├── United_States_004798.jpg |
| │ ├── Czech_test_image.jpg |
| │ ├── China_Drone_000295.jpg |
| │ └── norway_road_test.jpg |
| └── README.md |
| ``` |
|
|
| --- |
|
|
| ## 🔧 Local Setup |
|
|
| ```bash |
| # Clone the Space |
| git clone https://huggingface.co/spaces/ProjectRoadDamageDetection/Automated-Road-Damage-Detection |
| cd Automated-Road-Damage-Detection |
| |
| # Install dependencies |
| pip install -r requirements.txt |
| |
| # Run the app |
| python app.py |
| ``` |
|
|
| The app will be available at `http://localhost:7860`. |
|
|
| --- |
|
|
| ## 📦 Requirements |
|
|
| ```text |
| gradio>=4.0 |
| ultralytics |
| torch |
| torchvision |
| numpy |
| Pillow |
| opencv-python |
| ``` |
|
|
| --- |
|
|
| ## 📄 License |
|
|
| This project is licensed under the **MIT License** — see the [LICENSE](https://opensource.org/licenses/MIT) for details. |
|
|
| --- |
|
|
| ## 📚 Citation |
|
|
| If you use this work or the RDD2022 dataset, please cite: |
|
|
| ```bibtex |
| @article{arya2022rdd2022, |
| title = {RDD2022: A multi-national image dataset for automatic Road Damage Detection}, |
| author = {Arya, Deeksha and Maeda, Hiroya and Ghosh, Sanjay Kumar and Toshniwal, Durga and Mraz, Alexander and Kashiyama, Takehiro and Sekimoto, Yoshihide}, |
| journal = {arXiv preprint arXiv:2209.08538}, |
| year = {2022} |
| } |
| ``` |
|
|
| --- |
|
|
| ## 🙌 Acknowledgements |
|
|
| - [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) for the object detection framework |
| - [RDD2022 Dataset](https://arxiv.org/abs/2209.08538) for the training data |
| - [Gradio](https://gradio.app/) for the web interface |