code4sac / trash-ai

Web based trash image classification
https://www.trashai.org
MIT License
48 stars 29 forks source link

Trash AI: Web application for serverless image classification of trash

Website status

Project Information

Project Summary

Trash AI is a web application where users can upload photos of litter, which will be labeled using computer vision to detect and categorize litter in the image by type. Early inspiration from WADE AI streamlined this development. Trash AI will enhance the abilities of researchers to quickly label trash in photos.

Demo

image

Deployment

You can simply go to www.trashai.org to start using the tool or deploy it yourself. Current self-deployment options are local deployment with docker to remote on Amazon Web Services (AWS).

Run Local Docker Instance

docker run -p 5150:5150 -it code4sac/trashai:latest

Navigate to http://localhost:5150

If you are attempting to run on an Apple Silicon device, you might get the following error:

docker: no matching manifest for linux/arm64/v8 in the manifest list entries.

This can be remedied by specifying the build platform.

docker run --platform linux/x86_64 -p 5150:5150 -it code4sac/trashai:latest

Deploy to Any Webserver

If you want to deploy this to a static web directory and serve it using apache or nginx, you can do so with the following command using /var/www/html as an example destination directory.

# create container from latest public trash ai docker image
id=$(docker create code4sac/trashai:latest)

# copy the static files
docker cp $id:/usr/share/nginx/html /var/www/html

# remove created container
docker rm -v $id

Local Development

AWS Deployment

Continuous Integration and Continuous Delivery (CI/CD) - Github Actions

Github Actions AWS Deployment Role

Tests

Instructions for automated and manual tests here.

Functionality

Documentation on typical workflow and functionality of the tool can be found here

Contribute

We welcome contributions of all kinds.

To get started, look at the Start Here section of the project board

You can open an issue or pull request.

Here are some ideas on How to Contribute.

Please adhere to this project's Code of Conduct.