According to the Food and Agriculture Organization of the United Nations (FAO), 60 Billion USD worth of crops are lost every single year due to crop diseases. In today’s world, food shortage is a huge global issue, especially among a pandemic like this, where economic problems plague society. We believe that machine learning can be used for early diagnosis of plant diseases, so that farmers, as well as individual people, can take the necessary action. This can help eradicate many plant diseases, as well as improve the efficiency of the current system, where the plants are inspected by humans. This system is very inefficient and takes a long time. This app is targeted towards both commercial farmers, and home growers, who wish to grow their own plants.

What it does

DizPlant is a mobile app that uses advanced camera vision models to instantly diagnose plant diseases based on an input image of a leaf of the plant. The users can either upload or take an image of the plant in our app, and then get easy to read flashcards that display the predicted disease, and ways to solve it and get help. DizPlant also has an integrated google maps feature, where the user can find nearby plant shops and agricultural experts to tend to their plants, and find new and disease-free plants to buy. This feature seamlessly links with the google maps app. Our app is compatible with both android and iOS devices.

How we built it

  • React Native for front-end UI
  • Flask for back-end server endpoints
  • Keras + Tensorflow with MobileNet CNN model for disease prediction.
  • Kaggle dataset to train the models (> 94% accuracy on test dataset).
  • MongoDB Atlas for storing user data
  • Google Places API for maps integrations.
  • Figma for UI design
  • ngrok for testing
  • How the camera vision works - the image from the front-end is first encoded as a base64 string, and then sent to our Flask server via POST request json data. Our server decodes this string back to its original image form, and runs the ML algorithms, and then sends back the prediction as json data.

Challenges we ran into

Our biggest challenge was getting the machine learning model to get a high accuracy. We tried multiple models such as darknet, DNN, logistic regression etc. before getting good results. Other challenges included getting the image data to work over REST API seamlessly, as well as the MongoDB integrations.

Accomplishments that we're proud of

We are very proud of creating a machine learning model with over 94 % accuracy. This is really good, considering there are 38 classes for prediction. We are also proud of integrating machine learning with a react native app, and creating a clean user interface. Lastly, we are proud to have accomplished a seamless integration with our backend machine learning model by using base64 image strings to transfer image data and receive prediction data.

What we learned

We learnt how to use base64 strings to send images over REST API and react native. We also learned how to use MongoDB atlas, and integrate it with our react native application through our flask backend server. We also learned how to use Keras together with tensorflow to create a MobileNet Convolutional Neural Network to predict plant disease. Lastly, we learned how to use google places API, and integrate it with our front end in realtime.

What's next for DizPlant

Next, we hope to integrate Google authentication as a login and registration system. We hope to expand our model to accommodate for more diseases and plant varieties. We hope to make our user interface more flexible to fit different screen aspect ratios. Lastly, we hope to integrate our application with drones, in order to make detecting plant diseases scalable and efficient for a high volume of plants.

Built With

Share this project: