Farmers who grown plant/vegetables are facing lot of economical Loss every year because of various Disease that can happen to a plant/vegetables . In our problem i have found 38 different types of disease of 15 plants . If a farmer can detect these early and apply appropriate treatment it can save lot of waste and prevent the economical loss .
In this Project , i have build an end to end machine learning Project in Agriculture Domain to solve the problem of Plants disease. In this Project i have build a web application using React.js
which will deployed to the cloud and anywhere form the world can acess this applicaiton . All they just need to do give the image of the leaves of plant and the application will tell you disease of the plant with accuracy . Behind the scenes it will be using deep learning model and CNN .
Steps that i have Followed In order to implement this project: Step 1: Data Collection (Used Open Database) Step 2: Model Building Step 3 : MLOPs Step 4: Deployemnt of Model (GCP/AWS) Step 5: Frontend Development
Steps to install and Start the apps.
- Install Python (Setup instructions)
- Make a Virtual Env.
- Install Python packages
pip3 install -r api/requirements.txt
- Install Tensorflow Serving (Setup instructions)
- Install Nodejs (Setup instructions)
- Install NPM (Setup instructions)
- Install dependencies
cd frontend
npm install --from-lock-json
npm audit fix
-
Copy
.env.example
as.env
. -
Change API url in
.env
.
Note :- If have gpu based machine then run it otherwise it will take more than a day for model building . or you can reduce the size of data from every folder then train the model.
- Download the data from kaggle.
- Keep all the data in a seprate folder in a project directory.
- Run Jupyter Notebook in Browser.
jupyter notebook
- Open
training/potato-disease-training.ipynb
in Jupyter Notebook. - In cell #2, update the path to dataset.
- Run all the Cells one by one.
- Copy the model generated and save it with the version number in the
models
folder.
- Get inside
api
folder
cd api
- Run the FastAPI Server using uvicorn
uvicorn main:app --reload --host 0.0.0.0
- Your API is now running at
0.0.0.0:8000
- Get inside
api
folder
cd api
- Copy the
models.config.example
asmodels.config
and update the paths in file. - Run the TF Serve (Update config file path below)
docker run -t --rm -p 8501:8501 -v C:/Code/potato-disease-classification:/potato-disease-classification tensorflow/serving --rest_api_port=8501 --model_config_file=/potato-disease-classification/models.config
- Run the FastAPI Server using uvicorn For this you can directly run it from your main.py or main-tf-serving.py using pycharm run option (as shown in the video tutorial) OR you can run it from command prompt as shown below,
uvicorn main-tf-serving:app --reload --host 0.0.0.0
- Your API is now running at
0.0.0.0:8000
- Get inside
api
folder
cd frontend
- Copy the
.env.example
as.env
and updateREACT_APP_API_URL
to API URL if needed. - Run the frontend
npm run start
Datasets credits:- https://www.kaggle.com/arjuntejaswi/plant-village
Contact Us:- [email protected] (Hope this repo found it usefull to you then please give a star to this repo).