Winner of the Agglomeration 2.0 Hackathonπ (Team internship_needed - AG41)
PET Perplexity is an intelligent, automated polymer segregation system designed to revolutionize plastic waste management. It utilizes a cross-platform mobile application powered by advanced Computer Vision and Machine Learning to detect, classify, and analyze PET bottles in real-time.
The system addresses the challenge of segregating plastic waste by identifying key attributes such as bottle presence, size, brand, and material properties.
- Real-time Object Detection: Instantly detects PET bottles within a video feed or captured image.
- Bottle Size Classification: Automatically categorizes bottles into standard sizes (e.g., small, medium, large) to aid in sorting logistics.
- Brand Recognition: Identifies the brand of the bottle using custom-trained deep learning models.
- Material Analysis: Utilizes XGBoost algorithms to analyze polymer characteristics for precise segregation.
- Batch Scanning: Capability to process multiple items in a batch for high-throughput environments.
- User Dashboard: A comprehensive mobile interface for tracking scan history and segregation statistics.
- Framework: Flutter (Dart)
- Platforms: Android, iOS, Web
- State Management: Provider / Riverpod (Inferred)
- Architecture: Feature-first architecture (
lib/features/)
- Languages: Python, Node.js
- Frameworks: Flask, FastAPI / Uvicorn, Gradio
- Computer Vision:
- YOLOv5 / YOLOv8: For robust object detection and bounding box regression.
- OpenCV (
cv2): For image preprocessing and frame manipulation.
- Deep Learning Models:
- EfficientNet-B2: Finetuned for high-accuracy bottle size classification.
- Custom CNNs (PyTorch): For brand logo detection and classification.
- Machine Learning:
- XGBoost: For tabular data analysis and material property prediction.
The system operates on a microservices-based architecture where the Flutter app communicates with specialized ML services:
- Detection Layer: The input image is passed through a YOLO model to detect the presence and location of a bottle.
- Dimension Layer: Cropped regions of interest are sent to the Dim Predictor (EfficientNet-B2) to estimate physical dimensions and volume.
- Brand Layer: The Brand Predictor analyzes visual features to classify the bottle's brand, aiding in source separation.
- Analysis Layer: The XGBoost model aggregates these features to make a final segregation decision.
agglomeration-2.0/
βββ internshipneeded/
β βββ agglomeration-2.0-33bf.../ # Main Flutter Application
β β βββ lib/
β β β βββ features/ # UI Screens (Home, Scan, History)
β β β βββ services/ # API Integration (Auth, ScanService)
β β β βββ main.dart # App Entry Point
β β βββ pubspec.yaml # Dart Dependencies
β β
β βββ brand_predictor/ # Brand Recognition Service
β β βββ app.py # API Entry Point
β β βββ pipeline.py # Inference Pipeline
β β βββ model_arch.py # PyTorch Model Architecture
β β
β βββ dim_predictor/ # Dimension/Size Service
β β βββ app.py # Flask App for Size Classification
β β βββ README.md
β β
β βββ Agglomeration-2.0-bottlesize/ # Size Classification Model Training
β β βββ model.py # EfficientNet-B2 Implementation
β β
β βββ Agglomeration-2.0-ML/ # Core ML & XGBoost Logic
β βββ app.py # Gradio/Python App Interface
β βββ xgboost_main.py # XGBoost LogicContributions are always welcome!
- Fork the repository.
- Create a feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes.
- Open a Pull Request.
- Aditya (Mobile App & UI/UX Development)
- Samarth Agarwal (Backend Development)
- Apurva Arya, Arnav Tripathi, Suryansh Kulshreshtha (AI & ML/DL Model Development)