Is it possible to detect diseases in plants using just images (of their leaves)? It turns out that we can!
This was a Research Project that I worked on from Aug 2019 - Aug 2020 at BITS Pilani.
About
The aim of this project is to automate the process of identifying diseases in plants. I focus on the Downy Mildew disease found in Pearl Millets (Bajra).
Collecting data
The data was collected from Agriculture University, Jodhpur under the ICAR-AICPMIP. I along with a fellow PhD candidate, went to the fields and snapped pictures with our cameras. Between the two of us, we were able to capture about 750 images. For ease in labelling, we divided into two parts - ears and leaves. Each category is further subdivided into healthy and diseased.
The exact number of collected samples is given below:
Plant Feature | Type | Number |
---|---|---|
Leaves | Healthy | 235 |
Leaves | Diseased | 206 |
Ears | Healthy | 211 |
Ears | Diseased | 110 |
Total | - | 762 |
Basic methodology
Our aim is to be able to detect diseased plants by identifying components which could be infected.
The challenge was to develop models that can identify the general features of a disease from a relatively small dataset. It would also be beneficial if the model could focus on just the leaves and ears while ignoring irrelevant features like the image’s background, orientation, etc. To facilitate this, I used a general framework that could be used to detect these diseases in any image:
Overview:
- Use an object detection model to draw bounding boxes on all relevant objects (leaves and ears) in the image
- Use another model to separate each image into background and foreground
- Feed the processed image to a third model that detects the presence/absence of diseases
Pseudo code:
1
2
3
4
5
6
7
For each object in the image:
crop all area outside the bounding box
separate the area in the bounding box into background and foreground
replace the background pixels with zeros
Resize the object to specified size while maintaining the aspect ratio and pad with zeros
Get predictions for the processed object (single prediction)
label entire image with the relevant disease labels
Example:
Results
The project is still ongoing. I am currently working on training the object detection model as well as recording my findings in a research paper that I will then (hopefully) publish.
I will edit this section once I move forward with any step.