Trabajo de grado - Maestría
Reconocimiento facial para la automatización del registro de asistencia a clases
Registro en:
Universidad Tecnológica de Pereira
Repositorio Institucional Universidad Tecnológica de Pereira
Autor
Legarda Delgado, Diego Fernando
Loaiza Pabón, Oscar Andrés
Institución
Resumen
En el presente trabajo se realizó el desarrollo del sistema piloto de registro automático de asistencia a clases presenciales FR-ARCA, basado en técnicas de detección y reconocimiento facial, utilizando modelos de aprendizaje profundo. Se diseñó el modelo del sistema con una arquitectura modular de diferentes herramientas integradas adecuadamente para resolver las consideraciones previstas. El uso y la integración de contenedores, el lenguaje de progra mación Python con los frameworks FastAPI y Django, el uso de frameworks para Machine Learning como Keras, TensorFlow, PyTorch, OpenCV y MXNet y protocolos de comunicación REST y MQTT permitieron superar retos que tiene la ingeniería de software para implementar inteligencia artificial (IA) en software de producción. Con la extracción de características
principales de rostro y su almacenamiento en bases de datos (DB) se realiza la identifica ción de identidades a través del cálculo de similitud entre los vectores de características (embeddings) por lo cual no se necesita reentrenar las redes neuronales convolucionales cuando ingresan nuevos aprendices a la institución. Se probaron modelos preentrenados de detección de rostros como MTCNN, RetinaFace y SCRFD, y modelos de reconocimiento de rostros como VGG-Face, FaceNet y ArtFace, en el sistema FR-ARCA y fueron evaluados con experimentos que permitieron validar y configurar el sistema para lograr excelentes resultados en la exactitud del registro de asistencia a clases. Maestría Magíster en Ingeniería de Sistemas y Computación Índice general
1. INTRODUCCIÓN 13
1.1. DESCRIPCIÓN DEL PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. FORMULAR EL PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3. OBJETIVOS DE LA INVESTIGACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4. JUSTIFICACIÓN DE LA INVESTIGACIÓN . . . . . . . . . . . . . . . . . . . . . . . 18
2. ESTADO DEL ARTE 21
2.1. DATASET DE IMÁGENES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1. LFW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2. CFP-FP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.3. AgeDB-30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.4. CALFW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.5. CPLFW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.6. CASIA-WebFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.7. Glint360K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.8. WebFace600k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2. MODELOS DE DETECCIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1. RetinaFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.2. SCRFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.3. MTCNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.4. Single Shot Detector (SSD) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.5. Librerías Para Detección De Rostros . . . . . . . . . . . . . . . . . . . . . . 28
2.3. METODOS DE RECONOCIMIENTO . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.1. Arcface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.2. Partial FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3
Capítulo 0 Universidad Tecnológica de Pereira
2.3.3. VPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.4. DeepID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.5. Facenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.6. FbDeepFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.7. VGGFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4. SISTEMAS DE RECONOCIMIENTO . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.1. TIPOS DE SISTEMAS DE RECONOCIMIENTO . . . . . . . . . . . . . . . . 33
2.4.2. HERRAMIENTAS DE RECONOCIMIENTO FACIAL OPEN SOURCE . . . 35
2.4.2.1. Ageitgey/face_recognition . . . . . . . . . . . . . . . . . . . . . . 35
2.4.2.2. DeepFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4.2.3. InsightFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4.3. SISTEMAS DE RECONOCIMIENTO FACIAL . . . . . . . . . . . . . . . . . 36
2.4.3.1. Exadel CompreFace . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.3.2. InsightFace-REST . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.3.3. Amazon Rekognition . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.3.4. Azure Face . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.5. DESAFÍOS AL IMPLEMENTAR Y DESPLEGAR MODELOS DE MACHINE LEAR NING EN UN PRODUCTO DE SOFTWARE . . . . . . . . . . . . . . . . . . . . . . 38
2.5.1. Desarrollo de Software: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5.2. Manejo de datos de gran volumen: . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.3. Manejo de datos: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.4. Comprender los algoritmos, las técnicas y las bibliotecas de ML: . . . . . 39
2.5.5. Manejo de modelos: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.6. Tratar con las dependencias: . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.7. Modelos de reutilización: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.8. Entorno de desarrollo, las herramientas y la infraestructura: . . . . . . . 40
2.5.9. Rendimiento: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3. MARCO TEÓRICO 42
3.1. DETECCIÓN Y RECONOCIMIENTO DE ROSTROS . . . . . . . . . . . . . . . . . 42
3.1.1. DETECCIÓN DE ROSTROS . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1.1.1. La detección de rostros usando procesamiento de imágenes . . 43
3.1.2. RECONOCIMIENTO DE ROSTROS . . . . . . . . . . . . . . . . . . . . . . 44
3.2. REDES NEURONALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.1. PERCEPTRÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4
Capítulo 0 Universidad Tecnológica de Pereira
3.2.2. PERCEPTRÓN MULTI-CAPA . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3. REDES NEURONALES CONVOLUCIONALES (CNN) . . . . . . . . . . . . . . . . 50
3.3.1. CAPA DE ENTRADA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.2. CAPAS DE EXTRACCIÓN DE CARACTERÍSTICAS . . . . . . . . . . . . . . 51
3.3.2.1. Capas de convolución . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2.2. Capas de pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.3. CAPA DE CLASIFICACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.4. FUNCIONES DE PÉRDIDA . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.4.1. Triplet Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.4.2. ArcFace Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3.5. ONE-SHOT LEARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3.6. MEDIDA DE SIMILITUD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3.6.1. Similitud del coseno del espacio vectorial . . . . . . . . . . . . . 57
3.3.6.2. Coeficiente de correlación de Pearson . . . . . . . . . . . . . . . 58
3.3.6.3. Coeficiente de Jaccard . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4. TECNOLOGÍAS DE DESARROLLO DE SOFTWARE . . . . . . . . . . . . . . . . . 59
3.4.1. METODOLOGÍAS DE DESARROLLO . . . . . . . . . . . . . . . . . . . . . . 59
3.4.1.1. Metodología de desarrollo cascada . . . . . . . . . . . . . . . . . 60
3.4.1.2. Metodología de desarrollo iterativo . . . . . . . . . . . . . . . . . 61
3.4.1.3. Metodología de desarrollo RUP (Proceso Racional Unificado) . 62
3.4.2. PROTOCOLOS DE TRANSFERENCIA DE DATOS . . . . . . . . . . . . . . 63
3.4.2.1. Hypertext Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . 63
3.4.2.2. Representational State Transfer (REST) . . . . . . . . . . . . . . . 64
3.4.3. INFRAESTRUCTURA DE ALOJAMIENTO WEB . . . . . . . . . . . . . . . . 65
3.4.3.1. Tipos de Alojamiento . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.4.3.2. Virtualización de entornos . . . . . . . . . . . . . . . . . . . . . . 66
4. MATERIALES Y MÉTODOS 69
4.1. METODOLOGÍA PARA EL ANÁLISIS, DISEÑO Y DESARROLLO DE FR-ARCA . . 69
4.2. CAJA DE HERRAMIENTAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.1. Dashboard UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.2. API Gestión de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.3. API de Detección y Reconocimiento de Rostros . . . . . . . . . . . . . . . 71
4.2.4. Aplicación de Captura de Imagen . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.5. Gestión de Datos y Embeddings . . . . . . . . . . . . . . . . . . . . . . . . 75
5
Capítulo 0 Universidad Tecnológica de Pereira
4.2.6. Aplicación Móvil (Captura imagen Offline) . . . . . . . . . . . . . . . . . . 76
4.3. PREPARACIÓN DE DATOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3.1. Software de recolección de rostros . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.2. FR-ARCA Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.4. EXPERIMENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.4.1. Experimento 1. Reconocimiento de rostros con búsqueda de máxima si militud segmentada por grupos, para el cálculo de accuracy de diferentes
métodos de detección y reconocimiento de rostros. . . . . . . . . . . . . 80
4.4.2. Experimento 2. Reconocimiento de rostros con búsqueda de máxima
similitud en el conjunto completo de embeddings, para el cálculo de
accuracy de diferentes métodos de detección y reconocimiento de rostros. 81
4.4.3. Experimento 3. Tasa de verificación de pares de imágenes. . . . . . . . . 81
4.4.4. Experimento 4. Prueba de comparación de FR-ARCA, CompreFace, Azure
Face Recognition y Amazon Rekognition con respecto a la precisión en
el test de tasa de verificación de pares de imágenes. . . . . . . . . . . . . 82
4.4.5. Experimento 5. Prueba de registro de asistencia a clases con FR-ARCA
en ambientes de aprendizaje internos. . . . . . . . . . . . . . . . . . . . . 82
4.4.6. Experimento 6. Prueba de registro de asistencia a clases con FR-ARCA
en ambientes de aprendizaje externos, usando la aplicación móvil. . . . 83
4.5. MÉTRICAS DE EVALUACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.5.1. Matriz de Confusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.5.2. Curvas ROC y AUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5. DESARROLLO DE LA SOLUCIÓN 89
5.1. DISEÑO DEL MODELO DEL SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2. PRINCIPALES CONSIDERACIONES . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3. SISTEMA DE RECONOCIMIENTO FACIAL SIN REENTRENAMIENTO DE DCNN
PARA NUEVOS GRUPOS DE APRENDICES . . . . . . . . . . . . . . . . . . . . . . 94
5.3.1. Metodología para reconocimiento de rostros a través de cálculo de similitud . . . . . . . . . . . . . . . . . . . 95
5.3.2. Cálculo de similitud entre embeddings . . . . . . . . . . . . . . . . . . . . 96
5.4. SELECCIÓN DE MODELOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.4.1. Modelos de detección de rostros . . . . . . . . . . . . . . . . . . . . . . . . 96
5.4.2. Modelos de reconocimiento de rostros . . . . . . . . . . . . . . . . . . . . 97
5.4.3. Alineación y normalización de rostros . . . . . . . . . . . . . . . . . . . . . 98
6
Capítulo 0 Universidad Tecnológica de Pereira
5.5. ARQUITECTURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.6. DISEÑO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.6.1. Usuarios del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.6.2. Ingreso de rostros al sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.6.3. Reconocimiento de rostros . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.6.4. Gestión de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6. RESULTADOS 108
6.1. RESULTADOS DE LOS EXPERIMENTOS REALIZADOS . . . . . . . . . . . . . . . 109
6.1.1. Resultados Experimento 1. Reconocimiento de rostros con búsqueda de
máxima similitud segmentada por grupos, para el cálculo de accuracy
de diferentes métodos de detección y reconocimiento de rostros. . . . . 109
6.1.2. Resultados Experimento 2. Reconocimiento de rostros con búsqueda de
máxima similitud en el conjunto completo de embeddings, para el cálculo de accuracy de diferentes métodos de detección y reconocimiento de rostros. . . . . . . . . . . . . . . . . . 111
6.1.3. Resultados Experimento 3. Tasa de verificación de pares de imágenes. . 113
6.1.4. Resultados Experimento 4. Prueba de comparación de FR-ARCA, CompreFace, Azure Face Recognition y Amazon Rekognition con respecto a
la precisión en el test de tasa de verificación de pares de imágenes. . . . 117
6.1.5. Resultados Experimento 5. Prueba de registro de asistencia a clases con
FR-ARCA en ambientes de aprendizaje internos. . . . . . . . . . . . . . . 118
6.1.6. Resultados Experimento 6. Prueba de registro de asistencia a clases con
FR-ARCA en ambientes de aprendizaje externos, usando la aplicación
móvil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.2. PRODUCTO FINAL FR-ARCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.2.1. Interfaz gráfica para gestión de datos. . . . . . . . . . . . . . . . . . . . . . 124
6.2.2. Interfaz gráfica para ingreso de características principales de rostros. . . 126
6.2.3. Interfaz gráfica del dispositivo de captura de imágenes. . . . . . . . . . . 127
6.2.4. Interfaz gráfica de la aplicación móvil. . . . . . . . . . . . . . . . . . . . . 128
7. CONCLUSIONES Y TRABAJOS FUTUROS ..................131
8. PUBLICACIONES.................. 134
Referencias ............... 135