Giter Site home page Giter Site logo

elphas's Introduction

Elphas

An Elephant Identification and Counting System.

About

Elphas is currently used to count the number of elephants in an image or to classify an image based on the appearence of an elephant. Project was designed to facilitate the census of elephants in Sri Lanka.

Main Functionalities Available

  1. An interface to upload a single image or a compressed file of several images (a task) to the server to process(count or classify).
  2. An option to save a task(processing of an uploaded files) for later processing.
  3. Callification of images
  • Two neural networks are available (Google's InceptionV3 and Microsoft's ResNet50)
  • Retraining is available for Inception with a custom dataset and ResNet is used as an api from Keras.
  1. Counting of elephants
  • By Tensorflow's object detection api where the NN model can be again trained with a custom dataset.
  1. Getting the count based on locations. (Images should be geo tagged)
  2. Interface to see the results.
  3. Reporting for misclassified or miscounted images.
  4. User authentication based on google account or email account and updation of passwords if using an email account.

High Level Architecture

Installation

To activate front-end, inside front-end execute

npm install

after the node modules are downloaded, execute

npm start

In the back-end you would find requirements.txt which includes all the required modules. To install those, in the back-end run

pip install -r requirements.txt

An Anaconda environment is preferred.

For Windows, as the server is written in app.py, run

set FLASK_APP=app.py
flask run

to start the server.

For linux or mac run

export FLASK_APP=app.py
flask run

to start the server.

Repo Status

At the moment, classsification of the images won't work as the weight files of the model are not present beacuse of their file size, and also the the dataset used to train the inception model is not available, you would find an empty directory inside retraining dir in back-end, if not make a directory 'dataset' inside retrain directory.

To get the classification working you'd need to run retrain.py script to retrain the model. To retrain the model, add two sub directories 'elephant' and 'non-elephant' inside dataset directory and your images which falls under the respective class, then run retrain.py script.

elphas's People

Contributors

ramitsawhney27 avatar thisunt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elphas's Issues

Violations of PEP8 conventions in the backend design

Issue: Python modules ideally should conform to PEP8 guidelines. This allows greater readability and uniformity, particularly when projects tend to scale.

Mock: Here are some of the issues in "app.py" in "back-end" that don't conform with PEP8 guidelines.

app.py:16:1: E302 expected 2 blank lines, found 1
app.py:23:80: E501 line too long (88 > 79 characters)
app.py:32:80: E501 line too long (80 > 79 characters)
app.py:39:13: E303 too many blank lines (2)
app.py:40:13: E265 block comment should start with '# '
app.py:44:1: E303 too many blank lines (3)
app.py:45:25: E231 missing whitespace after ','
app.py:60:31: E225 missing whitespace around operator
app.py:92:1: E302 expected 2 blank lines, found 1
app.py:92:52: E231 missing whitespace after ','
app.py:93:24: E231 missing whitespace after ','
app.py:95:43: E231 missing whitespace after ','
app.py:98:1: W391 blank line at end of file

Addition of unit tests

Issue: Considering the scale of SCoRe Lab, it's essential to have test suites that demonstrate the utility of functionalities of the various modules in Elphas.

Larger scale projects should have logically cohesive and independent unit test suites within a structured directory structure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.