|
Download README.md from tktejask/leafscan: direct link, hf CLI and curl.
- Browser
- Download file 4.1 kB
-
https://huggingface.co/spaces/tktejask/leafscan/resolve/main/README.md
- Command line
-
hf download hf://spaces/tktejask/leafscan/README.md
-
curl -L -o README.md https://huggingface.co/spaces/tktejask/leafscan/resolve/main/README.md
4.1 kB
| title: LeafScan | |
| emoji: πΏ | |
| colorFrom: green | |
| colorTo: gray | |
| sdk: docker | |
| app_file: app.py | |
| pinned: false | |
| # πΏ LeafScan β Plant Disease Detection using Deep Learning | |
| A full-stack AI application that detects plant leaf diseases from real-world images using a fine-tuned **EfficientNetB3** model trained on the PlantVillage dataset. | |
| --- | |
| ## π Live Demo | |
| * π Hugging Face Space: https://huggingface.co/spaces/tktejask/leafscan | |
| --- | |
| ## π§ Project Overview | |
| LeafScan is a real-time plant disease detection system that: | |
| * Accepts **real-world leaf images** | |
| * Detects **38 disease classes + 1 non-leaf class** | |
| * Provides: | |
| * Disease name | |
| * Confidence score | |
| * Severity | |
| * Description | |
| * Treatment suggestion | |
| * Top-5 predictions | |
| --- | |
| ## π Dataset | |
| * Source: PlantVillage Dataset | |
| * Link: https://www.kaggle.com/datasets/abdallahalidev/plantvillage-dataset | |
| * Size: ~54,000 images | |
| * Classes: 38 diseases + healthy + 1 synthetic "not a leaf" class | |
| --- | |
| ## ποΈ Model Architecture | |
| ``` | |
| Input Image (300Γ300) | |
| β | |
| EfficientNetB3 (Pretrained on ImageNet) | |
| β | |
| Feature Vector (1536) | |
| β | |
| Custom Head: | |
| Dense β GELU β Dropout | |
| Dense β GELU β Dropout | |
| Output Layer (39 classes) | |
| β | |
| Softmax Probabilities | |
| ``` | |
| --- | |
| ## βοΈ Training Strategy | |
| | Phase | Description | | |
| | ------- | -------------------------- | | |
| | Phase 1 | Train only classifier head | | |
| | Phase 2 | Unfreeze last layers | | |
| | Phase 3 | Full fine-tuning | | |
| Techniques used: | |
| * Transfer Learning | |
| * Test Time Augmentation (TTA Γ6) | |
| * AdamW optimizer | |
| * Label smoothing | |
| * Class balancing | |
| --- | |
| ## π¬ Inference Pipeline | |
| ``` | |
| Input Image | |
| β | |
| Preprocessing (Resize β Normalize) | |
| β | |
| Model Prediction | |
| β | |
| TTA Averaging | |
| β | |
| Confidence + Decision Logic | |
| β | |
| Final Output + Top-5 Classes | |
| ``` | |
| --- | |
| ## π§ͺ Features | |
| * β Works on **real-world images (not just dataset)** | |
| * β Detects **non-leaf images** | |
| * β REST API support | |
| * β Beautiful frontend UI | |
| * β Deployable locally + cloud | |
| --- | |
| ## π₯οΈ Local Deployment | |
| ### 1. Setup | |
| ```bash | |
| python -m venv venv | |
| venv\Scripts\activate | |
| pip install -r requirements.txt | |
| ``` | |
| --- | |
| ### 2. Run server | |
| ```bash | |
| python app.py | |
| ``` | |
| --- | |
| ### 3. Output | |
| ``` | |
| Model ready. | |
| * Running on http://127.0.0.1:7860 | |
| ``` | |
| --- | |
| ### 4. Open in browser | |
| ``` | |
| http://localhost:7860 | |
| ``` | |
| --- | |
| ## π Hugging Face Deployment | |
| * Platform: Hugging Face Spaces | |
| * Runtime: Flask (Docker/Spaces) | |
| * URL: https://huggingface.co/spaces/tktejask/leafscan | |
| ### What was done: | |
| * Uploaded model + backend + frontend | |
| * Configured app.py to run on port 7860 | |
| * Added README config block | |
| --- | |
| ## π API Endpoints | |
| | Endpoint | Description | | |
| | --------------------- | ------------------- | | |
| | `/api/predict` | Upload image | | |
| | `/api/predict-url` | Predict from URL | | |
| | `/api/predict-base64` | Predict from base64 | | |
| | `/api/classes` | List classes | | |
| | `/api/health` | Server status | | |
| --- | |
| ## π Model Performance | |
| * Accuracy: ~96% (on PlantVillage test set) | |
| * Supports: 38 disease classes | |
| * Handles real-world noise via TTA | |
| --- | |
| ## β οΈ Limitations | |
| * Trained on controlled dataset β real-world variation may reduce accuracy | |
| * Needs clear leaf image | |
| * Heavy model β slow on CPU | |
| --- | |
| ## π₯ Key Highlights (Interview Points) | |
| * Built **end-to-end ML system** | |
| * Used **transfer learning (EfficientNetB3)** | |
| * Implemented **TTA for robustness** | |
| * Designed **Flask API + frontend integration** | |
| * Deployed on **Hugging Face Spaces** | |
| * Handled **real-world inference issues** | |
| --- | |
| ## π¦ Project Structure | |
| ``` | |
| leaf scan/ | |
| βββ app.py | |
| βββ model.py | |
| βββ predict.py | |
| βββ metrics.py | |
| βββ models/ | |
| β βββ best_model.pth | |
| βββ data/ | |
| β βββ classes.txt | |
| βββ frontend/ | |
| β βββ index.html | |
| βββ requirements.txt | |
| ``` | |
| --- | |
| ## π οΈ Tech Stack | |
| * Python | |
| * PyTorch | |
| * timm | |
| * Flask | |
| * HTML/CSS/JS | |
| * Hugging Face Spaces | |
| --- | |
| ## π License | |
| Educational project. Dataset is public (PlantVillage). | |