RoadDamageDetection
Road damage detection application, using YOLOv8 deep learning model trained on Crowdsensing-based Road Damage Detection Challenge 2022 dataset
Install / Use
/learn @oracl4/RoadDamageDetectionREADME
Road Damage Detection Applications
This project is road damage detection applications that designed to enhance road safety and infrastructure maintenance by swiftly identifying and categorizing various forms of road damage, such as potholes and cracks.
Performing Detection Using Image

Performing Detection Using Video

The project is powered by YOLOv8 deep learning model that trained on Crowdsensing-based Road Damage Detection Challenge 2022 dataset.
There is four types of damage that this model can detects such as:
- Longitudinal Crack
- Transverse Crack
- Alligator Crack
- Potholes
Running on Local Server
This is the step that you take to install and run the web-application on the local server.
# Install CUDA if available
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
# Create the python environment
conda create -n rdd python=3.8
conda activate rdd
# Install pytorch-CUDA
# https://pytorch.org/get-started/locally/
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia
# Install ultralytics deep learning framework
# https://docs.ultralytics.com/quickstart/
pip install ultralytics
# Clone the repository
git clone https://github.com/oracl4/RoadDamageDetection.git
cd RoadDamageDetection
# Install requirements
pip install -r requirements.txt
# Start the streamlit webserver
streamlit run Home.py
Web Demo
🎈Webserver Online Demo
You can access the webserver demo on the streamlit cloud. But due to hardware limitations, some functions may not be working as intended. Such as, the realtime detection cannot capture the webcam input and slow inference on video detection.
Training
Prepare the Dataset
Download the datasets from this github and you can extract the RDD2022.zip files into this structure.
/home/oracl4/project/rdd/dataset/RDD2022/
├── RDD2022_all_countries
│ ├── China_Drone
│ │ └── train
│ │ ├── annotations
│ │ │ └── xmls
│ │ ├── images
│ │ └── labels # Created after prepare dataset process
│ ├── China_MotorBike
│ │ └── ...
│ ├── Czech
│ │ └── ...
│ ├── India
│ │ └── ...
│ ├── Japan
│ │ └── ...
│ ├── Norway
│ │ └── ...
│ └── United_States
│ └── ...
└── rawData # Not Used, .zip folder
Perform the dataset conversion from PascalVOC to YOLOv8 format using 0_PrepareDatasetYOLOv8.ipnb notebook. This will also create a train and val split for the dataset due to lack of test labels on the original dataset. It will also remove excess background image from the dataset. It will copy the dataset and create a new directory on the training folder.
├── dataset
│ └── rddJapanIndiaFiltered
│ ├── India
│ │ ├── images
│ │ │ ├── train
│ │ │ └── val
│ │ └── labels
│ │ ├── train
│ │ └── val
│ ├── Japan
│ │ └── ...
│ └── rdd_JapanIndia.yaml # Create this file for YOLO dataset config
└── runs
Run the training on 1_TrainingYOLOv8.ipynb notebook. You can change the hyperparamter and training configuration on that notebook.
Evaluation Result
This is the training result of the YOLOv8s model that trained on the filtered Japan and India dataset with RTX2060 GPU. You can perform the evaluation on your dataset with 2_EvaluationTesting.ipynb notebook, just convert your dataset into ultralytics format.
<p align="center"> <img src='resource/PR_curve.png' width='80%'> <img src='resource/confusion_matrix.png' width='80%'> <img src='resource/val_batch2_pred.jpg' width='100%'> </p>License and Citations
- Road Damage Dataset from Crowdsensing-based Road Damage Detection Challenge (CRDDC2022)
- All rights reserved on YOLOv8 license permits by Ultralytics and Streamlit framework
This project is created for the Road Damage Detection Challenge by Ministry of Public Works and Housing for celebrating the "Peringatan Hari Jalan 2023"
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
isf-agent
a repo for an agent that helps researchers apply for isf funding
