Skip to content

bhavani-mahalakshmi/Image-Recogonition-as-a-Service

Repository files navigation


Elastic Web Application - Image Recognition

A web application that uses AWS EC2, SQS and S3 to provide image recognition as a service to users.

Table of Contents
  1. About The Project
  2. Getting Started
  3. License
  4. References

About The Project

This is the project for the course CSE 546 - Cloud Computing. It consists of a three-tier architecture (web-tier, app-tier and the data-tier) which uses AWS resources to elastically scale in and out proportionally with respect to the load.

High level overview:

  • The web-tier consists of a flask server that allows users to upload images. The server pushes the images along with a unique identifier to SQS input queue and reads the output SQS queue to return the classification of the image to the user.
  • The app-tier consists of a back-end service that reads the input queue, puts the image into the input S3 bucket, classifies the image, puts the result into the output S3 bucket as well as the output SQS queue.
  • The data-tier consists of the input and output S3 buckets which contain the input images and the classifications.

The web-tier also comprises an auto-scaling controller service that utilizes the length of input SQS queue to scale out automatically whereas the logic to scale in is handled in the app-tier.

(go to top)

Frameworks And Tools Used

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

(go to top)

Getting Started

This section contains instructions on setting up the project locally. To get a local copy up and running follow these simple steps.

There are two folders, web-tier and app-tier each containing their separate dependencies and code. To install the required dependencies, run

pip3 install -r requirements.txt

For running the main flask server:

cd web-tier/
flask run --host <host> --port <port>

For running the controller script to perform auto-scaling:

cd web-tier/auto-scaler/
python3 controller.py

For running the app-tier code, first install the dependancies using pip. Then run the main.py file using

python3 main.py

(go to top)

License

Distributed under the MIT License. See LICENSE.md for more information.

(go to top)

References

(go to top)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published