← Proyectos
02 / 05

Airfryer: visión artificial para cocinado inteligente

Un proyecto ambicioso de I+D que conecta percepción visual y planificación de cocinado: analiza una cesta, separa sus piezas y propone tiempos y temperaturas. Combina deep learning, geometría computacional y reglas interpretables en una arquitectura orientada al cocinado automático universal.

1. Resumen del proyecto

He desarrollado un prototipo que analiza una fotografía de los alimentos en la cesta de una airfryer. Localiza las piezas, propone su categoría y algunos atributos visibles y, con esa información, prepara un plan de cocinado que una persona puede revisar. Está concebido como punto de partida para fabricantes de electrodomésticos y equipos de producto interesados en explorar una experiencia asistida por cámara.

La solución integra visión artificial, geometría y reglas de cocinado en un pipeline trazable. Cada módulo puede evaluarse y sustituirse de forma independiente, lo que permite evolucionar el sistema sin perder de vista cómo se obtiene cada resultado.

2. Problema y objetivos

Elegir un programa para la airfryer implica considerar el tipo de alimento, el tamaño de las piezas y su preparación, además de ajustar tiempo y temperatura. Una receta fija no representa bien una cesta con alimentos distintos. La imagen aporta información sobre lo que contiene, pero no revela con precisión el grosor ni confirma que el interior esté cocinado.

El objetivo fue crear una prueba de concepto que conectase esas decisiones en un proceso reproducible: estimar la superficie ocupada, separar piezas, clasificarlas, extraer medidas visibles y generar una propuesta explicable. La primera versión operativa se limitó a siete cortes de pollo e incorporó un clasificador especializado en rebozado. La arquitectura permite ampliar el dominio cuando haya datos y validación suficientes.

3. Solución y arquitectura

El proceso parte de una imagen. El orquestador corrige su orientación, coordina los modelos mediante adaptadores y guarda resultados intermedios, logs e informes de cada ejecución. Los módulos intercambian máscaras e información estructurada vinculadas a un identificador estable por pieza.

Pipeline de visión y planificación de AirfryerUna foto se normaliza y se procesa en paralelo para estimar ocupación y separar piezas. Los modelos analizan cada pieza; las reglas producen un plan provisional para revisión humana.Entrada y preparaciónVisión y separaciónAnálisis por piezaPlanificación y revisiónFoto de la cestaNormalización RGBy orientación EXIFSegFormer-B0alimento / fondo y ocupaciónControlcontrol de ocupación y máscarasYOLO11n 512detección de piezasSAM 2.1 Tinyrefinamiento de máscarasRecortes por piezarecortes por pieza · IDsDINOv3 ConvNeXt-B7 cortes de polloDINOv3 ViT-B/16 + SVM RBFatributo de rebozadoGeometríaárea, caja y forma en píxelesMotor de reglasmotor determinista · perfiles JSONPlan provisionalplan por pieza y por tandaRevisión humanarevisión humana · termómetro

La ejecución genera máscaras, predicciones por identificador, medidas en píxeles, una propuesta de tiempo y temperatura y las advertencias correspondientes. pipeline.json define las etapas, sus adaptadores y entornos. Desarrollo conserva el entrenamiento, la selección y el historial. Los experimentos y alternativas que no forman parte de la selección activa aportan evidencia técnica, pero no se ejecutan en el runtime.

4. Desarrollo y decisiones técnicas

El pipeline asigna a cada modelo una tarea concreta, en lugar de pedir a una sola red que resuelva problemas distintos.

Los datos de desarrollo reúnen fotografías de cestas reales e imágenes recopiladas para ampliar la variedad. Cada tarea tiene etiquetas y particiones propias. El estudio de instancias reunió 1.255 fotos: 1.023 de entrenamiento, 114 de validación, 115 de test histórico y tres capturas continuas fuera del conteo. Las herramientas de adquisición, anotación y limpieza apoyan la experimentación, pero no intervienen en la inferencia de una cesta.

  • Alimento y fondo — SegFormer-B0. Genera una máscara semántica global y estima la ocupación. En una comparación de 114 imágenes obtuvo 92,82 % de IoU y 1,01 puntos porcentuales de error medio en cobertura. Superó en esas métricas a YOLO26n semántico (90,63 % de IoU y 1,55 puntos de error), por lo que se mantuvo como modelo seleccionado.
  • Separación de piezas — YOLO11n 512 + SAM 2.1 Hiera Tiny. YOLO propone una máscara para cada pieza y SAM refina sus contornos. La selección se basó en un criterio fijado sobre validación que combina el error de conteo con umbrales mínimos de calidad. En 114 fotos de validación (2.036 piezas), obtuvo un MAE de conteo de 0,956, un 61,4 % de conteos exactos y un AP de máscaras de 0,825. En el test histórico de 115 fotos, el MAE fue 1,009 y el AP 0,816. El test no se utilizó para cambiar la selección.
  • Clasificación de cortes — DINOv3 ConvNeXt-B ajustado. Procesa cada recorte a 256 × 256 y una cabeza lineal predice una de siete clases. La validación registrada obtuvo un 92,40 % de exactitud y un macro-F1 de 92,17 %; la evaluación de test documentada obtuvo un 91,71 % de exactitud. El sistema asigna una clase operativa a partir de 0,90 de confianza. Como el mecanismo estadístico de rechazo no certificó el objetivo de precisión del 95 %, algunas piezas pueden quedar pendientes de revisión.
  • Atributo de rebozado — DINOv3 ViT-B/16 + SVM RBF. El encoder genera características que clasifica un SVM calibrado mediante regresión logística. En un test agrupado de 1.449 imágenes alcanzó un 96,20 % de balanced accuracy, un 89,35 % de precisión y un 93,79 % de recall para “Rebozado”. La precisión medida y la diferencia entre las imágenes de entrenamiento y los recortes de cámara hacen que el resultado requiera confirmación humana antes de modificar el plan.
  • Geometría y cocinado. El resumen calcula área, caja, centroide, elongación y solidez en píxeles; también puede proponer consensos de forma provisionales. El planificador es un componente determinista en Python con perfiles JSON, no un modelo entrenado. Ajusta rangos de tiempo a partir de los parámetros disponibles y devuelve acciones y fases de temperatura cuando están configuradas.

También se probaron otras familias y configuraciones, entre ellas YOLO semántico, variantes de segmentación de instancias y clasificadores ViT con cabezas lineales o métodos clásicos. Las comparaciones permitieron elegir un componente adecuado para cada tarea. En clasificación, ConvNeXt obtuvo el mejor resultado puntual de validación frente a las variantes ViT ensayadas. En instancias, la combinación seleccionada cumplió los umbrales de conteo y máscara fijados de antemano. Los resultados completos y las recetas permanecen en los módulos de Desarrollo.

5. Retos y soluciones

Uno de los principales retos fue evitar que la calidad de las particiones inflase las métricas. Las copias exactas o las imágenes casi idénticas distribuidas entre conjuntos pueden dar una impresión demasiado optimista del rendimiento. El proceso de preparación utiliza hashes exactos y perceptuales, agrupación por procedencia y revisión de conflictos de etiquetas para reducir ese riesgo. Las particiones y las métricas se mantienen específicas para cada tarea.

En algunas imágenes las piezas están muy próximas o se solapan. Mantener separadas la máscara global del alimento y la segmentación por instancia permite evaluar cada problema por su cuenta. SAM refina las propuestas de YOLO y las máscaras exportadas conservan identificadores únicos. La máscara semántica se utiliza como control; todavía no se ha validado su uso para recortar automáticamente las instancias.

También era necesario preservar la integridad de los checkpoints, las dependencias y las salidas. V2 separa los entornos de inferencia, configura cada etapa explícitamente y comprueba hashes y contratos de datos. Si falta memoria GPU, el modo automático puede recurrir a CPU. En el análisis de instancias, la ejecución en CPU omite SAM y se registra como una variante distinta del método seleccionado.

6. Evaluación y resultados

La evaluación combina métricas específicas de cada tarea con comprobaciones de integración. IoU y Dice miden el solapamiento de máscaras; AP y F1 evalúan la detección de instancias; MAE y la tasa de conteo exacto describen el recuento; exactitud, macro-F1 y balanced accuracy resumen la clasificación. Una prueba de humo comprueba la carga de artefactos, la ejecución y la correspondencia de identificadores en todo el pipeline, pero no mide la calidad predictiva.

V2 puede completar un recorrido desde la máscara de alimento hasta el plan JSON: genera instancias, clasificación, análisis de rebozado y geometría. En un ejemplo guardado, la ejecución terminó con siete piezas y registró tres advertencias: las clases no superaron el umbral operativo, el encuadre no estaba calibrado a cm² y la propuesta de cocinado requería revisión. El ejemplo muestra por qué conviene registrar la incertidumbre y la procedencia junto a cada predicción.

Las cifras de los modelos proceden de conjuntos y particiones diferentes; no constituyen una puntuación global ni garantizan el rendimiento en una cámara o airfryer comercial. En particular, el resultado de rebozado sigue sujeto a revisión y el test de instancias es histórico, no una evaluación independiente por sesión.

7. Estado actual y futuras mejoras

Estado actual: V2 ejecuta el recorrido desde una imagen hasta un plan provisional. Cuenta con configuración centralizada, modelos seleccionados, resultados trazables y pruebas estructurales y de humo documentadas. El clasificador principal cubre siete cortes de pollo; las medidas físicas necesitan calibración y el planificador requiere revisión humana.

Siguientes pasos: validar el sistema con recortes de una cámara real y sesiones independientes; ampliar y equilibrar alimentos y preparaciones; calibrar la cámara para convertir píxeles en medidas físicas; recopilar ensayos de tiempo, peso, grosor y temperatura interna en un aparato concreto; recalibrar los perfiles y umbrales con esos datos; y medir el rendimiento y la latencia en el hardware objetivo. La ampliación y profesionalizacion del proyecto sigue en constante desarrollo.