Predictor de Edad y Género
Estima edad y género de una foto con face-api.js ejecutándose en tu navegador — sin subir nada, sin registro. Detecta varios rostros y exporta resultados.
Sobre el Predictor de Edad y Género con IA
Este Predictor de Edad y Género estima la edad aparente (en años) y el género predicho de cada rostro en una foto que subas. Funciona enteramente en tu dispositivo usando face-api.js, un port de código abierto a TensorFlow.js de modelos de aprendizaje profundo establecidos para detección facial y estimación de atributos. Ningún dato de imagen se sube a ningún servidor: detección, embedding, regresión de edad y clasificación de género se ejecutan como JavaScript en tu navegador. Tras la primera visita (~5 MB de pesos del modelo se almacenan en caché), la herramienta funciona offline.
Úsala para exploración casual — adivinar qué edad aparenta un rostro, demostrar visión por computador en aulas, prototipar funciones para un proyecto personal, o comprobar que un dataset de fotos tiene una demografía aproximadamente equilibrada. Es una herramienta divertida y rápida que te da un número rápidamente. No es un sistema de autenticación biométrica, ni un verificador de identidad, ni un control de edad para contenido adulto, ni evidencia para decisiones legales, médicas, laborales o de seguros. Trata la salida como una estimación probabilística de un modelo entrenado con un dataset finito que hereda los sesgos de ese dataset.
La herramienta detecta múltiples rostros en una sola imagen y reporta cada uno con un cuadro delimitador, una edad estimada en años y una etiqueta de género predicho (hombre / mujer) con un puntaje de confianza. Los mejores resultados requieren retratos frontales bien iluminados con el rostro ocupando una parte significativa del encuadre. Maquillaje pesado, barba, gafas de sol, mascarillas, ángulos laterales, desenfoque por movimiento, resolución muy baja o sombras fuertes degradan la precisión. Bebés y niños pequeños son sistemáticamente sobre-estimados por la mayoría de modelos públicos porque los corpus de entrenamiento se inclinan hacia adultos. Adultos mayores (70+) a menudo son sub-estimados por la misma razón.
Sobre ética y sesgo: face-api.js hereda las limitaciones de sus datos de entrenamiento — principalmente IMDB-WIKI para edad y género — que sobre-representan adultos de piel clara, norteamericanos/europeos y fotografiados profesionalmente. NIST FRVT, MIT Media Lab Gender Shades y muchos estudios académicos han documentado tasas de error sistemáticamente más altas para tonos de piel oscuros y para expresión de género no binaria. La clasificación binaria hombre/mujer es en sí misma una simplificación tosca del género humano real. Ofrecemos esta herramienta para hacer que el análisis facial sea menos misterioso, no para autorizar decisiones sensibles sobre personas reales. No uses la salida para permitir o denegar a nadie acceso a un servicio, instalación, contenido o derecho.
La privacidad es por diseño y no por promesa: como todo el código del modelo se envía al navegador y toda la inferencia ocurre localmente, los bytes de tu imagen nunca viajan por la red. La página se sirve por HTTPS; las analíticas estándar registran solo la URL visitada, no el contenido de las fotos. No almacenamos, registramos, vendemos ni compartimos las imágenes que analizas. Cerrar la pestaña borra todos los datos en memoria.
Cómo funciona la predicción
La inferencia procede en tres etapas. Primero, detección facial: face-api.js usa un detector SSD MobileNetV1 entrenado con WIDER FACE (y opcionalmente un Tiny Face Detector para dispositivos de bajos recursos). El detector emite cuadros delimitadores con puntajes de confianza; un paso de non-maximum-suppression elimina solapamientos. La librería también soporta MTCNN — una cascada de tres etapas (P-Net, R-Net, O-Net) introducida por Zhang et al. (2016) — más precisa pero más lenta; el modelo por defecto equilibra precisión y velocidad para ejecución en navegador.
Segundo, alineamiento: cada rostro detectado se recorta y opcionalmente se alinea prediciendo 68 landmarks faciales (ojos, punta de la nariz, comisuras de la boca, mandíbula) de modo que los ojos queden horizontales. Alinear el rostro mejora la predicción de atributos porque la red de regresión fue entrenada con recortes alineados. El detector de landmarks es una ConvNet pequeña entrenada con iBUG 300-W.
Tercero, estimación de atributos: el recorte alineado pasa por una red troncal de extracción de características compartida (estilo ResNet) seguida de dos cabezas. La cabeza de edad es una regresión — emite directamente un número en años, entrenada con error cuadrático medio contra etiquetas IMDB-WIKI (Rothe, Timofte & Van Gool, 2015–2018). La cabeza de género es un clasificador binario que emite la probabilidad de ser mujer; reportamos la etiqueta más probable y su puntaje softmax como confianza. Ambas cabezas comparten una troncal inspirada en SSR-Net (Yang et al., 2018) suficientemente pequeña para correr fluidamente en móviles.
Las tres redes se cuantizan a flotante de 32 bits para el runtime de TensorFlow.js en navegador. Corren en WebGL cuando está disponible (acelerado por GPU) o caen a CPU vía WebAssembly. El tamaño total de pesos es 5–10 MB; el navegador cachea los pesos así que las visitas repetidas son instantáneas. La inferencia por rostro toma 50–300 ms en un portátil moderno, más en móvil. Todo el pipeline — detección, landmarks, atributos — es secuencial, pero múltiples rostros en una imagen se procesan en un bucle ajustado, no en paralelo.
El cuadro delimitador devuelto está en coordenadas de la imagen original, así que lo dibujamos directamente en un canvas superpuesto sobre la imagen de entrada. El valor de regresión de edad se redondea al entero más cercano para mostrar. La confianza de género se reporta como porcentaje; valores cercanos a 50% indican que el modelo tiene muy baja confianza y la etiqueta debe ignorarse o tratarse como 'desconocido'.
Precisión, limitaciones y uso ético
En retratos frontales adultos bien iluminados a resolución decente, las estimaciones de edad suelen estar dentro de ±5 a ±8 años de la edad verdadera, y la confianza de clasificación de género por encima del 90% es fiable en el sentido hombre/mujer en que el modelo fue entrenado. Estas cifras se degradan marcadamente fuera de ese rango operativo. El paper de evaluación de IMDB-WIKI reporta un Mean Absolute Error de unos 3,5 años para la red DEX (Deep EXpectation) original en su conjunto de prueba in-distribution; el rendimiento in-the-wild es peor. Trata cualquier predicción individual como una estimación, no una medida.
Críticamente, la precisión varía por demografía. Múltiples auditorías revisadas por pares — Gender Shades de Buolamwini & Gebru (2018), NIST FRVT 1:1 (en curso), Raji et al. (2020) — han mostrado que los modelos de análisis facial entrenados con datasets occidentales y de piel clara producen tasas de error significativamente más altas para mujeres, sujetos de piel oscura y personas cuya presentación de género no encaja en la norma binaria hombre/mujer. No son diferencias menores: tasas de error del 35% son comunes en grupos sub-representados frente al 1% en grupos bien representados en algunos sistemas comerciales. face-api.js no está exento de estos problemas.
No uses esta herramienta para ninguna decisión que afecte derechos, oportunidades, dinero o seguridad de una persona. Eso incluye — pero no se limita a — verificar edad para comprar alcohol, tabaco o contenido adulto; controlar acceso a servicios con restricción de edad; filtrar candidatos de empleo; verificar identidad para transacciones financieras o legales; diagnóstico o triaje médico; control fronterizo; vigilancia, perfilado o cumplimiento de la ley; publicidad dirigida basada en género inferido. Para cualquier caso de uso así necesitas un sistema calibrado, responsable y auditado, no un demo gratuito. Los autores de face-api.js, los papers originales de los modelos y WuTools renunciamos explícitamente a la idoneidad para esos usos.
- Las estimaciones de edad son típicamente ±5 a ±10 años en adultos; mucho más amplias en niños y mayores que están sub-representados en los datos de entrenamiento.
- El modelo produce una etiqueta binaria hombre/mujer y no puede representar identidades de género no binarias, intersexuales, transgénero o fluidas.
- La precisión se degrada en tonos de piel oscuros, ángulos no frontales, rostros ocluidos (gafas, mascarillas, manos) e imágenes de baja resolución o mal iluminadas.
- Maquillaje pesado, barba, hijab, cirugía o tratamientos antienvejecimiento pueden cambiar drásticamente las predicciones de edad y género.
- Niños menores de 5 a menudo se estiman como 8–12 años; adultos mayores de 70 suelen ser sub-estimados en 5–15 años.
- Fotos con cascos VR, oclusión parcial, vistas de perfil o expresiones extremas pueden no ser detectadas en absoluto.
- La herramienta no puede emparejar a la misma persona entre fotos — para eso usa nuestro Medidor de Similitud Facial.
- Las salidas no son aptas para verificación legal de edad, identidad biométrica, selección laboral, diagnóstico médico o aplicación de la ley.
Glosario
- Detección facial
- Localizar dónde aparecen rostros en una imagen, típicamente reportado como cuadros delimitadores con puntajes de confianza. Distinto del reconocimiento facial, que identificaría a quién pertenece el rostro.
- Cuadro delimitador (bounding box)
- Rectángulo dado como (x, y, ancho, alto) que encierra un rostro detectado en coordenadas de píxel de la imagen.
- Landmark facial
- Punto anatómico específico en el rostro — comisura externa del ojo, punta de la nariz, comisura de la boca, punto del mentón. Esta herramienta usa el esquema iBUG de 68 puntos para alinear rostros antes de la predicción de atributos.
- Modelo de regresión
- Red neuronal que emite un número continuo (aquí, edad en años) en lugar de una etiqueta de clase. Entrenada minimizando el error cuadrático medio contra edades ground-truth.
- Modelo de clasificación
- Red neuronal que emite una probabilidad sobre un conjunto fijo de categorías (aquí dos: hombre y mujer). La confianza es el puntaje softmax de la clase predicha.
- Inferencia de modelo
- Ejecutar una red neuronal entrenada con entrada nueva para producir predicciones. Distinto del entrenamiento, que es la fase de aprendizaje offline. Esta herramienta solo hace inferencia; el modelo se entrenó en otro lugar con IMDB-WIKI.
- ONNX / TensorFlow.js
- Runtimes para ejecutar redes neuronales. ONNX es un formato de intercambio abierto; TensorFlow.js corre modelos en JavaScript, opcionalmente acelerado por GPU vía WebGL o WebGPU. face-api.js usa TensorFlow.js.
- MTCNN
- Multi-task Cascaded Convolutional Network. Algoritmo de detección facial de Zhang et al. (2016) que ejecuta tres redes pequeñas en secuencia (P-Net, R-Net, O-Net) y predice conjuntamente cuadros delimitadores más cinco landmarks faciales.
Preguntas Frecuentes
¿Cómo estima la IA mi edad?
Ejecuta face-api.js (port de TensorFlow.js) en tu navegador. Tras localizar tu rostro con un detector SSD-MobileNet, alinea el recorte usando 68 landmarks faciales y lo pasa por una red de regresión entrenada con IMDB-WIKI para emitir un único número — edad aparente en años. Todo el pipeline corre offline en JavaScript; nada se sube.
¿Cuán preciso es el resultado de edad?
En retratos adultos frontales bien iluminados, el Mean Absolute Error publicado de DEX/IMDB-WIKI es de unos 3,5 años en sets de benchmark, y ±5 a ±10 años es realista in-the-wild. Niños, mayores, ángulos laterales, baja resolución, maquillaje pesado y personas con tonos de piel más oscuros tienden a tener errores mayores por sesgo en los datos de entrenamiento.
¿Puede detectar varios rostros?
Sí. El detector devuelve todos los rostros por encima de un umbral de confianza configurable; cada uno se procesa de forma independiente y obtiene su propio cuadro delimitador, estimación de edad y etiqueta de género. No hay un límite duro, pero los rostros muy pequeños pueden quedar fuera.
¿Mis fotos son privadas?
Sí. Toda la inferencia ocurre en tu navegador vía TensorFlow.js. Los pesos de la red neuronal se descargan una vez (~5 MB, en caché) y la inferencia corre localmente sobre el JPEG que selecciones. Los bytes de tu imagen nunca dejan tu dispositivo. No almacenamos, registramos ni compartimos fotos.
¿Por qué el modelo solo emite 'hombre' o 'mujer'?
Porque así fue entrenado — IMDB-WIKI etiqueta el género como atributo binario. Reconocemos que es una simplificación tosca de la identidad de género humana real y no podemos detectar con precisión expresión de género no binaria, transgénero o fluida. Trata la salida binaria como la suposición del modelo basada en estadísticas del set de entrenamiento, no como un hecho sobre la persona.
¿Es seguro para verificación de edad?
No. No uses esta herramienta para controlar acceso a alcohol, tabaco, juego o contenido adulto. Incluso en su mejor caso el modelo se desvía ±5–10 años, y la verificación legal de edad típicamente requiere un sistema calibrado, auditado y aprobado por reguladores. NIST FRVT, ICO/UK y la guía de la EU AI Act advierten contra usar análisis facial off-the-shelf para cumplimiento normativo.
¿Por qué se equivoca el modelo en mi foto?
Causas comunes: (1) tonos de piel oscuros sub-representados en IMDB-WIKI; (2) foto no frontal, borrosa o de baja resolución; (3) rostro parcialmente ocluido por gafas, mascarilla, manos o pelo; (4) maquillaje pesado, barba, cirugía estética; (5) niños y muy mayores se desvían sistemáticamente. Prueba otra foto y verifica que el cuadro delimitador esté en el rostro correcto.
¿Identifica quién es la persona?
No. El modelo solo emite una estimación numérica de edad y una etiqueta hombre/mujer. No empareja el rostro con una base de datos, no busca identidad ni reconoce individuos específicos. Para emparejamiento de rostros usa nuestro Medidor de Similitud Facial — también enteramente offline.
¿Qué arquitectura de modelo se usa?
Detección facial: SSD MobileNetV1 (u opcionalmente Tiny Face Detector / MTCNN). Detección de landmarks: ConvNet de 68 puntos. Regresión de edad y clasificación de género: una red troncal compartida de la familia SSR-Net, entrenada con IMDB-WIKI más UTKFace. Todos los pesos se cuantizan para TensorFlow.js en navegador.

¿Puedo usarlo comercialmente?
La herramienta es gratuita, pero face-api.js está bajo MIT y los papers originales de los modelos tienen sus propias notas de uso. Más importante, desplegar cualquier sistema de análisis facial en un producto casi siempre activa el RGPD (UE), CCPA (California) e Illinois BIPA — leyes biométricas — incluso si todo es local. Consulta asesoría legal antes de lanzar un producto basado en esto.
Referencias y fuentes académicas
- Zhang, K., Zhang, Z., Li, Z., & Qiao, Y.. (2016). Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks (MTCNN) IEEE Signal Processing Letters.
- Rothe, R., Timofte, R., & Van Gool, L.. (2018). DEX: Deep EXpectation of Apparent Age from a Single Image (dataset IMDB-WIKI) International Journal of Computer Vision.
- Yang, T.-Y., Huang, Y.-H., Lin, Y.-Y., Hsiu, P.-C., & Chuang, Y.-Y.. (2018). SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation IJCAI.
- Buolamwini, J., & Gebru, T.. (2018). Gender Shades: Intersectional Accuracy Disparities in Commercial Gender Classification Proceedings of Machine Learning Research.
- Grother, P., Ngan, M., & Hanaoka, K.. (2024). NIST Face Recognition Vendor Test (FRVT) Instituto Nacional de Estándares y Tecnología de EE. UU..
- Mühler, V.. (2020). face-api.js: JavaScript API para detección y reconocimiento facial en el navegador Librería open-source, licencia MIT.
Last reviewed: · Reviewed by Equipo de Ética e Ingeniería de IA de WuTools
Preguntas Frecuentes
¿La predicción de edad y género se ejecuta en mi navegador o las fotos se envían a un servidor?
Todo se ejecuta localmente en tu navegador. La detección facial (SSD-MobileNet), la alineación con 68 puntos y las cabezas de regresión de edad/género (face-api.js sobre TensorFlow.js) se descargan una vez y luego cada predicción se calcula en el dispositivo usando WebGL, WebGPU o WebAssembly. Tus fotos y las etiquetas de edad/género predichas nunca salen del dispositivo. Esto es esencial porque la demografía predicha combinada con una foto puede considerarse dato personal sensible bajo el RGPD. No registramos, almacenamos ni transmitimos ninguna imagen o predicción — puedes verificar con DevTools que no se dispara ninguna petición POST tras cargar los archivos del modelo.
¿Qué condiciones de imagen dan la estimación de edad más precisa?
Para la mejor estimación de edad aparente, usa una foto frontal con iluminación diurna uniforme, la cara ocupando al menos una región de 200x200 píxeles, sin gafas de sol, sin maquillaje pesado, sin filtros ni embellecimiento, expresión neutra y cabeza no inclinada. Perfiles laterales, sombras duras, mascarillas, sombreros cubriendo la frente, sonrisas amplias y filtros de belleza de Snapchat/Instagram pueden desplazar la edad predicha en 5-15 años. El modelo se entrenó con IMDB-WIKI, un conjunto de fotos de famosos sesgado hacia adultos de 20-60 años en iluminación posada, así que niños, ancianos muy mayores y fotos casuales tienden a tener más error.
¿Qué tan precisa es la edad predicha frente a mi edad real?
En el benchmark publicado DEX/IMDB-WIKI, las CNN de regresión de edad logran un Error Absoluto Medio de unos 3.5-5 años sobre la edad aparente en adultos de 20-60 años en fotos frontales bien iluminadas. El rendimiento baja para niños (datos de entrenamiento escasos por debajo de los 15 años) y ancianos (escasos por encima de 80 años), donde errores de 8-15 años son comunes. El modelo predice edad aparente — cómo de mayor pareces — no edad biológica, así que maquillaje, iluminación, peinado y calidad de imagen importan tanto como tu fecha de nacimiento real. Dos fotos de la misma persona tomadas con minutos de diferencia en condiciones distintas pueden fácilmente diferir 5+ años en la predicción.
¿Cómo funciona la predicción de género y es binaria?
La cabeza de género es un pequeño clasificador softmax de dos salidas que devuelve una probabilidad para "hombre" y "mujer" basada en el mismo embedding facial alineado de 64 dimensiones usado para la edad. La salida es binaria por diseño de los datos de entrenamiento (etiquetas IMDB-WIKI) — no hay clase no binaria o "desconocida". El clasificador expresa incertidumbre vía la probabilidad: una cara de la que el modelo no esté seguro podría devolver 0.52 hombre / 0.48 mujer. Recomendamos tratar predicciones por debajo de ~0.7 de confianza como ambiguas y no presentarlas como etiquetas. Este modelo captura presentación de género aparente en la foto, no el género autoidentificado del sujeto.
¿Es WebGPU más rápido que WebAssembly para predicción de edad/género?
Generalmente sí, cuando WebGPU está disponible. La canalización detección + puntos clave + edad + género involucra varias redes convolucionales. En un backend acelerado por GPU la canalización completa termina en unos 50-300 ms por cara en un portátil típico; en WebAssembly con SIMD toma 300-1500 ms; en WebAssembly puro (navegadores antiguos, sin SIMD) puede tomar 2-5 segundos. Esta herramienta inicializa TensorFlow.js al arrancar y elige el backend más rápido que puede — WebGL si está disponible, si no WebAssembly, y si no CPU — y registra el backend activo (faceapi.tf.getBackend()) en la consola del navegador para que puedas verificarlo en DevTools.
¿Puedo usar esto en tiempo real sobre una transmisión de webcam?
Sí, con matices. En WebGPU con una entrada de detector pequeña (320x240) la herramienta sostiene 15-30 FPS en un portátil típico, suave para vista previa en vivo. En WebAssembly-CPU espera 2-10 FPS — usable como pase de diapositivas pero entrecortado para vídeo. Para mejorar la tasa de fotogramas: reduce la resolución del detector, limita las predicciones a cada N-ésimo fotograma, ejecuta predicción solo cuando la cara se mueva (detección de movimiento por diferencias de fotograma) o usa un detector más ligero como BlazeFace de MediaPipe. Ten en cuenta que la predicción demográfica en vivo plantea preguntas de privacidad más fuertes que la predicción única — aunque todo corra localmente.
¿Qué arquitectura se usa — face-api.js, MediaPipe o DeepFace?
La canalización por defecto es face-api.js / @vladmandic/face-api (port a TensorFlow.js), combinando un detector facial SSD-MobileNet v1, un regresor de 68 puntos clave y dos pequeñas cabezas de regresión sobre un backbone compartido de features faciales para edad y género. La cabeza de edad es una red de regresión de salida única afinada desde un clasificador DEX; la cabeza de género es un softmax con dos salidas. MediaPipe Face Mesh + clasificador demográfico personalizado es una ruta alternativa que usan algunas apps; DeepFace (la biblioteca Python) envuelve múltiples arquitecturas incluyendo VGG-Face, Facenet y OpenFace — la mayoría son demasiado grandes para navegadores pero existen como referencias de investigación. El stack face-api.js es el estándar de facto del navegador por su balance precisión/tamaño.
¿Por qué la misma foto da una edad diferente al re-ejecutarla y es un bug?
Para edad y género la predicción es totalmente determinista: los mismos píxeles de entrada, la misma alineación y los mismos pesos producen la misma salida cada vez. Cada predicción primero vuelve a pintar la imagen original en el lienzo, así que las cajas verdes que se dibujan tras una ejecución nunca se reinyectan en la red — re-ejecutar la misma foto da números idénticos. Si alguna vez ves una pequeña diferencia, la causa habitual es una imagen de origen distinta: recodificación con pérdida (PNG vs JPEG), pegar desde el portapapeles a otro tamaño o cargar una copia reescalada. El modelo hace la misma matemática; solo cambió la entrada.
¿Puedo exportar la edad, el género y la confianza detectados para cada rostro?
Sí. Tras una predicción, usa Copiar JSON para copiar un registro estructurado al portapapeles, o Descargar CSV para guardar un archivo listo para hoja de cálculo. Cada fila lleva el índice del rostro, la caja delimitadora (x, y, ancho, alto en píxeles de la imagen original), la edad estimada, el género predicho y el porcentaje de confianza de género directamente del modelo. Es útil para auditar el equilibrio demográfico de un conjunto de datos, control de calidad o alimentar resultados en una canalización. La exportación se ejecuta enteramente en el dispositivo — como la propia inferencia, nada se sube. Trata cada valor como una estimación aparente, nunca una afirmación de identidad.
