What’s your background and how did you come up with the idea for Nuru?

I have a Ph.D. in Agricultural Engineering and a minor in Computational Science. I think there are so many cool problems to solve in agriculture. One major challenge for farmers is crop disease because it hurts the farmer’s yields. About one year ago, I began working with PlantVillage, a research group at Penn State headed by David Hughes. They were collecting images of plant diseases to train AI models to classify these diseases. I began using TensorFlow along with my colleague, Peter McCloskey, to classify diseases on Cassava leaves with the goal of building a model that could be deployed on a smartphone. Six months later, Nuru was born!

What’s does your tech stack look like and what tools did you find helpful?

I recently got my group using Trello and we’re obsessed. We’re juggling building and testing Nuru, conducting peer-reviewed research, and collecting new data, so it’s great to have our workflow mapped out. We also use Slack and BaseCamp for communication. All our code is up on GitHub, which I love because it versions our work elegantly. We’re in the process of transitioning to Azure Cloud Computing, which I’m really excited about as it should really cut down our training times.

We work with collaborators to collect images from the field with mobile devices. Specifically, we use Pixel phones as they have unlimited storage and scientists can quickly upload images to Google Cloud Storage. We keep our image datasets and labels in Dropbox which is synced to every team member’s account.

What was the hardest part about building Nuru?

The hardest part is you don’t really know how well it’s going to work until you get out into the field in East Africa and do some serious testing of the model. With training data, you may think you’re doing a good job, but when you go into a farmer’s field there’s so much that’s going on. There’s so much diversity out there and it really is a challenging computer vision problem.

One big change I made to the modeling process was shifting from image classification to object detection to make the model easier to use. I realized, in order for a farmer to understand how the model was working, when she held the phone to a leaf, it was better to have a model that drew boxes around the disease symptoms to show her what the symptoms looked like and what the model was using to run inference on. These unexpected findings are part of the excitement and the learning process, though!

Do you have any advice for other developers who are looking to get started with machine learning?

Well, I think you should find a project you’re really curious about that will motivate you to learn all the nitty-gritty details about machine learning. I learned most of my machine learning skills from the Internet (Stack OverFlow, Google Search, GitHub, Coursera, etc.) so there are plenty of resources are out there. Have confidence that you can teach yourself :)