Skip to main content

📌 Estrategias de Representación de Embeddings Faciales

Esta sección describe las estrategias utilizadas para representar embeddings faciales en tareas de identificación y verificación de usuarios, evaluando sus ventajas, desventajas y presentando una propuesta híbrida que optimiza eficiencia y precisión en tiempo real.


🧠 1. Estrategias de Representación

🟢 1.1 Promedio de Embeddings (Mean Embeddings)

💡 Idea:
Promediar todos los embeddings disponibles de un individuo y usar ese vector promedio como su representación. Las futuras comparaciones se hacen contra este vector.

✅ Ventajas:

  • 💾 Eficiente: solo se necesita almacenar un vector por persona.
  • 🎯 Filtrado de ruido: suaviza posibles errores por imágenes atípicas.

❌ Desventajas:

  • 🚫 Pérdida de variabilidad intra-clase (gafas, barba, luz...).
  • 🎭 Puede alejarse de situaciones reales al mezclar extremos.
  • 📉 En práctica, reduce la precisión cuando hay pocos datos o alta variabilidad.

🟠 1.2 Múltiples Embeddings por Individuo

💡 Idea:
No promediar. Se comparan nuevos embeddings con todos los vectores del usuario registrado.

✅ Ventajas:

  • 🌈 Preserva la diversidad intra-clase (expresiones, luz, rotación...).
  • 🔎 Permite estrategias tipo "nearest neighbor con umbral".
  • 💪 Mejor rendimiento en escenarios reales complejos.

❌ Desventajas:

  • 🐌 Mayor costo computacional, especialmente con muchos registros.
  • 📦 Necesita indexación eficiente (FAISS, Annoy, KD-Trees...).

🔍 2. Descripción del Problema de Identificación

🤔 Enfoque inicial:

  • Entrada: ID del usuario + rostro.
  • Comparación: 1 embedding de consulta vs. 4 embeddings almacenados.
  • Escenario: verificación facial → simple y eficiente.

📈 Enfoque actual:

  • Se busca identificación automática, sin ingresar ID.
  • Entonces se compara:

1 (embedding) → n * 4 embeddings (de todos los usuarios)

Por ejemplo: 100 usuarios → 400 comparaciones.

❗ Esto se vuelve costoso en tiempo y procesamiento, sobre todo en tiempo real.


🧪 3. Propuesta de Solución Mixta

🧩 Idea combinada

Fusionar lo mejor de ambos enfoques: velocidad y precisión.

🔧 Estrategia técnica

  • Utilizar FAISS para la comparación por similitud de coseno.
  • Guardar dos tipos de embeddings:
  • 📌 Uno promediado en la tabla principal del usuario.
  • 📚 Varios individuales (4) en otra tabla secundaria.

💡 Beneficios

  • 🏎️ Se usa el embedding promedio para consultas rápidas.
  • 🔍 Se usan los embeddings múltiples para verificación adicional.
  • 🎛️ Ofrece flexibilidad entre velocidad y precisión.
  • ⚖️ Elección dinámica: si se requiere rapidez o exactitud según contexto.

💭 ¿Y la eficiencia?

  • Los vectores se almacenan como arrays de float32 (32 bits).
  • Tamaño moderado, no representa una carga crítica.
  • 🚀 Compatible con FAISS, que maneja bien consultas masivas.

🗃️ 4. ¿Qué se almacena en la Base de Datos?

ElementoAlmacenamiento recomendadoComentario
Embedding Crudo✅ SíReutilizable para futuros modelos.
Embedding Normalizado⚠️ OpcionalÚtil para Faiss, pero no reversible.
ID Usuario✅ SíClave primaria para asociar los vectores.
Fecha de Registro✅ OpcionalÚtil para control histórico o limpieza futura.

🔄 Normalización debe hacerse en el código antes de consulta, no al guardar en la base de datos, para mantener la flexibilidad.


✅ Conclusión

La propuesta mixta permite construir un sistema de identificación facial escalable, preciso y eficiente en tiempo real, combinando estructuras de datos inteligentes, indexación óptima y estrategias robustas de comparación facial.