// Proyecto · Computer Vision · Emoción en tiempo real

Saber si tu presentación
está funcionando.

Una CNN detecta las emociones faciales del interlocutor frame a frame y las convierte en un índice de receptividad de 0 a 10 durante una presentación de ventas. Webcam en directo o subida de vídeo con export CSV. Dos arquitecturas comparadas: CNN custom (60.1%) vs MobileNetV2 fine-tuned (63.0%), ambas a menos de 30ms por frame.

// Métricas del sistema

Precisión MobileNetV2
63.0%
fine-tuned sobre FER2013
Latencia por frame
~29ms
MobileNetV2 · ~27ms CNN custom
Tasa de webcam
~8 FPS
ventana deslizante 10 frames
Dataset
35k
imágenes · FER2013

El problema

Las presentaciones
ocurren
a ciegas.

01

No sabes si el cliente te está siguiendo. En una videollamada o reunión presencial, los microgestos del interlocutor pasan desapercibidos mientras te concentras en el discurso. El interés puede haberse perdido hace diez minutos y no te has dado cuenta.

02

Las encuestas post-reunión llegan demasiado tarde. Para cuando el cliente rellena un formulario de satisfacción, la oportunidad de pivotar ha pasado. La información vale algo solo si llega en tiempo real.

03

Observar y presentar a la vez es imposible. Mantener el hilo del argumentario mientras analizas expresiones faciales es cognitivamente inviable. Necesitas un sistema que lo haga de forma automática y no intrusiva.

04

Sin datos, no hay mejora. No existe forma de analizar qué partes de una presentación generaron engagement y cuáles desconectaron al cliente. El export CSV convierte cada sesión en un activo de aprendizaje.


Cómo funciona

PASO 01

Captura de vídeo

La interfaz Streamlit acepta dos fuentes: webcam en tiempo real (~8 FPS) o subida de un archivo de vídeo. OpenCV gestiona la captura y el preprocesado: detección de cara, recorte y normalización a 48×48 píxeles en escala de grises, el formato esperado por FER2013.

PASO 02

Detección de emoción por frame

Cada frame pasa por la CNN (custom o MobileNetV2 según configuración). El modelo clasifica la emoción en 7 categorías (alegría, sorpresa, neutralidad, tristeza, asco, ira, miedo) con su probabilidad asociada. Latencia entre 27 y 29ms por frame.

PASO 03

Índice de receptividad con ventana deslizante

Las emociones individuales son volátiles. Una ventana deslizante de 10 frames promedia las probabilidades y las convierte en un índice 0–10: emociones positivas (alegría, sorpresa) empujan el índice hacia arriba, negativas (ira, tristeza, asco) hacia abajo. El resultado es una curva estable y legible.

PASO 04

Export CSV + demo en navegador

Cada sesión genera un CSV con timestamp, emoción detectada e índice de receptividad por frame: datos listos para análisis post-reunión. Adicionalmente, el modelo se exporta a TF.js para una demo sin instalación que corre íntegramente en el navegador.

De la cámara
al índice,
en tiempo real.

Dos arquitecturas CNN sobre FER2013, servidas vía FastAPI y Streamlit, con demo TF.js para ejecución sin backend.

TensorFlow 2.10.1 MobileNetV2 OpenCV FastAPI Streamlit TF.js Python 3.10 FER2013 CNN custom Transfer learning Export CSV Ventana deslizante

Qué demuestra

Computer Vision

Pipeline de inferencia en tiempo real

No es un experimento de notebook: la CNN procesa vídeo en directo, mantiene una ventana temporal de contexto y produce un índice continuo. Captura, detección facial, inferencia y agregación de señal en una sola cadena.

Comparativa de arquitecturas

CNN custom vs MobileNetV2 fine-tuned

Dos aproximaciones distintas al mismo problema, evaluadas con las mismas métricas. La CNN custom (60.1%, ~27ms) frente al transfer learning con MobileNetV2 (63.0%, ~29ms). Documentación honesta del tradeoff entre velocidad y precisión.

Interfaz de producción

FastAPI + Streamlit + export de datos

El modelo no vive solo en Python: una API FastAPI lo expone a otros sistemas y Streamlit ofrece una interfaz usable. El export CSV transforma cada sesión en datos estructurados para análisis posterior.

Portabilidad

Demo en navegador sin backend

El modelo se convierte a TF.js y corre íntegramente en el cliente. Cualquier persona puede probar el sistema desde un enlace, sin instalación, sin servidor. El mismo modelo, dos entornos de ejecución distintos.


¿Te interesa este proyecto?

Relevante si...

  • Buscas un AI Engineer con experiencia en Computer Vision y pipelines de inferencia en tiempo real
  • Necesitas comparar arquitecturas CNN con criterio y documentar el tradeoff de forma honesta
  • Quieres ver transfer learning aplicado: desde dataset público hasta sistema funcional con interfaz
  • Valoras que el modelo sea portable: mismo peso, demo en navegador sin backend

Menos relevante si...

  • Necesitas precisión de nivel comercial — 63% sobre FER2013 es un punto de partida de investigación, no un producto
  • Tu caso requiere más de 8 FPS en condiciones de baja luz o múltiples caras simultáneas
  • Buscas un sistema listo para producción en ventas reales sin calibración adicional

Proyectos relacionados

PyTorch · ONNX · React

Fraud Autoencoder

Detección de fraude sin etiquetas de fraude. PR-AUC 0.37 frente a 0.11 del baseline. Demo en navegador.

Ver caso completo →
LightGBM · Azure OpenAI · FastAPI

Clarity Bank

Clasificación de transacciones en dos niveles. 96.1% de precisión, 95.6% menos coste que enviar todo al LLM.

Ver caso completo →

Contacto

¿Buscas un AI Engineer?
Hablemos.

30 minutos. Sin compromiso. Si veo que puedo ayudarte, te lo digo. Si no, también.

Agendar videollamada →