Cloud-based recycling module with object classification
UB Electrical Engineering Capstone Design, Spring 2019
- Software Lead: Michael Lawrenson
- Image Acquisition Lead: Osama Abaali
- Peripherals Lead: Lee Yanting
- Microcontroller Lead: Justin Struzik
Raspberry Pi integrated with a compartmentalized recycling station, capable of monitoring deposits in individual totes, measuring the height of tote contents, and relaying this information to our web app via our API. In addition, the user can capture a photo of their recycleable and provide a categorical assignment by examining the symbol located on the underside. This resulting collection of crowdsourced images is aggregated and used as training data for our convolution neural network, or CNN.
Content height is measured with ultrasonic sensors, which measure the time needed to echo a trigger signal. Deposits are registed by means of continuosly monitored infrared break beams. At regular time intervals, collected information stored in-memory is used to construct an API request, syncronizing the web app with the physical system. Image files are stored in a heirarchy such that directory names are the ground-truth classification labels.
There are 3 main program branches:
- Firmware, run locally on the Pi
- Web app, run in a Docker container
- Image Analysis, eventually to be performed with Google Colaboratory
- Framework: Flask
- Styling: Bootstrap
- Graphics: Chartist.js
- MySQL
- Tensorflow
- restful API: ecoview.stateData(), ecoview.processData()
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. Real-world deployement performed with Docker.
Clone the repository to a local directory
git clone https://github.com/eco-view/ecoview.git
Make sure you have all the required python modules
pip3 install -r requirements.txt
Initialize SQL database
mysql.server start
Start the flask server
python3 app.py
By default, the server will run on port 8080
http://localhost:8080/
docker build ecoview:latest .
docker run -d -p 8080:8080 ecoview:latest
echo 'Running [ecoview] @ http://localhost:8080
- Python - Primary language
- Flask - Web framework
- MySQL - Database
- Tensorflow - Image processing
- Bootstrap - Visual styling
no outside contribution
ecoview:latest
- Michael Lawrenson - Software Lead - minelminel
This project is licensed under the MIT License - see the LICENSE.md file for details
- much love to the folks at StackOverflow