Potholes have become a huge problem for most drivers. With the South African government spending over R22 billion over the past 3 years on pothole repair programs and the Automobile Association(AA) acknowledging more than 5% of road deaths to unmaintained road structure (potholes).
# 🕳️ MIIA Pothole Image Classification - South Africa
> **Potholes have become a huge problem for most drivers.** With the South African government spending over R22 billion over the past 3 years on pothole repair programs and the Automobile Association (AA) acknowledging more than 5% of road deaths to unmaintained road structure (potholes).
This repository contains an end-to-end Machine Learning pipeline to classify images of roads and detect the presence of potholes. By automating this detection process, we can significantly accelerate road maintenance, reduce vehicle damage, and save lives on South African roads.
---
## 📑 Table of Contents
- Project Overview
- Architecture & Flow
- Dataset
- Project Structure
- Installation
- Usage
- Model Training
- Evaluation & Results
- Future Work
- Contributors
---
## 🚀 Project Overview
The goal of this project is to build a robust image classification model capable of distinguishing between normal roads and roads with potholes. The model is trained on a diverse dataset of road images, specifically focusing on the varying conditions of South African infrastructure.
### Key Objectives:
- **High Accuracy:** Achieve reliable classification to minimize false positives/negatives.
- **Scalability:** Design a pipeline that can be integrated into mobile apps or dashcams.
- **Social Impact:** Assist local municipalities in prioritizing road repairs.
---
## 🏗️ Architecture & Flow
The following diagram illustrates the end-to-end flow of the pothole classification pipeline:
```mermaid
graph TD
subgraph Data Pipeline
A[Raw Image Data] --> B[Data Preprocessing]
B --> C[Resizing & Normalization]
C --> D{Data Augmentation}
D -->|Flip, Rotate, Zoom| E[Training Set]
D --> F[Validation Set]
D --> G[Test Set]
end
subgraph Model Architecture
E --> H[Convolutional Neural Network CNN]
F --> H
H --> I[Feature Extraction]
I --> J[Fully Connected Layers]
J --> K[Softmax / Sigmoid Output]
end
subgraph Evaluation & Deployment
K --> …