File size: 3,412 Bytes
a5a7d7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
---

language:
- vi
- en
license: mit
tags:
- agriculture
- tomato
- plant-disease
- computer-vision
- resnet18
- grad-cam
- leaf-ai
datasets:
- wellCh4n/tomato-leaf-disease-image
metrics:
- accuracy
pipeline_tag: image-classification
---


# 🍃 LEAF_AI — Tomato Leaf Disease ResNet-18 Model



Mô hình Deep Learning thị giác máy tính nhận diện **10 lớp bệnh & trạng thái lá cây cà chua** chuẩn hóa quốc tế (theo phân loại PlantVillage & Tổ chức Lương thực và Nông nghiệp Liên Hợp Quốc - FAO). Tích hợp cơ chế giải thích quyết định thị giác **Grad-CAM (Gradient-weighted Class Activation Mapping)**.



## 🎯 10 Lớp bệnh & phân loại

| ID | Tên tiếng Anh | Tên tiếng Việt | Tác nhân gây bệnh |

|---|---|---|---|

| 0 | `Healthy` | Lá khỏe mạnh | Không có mầm bệnh |

| 1 | `Leaf_mold` | Nấm mốc lá | *Passalora fulva* |
| 2 | `Target_spot` | Đốm mắt cua | *Corynespora cassiicola* |
| 3 | `Late_blight` | Sương mai | *Phytophthora infestans* |
| 4 | `Early_blight` | Úa sớm (Đốm vòng) | *Alternaria solani* |
| 5 | `Bacterial_spot` | Đốm vi khuẩn | *Xanthomonas campestris* |
| 6 | `Septoria_leaf_spot` | Đốm lá Septoria | *Septoria lycopersici* |
| 7 | `Tomato_mosaic_virus` | Khảm lá virus (ToMV) | Tomato mosaic tobamovirus |
| 8 | `Tomato_yellow_leaf_curl_virus` | Xoăn vàng lá virus (TYLCV) | Begomovirus (Vector: Bọ phấn trắng) |
| 9 | `Spider_mites` | Nhện đỏ hai chấm | *Tetranychus urticae* |

## 📊 Kết quả Huấn luyện (Training Metrics)
- **Kiến trúc Backbone**: ResNet-18 (Pretrained ImageNet)
- **Tập dữ liệu huấn luyện**: 14,218 ảnh thực tế (PlantVillage Tomato Dataset)
- **Tập kiểm thử (Validation)**: 3,569 ảnh
- **Độ chính xác kiểm thử (Validation Accuracy)**: **>97.8%**
- **Độ trễ suy luận (Inference Latency)**: ~15ms trên CPU / ~2ms trên GPU CUDA

## 💻 Cách sử dụng trong PyTorch
```python

import torch

import torchvision.models as models

import torchvision.transforms as transforms

from PIL import Image



# 1. Khởi tạo mô hình

classes = [

    "Healthy", "Leaf_mold", "Target_spot", "Late_blight", "Early_blight",

    "Bacterial_spot", "Septoria_leaf_spot", "Tomato_mosaic_virus",

    "Tomato_yellow_leaf_curl_virus", "Spider_mites"

]



checkpoint = torch.load("tomato_model.pt", map_location="cpu")

model = models.resnet18()

model.fc = torch.nn.Sequential(

    torch.nn.Dropout(p=0.3),

    torch.nn.Linear(model.fc.in_features, len(classes))

)

model.load_state_dict(checkpoint["model_state_dict"])

model.eval()



# 2. Tiền xử lý & Dự đoán

transform = transforms.Compose([

    transforms.Resize((224, 224)),

    transforms.ToTensor(),

    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])

])



img = Image.open("tomato_leaf.jpg").convert("RGB")

tensor = transform(img).unsqueeze(0)



with torch.no_grad():

    probs = torch.softmax(model(tensor), dim=1)[0]

    top_p, top_i = torch.topk(probs, 3)

    for p, idx in zip(top_p, top_i):

        print(f"{classes[idx]}: {p.item()*100:.2f}%")

```

## 🛡️ Bản quyền & Nguồn
- Dự án: **LEAF_AI (Hệ sinh thái AI nông nghiệp thông minh)**

- Dataset: `wellCh4n/tomato-leaf-disease-image` (PlantVillage)