Inspiration Every monsoon and every summer, our own city streets tell the same story — overflowing bins, garbage piling up on roadsides, and complaints that take days (sometimes weeks) to even get noticed by the municipality. We kept asking: why is waste management still stuck in a "call and complain" system when AI can already see, classify, and reason about images in real time? That question became the seed for TRASH Vision. We wanted to build something that didn't just let citizens report waste — it would let AI actually understand the complaint: what kind of waste it is, how severe it is, and how urgently it needs to be cleared, all from a single photo. What We Learned

How to combine computer vision (YOLOv8) with rule-based priority scoring to make AI decisions explainable — not just a black-box confidence score, but a reason a municipal officer can actually trust. The real-world messiness of waste classification datasets — lighting, camera angle, and mixed waste all break naive models, which pushed us to think harder about severity/volume estimation instead of pure object detection. How route optimization for garbage trucks isn't just "shortest path" — it has to factor in priority, vehicle capacity, and real-time complaint clustering. The value of designing for three very different users (citizens, field workers, city administrators) on top of one shared data pipeline.

How We Built It

Frontend: A responsive web app (React.js/HTML/CSS/JS) for citizens to snap and submit waste photos with GPS tagging, plus a real-time dashboard for municipal staff. Backend: Flask/FastAPI REST APIs handle complaint submission, AI inference requests, and status updates. AI Layer: YOLOv8 + OpenCV for waste detection and classification, with a custom severity/volume estimation module and a rule-based, explainable priority engine. Database: PostgreSQL/MySQL for complaints, user data, AI results, and analytics history. Maps & Analytics: Leaflet + OpenStreetMap for geotagging and route visualization; Chart.js for KPI dashboards and trend graphs. Deployment: Dockerized services on Render, designed to scale from a single ward to a full city.

We prototyped the workflow end-to-end first (citizen → AI → dashboard → route → status), then went back and hardened each module — starting with detection accuracy, then the priority engine, then the live dashboard. Challenges We Faced

Explainability vs. accuracy: Getting the AI priority engine to output a human-readable reason alongside a score took more iteration than the detection model itself. Severity estimation without labeled data: Volume/severity isn't a standard YOLO output, so we had to build a custom heuristic layer on top of detection results. Duplicate complaint detection: Matching new reports to existing ones by location and time without over-merging distinct issues. Real-time dashboard performance: Keeping the map and analytics views responsive as complaint volume grows. Route optimization under constraints: Balancing priority, vehicle capacity, and travel time in a way that's simple enough to compute quickly but smart enough to matter.

Share this project:

Updates

Submission history