Most of our team comes from India. We’d witnessed the robbing of numerous farmers’ livelihoods due to preying middlemen, landlords, or simply a lack of relevant knowledge. We were surprised to find that there were no existing apps that focused on increasing accessibility of this knowledge for impoverished farmers. Thus, it became clear to us that there’d be prominent utility for an app that could combat crop diseases, predict shock events such as droughts or floods, and provide useful information like the best crop to grow based on the farmland’s geographical features. Moreover, this presented our team with an opportunity and a challenge—to utilize our machine learning and app development skillsets to better the lives of millions.
What it does
CropBot currently features a UI that hosts an assistant (of the same name, i.e., CropBot) who allows the user to utilize the following features:
Crop Disease Detection: The farmer takes a picture of the suspected crop using our app. The detector model then classifies the image as one out of thirty-eighty possible diseased crops and suggests what to do next.
Weed Detection: The farmer takes a picture of the weed using our app. The detector model then classifies the image as either a grass-weed or a broadleaf-weed and suggests what to do next.
Disaster Prevention: The app gives farmers the best agricultural decisions to make when facing floods, droughts, or other natural disasters.
Daily Notification System: The farmer receives personalized daily notifications regarding weather, temperature, humidity, and other useful farming-related features.
Best Crop Prediction: The farmer can ask CropBot to figure out the best crop to produce with respect to the farmer's location. CropBot will then reply with one out of twenty-one possible crops to grow.
Drought Prediction: The farmer can ask CropBot to predict whether a drought is approaching the farmer's location.
How we built it
Frontend was built in swift and xcode. The machine learning models were built with keras in TF 2.0. Live data to feed into machine learning models were built via a REST api.
## Challenges We Faced Finding sufficient data was a rather tricky process, with certain intended app features having substantial datasets to train our models from, and certain others requiring us to actually put together our very own datasets by aggregating statistics from various websites. On the whole, however, it was a very educational and grounded scoping of the extent of data collection and research in agriculture today.
What we've accomplished (from a machine learning perspective)
~99.6% validation accuracy on the Best Crop Predictor
~98% validation accuracy on the Crop Disease Detector
~95% validation accuracy on the Weed Detector
~90% validation accuracy on Drought Predictor
What we've learned
Besides the technical growth we've all imbibed, we've learned about the depressing struggles that low-income farmers across the world have to go through—about how, for instance, 11 Indian farmers commit suicide every day due to poverty, lack of sufficient access to useful information, and vulture-like landlords and loan sharks. We've, however, also learned about the satisfyingly gargantuan amount of research that's been diligently focused on helping these farmers out. From the profound perspectives we gained from communicating with farmers in India to our emphatic sighs of relief when we managed to actually achieve our technical goals, this experience has taught us an immense amount in a variety of domains, and for that, we are grateful to have been given this opportunity.
What's next for CropBot
We've intended for several updates, both on the machine-learning side and the UI side. On the machine learning side, besides utilizing user data to improve our models over time, we plan to inculcate several new features as we gather more and more data. Some of these include:
An irrigation scheduling utility that discerns the best times of day to irrigate the farmer's field(s). Consistent and smart irrigation is vital to maximizing crop yields and also ensuring that crops don't die.
A fertilization scheduling utility that discerns the best times of day to fertilize the farmer's field. Like with irrigation, smart fertilization would allow the farmer to maximize their crop yields.
A land utilization utility that allows the farmer to efficiently and strategically sow their crops according to the geography of the location. Restuccia et al. (2017) explain how maximizing the utility of a farmer's land could potentially lower the disparity between the yields of rich and poor farmers from 214% to a mere 5%!
We intend to deploy the API scalably on google cloud in the coming weeks, so our application can scale when we release it on the app store.