Publish eKheti disease classifier
Browse files- README.md +30 -0
- labels.json +40 -0
- metrics.json +55 -0
- model.pt +3 -0
README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
library_name: pytorch
|
| 3 |
+
pipeline_tag: image-classification
|
| 4 |
+
tags:
|
| 5 |
+
- agriculture
|
| 6 |
+
- plant-disease
|
| 7 |
+
- computer-vision
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
# eKheti Plant Disease Classifier
|
| 11 |
+
|
| 12 |
+
PyTorch image classifier used by the eKheti agricultural decision-support project. The checkpoint covers 38 crop/fruit health and disease labels listed in `labels.json`.
|
| 13 |
+
|
| 14 |
+
## Evaluation
|
| 15 |
+
|
| 16 |
+
Best validation accuracy recorded during training: **99.41%**. This result is from the training pipeline's controlled validation split and must not be interpreted as field accuracy. Real farm images can differ substantially in lighting, background, leaf orientation, crop variety, and symptom overlap.
|
| 17 |
+
|
| 18 |
+
## Files
|
| 19 |
+
|
| 20 |
+
- `model.pt`: checkpoint containing architecture, state dictionary, labels, and image size
|
| 21 |
+
- `labels.json`: ordered class labels
|
| 22 |
+
- `metrics.json`: per-epoch validation history
|
| 23 |
+
|
| 24 |
+
## Intended Use
|
| 25 |
+
|
| 26 |
+
Use as a preliminary screening signal inside eKheti. Low-confidence predictions require a clearer image or expert confirmation. This model must not independently determine pesticide selection or dosage.
|
| 27 |
+
|
| 28 |
+
## Limitations
|
| 29 |
+
|
| 30 |
+
The model recognizes only its trained classes. Nutrient deficiencies, herbicide injury, mixed infections, unfamiliar crops, and non-leaf symptoms may be misclassified. Confirm consequential decisions through local agriculture officers, KVK specialists, or laboratory diagnosis.
|
labels.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
"Apple___Apple_scab",
|
| 3 |
+
"Apple___Black_rot",
|
| 4 |
+
"Apple___Cedar_apple_rust",
|
| 5 |
+
"Apple___healthy",
|
| 6 |
+
"Blueberry___healthy",
|
| 7 |
+
"Cherry_(including_sour)___Powdery_mildew",
|
| 8 |
+
"Cherry_(including_sour)___healthy",
|
| 9 |
+
"Corn_(maize)___Cercospora_leaf_spot Gray_leaf_spot",
|
| 10 |
+
"Corn_(maize)___Common_rust_",
|
| 11 |
+
"Corn_(maize)___Northern_Leaf_Blight",
|
| 12 |
+
"Corn_(maize)___healthy",
|
| 13 |
+
"Grape___Black_rot",
|
| 14 |
+
"Grape___Esca_(Black_Measles)",
|
| 15 |
+
"Grape___Leaf_blight_(Isariopsis_Leaf_Spot)",
|
| 16 |
+
"Grape___healthy",
|
| 17 |
+
"Orange___Haunglongbing_(Citrus_greening)",
|
| 18 |
+
"Peach___Bacterial_spot",
|
| 19 |
+
"Peach___healthy",
|
| 20 |
+
"Pepper,_bell___Bacterial_spot",
|
| 21 |
+
"Pepper,_bell___healthy",
|
| 22 |
+
"Potato___Early_blight",
|
| 23 |
+
"Potato___Late_blight",
|
| 24 |
+
"Potato___healthy",
|
| 25 |
+
"Raspberry___healthy",
|
| 26 |
+
"Soybean___healthy",
|
| 27 |
+
"Squash___Powdery_mildew",
|
| 28 |
+
"Strawberry___Leaf_scorch",
|
| 29 |
+
"Strawberry___healthy",
|
| 30 |
+
"Tomato___Bacterial_spot",
|
| 31 |
+
"Tomato___Early_blight",
|
| 32 |
+
"Tomato___Late_blight",
|
| 33 |
+
"Tomato___Leaf_Mold",
|
| 34 |
+
"Tomato___Septoria_leaf_spot",
|
| 35 |
+
"Tomato___Spider_mites Two-spotted_spider_mite",
|
| 36 |
+
"Tomato___Target_Spot",
|
| 37 |
+
"Tomato___Tomato_Yellow_Leaf_Curl_Virus",
|
| 38 |
+
"Tomato___Tomato_mosaic_virus",
|
| 39 |
+
"Tomato___healthy"
|
| 40 |
+
]
|
metrics.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"best_accuracy": 0.994100838786985,
|
| 3 |
+
"history": [
|
| 4 |
+
{
|
| 5 |
+
"epoch": 1,
|
| 6 |
+
"loss": 0.22938268056169525,
|
| 7 |
+
"accuracy": 0.9794451101484007
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"epoch": 2,
|
| 11 |
+
"loss": 0.04965479492548639,
|
| 12 |
+
"accuracy": 0.9874642824223431
|
| 13 |
+
},
|
| 14 |
+
{
|
| 15 |
+
"epoch": 3,
|
| 16 |
+
"loss": 0.035507102509266496,
|
| 17 |
+
"accuracy": 0.9892155959074569
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"epoch": 4,
|
| 21 |
+
"loss": 0.031038131855636704,
|
| 22 |
+
"accuracy": 0.9897686422711771
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"epoch": 5,
|
| 26 |
+
"loss": 0.024733170990411064,
|
| 27 |
+
"accuracy": 0.9919808277260577
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"epoch": 6,
|
| 31 |
+
"loss": 0.019467401689958152,
|
| 32 |
+
"accuracy": 0.9883860263618767
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"epoch": 7,
|
| 36 |
+
"loss": 0.021006976428478735,
|
| 37 |
+
"accuracy": 0.9892155959074569
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"epoch": 8,
|
| 41 |
+
"loss": 0.017782896576073456,
|
| 42 |
+
"accuracy": 0.9933634436353581
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"epoch": 9,
|
| 46 |
+
"loss": 0.01850815044115236,
|
| 47 |
+
"accuracy": 0.994100838786985
|
| 48 |
+
},
|
| 49 |
+
{
|
| 50 |
+
"epoch": 10,
|
| 51 |
+
"loss": 0.016134535904770746,
|
| 52 |
+
"accuracy": 0.9911512581804774
|
| 53 |
+
}
|
| 54 |
+
]
|
| 55 |
+
}
|
model.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9d82696d3649d446c9b35f96ebba7f4dfc24ba8352a89ec8d2054142b38d4c47
|
| 3 |
+
size 6351578
|