Coder Social home page Coder Social logo

sarthakpranesh / plantrecog Goto Github PK

View Code? Open in Web Editor NEW
79.0 3.0 19.0 36 MB

Free Plant Recognition App + Public API + Models

License: MIT License

TypeScript 41.26% JavaScript 11.06% Starlark 1.11% Java 29.32% CMake 0.50% C++ 13.44% Dockerfile 3.06% Shell 0.26%
plants flowers classification recognition expo android api api-rest express tensorflow2 tensorflowjs machine-learning deep-learning madeinindia react-native react hacktoberfest hacktoberfest2021 hacktoberfest2022

plantrecog's Introduction


PlantRecog aims to become or lead to the goto "Free Plant Recognition" solution. Why? As of today, 30th August 2021, there aren't many online free services or apps available to solve this problem. The existing solutions are mostly paid and have high subscription amounts per year. I want to create a fairly basic but usable set of services (app + api + models) for people who want to develop tools that recognize plants.

The current version of the project is able to recognize 299 plants using their flowers. This flower recognition model and API developed under this project are available freely in the repository. They can be self hosted by anyone who wants to use these services for building their own apps.


App

PlantRecog is now available on Google Play Store

Get it on Google Play

Or get the latest release from GitHub Release Page


Recognition Service

This is the documentation for the server API that is used in PlantRecog. This server can be hosted online to develop apps that require such a service.

Request Payload Description
get "/" {"message":"Server Up and Fine"} Index route to make sure server is running, Heroku puts the server to sleep so it'll be great to call this in start of your app to wake the server up
get "/details" {"message":"Success","payload":{"recognized":["Abutilon","Acacia",...,"Zenobia","Zinnia"]}} Get all the recognized classes for the latest model available on the server
post "/predict" content-type="multipart/form-data" parameter="image" {"messages":"Success","payload":{"predictions":[{"name":"MorningGlory","score":0.38581109046936035},{"name":"Acacia","score":0.14158271253108978},{"name":"MoonflowerVine","score":0.12431787699460983},{"name":"LilyoftheValley","score":0.06644751876592636},{"name":"FrangipaniFlower","score":0.062477629631757736}]}} Post plant image using multipart/form-data, parameter name should be image and the route will provide the top 5 prediction for the plant image

Other services used

Gyan API - https://github.com/sarthakpranesh/Gyan


Issues

If you come across any issues or have feature requests please open them here


Made with โ™ฅ

plantrecog's People

Contributors

sarthakpranesh 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  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

plantrecog's Issues

Reliability ?

Screenshot_2022-04-17-13-06-57-090_com.plantrecog.jpg
I think this app lacks a bit of precision ๐Ÿ˜…
Is this normal? Is there any way to contribute to increase the accuracy?

Find and polish minor details

Open to all suggestions.
Install the app -> Try it out -> Suggest improvements (down in comments) -> creat pull requests -> :>

cant docker build on m1 mac

cant docker build on m1 mac, can you help?
Error: Sorry! Volta currently only provides pre-built binaries for x86_64 architectures.
Error: The Node.js native addon module (tfjs_binding.node) can not be found at path: /Users/matvejivanejcik/Documents/projects/PlantRecog/server/node_modules/@tensorflow/tfjs-node/lib/napi-v8/tfjs_binding.node.
Please run command 'npm rebuild @tensorflow/tfjs-node --build-addon-from-source' to rebuild the native addon module.

Finalize API endpoints

Initial thoughts on all required APIs for v1, will update the below list if I feel some other endpoints are required

  • route to get details (version, classes recognized) about the model using the version number
  • predict route (already present but look for improvements)
  • route to scrape google and retrieving images using plant class ( can scrape images of the predicted flower to display other images to the user )
  • route to scrape Wikipedia for plant details using plant class
  • refactor all routes

Moving towards all in App computation

What
Move towards doing all processing, whether it be ML computations or scrapping the web, inside app itself.

Why
Managing your own server or using services like AWS is expensive and not very feasible for projects like this one.

Tasks

  • Moving ML processing from server side API into App
  • Scrapping web in app instead of using GyanApi

Camera buttons get cut on devices with notch

Devices that have a notch lead to a black header in place of the statusbar and the screen starts below the notch. This leads to buttons shifting below the bottom sheet, and getting covered partially.

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.