A Flutter app that detects a plant's disease given a photo of an affected part of the plant.
A Flutter installation is required to run this project. To install Flutter, visit the official installation documentation. Set up an editor of choice as specified here.
Download the project.
git clone https://github.com/root458/Plant-Disease-Detector.git
Run the below command inside the project directory to install necessary packages.
flutter pub get
To run the project in debug mode
flutter run
To generate a release build
flutter build apk
Locate the app-release.apk
file from the directory build/app/outputs/flutter-apk/
and install in your Android smartphone or emulator to use.
On launching the application, you will be presented with the usage instructons. It follows that to get a suggestion of a disease affecting a plant of interest, take a photo of the plant, or select a photo of the plant from your gallery
.
The application then runs the TFLITE model in the background to get a suggestion of the disease.
It displays the results on the next screen Suggestions
-
The
tflite
model has been trained to detect only a subset of the diseases. They include:- Pepper Bell Bacterial Spot
- Pepper Bell Healthy
- Potato Early Blight
- Potato Healthy
- Potato Late Blight
- Tomato Bacterial Spot
- Tomato Early Blight
- Tomato Healthy
- Tomato Late Blight
- Tomato Leaf Mold
- Tomato Septoria Leaf Spot
- Tomato Spotted Spider Mites
- Tomato Target Spot
- Tomato Mosaic Virus
- Tomato Yellow Leaf Curl Virus
-
The size of the dataset was only sufficient enough to make the model recognize selected diseases, but it faces problems with images of non-plants.
-
The application was built using Flutter and a
tflite
model from Teachable Machine Learning by Google. The dataset was from KAGGLE.
Contributions towards the project are welcome. Specifically:
- The
tflite
model used can be replaced with a more accurate one/one with more diseases. - The responsiveness of the application can be improved.
- Warning messages can be added for non-plant inputs made by users.
The requirements I set have been made possible. However, the application can still be improved.
Additions/improvements can be made as specified in the Contributing
section.