A collection of computer vision projects completed as part of the KAUST AI training program, covering classification, semantic segmentation, and transfer learning using PyTorch.
Classifying potato leaf diseases from the PlantVillage dataset using a CNN built from scratch.
- 5-layer CNN with BatchNormalization
- Residual (skip) connection from layer 2 → layer 4
- Best Val Accuracy: 98.61% (10 epochs)
- Dataset: PlantVillage — 3 classes (Early Blight, Late Blight, Healthy)
Pixel-level segmentation of underwater scenes into 8 semantic categories.
- U-Net with EfficientNet-B1 encoder (pretrained on ImageNet)
- Dataset: SUIM — divers, fish, reefs, robots, and more
- Fine-tuned classifier head, frozen encoder backbone
Binary classifier detecting whether a person is smoking or not.
- ResNet-18 fine-tuned for binary classification
- BCEWithLogitsLoss with sigmoid thresholding
- Separate train / validation / test evaluation
Detecting and segmenting water bodies in satellite imagery.
- U-Net with EfficientNet-B1 encoder
- Binary segmentation (water vs. non-water)
- Mean IoU tracked alongside loss
- Framework: PyTorch + torchvision
- Models: CNN from scratch, ResNet-18, U-Net + EfficientNet-B1
- Tools: segmentation-models-pytorch, kagglehub, tqdm, matplotlib
KAUST AI Training Program — 2025