Inicio / Blog / Visión TinyML en ESP32-S3
IA embebida y visión artificial

TinyML con cámara en ESP32-S3: de la captura a la clasificación local

Una demo que clasifica una imagen preparada demuestra que el modelo ejecuta, no que exista un producto de visión útil. El dispositivo debe capturar cuadros de forma fiable, encajar el preprocesamiento y la inferencia en memoria, cumplir el tiempo de respuesta y actuar con seguridad cuando hay incertidumbre. Cámara, pipeline y clasificador forman un único sistema que se debe medir.

Diseña el pipeline antes de elegir el modelo

Cada transformación consume tiempo, memoria o información
1 / CapturaExposición, formato, resolución y propiedad del buffer.
2 / PreparaciónRecorte, resize, conversión de color y normalización.
3 / InferenciaModelo cuantizado, arena de tensores y tiempo medido.
4 / DecisiónUmbral de confianza, clase desconocida y revisión.
5 / SalidaAcción local o telemetría mínima con versión del modelo.

Empieza por la decisión que debe tomar el dispositivo y reúne imágenes representativas: iluminación, distancia, ángulo, movimiento, fondos y escenas vacías. Divide entrenamiento, calibración y evaluación por sesión o lugar de captura para evitar que imágenes casi idénticas contaminen las pruebas. Incluye una salida “desconocida/incierta”; obligar a clasificar cada imagen produce confianza engañosa.

Dimensiona cámara y memoria en conjunto

Los buffers, el espacio temporal de conversión, pesos, activaciones y runtime compiten por RAM. Una captura de alta resolución puede ser útil para el sensor y excesiva para un clasificador pequeño. Elige formatos compatibles, reduce o recorta pronto y evita guardar varios cuadros completos sin una necesidad medida. PSRAM añade espacio, pero no elimina límites de ancho de banda, fragmentación ni latencia.

Registra heap interno libre, bloque más grande, uso de PSRAM y tiempo desde cuadro hasta resultado con la configuración final de radio y tareas. Prueba capturas repetidas, no solo la primera inferencia. Un modelo que funciona al arrancar puede fallar horas después por fugas, fragmentación o concurrencia.

La cuantización es un experimento de calidad

ESP-DL ofrece formatos cuantizados y herramientas de conversión y evaluación para ESP32-S3. La cuantización post-entrenamiento reduce costes, pero la calidad depende de datos representativos y del esquema admitido. Conserva una referencia float y compara candidatos cuantizados mediante métricas por clase y matriz de confusión en imágenes reservadas. El preprocesamiento debe coincidir: color, resize, recorte y normalización como en el entrenamiento.

No elijas solo por cantidad de parámetros. Mide por separado preprocesamiento, inferencia y postprocesamiento a la resolución final. Si no se cumple la latencia, prueba una entrada menor, una red más simple o menos muestreo antes de quitar controles de confianza.

FalloQué medirComportamiento seguro
Imagen borrosa u oscuraCalidad y falsos positivos.Responder como incierto y capturar de nuevo.
El modelo no cabePico de heap, PSRAM y bloque máximo.Reducir entrada/arena y reportar el fallo de inicio.
La cuantización degrada una claseMétrica por clase en datos reservados.Ajustar calibración o modelo y hacer visible la regresión.
La inferencia bloquea capturaCuadros perdidos, latencia y watchdog.Colas acotadas y propiedad explícita de buffers.
Entorno desconocidoCalibración y datos fuera de distribución.Abstenerse y pedir confirmación humana u otro sensor.

Mantén las acciones locales, explicables y reversibles

Si la clasificación activa un relé, cerradura o máquina, trata la salida como señal de sensor, no como autoridad. Añade una política determinista con confianza, frescura, valores seguros, límite de frecuencia y override manual. Registra versión y motivo sin subir imágenes identificables por defecto. Si hacen falta para depurar, consigue consentimiento, limita retención y protege la transferencia.

Versiona el modelo y el preprocesamiento como un paquete. Valídalo en la placa, conserva rollback y compara errores antes de ampliar el despliegue. Un panel puede mostrar duración, tasa de incertidumbre, reinicios y versiones sin transmitir cada cuadro.

En resumen

La visión útil con ESP32-S3 empieza con datos representativos y una decisión acotada, y luego co-diseña captura, memoria, preprocesamiento e inferencia cuantizada. Mide el recorrido cuadro-acción en la placa final, considera la incertidumbre una salida de primera clase y evita que un modelo probabilístico controle directamente una acción crítica.

Referencias