Skip to content
ModelListedExternal
Download

Banano Eloro Classifier

Modelo de clasificación de imágenes para detectar 7 enfermedades en hojas de banano, orientado a productores de la provincia de El Oro, Ecuador. Desarrollado como proyecto de aplicación a la Escuela de Primavera en...

KindOtherVersionRevision 30098e0

Model source

Kind
Other
File size
8.75–42.7 MB
Version
vRevision 30098e0
Updated
Sep 22, 2026
Downloads
7
Source
Hugging Face

Source description

Clasificador de Enfermedades en Hojas de Banano — El Oro, Ecuador

Modelo de clasificación de imágenes para detectar 7 enfermedades en hojas de banano, orientado a productores de la provincia de El Oro, Ecuador. Desarrollado como proyecto de aplicación a la Escuela de Primavera en Deep Learning — UBA/CONICET 2026.

Autor: Joel Velásquez — Universidad Técnica de Machala (UTMACH)

Motivación

El Oro concentra 32,161 hectáreas de banano (18% de la producción nacional de Ecuador). En diciembre 2025 se confirmó Fusarium Raza Tropical 4 en la provincia, con 8,309 hectáreas en riesgo directo. Este proyecto busca dar a pequeños productores rurales una herramienta de diagnóstico temprano accesible desde un smartphone, incluso sin conectividad estable.

Clases detectadas

#ClaseRelevancia en El Oro
0SigatokaAlta — endémica
1CordanaMedia
2PestalotiopsisMedia
3Healthy—
4MokoAlta — cuarentena activa
5Panama DiseaseAlta — relacionada a Fusarium R1
6Insect PestMedia

Modelos incluidos

Se entrenaron y compararon tres arquitecturas CNN con transfer learning (pesos preentrenados en ImageNet) y fine-tuning en dos fases.

ArchivoArquitecturaParámetrosTamañoAccuracy (test)F1-macro
efficientnet_b0_mejor.pthEfficientNet-B04.0M16.4 MB100.00%100.00%
mobilenet_v2_mejor.pthMobileNetV22.2M9.18 MB99.31%99.21%
resnet18_mejor.pthResNet1811.2M44.8 MB99.65%99.11%

Modelo recomendado para despliegue móvil: mobilenet_v2_mejor.pth. Aunque EfficientNet-B0 obtuvo el mejor accuracy en el test set interno, la validación con imágenes externas (ver más abajo) mostró rendimiento idéntico entre ambos modelos, por lo que el tamaño significativamente menor de MobileNetV2 lo hace preferible para una app offline en dispositivos Android de gama media.

Modelo TFLite (para despliegue móvil)

mobilenet_v2_banano.tflite — exportación directa de los pesos entrenados de MobileNetV2 vía litert-torch (sucesor de ai-edge-torch). Verificado: las predicciones del modelo TFLite coinciden con las del modelo PyTorch original sobre las mismas imágenes de prueba.

import litert_torch
import torch
import numpy as np
from huggingface_hub import hf_hub_download

tflite_path = hf_hub_download(
    repo_id="JoelVela/banano-eloro-classifier",
    filename="mobilenet_v2_banano.tflite"
)

modelo_tflite = litert_torch.load(tflite_path)

# input_tensor: numpy array, shape (1, 3, 224, 224), normalizado con
# media/std de ImageNet
output = modelo_tflite(input_tensor)

Datos de entrenamiento

DatasetImágenesClases aportadasFuente
BananaLSD (Augmented)1,600Sigatoka, Cordana, Pestalotiopsis, HealthyKaggle — DOI: 10.1016/j.dib.2023.109608
Banana Disease Recognition333Moko, Panama Disease, Insect PestHuggingFace — DOI: 10.17632/79w2n6b4kf.1

Split estratificado por grupo (70% train / 15% val / 15% test), diseñado específicamente para evitar data leakage entre variantes de una misma imagen base (ver sección de metodología en el repositorio de GitHub).

Clases excluidas por ausencia de datos validados: Bacterial Wilt y Fusarium RT4 — documentadas como trabajo futuro.

Limitación conocida: Sigatoka en estadio avanzado

Validación con 9 imágenes externas (fuera de ambos datasets de entrenamiento, de bancos profesionales y sitios agrícolas especializados) reveló una limitación específica: el modelo clasifica correctamente Sigatoka en etapa temprana (lesiones individuales definidas), pero confunde sistemáticamente Sigatoka en estadio avanzado (necrosis extensa) con Panama Disease o Moko. Este patrón se repite de forma idéntica en EfficientNet-B0 y MobileNetV2, lo que sugiere que la causa es un sesgo del dataset de origen (BananaLSD, recolectado en Bangladesh, predominantemente en estadios tempranos) y no una limitación de arquitectura.

Uso (PyTorch)

import torch
import torchvision.models as models
import torch.nn as nn
from huggingface_hub import hf_hub_download

CLASSES = [
    'Sigatoka', 'Cordana', 'Pestalotiopsis', 'Healthy',
    'Moko', 'Panama_Disease', 'Insect_Pest'
]

# Descargar el checkpoint
ckpt_path = hf_hub_download(
    repo_id="JoelVela/banano-eloro-classifier",
    filename="mobilenet_v2_mejor.pth"
)

# Reconstruir la arquitectura
modelo = models.mobilenet_v2(weights=None)
in_features = modelo.classifier[1].in_features
modelo.classifier = nn.Sequential(
    nn.Dropout(p=0.3),
    nn.Linear(in_features, len(CLASSES))
)

# Cargar pesos
modelo.load_state_dict(torch.load(ckpt_path, map_location="cpu"))
modelo.eval()

Preprocesamiento esperado: redimensionar a 224x224 y normalizar con media/std de ImageNet ([0.485, 0.456, 0.406] / [0.229, 0.224, 0.225]).

Trabajo relacionado

Este proyecto extiende a Jiménez et al. (2025), "Detection of Leaf Diseases in Banana Crops Using Deep Learning Techniques" (UTMACH), que clasificó 3 enfermedades con EfficientNetB0/ResNet50/VGG19 sobre un dataset propio de 900 imágenes de El Oro. Este trabajo amplía a 7 clases, compara arquitecturas distintas (incluyendo MobileNetV2 para móvil), y añade despliegue offline vía TFLite + Flutter.

Código de entrenamiento

El notebook completo de entrenamiento, con la metodología detallada (incluyendo la detección y corrección de un problema de data leakage en el split inicial), está disponible en GitHub: [enlace pendiente]

Citación

Si usás este modelo, por favor citá los datasets originales:

@article{arman2023bananalsd,
  title={BananaLSD: A banana leaf images dataset for classification of banana leaf diseases using machine learning},
  author={Arman, Shifat E and Bhuiyan, Md Abdullahil Baki and Abdullah, Hasan Muhammad and Islam, Shariful and Chowdhury, Tahsin Tanha and Hossain, Md Arban},
  journal={Data in Brief},
  year={2023},
  publisher={Elsevier}
}

@article{mafi2023bananadisease,
  title={Banana Disease Recognition Dataset},
  author={Mafi, Md Mafiul Hasan Matin and Sifat, R.M. and Moazzam, Md. Golam Moazzam and Uddin, Mohammad Shorif},
  journal={Mendeley Data},
  volume={V1},
  year={2023},
  doi={10.17632/79w2n6b4kf.1}
}

Sources

1 source
Hugging FacePrimaryVersion 30098e02c1b052a4388daedfb2455f3d34fc4561
huggingface.co/JoelVela/banano-eloro-classifier/tree/30098e02c1b052a4388daedfb2455f3d34fc4561

Verified Sep 10

Model artifacts

3 artifacts

efficientnet_b0_mejor.pth

pth · 15.6 MB · SHA-256 8682f1e3b182…0179 · Hugging Face

Download

mobilenet_v2_mejor.pth

pth · 8.75 MB · SHA-256 8362ecc24efa…2a2e · Hugging Face

Download

resnet18_mejor.pth

pth · 42.7 MB · SHA-256 818477886a67…e5d9 · Hugging Face

Download

Source excerpts

2 excerpts

--- license: apache-2.0 language: - es tags: - pytorch - image-classification - agriculture - plant-disease - banana - ecuador datasets: - shifatearman/bananalsd metrics: - accuracy - f1 pipeline_tag: image-classification --- # Clasificador de Enfermedades en Hojas de Banano — El Oro, Ecuador Modelo de clasificación de imágenes para detectar 7 enfermedades en hojas de banano, orientado a productores de la provincia de El Oro, Ecuador. Desarrollado como proyecto de aplicación a la Escuela de Primavera en Deep Learning — UBA/CONICET 2026. **Autor:** Joel Velásquez — Universidad Técnica de Machala (UTMACH) ## Motivación El Oro concentra 32,161 hectáreas de banano (18% de la producción nacional de Ecuador). En diciembre 2025 se confirmó Fusarium Raza Tropical 4 en la provincia, con 8,309 hectáreas en riesgo directo. Este proyecto busca dar a pequeños productores rurales una herramienta de diagnóstico temprano accesible desde un smartphone, incluso sin conectividad estable. ## Clases detectadas | # | Clase | Relevancia en El Oro | |---|-------|----------------------| | 0 | Sigatoka | Alta — endémica | | 1 | Cordana | Media | | 2 | Pestalotiopsis | Media | | 3 | Healthy | — | | 4 | Moko | Alta — cuarentena activa | | 5 | Panama Disease | Alta — relacionada a Fusarium R1 | | 6 | Insect Pest | Media | ## Modelos incluidos Se entrenaron y compararon tres arquitecturas CNN con transfer learning (pesos preentrenados en ImageNet) y fine-tuning en dos fases. | Archivo | Arquitectura | Parámetros | Tamaño | Accuracy (test) | F1-macro | |---------|-------------|-----------|--------|-----------------|----------| | `efficientnet_b0_mejor.pth` | EfficientNet-B0 | 4.0M | 16.4 MB | 100.00% | 100.00% | | `mobilenet_v2_mejor.pth` | MobileNetV2 | 2.2M | 9.18 MB | 99.31% | 99.21% | | `resnet18_mejor.pth` | ResNet18 | 11.2M | 44.8 MB | 99.65% | 99.11% | **Modelo recomendado para despliegue móvil: `mobilenet_v2_mejor.pth`.** Aunque EfficientNet-B0 obtuvo el mejor accuracy en el test set interno, la validación con imágenes externas (ver más abajo) mostró rendimiento idéntico entre ambos modelos, por lo que el tamaño significativamente menor de MobileNetV2 lo hace preferible para una app offline en dispositivos Android de gama media. ## Modelo TFLite (para despliegue móvil) `mobilenet_v2_banano.tflite` — exportación directa de los pesos entrenados de MobileNetV2 vía `li...

Source context: 7 downloads · 0 likes · Pipeline image-classification · Repo JoelVela/banano-eloro-classifier