Inspiration

Cassava is the third-largest source of carbohydrates for human food in the world but is vulnerable to virus diseases, which threaten to destabilize food security in sub-Saharan Africa. cassava is a key food security crop grown by small-holder farmers because it can withstand harsh conditions. At least 80% of small-holder farmer households in Sub-Saharan Africa grow cassava and viral diseases are major sources of poor yields. Providing a solution that will enable the farmers to detect disease in their cassava plants for them to know which of the cassava plant they need to take care of and also the kind of care needed to be given to the infected plant based on the disease it infected with. Innovative methods of cassava disease detection are needed to support improved control which will prevent this crisis. Image recognition offers both a cost-effective and scalable technology for disease detection. Knowing that AI could be used to provide a solution to this problem and also be consumed by farmers within my locality is really great inspiration for me to embark on the project. With the availability of a public hosted dataset of cassava disease on Kaggle and also an example of image classification with TensorFlow Lite provided on TensorFlow GitHub repository I was able to achieve this.

What it does

Cassava Disease Classify is a mobile application that uses the phone camera to classify a given image into four disease categories and a fifth category indicating a healthy leaf.

How I built it

Python and TensorFlow 2.0 was used in the building of the model. Also, make Use of Google Colab free GPU for training and Google Drive to keep everything synced. Using a dataset of cassava disease images from a Kaggle, the dataset consists of leaf images of the cassava plant, with 9,436 annotated images. Artificial Neural Network predicts the outcome by learning through examples and previous experiences. Artificial Neural Network computations carried out in parallel and create their own representation of information that they receive during the learning time. In the artificial Neural Network, just add in one more layer which is a convolutional layer. After building the model, for it to be used on a mobile phone it needs to be exported as TFLite. I then export the model as TFLite along with the labels. It uses Image classification to continuously classify Cassava disease it sees from the device's back camera. Inference is performed using the TensorFlow Lite Java API which is classified into four disease categories based on the dataset we made us of.

Challenges I ran into

The first challenge was computational power even the fact that I ran the model on GoogleColab GPU it still takes a lot of time for the model to finish building because of the speed of my Machine, even with small epochs. The model was run severally in order to improve accuracy. The second was the dataset, some of the classes have fewer datasets in them which didn't give the model more data to learn with.

Accomplishments that I'm proud of

I was able to build the model and deploy it on a mobile device and it was able to predict 80% of the test data correctly.

What I learned

I learned how to use TensorFlow Lite - to deploy my models on a mobile device. also, learn deep learning for image classification and its challenges.

What's next for Cassava Disease Classify

A better UI/UX design for the mobile app and also more data to train the model to give better accuracy.

Built With

Share this project:

Updates