Data · IA · Desarrollo

Clasificador de comida saludable

Clasificador binario de comida saludable con CNN propia sobre Food-101 y demo en Streamlit.

2025rol: desarrollo en equipo (proyecto universitario, 3 integrantes)estado: completado
portada procedural — capturas reales a la esperaPortada procedural del proyecto Clasificador de comida saludable.

01 Resumen

Sistema de visión artificial que clasifica imágenes de platos de comida como saludables o no saludables. Reorganiza las 101 categorías del dataset Food-101 en dos clases binarias y entrena una CNN diseñada desde cero (FoodNet, tres bloques convolucionales con BatchNormalization y Dropout) en TensorFlow/Keras. El pipeline cubre descarga desde Kaggle, limpieza de imágenes corruptas, balanceo por aumento de datos, entrenamiento con EarlyStopping y evaluación con matriz de confusión, alcanzando 71% de accuracy en validación. Incluye una interfaz web en Streamlit.

02 Resultados

Cifras verificables en el repositorio y su documentación:

0.71accuracy en validación
0.78F1 clase no saludable
22117imágenes de validación

03 Decisiones éticas

  • La etiqueta saludable o no saludable es un juicio propio asignado categoría por categoría, no un dato nutricional medido. Queda escrita en el repositorio precisamente para que se pueda revisar, discutir o reemplazar.
  • Food-101 está compuesto por platos de restaurante mayoritariamente occidentales, así que el modelo hereda esa noción cultural de lo saludable y no puede considerarse válido fuera de ella.
  • El clasificador se presenta como demostración técnica y no como consejo nutricional o médico.

04 Aspectos destacados

  • CNN propia (FoodNet) de 3 bloques convolucionales con BatchNormalization y Dropout, en lugar de transfer learning.
  • Pipeline reproducible en 6 scripts: descarga desde Kaggle, reorganización de Food-101 en clases binarias, limpieza, aumento de datos, entrenamiento y evaluación.
  • Entrenamiento con EarlyStopping y ModelCheckpoint; evaluación con reporte de clasificación y matriz de confusión sobre 22.117 imágenes.
  • Interfaz web en Streamlit para clasificar imágenes subidas por el usuario en tiempo real, con demo en video.
  • README con comparación justificada de arquitecturas (CNN propia vs. MobileNetV2) y una reflexión ética sobre sesgos del dataset.

05 Limitaciones

La etiqueta binaria colapsa información que la imagen no contiene: dos platos visualmente idénticos pueden diferir en porción, aceite o cocción. Ese ruido de etiqueta pone un techo al accuracy alcanzable que ninguna arquitectura puede superar. A eso se suman tres condiciones del montaje que conviene tener a la vista al leer el 0.71: las imágenes se reducen a 64x64 píxeles, resolución que borra detalles de textura relevantes; la validación es una partición aleatoria simple del mismo conjunto, sin validación cruzada ni conjunto de prueba independiente; y el aumento de datos se escribió en la misma carpeta que después se particiona, de modo que copias derivadas de una misma fotografía pueden quedar a ambos lados de la división y el accuracy queda algo optimista.

06 Capturas