Agriculture is the backbone of many economies, yet plant diseases continue to cause massive crop losses every year. What if farmers could detect diseases instantly using just an image?
Thatβs exactly what this project does π
π Overview
The Plant Disease Detection System is an AI-powered web application that leverages Deep Learning (CNN) to identify plant diseases from leaf images. Along with detection, it also provides fertilizer recommendations, treatment steps, and prevention guidance.
Built using TensorFlow + Django, this project bridges the gap between AI and real-world agriculture πΎ
π― Key Features
π Real-time Disease Detection
Upload a plant leaf image and get instant predictionsπ― High Accuracy
Achieves 81β84% accuracy across 38 disease classesπ Smart Recommendations
Get treatment steps, fertilizers, and prevention tipsπ Prediction History
Track all predictions with timestampsπ± Responsive UI
Works smoothly on desktop, tablet, and mobileπ REST API Support
Easy integration with mobile appsπ Secure System
CSRF protection, file validation, and sanitized inputs
πΎ Supported Crops & Diseases
The model supports 38 disease classes across multiple crops:
- π Tomato (10 classes)
- π₯ Potato (3 classes)
- π½ Corn (4 classes)
- πΆοΈ Pepper (2 classes)
- π Additional crops included
πΈ Application Workflow
- Upload a leaf image
- Model analyzes using CNN
- Returns:
- Disease name
- Confidence score
- Treatment
- Fertilizer advice
- Prevention tips
π Quick Start
π§ Prerequisites
- Python 3.8+
- pip
- Virtual environment (recommended)
- 4GB RAM
- 2GB storage
βοΈ Installation
# Clone repo
git clone https://github.com/dassomnath99/Plant-Disease-Detection.git
cd Plant-Disease-Detection
# Create virtual environment
python -m venv venv
# Activate (Windows)
venv\Scripts\activate
# Activate (Linux/macOS)
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
π€ Model Setup
Option A: Use Pre-trained Model
Place these files in /models:
plant_disease_model.h5class_names.json
Option B: Train Your Own Model
python download_data.py
python train_with_test.py
π Run Django Server
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
Open π http://127.0.0.1:8000/
π API Example
Predict Disease
POST /api/predict/
Response:
{
"success": true,
"prediction": {
"disease": "Tomato_Late_blight",
"confidence": 94.32,
"plant_type": "Tomato",
"treatment": "Apply fungicide",
"prevention": "Avoid wet foliage"
}
}
π§ͺ Model Performance
| Metric | Training | Validation | Test |
|---|---|---|---|
| Accuracy | 82.32% | 77.15% | 68.78% |
π Training Details
- Dataset: PlantVillage (54K+ images)
- Architecture: MobileNetV2 (Transfer Learning)
- Framework: TensorFlow 2.15
- Input Size: 224x224
- Model Size: ~13MB
π οΈ Tech Stack
Backend
- Django
- Django REST Framework
- TensorFlow / Keras
Frontend
- HTML5
- CSS3
- JavaScript
ML Techniques
- CNN (MobileNetV2)
- Data Augmentation
- Adam Optimizer
π± Mobile Integration
Works seamlessly with:
- React Native
- Flutter
You can easily send images using multipart API requests.
π Deployment Options
πΉ Heroku
heroku create your-app-name
git push heroku main
πΉ Docker
docker build -t plant-disease-detection .
docker run -p 8000:8000 plant-disease-detection
π Common Issues
Model not loading?
ls models/plant_disease_model.h5
Dependency issues?
pip install -r requirements.txt --force-reinstall
CORS error?
CORS_ALLOW_ALL_ORIGINS = True
π€ Contributing
Contributions are welcome!
- Fork the repo
- Create a branch
- Commit changes
- Open PR
π License
MIT License
π¨βπ» Author
Somnath Das
- GitHub: @dassomnath99
- Email: somnathdas4462@gmail.com
π Acknowledgments
- PlantVillage Dataset (Kaggle)
- TensorFlow Team
- Django Community
π‘ Final Thoughts
This project is more than just a machine learning model β itβs a step toward smart agriculture π
By combining AI + Web Development, we can empower farmers with tools that are:
- Fast
- Accurate
- Accessible
π¬ If you found this useful, consider starring the repo and sharing your feedback!
Top comments (0)