We were inspired by all the food shortages that happen around the world. We wanted to help solve this problem some way and detecting crop disease early can help increase crop yields.
What it does
Our app analyzes pictures of crop leaves to determine if a plant leaf is diseased. Our theoretical model uses a drone to take pictures and report diseased crops to the farmer. This can be used industrially to scan large amounts of crops for the outbreak of a disease, which can prevent massive losses.
How we built it
We trained our own Keras model to recognize plant diseases in several common crops (strawberry, bell pepper, peach, potato, apple, and others). Then, we saved the Keras model in a ProtoBuf file, so that we could use it in an Android app, using TensorFlow to integrate it. We used the Android Camera API to take pictures, a Firebase Storage/Database backend to store the pictures/user data, and the Android Google Maps API to allow the farmer to specify where the drone should scan. The integration of these 3 main API's (Firebase, Google Maps API, and TensorFlow) aided our app greatly in being practical.
Challenges we ran into
Integrating the Android app with TensorFlow was a major challenge for us. We wrote our neural network and trained it using Keras and had many errors converting it into a pb file so that it could be used by Tensorflow and Android. We were unable to determine which tensors were being used as input and output tensors, however in the end we tweaked the python code and were able to determine these tensors. We also had issues getting good accuracies without using too much data and without overfitting.
Accomplishments that we're proud of
Our major accomplishments were figuring out the Android interfacing issue, and building an android app from scratch using a wide plethora of APIs and libraries. We are proud of being able to use a network we wrote in Python into Android. We have accuracy rates of greater that 90%, proving that our neural networks are accurate. Our idea is practical as well, and we truly believe this can be implemented in the real world and lead to automation in the agriculture industry.
What we learned
We learned how to fix merge conflicts, use the Android for TensorFlow API, make polygons on Google Maps API, upload and download images to Firebase via Android, and use convert Keras (.h5) to TensorFlow protbuf (.pb).
What's next for FieldShield
Implementation in the Google Play store, and connection to actual drones. We also want farmers to actually use our app.