---
# 🌿 Crop Disease Classification in Uganda — WQU Work Simulation
## 📘 Project Overview
This project is part of the **WorldQuant University (WQU) Data Science Work Simulation** and is inspired by real-world challenges in **agriculture and computer vision**.
The goal is to build a **deep learning model** that classifies images of **cassava plants in Uganda** into **five categories** — identifying whether a crop is healthy or affected by a specific disease.
Throughout the project, I worked with **Convolutional Neural Networks (CNNs)** and **Transfer Learning** techniques to improve accuracy and efficiency while preventing model overfitting.
---
## 🎯 Learning Objectives
### 🧩 Part 1 — Data Exploration & Preparation
* Explore the dataset of crop disease images.
* Check image properties, data balance, and class distribution.
* Normalize pixel values and **balance unbalanced classes** through undersampling.
* Understand the impact of **data imbalance** on model performance.
**New Terms:**
`Unbalanced classes`, `Undersampling`
---
### 🧠 Part 2 — Building a CNN from Scratch
* Convert images from grayscale to RGB and **resize them for uniformity**.
* Create a transformation pipeline to prepare data for training.
* Build a **Convolutional Neural Network** to classify crop diseases into five classes.
* Train and evaluate the model using **learning curves** to detect overfitting.
**New Terms:**
`Overfitting`, `Learning Curve`
---
### ⚙️ Part 3 — Transfer Learning & Callbacks
* Load and preprocess cassava plant images for training.
* Use **Transfer Learning** by adapting a **pre-trained image classification model** (e.g., ResNet or MobileNet).
* Apply **Callbacks** to enhance model optimization:
* **Learning Rate Scheduling** — dynamically adjust learning rate during training.
* **Model Checkpointing** — save the best-performing model automatically.
* **Early Stopping** — stop training when validation accuracy stops improving.
* Evaluate model performance usi …