waste-classifier / README.md
santit96's picture
Stop versioning the model checkpoints, now they are downloaded from huggingface. Add env vars
dd14920
metadata
title: Waste Classifier
emoji: ♻️
colorFrom: green
colorTo: gray
sdk: streamlit
sdk_version: 1.25.0
pinned: false

Waste Classifier Streamlit App

Overview

The Waste Classifier Streamlit App is designed to detect waste in images using the EfficientDet and classify them with a fine-tuned resnet50 model into different classes. Users can upload an image containing trash, and the app will display both the uploaded and classified images in parallel columns.

Instructions

Installation

Make sure you have Python installed. Clone the repository and navigate to the project directory:

git clone <repository_url>
cd <project_directory>

Create a virtual environment and install dependencies:

python -m venv venv-waste-classifier
source venv-waste-classifier/bin/activate  # On Windows, use 'venv-waste-classifier\Scripts\activate'
pip install -r requirements.txt

Create a .env file and set the following properties:

  • CLAS_FILENAME --> The name of the waste classificator model checkpoint
  • DET_FILENAME --> The name of the waste detector model checkpoint
  • HF_DET_REPO_NAME --> The huggingface repository name of the detector model
  • HF_CLAS_REPO_NAME --> The huggingface repository name of the classifier model

You can ommit setting the last two properties if you download the models manually and put them under the models directory.

Running the App

Execute the Streamlit app with the following command:

streamlit run app.py

This will launch a local development server, and you can access the app in your web browser at http://localhost:8501.

Usage

  1. Upload an image with trash using the provided file uploader.
  2. The app will display the uploaded image in the left column.
  3. Click the "Classify trash" button to initiate the classification process.
  4. The classified image will be displayed in the right column.

Possible Classes

The app can classify waste into the following classes:

  • Cardboard
  • Compost
  • Glass
  • Metal
  • Paper
  • Plastic
  • Trash

Dependencies

  • Streamlit
  • Pillow
  • Other dependencies as specified in the requirements.txt file.