Volver a Proyectos

Coffee Disease Detection

Machine Learning

Sistema de visión computacional que identifica enfermedades en plantas de café a partir de imágenes de hojas usando arquitecturas CNN, desplegado como API en producción.

Machine Learning
Visión Computacional
Deep Learning
Agricultura
CNN
TensorFlow
FastAPI
Streamlit
Coffee Disease Detection

Resumen del Proyecto

Coffee Disease Detection es un sistema de visión computacional que clasifica imágenes de hojas de café en cinco categorías: hojas saludables y cuatro enfermedades (Cercospora, Roya, Minador y Phoma) que pueden reducir significativamente el rendimiento de los cultivos si no se tratan a tiempo.

El proyecto comenzó como una idea que propuse durante el bootcamp de Data Science & AI de Le Wagon. Fue seleccionado como uno de dos proyectos finales, y lideré un equipo de cuatro personas a través del ciclo completo: preparación del dataset, entrenamiento de modelos, desarrollo de API y despliegue en la nube.

El Problema

Los caficultores frecuentemente identifican enfermedades demasiado tarde, cuando el daño visible ya es extenso. Las cuatro enfermedades objetivo se presentan de forma distinta:

  1. Cercospora - enfermedad fúngica que causa manchas marrones en las hojas
  2. Roya - pústulas naranjas/amarillas en el envés de las hojas
  3. Minador - larvas de insecto que crean túneles visibles a través del tejido de la hoja
  4. Phoma - enfermedad fúngica que causa muerte del tejido foliar

Algunas se ven similares en etapas tempranas. El sistema necesita detectar enfermedades temprano, lo que significa optimizar para recall sobre precisión. Una falsa alarma es preferible a una infección no detectada.

Arquitectura de Modelos

Comparación Multi-Arquitectura

En lugar de comprometerse con un solo modelo, el proyecto entrena y compara tres arquitecturas:

  • VGG16 Transfer Learning - pre-entrenado en ImageNet, fine-tuned con medidas anti-overfitting (dropout, early stopping). Proporciona rendimiento base estable.
  • EfficientNetB0 - optimizado para el balance precisión-eficiencia. Modelo más pequeño con rendimiento competitivo.
  • CNN Personalizado - arquitectura ligera diseñada para datasets más pequeños. Útil como benchmark y para despliegue con recursos limitados.

Cada modelo usa detección automática de arquitectura para carga fluida en tiempo de inferencia.

Optimización Enfocada en Enfermedades

El insight clave: en una tarea de clasificación médica/agrícola, el costo de los errores es asimétrico. No detectar una enfermedad (falso negativo) es mucho peor que marcar una hoja saludable (falso positivo). El pipeline de entrenamiento refleja esto:

  • Pesos de clase personalizados que reducen el peso de la clase saludable y aumentan los pesos de enfermedades raras, forzando al modelo a aprender características de enfermedades de forma más agresiva.
  • Métrica de recall de enfermedades - una métrica personalizada de TensorFlow que mide recall exclusivamente en clases de enfermedad, ignorando la precisión de clasificación saludable.
  • Tasas de aprendizaje adaptativas basadas en tamaño de dataset, con entrenamiento multi-fase (extracción de características congelada, luego fine-tuning completo).

Pipeline de Datos

  • Preprocesamiento letterboxing a 224x224 manteniendo la relación de aspecto
  • Aumento (rotación, flip, brillo, contraste) que preserva patrones específicos de enfermedades
  • Splitting automático train/validación/test con estratificación
  • Análisis de distribución de clases para informar la estrategia de pesos

Despliegue

Backend FastAPI

Una API RESTful acepta imágenes vía carga de archivos o codificación base64, ejecuta inferencia y retorna la clase predicha con scores de confianza. La API incluye caché de producción para optimización de carga del modelo y manejo integral de errores.

Frontend Streamlit

Una aplicación web separada proporciona una interfaz simple de subir-y-predecir, haciendo el sistema accesible a usuarios sin conocimiento técnico.

Infraestructura

  • Docker para despliegue reproducible y containerizado
  • Google Cloud Platform para inferencia escalable basada en la nube
  • MLflow para seguimiento de experimentos, registro de modelos y versionado

Liderazgo de Equipo

Como líder del proyecto, fui responsable de:

  • Definir el alcance del proyecto y el enfoque técnico
  • Coordinar la distribución de tareas entre cuatro integrantes del equipo
  • Mantener el repositorio GitHub con estructura clara y documentación
  • Presentar el proyecto final a la cohorte del bootcamp

El proyecto se entregó de extremo a extremo: desde la propuesta inicial pasando por recolección de datos, experimentación de modelos, desarrollo de API y despliegue en producción.

Impacto

El sistema demuestra que la visión computacional accesible puede ayudar a pequeños productores a proteger sus cultivos. Al detectar enfermedades tempranamente mediante una simple carga de foto, los agricultores pueden aplicar tratamiento dirigido antes de que ocurra una pérdida significativa de rendimiento. La arquitectura modular (API separada, registro de modelos, frontend web) facilita su integración en programas existentes de extensión agrícola.

Detalles del Proyecto

Objetivo

Construir un sistema de clasificación confiable que priorice el recall de detección de enfermedades, ayudando a los caficultores a identificar enfermedades de plantas lo suficientemente temprano para actuar.

Tema

IA aplicada a agricultura de precisión y detección temprana de enfermedades.

Fecha

15 de noviembre de 2025

Categoría

Machine Learning

Tecnologías

Machine Learning
Visión Computacional
Deep Learning
Agricultura
CNN
TensorFlow
FastAPI
Streamlit