Inspiration:

Since the first planning discussion, our team had strong interest in implementing machine learning into our project. Our goal was to create something useful while also exploring the capabilities of machine learning. We were set to use some form of deep learning, which left us to choose a topic that could use it in an impactful way. Since all of us are familiar with people who are into gardening, we knew that integrating machine learning into gardening would be very useful to at least some people, so our final idea was to train some deep learning models to identify diseases in plants and help gardeners maintain a healthy garden.

What It Does:

Plant MD is an Android mobile app that can take live photos of plants, fruits, and vegetables then analyzes them for any potential disease and gives advice on how to treat them. Plant MD’s interactive mobile app UI acts as a frontend/wrapper for the API we created to request predictions from our deep learning models. The mobile app is a crucial part of the functionality because it allows users to scan plants anywhere, on the spot. The deep learning CNN models are the core of the app, trained on large datasets over thousands of iterations, providing upwards of 98% accuracy on plant disease prediction.

How We Built It:

We used various machine learning libraries and frameworks including: TensorFlow and Keras for the model and deep learning algorithms NumPy, Pandas, Matplotlib for data manipulation and visualization OpenCV, Joblib, and OS for file read and write Scikit-learn for general data preprocessing Kaggle and GitHub provided the prelabeled datasets

We also used several tools and libraries for developing the Android app including: Android studio which used the Kotlin language CameraX API for efficient camera integration Flask and Requests for restful API implementation Figma and Xml for UI/UX design

The deep learning CNN (Convolutional Neural Network) models were trained by learning algorithms provided by TensorFlow Keras. The models were trained on a variety of large (~70k datapoint) datasets provided by Kaggle and GitHub repositories. Several layers such as Conv2D, Dense layers, Pooling layers, and Dropout layers were added to the neural net, creating about 3 million parameters for the model to be trained on. The model was then trained over 50 epochs, averaging about 3 minutes per epoch. Training accuracy and validation accuracy were closely monitored to avoid overfitting. Tested accuracy was 98% on the best model and 94% average.

Challenges:

During the programming process, we faced several challenges. HackGT X was the first hackathon two of our members have attended. On top of that, none of our members have created an Android app before. The learning process for Kotlin and Android Studio was a tedious one. Plant MD was also created in three parts: UI, camera recognition, and machine learning. Connecting these components together into one proved to be a very difficult task, especially making machine learning compatible with the app.

Accomplishments:

Our group is very proud of the working UI we have implemented in Plant MD. The process of learning and implementing this program made every error feel like a maze to solve, especially for our members just beginning mobile app development. Thus, seeing our app working brought lots of pride to our group. We are also very proud of our machine learning program. Learning and creating this program in 36 hours was an intense process. This made the training and implementation of this application a source of pride for our group.

What we learned:

While making Plant MD our group learned how to use the IDE Amazon Studio. With this we had to adapt to a new coding language, Kotlin. We also learned the basics of machine learning and how to implement this technology into phone apps.

What's next:

The next steps for Plant MD are to upgrade the scan screen so that the information is given more clearly. Then we want to completely implement the “your garden” section in the app. With more time we would add more classifications to the plants the machine learning already recognizes. The inclusion of a possible recipes tab, using the plants determined as healthy, would also be a next step for Plant MD.

Share this project:

Updates