📌 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?
| Elemento | Almacenamiento recomendado | Comentario |
|---|---|---|
| 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.