Yashmit Katekar
← All projects
ML·Shipped

Waste Classification Using CNN

Sorting waste images into 9 classes with a fine-tuned MobileNetV2

92.99%
test accuracy
View on GitHub ↗
Role
Co-lead. Built the baseline CNN, ran the Label Smoothing vs Focal Loss experiment, and worked on the Streamlit app (model wiring, bug fixes).
Team
Team of 7, co-led with Mukta
When
Aug 2026

Problem

Classify waste images into 9 classes using the RealWaste dataset (4,752 images), as a college deep learning project.

Approach

Started with a baseline CNN, then fine-tuned MobileNetV2 using transfer learning with two-phase training. The winning ideas from the team's experiments were combined into the final configuration, with 5-crop test-time augmentation on top.

Result

92.99% test accuracy and 0.9359 macro-F1, up from 69.7% for the baseline CNN and 84.3% for the early MobileNetV2. The weakest class is Miscellaneous Trash (F1 0.87). Presented and defended live.

How it fits together

  1. RealWaste dataset
    9 classes, 4,752 images
  2. Baseline CNN
    69.7%
  3. MobileNetV2
    transfer learning, two-phase training
  4. Final config
    + 5-crop test-time augmentation
  5. Streamlit app

Accuracy at three stages

  1. Baseline CNN69.7%
  2. Early MobileNetV284.3%+14.6 pts
  3. Final config + 5-crop TTA92.99%+8.7 pts

Features

  • Upload an image and get a classification with confidence bars
  • Live webcam detection
  • Model Specs tab
  • Light/dark toggle

Challenges

Streamlit bugs: CSS leaking out as text, camera Stop-button lag, and a theme toggle crash. Also, a glass tumbler was misclassified because of a domain gap in the dataset.

What I learned

Transfer learning made the biggest jump, from 69.7% for my baseline CNN to 84.3% with an early MobileNetV2, and combining the team's winning ideas got it to 92.99%. A strong test score doesn't guarantee real-world behaviour: the glass tumbler was misclassified because of a domain gap in the dataset. Wiring the model into Streamlit brought its own bugs, so the app needed debugging too, not just the model.

Tech

PythonPyTorchMobileNetV2Google ColabStreamlitOpenCV

Screens

Live webcam detection: a notebook held up to the camera is classified as Paper
Upload classification: an uploaded cardboard image is classified as Cardboard
Live webcam detection: a steel bottle is classified as Metal
The Model Specs tab, with the specs of the model

Live webcam detection: a notebook held up to the camera is classified as Paper

1 / 4