Coffee Leaf AI

Diagnóstico de hoja de café

Volver

¿Cómo está construida esta app?

Arquitectura y pipeline de Coffee Leaf AI

Arquitectura del sistema

📱

Dispositivo móvil

Origen de la imagen

getUserMedia APIBase64 JPEG / PNG
imagen base64
🖥️

Frontend — Render (Node.js SSR)

Interfaz web y lógica de presentación

TanStack Start v1React 19Tailwind CSS v4Vite 7 + Nitro
HTTP REST (JSON)
⚙️

Backend — Google Cloud Run

API REST en contenedor Docker

Flask 3Python 3.13UVDocker
llamadas a servicios de IA
🧠

Capa de inteligencia artificial

Modelos de IA para validación, detección e interpretación

Gemini 2.5 FlashYOLOv8n best.pt (6 MB)Structured Output via Pydanticconf=0.30 · iou=0.45

Clases detectables

healthy— Sana
miner— Minador
phoma— Phoma
rust— Roya

Pipeline de diagnóstico

  1. 01

    Captura de imagen

    Frontend · getUserMedia

    El usuario toma una foto desde la cámara del dispositivo. La imagen se convierte a Base64 y se transmite como JSON — sin almacenamiento en servidor ni multipart.

  2. 02

    Pre-filtro con Gemini 2.5 Flash

    POST /validate · Gemini

    Antes de invocar el modelo de visión, un LLM multimodal verifica que la imagen contenga una hoja de planta. Rechaza fondos, personas y objetos; acepta hojas de cualquier especie y condición.

  3. 03

    Detección YOLOv8n

    POST /classify · YOLOv8n

    El modelo YOLOv8n fine-tuned sobre Coffee Leaf v6 (3.993 imágenes, 50 épocas) realiza detección en una sola pasada. Devuelve bounding boxes, clase y confianza para cada lesión detectada por encima de conf=0.30.

  4. 04

    Interpretación agronómica

    POST /interpret · Gemini

    Un segundo prompt a Gemini 2.5 Flash convierte los resultados técnicos en lenguaje natural: resumen del estado fitosanitario, acciones concretas y recomendación de consulta con un agrónomo.

  5. 05

    Resultado con bounding boxes

    Frontend · localStorage

    El frontend superpone las cajas de detección sobre la imagen usando coordenadas porcentuales calculadas al cargar (naturalWidth/naturalHeight). El análisis se guarda en localStorage para el historial.

Métricas del modelo (val set · 50 épocas)

0.938

Precision

0.961

Recall

0.959

mAP@0.5

0.710

mAP@0.5:0.95

Dataset: Coffee Leaf v6 — Roboflow · CC BY 4.0