Inspiration
Coming from India I have multiple times heard stories or news about how thousands of Indian farmers just in the past one year have committed suicides due to inadequate knowledge or inaccessibility of resources. This motivated me to build a hack that could be easily used by farmers since this web app could also well be used on low-end mobile phones and could also help them. This also formed the major reason behind building a web app so farmers with just a mobile phone could also use this. Further, the problem of maintaining crops is even more in the COVID era and with this hack, anyone could be helped maintaining crops through the internet simply by uploading a photo!
What it does
- This hack uses Machine Learning to allow us to send an image of a plant leaf🌱 and then categorize from the features in the leaf to one under 38 different pre-specified diseases.
- As mentioned above I also am very interested to make this hack reach every single farmer around the world starting from my own country so I then integrate the Machine Learning model on the web so that everyone could use it.
- Further, using the web app is also made quite intuitive and simple. All you need to do is take an image of the plant leave (or choose one from the real-life leaf image repository for testing) and the Machine Learning model should then be able to identify the species and the kind of disease the plant is facing.
How we built it
- First off, I worked on training a quite huge Machine Learning model which could accurately classify given a plant leaf image the disease it is facing. I did this for more than 100,000 images to ensure the model could learn well from the images.
- I also experimented transfer learning, building the model from scratch using multiple architectures, distillation approaches and ended up finding a Transfer learning approach on top of the MobileNet architecture using pre-trained weights for ImageNet as the best for for this problem.
- All the Machine Learning steps for this hack were performed using TensorFlow.
- Training the Machine Learning model and performing experimentation required quite some compute power and I trained it on 2 Tesla V-100 GPUs on Google Cloud Platform specifically using AI Platform Notebooks.
- After doing so I worked on quantizing the model (to allow it perform faster inferences) and saving it in a format that it could be deployed on the web.
- Finally I worked on creating a web app with Python which could bring all these components together and also allow other to try out this model on their own images.
Challenges we ran into
- I only had access to almost 88,000 plant leave images; so I also had to create some synthetic images and perform image augmentation on these images to train a model which could perform really well.
- Another challenge I ran into was being able to run this model on the web, since a huge model couldn't be run all on the web.
Accomplishments that we're proud of
While other existing services provide identifying disease for just 1 species or 1 disease, I not only support multiple species but also support identifying multiple diseases.
What we learned
- I learned about performing distributed training since I had to train my model on multiple machines.
- I learned about deploying web applications.
What's next for Identifying Plant Diseases AI
- This would be pretty easy but is on my radar as of now; being able to not only tell the disease but also tell the potential cures for the disease. However, I have not been able to create this due to the time limit.
- Another potential update I am working on is building an API for this Machine Learning model so people trying to build Android apps or other web apps which may need this kind of functionality and could help society could simply use this model as an API!
Built With
- google-cloud
- machine-learning
- python
- tensorflow
Log in or sign up for Devpost to join the conversation.