Plant disease detection with machine learning

I have been playing with transfer learning in various ML frameworks for a while, and looking for a good use case. Eventually I came across an interesting dataset - 50,000 images of classified plant diseases, from Plant Village.

I trained a classifier in TensorFlow on top of pre-trained Inceptionv3, using the plant dataset for fine tuning, following Pete Warden's excellent blog post. I then deployed the trained Tensorflow model on Android - which to my surprise, after a bit of fiddling, runs inference several frames per second. That's right, real time deep learning on the phone.


Putting it to use

I happened to show the prototype to a buddy of mine who works at and they loved it. As it happens, they are working on building a chat bot for farmers in Kenya, to give farmers easier access to markets to sell their produce.

So I am currently working with them on adding plant disease detection from mobile photos to the chat bot, that can be easily used by farmers in Kenya to classify and find out more about plant diseases affecting their crop. There is only 1 agronomist per 5000 farmers in Kenya, so help is sorely needed.


Next steps

Next steps are running the chat bot with a human agronomist classifying pictures people send them. That way we can gather more ground truth verified image data from the crops that Kenyan farmers most care about, and add to our existing data set to make it more robust. Once we have a well performing new model trained on the updated data set, we will start deploying the automated plant disease recognition on the chat bot.

There are many applications for machine learning in agriculture, and some things I would like to experiment with are CNN's and semantic segmentation from drone images of large fields. Also using deep learning on images shot with NDVI or hyperspectral cameras would help in classifying areas that need more fertiliser, pesticides or water - to cut down their unnecessary use.