DEV Community

Cover image for 🌿 Plant Disease Detection System
Somnath Das
Somnath Das

Posted on

🌿 Plant Disease Detection System

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

  1. Upload a leaf image
  2. Model analyzes using CNN
  3. 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
Enter fullscreen mode Exit fullscreen mode

πŸ€– Model Setup

Option A: Use Pre-trained Model

Place these files in /models:

  • plant_disease_model.h5
  • class_names.json

Option B: Train Your Own Model

python download_data.py
python train_with_test.py
Enter fullscreen mode Exit fullscreen mode

🌐 Run Django Server

python manage.py makemigrations
python manage.py migrate
python manage.py runserver
Enter fullscreen mode Exit fullscreen mode

Open πŸ‘‰ http://127.0.0.1:8000/


πŸ”Œ API Example

Predict Disease

POST /api/predict/
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "success": true,
  "prediction": {
    "disease": "Tomato_Late_blight",
    "confidence": 94.32,
    "plant_type": "Tomato",
    "treatment": "Apply fungicide",
    "prevention": "Avoid wet foliage"
  }
}
Enter fullscreen mode Exit fullscreen mode

πŸ§ͺ 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
Enter fullscreen mode Exit fullscreen mode

πŸ”Ή Docker

docker build -t plant-disease-detection .
docker run -p 8000:8000 plant-disease-detection
Enter fullscreen mode Exit fullscreen mode

πŸ› Common Issues

Model not loading?

ls models/plant_disease_model.h5
Enter fullscreen mode Exit fullscreen mode

Dependency issues?

pip install -r requirements.txt --force-reinstall
Enter fullscreen mode Exit fullscreen mode

CORS error?

CORS_ALLOW_ALL_ORIGINS = True
Enter fullscreen mode Exit fullscreen mode

🀝 Contributing

Contributions are welcome!

  1. Fork the repo
  2. Create a branch
  3. Commit changes
  4. Open PR

πŸ“ License

MIT License


πŸ‘¨β€πŸ’» Author

Somnath Das


πŸ™ 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)