Motivation and Objective
Early diagnosis of plant diseases allows preventative measures to reduce economic and production damage. Traditional methods are limited by available expertise. Plant surveillance by farmers is not always practical or cost-effective. Evaluate different databases and implement various neural network architectures for classifying plant diseases.
The Data
The data was taken from this dataset on Kaggle. These are a collection of 256x256 images containing leaves of many different species of plants. The leaves are also labeled with their disease status.
The Dataset
Pictured is the label count of all the data. There are thousands of images in the dataset.
The Models
As with every AI project, data preprocessing had to be performed to normalize the image data for training the models. However, the main experiment performed was on the model architecture. There were 5 different CNN models tested:
- 3 Convolutional Layers and 3 FC Layers
- 3 Convolutional Layers and 4 FC Layers
- 4 Convolutional Layers and 3 FC Layers
- 3 Convolutional Layers and 3 FC Layers and dropout in the dense layers
- 3 Convolutional Layers and 3 FC Layers and dropout in the convolutional layers
Results
The Results were promising, an accuracy of between 80-90% were the results for each model. The best results were for model 4, where dropout proved effective at improving model performance.
Further Work
This is a confusion matrix of the classification for the validation data. This tests how effective the model was at classifying each case. The results suggested an improvement. By separating the classification into the different types of plants, the performance could be improved. The model could be having to learn too many features. So one solution could be creating a series of small models for classifying each disease based on plant type. THe plant type would already be known by farmers, as crops are planted deliberately. Most of the functionality of a system like this would be to check for diseases on a known crop. Th other improvement would be to implement a more complicated model, like ResNet-18. This could recognize enough features to be effective.