
$ cat ./waste-vision/README.md
Waste Vision
WasteVision is an end-to-end computer vision project designed to classify images of waste into organic (biodegradable) and inorganic (non-biodegradable) categories. Rather than relying on high-level deep learning frameworks like TensorFlow or PyTorch, the underlying Convolutional Neural Network (CNN)—including the forward passes, backpropagation, and stochastic gradient descent (SGD) optimization—was implemented entirely from scratch using NumPy. The model features a robust training pipeline with custom data augmentation and early stopping. The resulting inference engine is exposed through a modern, responsive Streamlit web interface that provides users with real-time predictions, confidence scores, and probability distribution visualizations.
The Problem
Proper waste segregation is a critical first step in effective waste management and recycling. However, individuals often struggle to accurately identify whether everyday items belong in the organic or inorganic bin, leading to contaminated recycling streams and inefficient waste processing.
The Solution
To address this, I developed WasteVision, a machine learning-powered web application that allows users to seamlessly upload images of waste and instantly receive a classification. The system categorizes the image as either "Organic Waste" or "Inorganic Waste" and displays a detailed breakdown of the model's confidence scores.
Technical Highlights
Engineered from First Principles: Built the entire neural network architecture from scratch using pure NumPy. This involved writing the mathematics for custom convolutional layers, activation functions, Softmax Cross-Entropy loss, and backpropagation gradients, demonstrating a profound understanding of deep learning mechanics.
Robust Training Pipeline: Implemented a comprehensive training environment featuring automated train/validation/test splits, dynamic data augmentation (horizontal/vertical flips, rotations, and brightness adjustments), and an early-stopping mechanism to prevent model overfitting.
Premium User Interface: Designed a highly polished, responsive UI using Streamlit. By injecting custom CSS, I overrode the default Streamlit widgets to create a modern aesthetic featuring custom dropzones, animated probability distribution bars, and responsive layouts.
End-to-End Execution: Managed the entire machine learning lifecycle—from data preprocessing and model training to weights serialization (
.npzformats) and real-time inference in a web environment.
The Outcome
WasteVision successfully demonstrates the ability to engineer complex mathematical models from first principles while simultaneously delivering a production-ready, visually appealing user interface that tackles a real-world environmental challenge.
$ ls ./screenshots/