|
|
--- |
|
|
tags: |
|
|
- plants |
|
|
- plant-disease |
|
|
- image-classification |
|
|
- tensorflow |
|
|
- keras |
|
|
- resnet50 |
|
|
license: apache-2.0 |
|
|
pipeline_tag: image-classification |
|
|
--- |
|
|
|
|
|
# plant-resnet50-38classes |
|
|
|
|
|
Modelo keras (tensorflow) para reconhecimento de plantas e doenças (38 classes). |
|
|
|
|
|
## 📋 Classes suportadas |
|
|
|
|
|
O modelo identifica as seguintes plantas e condições: |
|
|
|
|
|
- **Maçã**: sarna, podridão negra, ferrugem do cedro, saudável |
|
|
- **Mirtilo**: saudável |
|
|
- **Cereja**: oídio, saudável |
|
|
- **Milho**: mancha de cercospora, ferrugem comum, queima das folhas, saudável |
|
|
- **Uva**: podridão negra, esca, queima das folhas, saudável |
|
|
- **Laranja**: citrus greening |
|
|
- **Pêssego**: mancha bacteriana, saudável |
|
|
- **Pimentão**: mancha bacteriana, saudável |
|
|
- **Batata**: requeima precoce, requeima tardia, saudável |
|
|
- **Framboesa**: saudável |
|
|
- **Soja**: saudável |
|
|
- **Abóbora**: oídio |
|
|
- **Morango**: queima das folhas, saudável |
|
|
- **Tomate**: 10 condições diferentes |
|
|
|
|
|
Total: 38 classes |
|
|
|
|
|
## 🚀 Uso rápido |
|
|
|
|
|
```python |
|
|
import json |
|
|
import numpy as np |
|
|
from huggingface_hub import hf_hub_download |
|
|
import tensorflow as tf |
|
|
from PIL import Image |
|
|
|
|
|
# Baixa modelo e configuração |
|
|
repo_id = "raysarocha/plant-resnet50-38classes" |
|
|
cfg_path = hf_hub_download(repo_id, "config.json") |
|
|
model_path = hf_hub_download(repo_id, "model.keras") |
|
|
|
|
|
# Carrega configuração e modelo |
|
|
with open(cfg_path, "r") as f: |
|
|
cfg = json.load(f) |
|
|
|
|
|
model = tf.keras.models.load_model(model_path) |
|
|
|
|
|
# Processa imagem |
|
|
img = Image.open("sua_imagem.jpg").convert("RGB") |
|
|
img = img.resize((cfg["image_size"], cfg["image_size"])) |
|
|
arr = np.array(img).astype("float32") * cfg["rescale"] |
|
|
arr = np.expand_dims(arr, axis=0) |
|
|
|
|
|
# Predição |
|
|
predictions = model(arr) |
|
|
probs = tf.nn.softmax(predictions[0]).numpy() |
|
|
pred_idx = int(np.argmax(probs)) |
|
|
confidence = float(probs[pred_idx]) |
|
|
|
|
|
print(f"Classe: {cfg['id2label'][str(pred_idx)]}") |
|
|
print(f"Confiança: {confidence:.2%}") |
|
|
``` |
|
|
|
|
|
## 📊 Informações do modelo |
|
|
|
|
|
- **Arquitetura**: resnet50 |
|
|
- **Framework**: tensorflow/keras |
|
|
- **Entrada**: 224x224 pixels |
|
|
- **Normalização**: pixels / 255.0 |
|
|
- **Classes**: 38 |
|
|
|
|
|
## 📝 Licença |
|
|
|
|
|
Apache 2.0 |
|
|
|