Facial Recognition
El reconocimiento facial identifica o verifica a las personas comparando embeddings faciales. Cómo funciona el proceso, verificación frente a identificación, sesgos y privacidad.
El reconocimiento facial es una tecnología biométrica que identifica o verifica a una persona comparando una imagen de su cara con caras almacenadas. Los sistemas modernos utilizan aprendizaje profundo para convertir cada cara en un embedding, un vector numérico al que a menudo se llama huella facial, y deciden si dos caras pertenecen a la misma persona según la similitud entre sus embeddings. Permite desbloquear teléfonos, agiliza el paso de los pasajeros por las puertas de embarque y verifica a los clientes que abren cuentas bancarias por Internet. También es uno de los usos de la visión artificial más regulados, porque se puede captar una cara sin que la persona lo sepa.
Cómo funciona el reconocimiento facial#
Un sistema de reconocimiento ejecuta cuatro etapas en cada imagen:
- Detección: Un detector facial localiza cada cara y devuelve su cuadro delimitador y algunos puntos de referencia faciales.
- Alineación: Se rota, escala y recorta la cara para colocar los ojos, la nariz y la boca en posiciones fijas, lo que elimina la mayor parte de las variaciones debidas a la pose de la cabeza y a la distancia.
- Codificación con una CNN: La red transforma el recorte alineado en un embedding de longitud fija.
- Comparación mediante similitud coseno: Se compara el nuevo embedding con los embeddings registrados y un umbral determina si hay coincidencia. Los despliegues a gran escala almacenan las huellas faciales registradas en una base de datos vectorial para agilizar las búsquedas.
La detección de rostros es un problema de detección de objetos, y un modelo YOLO26 de Ultralytics ajustado con un conjunto de datos de rostros, como WIDER FACE, puede ejecutarla en tiempo real en cámaras perimetrales y pasar las cajas de los rostros a las etapas posteriores. Antes del aprendizaje profundo, los sistemas se basaban en características diseñadas manualmente, desde distancias entre puntos de referencia faciales hasta Eigenfaces y patrones binarios locales; las incrustaciones aprendidas las sustituyeron porque son mucho más estables ante los cambios de iluminación, expresión y edad. En 2015, FaceNet entrenó directamente incrustaciones compactas de 128 dimensiones con una pérdida triplete, y las pérdidas basadas en márgenes, como ArcFace, ahora separan más las incrustaciones de distintas personas. La etapa de comparación responde a dos preguntas distintas:
La verificación (1:1) determina si una cara corresponde a una identidad declarada, como cuando un teléfono comprueba quién es su propietario. La identificación (1:N) busca en toda una galería, como cuando un sistema de control de acceso compara una cara con las de todos los empleados registrados. Los modelos de OpenCV Zoo ejecutan toda la canalización en unas pocas líneas; este código registra las caras de una imagen y luego identifica las caras de una copia reflejada comparándolas con esa galería.
import urllib.request
import cv2
# Download OpenCV Zoo's face detector (YuNet), face recognizer (SFace), and a test image
zoo = "https://github.com/opencv/opencv_zoo/raw/main/models"
urllib.request.urlretrieve(f"{zoo}/face_detection_yunet/face_detection_yunet_2023mar.onnx", "yunet.onnx")
urllib.request.urlretrieve(f"{zoo}/face_recognition_sface/face_recognition_sface_2021dec.onnx", "sface.onnx")
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
img = cv2.imread("bus.jpg")
detector = cv2.FaceDetectorYN.create("yunet.onnx", "", (img.shape[1], img.shape[0]))
recognizer = cv2.FaceRecognizerSF.create("sface.onnx", "")
# Enroll each detected face as an aligned 128-D embedding
gallery = [recognizer.feature(recognizer.alignCrop(img, face)) for face in detector.detect(img)[1]]
# Identify the faces of a mirrored copy against the gallery (SFace match: cosine >= 0.363)
mirror = cv2.flip(img, 1)
for face in detector.detect(mirror)[1]:
probe = recognizer.feature(recognizer.alignCrop(mirror, face))
print([round(recognizer.match(probe, g, cv2.FaceRecognizerSF_FR_COSINE), 2) for g in gallery])Imprime [0.87, 0.06] y [0.09, 0.89]: cada cara reflejada obtiene una puntuación muy superior al umbral de 0.363 frente a su propio embedding registrado y muy inferior frente al de la otra persona.
Reconocimiento facial y términos relacionados#
- Detección de rostros: Localiza los rostros en una imagen sin determinar de quiénes son; es la primera fase del reconocimiento y también sirve para el enfoque automático de la cámara y el desenfoque de rostros.
- Análisis facial e informática afectiva: Estiman atributos como la expresión, la pose de la cabeza o la edad sin determinar la identidad.
- Reidentificación de objetos (Re-ID): Asocia a personas entre cámaras según su aspecto corporal general, por ejemplo, la ropa. Funciona con personas de espaldas y a baja resolución, pero solo durante periodos breves.
Aplicaciones en el mundo real#
- Desbloqueo de dispositivos: Los teléfonos verifican la identidad de su propietario en una fracción de segundo; Face ID de Apple proyecta más de 30 000 puntos infrarrojos para crear un mapa de profundidad que una foto impresa no puede imitar.
- Viajes y control fronterizo: Las puertas electrónicas automatizadas comparan una foto en directo del viajero con la foto almacenada en el chip de su pasaporte electrónico.
- Verificación de identidad: Los bancos y servicios en línea comparan un selfi con la foto de un documento de identidad oficial al abrir una cuenta, junto con comprobaciones de prueba de vida.
- Organización de fotos: Las aplicaciones fotográficas agrupan las caras de una colección personal para que los usuarios puedan encontrar todas las fotos de un familiar.
Exactitud, sesgo y suplantación#
Todo sistema implica un equilibrio entre dos errores: una falsa coincidencia acepta a la persona equivocada y una falsa no coincidencia rechaza a la persona correcta; el umbral de similitud determina ese equilibrio. La evaluación de tecnología de reconocimiento facial del NIST (FRTE), antes denominada FRVT, evalúa algoritmos comerciales con millones de imágenes. Su estudio de 2019, que analizó 189 algoritmos de 99 desarrolladores, detectó diferencias demográficas en las tasas de falsos positivos de la mayoría, un ejemplo central del sesgo algorítmico. También se puede engañar al reconocimiento con fotos, reproducciones en pantalla y máscaras, por lo que los sistemas de producción incorporan detección de ataques de presentación, a menudo llamada detección de prueba de vida, mediante sensores de profundidad, infrarrojos o análisis de movimientos sutiles.
Privacidad y regulación#
Las huellas faciales son datos biométricos, por lo que las leyes las consideran datos personales especialmente sensibles. En virtud del RGPD, los datos biométricos utilizados para identificar a una persona pertenecen a una categoría especial que requiere una base jurídica explícita; además, la Ley de Privacidad de la Información Biométrica de Illinois exige el consentimiento por escrito antes de que una empresa recopile una huella facial. La Ley de IA de la UE va más allá: desde el 2 de febrero de 2025, prohíbe crear bases de datos de reconocimiento facial mediante la extracción indiscriminada de imágenes de Internet o de sistemas CCTV, así como la identificación biométrica remota en tiempo real en espacios públicos con fines policiales, salvo en unos pocos casos definidos de forma muy estricta.










