• No se han encontrado resultados

Prototipo para el Control de Ingreso de Personal por Reconocimiento Facial

N/A
N/A
Protected

Academic year: 2020

Share "Prototipo para el Control de Ingreso de Personal por Reconocimiento Facial"

Copied!
50
0
0

Texto completo

(1)PROTOTIPO PARA EL CONTROL DE INGRESO DE PERSONAL POR RECONOCIMIENTO FACIAL. EDINSON CÁCERES PARRA. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA ESPECIALIZACION EN INGENIERIA DE SOFTWARE BOGOTÁ D.C. 2018.

(2) PROTOTIPO PARA EL CONTROL DE INGRESO DE PERSONAL POR RECONOCIMIENTO FACIAL. EDINSON CÁCERES PARRA. Proyecto de grado para optar al título de: Especialista en ingeniería de software. Director ROBERTO PAVA. Revisor JOHN FREDY PARRA. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA ESPECIALIZACION EN INGENIERIA DE SOFTWARE BOGOTÁ D.C. 2018.

(3) A mi madre Por tanto esfuerzo y amor conmigo.

(4) AGRADECIMIENTOS. A los profesores de la especialización en ingeniería de software de la Universidad Distrital Francisco José de Caldas, que hicieron parte de este proceso de formación, por sus valiosos aportes profesionales..

(5) RESUMEN. Este trabajo tuvo como objetivo desarrollar un prototipo para el control de ingreso de personas mediante el uso de tecnología de reconocimiento facial basada en Deep learning disponible a través de integración con APIs.. Se utilizó una librería de visión por computador para la detección y toma automática de fotografía. El desarrollo fue realizado en Java, se utilizó la base de conocimientos en arquitectura empresarial con el lenguaje Archimate.. Se realizaron pruebas acorde a los objetivos las cuales permitieron concluir la viabilidad del proyecto basado en los resultados exitosos del prototipo.. Palabras Clave. Archimate, Reconocimiento Facial, Visión por Computador, AWS Amazon Web Services, Java..

(6) ABSTRACT. The objective of this work was to develop a prototype to control the entry of people through the use of facial recognition technology based on Deep Learning available through integration with APIs.. A computer vision library was used to detect and take a photograph automatically. The development was done in Java, the knowledge base in business architecture was used with the Archimate language.. Tests were carried out according to the objectives which allowed to conclude the viability of the project based on the successful results of the prototype.. Keywords. Archimate, Facial Recognition, Computer Vision, AWS Amazon Web Services, Java..

(7) CONTENIDO. pág.. INTRODUCCION. 13. PARTE I. CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN. 14. CAPITULO I. DESCRIPCION DE LA INVESTIGACION. 15. 1.1. Definición del tema de investigación. 15. 1.2. Planteamiento del problema. 15. 1.3. Formulación del problema. 16. 1.4. Sistematización del problema. 16. 1.5. Objetivos de la investigación. 16. 1.5.1. Objetivo general. 16. 1.5.2. Objetivos específicos. 16. 1.6. Justificación. 17. 1.7. Hipótesis de trabajo. 17. CAPITULO 2. MARCO DE REFERENCIA. 18. 2.1. Marco teórico. 18. 2.1.1. Biometría por características faciales. 18.

(8) 2.1.2. Reconocimiento de patrones. 19. 2.1.2.1. Conceptos de reconocimiento de patrones. 19. 2.1.3. Métodos de reconocimiento facial. 20. 2.1.3.1. Principal Component Analysis: PCA. 21. 2.1.3.2. Independent Component Analysis: ICA.. 21. 2.1.3.3. Linear Discriminant Analysis: LDA. 21. 2.1.3.4. Métodos basados en kernels. 21. 2.1.3.5. Evolutionary Pursuit: EP. 22. 2.1.3.6. Support Vector Machine: SVM. 22. 2.1.3.7 Elastic Bunch Graph Matching: EBGM. 22. 2.1.3.8 Local Binary Pattern: LBP. 22. 2.1.3.9. Métodos 3D. 22. 2.1.4. APIs de Amazon Rekognition. 23. 2.1.5. Biblioteca de visión por computador OpenCv. 24. 2.1.6 Archimate. 25. 2.1.7. ADM. 27. PARTE II. DESARROLLO DE LA INVESTIGACIÓN. 28. CAPITULO 3. ANALISIS. 29.

(9) 3.1. Punto de vista de Capas. 29. 3.2. Punto de vista de motivación. 30. 3.3. Punto de vista de migración e implementación. 31. CAPITULO 4. DISEÑO. 32. 4.1 Comparación de Rostros. 32. 4.2 Detección de rostro. 33. CAPITULO 5. DESARROLLO. 36. 5.1. Desarrollo del módulo de captura automática de fotografía. 36. 5.2. Desarrollo módulo de comparación de rostros. 36. 5.2.1 Configuración del equipo. 36. 5.2.2. Integración con la API CompareFaces. 37. 5.3. Interface final de usuario. 38. CAPITULO 6. PRUEBAS. 39. PARTE III. CIERRE DE LA INVESTIGACIÓN. 40. CAPITULO 7. CONCLUSIONES. 41. 7.1. Resultados y discusión. 41. 7.2. Verificación, contraste y evaluación de los objetivos. 41. 7.3. Síntesis del modelo propuesto. 41.

(10) 7.4. Aportes originales. 42. CAPITULO 8. PROSPECTIVA DEL TRABAJO DE GRADO. 43. 8.1. Líneas de investigación futuras. 43. 8.2. Trabajos de Investigación futuros. 43. BIBLIOGRAFIA. 44. ANEXOS. 48. Ejemplo de comparación de dos imágenes mediante AWS SDK para java. 48.

(11) LISTA DE FIGURAS. pág.. Figura 1. Metamodelo genérico: los conceptos Core de Archimate.. 26. Figura 2. Framework Arquitectónico.. 27. Figura 3. Correspondencia entre el lenguaje Archimate y el ADM de TOGAF.. 27. Figura 4. Punto de vista de Capas.. 29. Figura 5. Punto de vista de motivación.. 30. Figura 6. Punto de vista de implementación y migración.. 31. Figura 7. Esquema de verificación de usuarios basada en rostro.. 33. Figura 8. Características Haar.. 34. Figura 9. Primera y segunda características Haar seleccionadas.. 35. Figura 10. Vista de la aplicación de escritorio.. 38.

(12) LISTA DE TABLAS. pág. Tabla 1. Caso de prueba 001.. 39. Tabla 2. Caso de prueba 002.. 39. Tabla 3. Contraste de objetivos con evidencia de cumplimiento. 42.

(13) INTRODUCCION. Los recientes avances en el campo de reconocimiento de imágenes derivados de mejoras a los sistemas de inteligencia artificial, tales como redes neuronales de aprendizaje profundo hacen posible hoy en día disponer de tecnología asequible para todos nosotros, confiable y de fácil utilización para el reconocimiento facial entre otros. Diferentes empresas al día de hoy han desarrollado APIs o expuesto recursos para que los usuarios del común hagan uso de estas tecnologías y a través de algunos parámetros y el suministro de cierta información como una fotografía, se pueda verificar la identidad de la persona que se encuentra en la imagen.. Las aplicaciones de esta tecnología pueden ser muchas entre ellas se encuentra la verificación de usuarios basada en reconocimiento facial, esto puede ser útil para implementar sistemas de control de ingreso de personas, así mismo existen empresas que utilizan mecanismos de control de acceso tradicionales como tarjetas, lo cual trae consigo ciertos problemas de seguridad y al implementar sistemas de reconocimiento facial podrían mitigar esos riesgos.. 13.

(14) PARTE I CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN. 14.

(15) CAPITULO I DESCRIPCION DE LA INVESTIGACION. 1.1.. Definición del tema de investigación. La presente investigación busca mitigar riesgos de seguridad en los sistemas de control de acceso de las empresas derivados del uso de mecanismos tradicionales como tarjetas, se pretende hacer uso de tecnología de reconocimiento facial suministrada por algún tercero, es decir, que la implementación del algoritmo de reconocimiento es ajena al sistema propuesto y se utilizan recursos expuestos para identificación de personas.. 1.2. Planteamiento del problema El control de ingreso a las instalaciones de las empresas para empleados y visitantes resulta ser crucial en aspectos como la seguridad, puesto que es necesario verificar la identidad de cada persona para garantizar que ningún intruso ingrese a las instalaciones de la misma, de tal forma que se puedan evitar riesgos de seguridad; adicionalmente es importante para llevar registro y control de los horarios de ingreso y salida de empleados y visitantes.. En la actualidad las empresas utilizan mecanismos tales como tarjetas de acceso o vigilancia física con personal; no obstante a tener un grado de efectividad estos mecanismos presentan algunas falencias tales como la fácil suplantación a través de identificación con documentos falsos o extraviados, para el caso de vigilancia física con personal, o el ingreso de personas que por alguna u otra razón tengan en su poder tarjetas de acceso para los casos en los que este sea el mecanismo de verificación de identidad. Si esta situación se mantiene permanecerán latentes los riesgos derivados de mecanismos de verificación de identidad tradicionales.. 15.

(16) 1.3. Formulación del problema. ¿Cómo construir un sistema de control de acceso para las empresas que mitigue los riesgos de seguridad de los mecanismos tradicionales y que no represente una gran inversión para las empresas?. 1.4. Sistematización del problema ¿Qué tecnologías existen actualmente que puedan realizar una identificación de personas en forma fiable, rápida y económica? ¿Cómo implementar una solución tecnológica basada en las tecnologías disponibles actualmente para identificación de personas?. 1.5. Objetivos de la investigación. 1.5.1. Objetivo general Construir un prototipo para el control ingreso de personas mediante identificación por reconocimiento facial, para empresas de la ciudad de Bogotá.. 1.5.2. Objetivos específicos.  Analizar y evaluar las diferentes opciones de tecnología de reconocimiento facial disponibles para integración a través de internet.  Desarrollar un módulo que permita la toma automática de fotografía.  Desarrollar un módulo para integración con la tecnología de reconocimiento facial seleccionada.. 16.

(17) 1.6. Justificación de la investigación La presente investigación se enfocará en la construcción de un prototipo funcional de un sistema de verificación de identificación para el ingreso de personas para en la ciudad de Bogotá, lo cual permitirá mitigar riesgos de seguridad derivados de la utilización de mecanismos tradicionales (como tarjetas de acceso) de verificación de identidad para el ingreso de personas; riesgos tales como suplantación.. Se podrá mejorar efectividad con la que se valida el ingreso de una persona a la empresa, garantizando que la persona que quedó registrada en el ingreso realmente es quién aparece registrada en la empresa, adicionalmente se podrá controlar con precisión el ingreso y salida del persona; se plantea su utilización en empresas que no dispongan de grandes presupuestos de inversión para poder implementar otros sistemas que podrían resultar muy costosos, en tanto que este resulta ser un sistema de bajo costo y muy eficiente para lo requerido. Se plantea la utilización de la un servicio de reconocimiento facial suministrado por un tercero puesto que resultan ser tecnologías ampliamente probadas y cuyo costo de utilización puede ser muy bajo; los casos que no puedan identificarse por este medio deberán ser verificados mediante seguridad física brindada por el personal de seguridad.. 1.7. Hipótesis de trabajo. El uso de sistemas tradicionales de control de acceso (tarjetas) genera problemas de seguridad tales como suplantación, préstamo e intercambio de tarjetas de acceso; debido a que para el ingreso solo se requiere disponer de la tarjeta para el acceso. Por tanto el diseño de este prototipo contribuirá a mitigar esos riesgos a través de un mecanismo de identificación efectivo basado en reconocimiento facial. El prototipo utilizará tecnología disponible a bajo costo haciéndolo asequible para empresas que no dispongan de gran presupuesto para realizar inversiones en sistemas que podrían resultar muy costosos. 17.

(18) CAPITULO 2 MARCO DE REFERENCIA. 2.1. Marco Teórico. 2.1.1. Biometría por características faciales. La biometría busca la identificación de las personas basado en atributos físicos o de comportamiento1; esto es reconocimiento, autenticación o verificación; haciendo posible que una característica física pueda ser usada para tales fines. Por su parte biometría basada en características faciales, especializa su base de análisis en aquellos atributos físicos pertenecientes al rosto de una persona, analizando particularidades que existen de cada rostro, esta técnica es conocida como biometría facial y puede utilizarse para el control y seguridad, pudiéndose clasificar en dos categorías2: Verificación biométrica: permite establecer si la persona a verificar es quien manifiesta ser. Identificación biométrica: busca establecer la identidad de una persona a partir de sus características faciales. Un sistema de biometría facial implementado con tecnología computacional consta principalmente de: una cámara como componente de hardware, este elemento se encarga de registrar la imagen y convertirla en información digital y un software ________________________________ 1. JAIN, A., Bolle, R., & PANKANTI, S. (2006). Biometrics: personal identification in networked society. New York: Springer Science & Business Media. 2. XIAO, Q. (2007). Technology review-biometrics-technology, application, challenge, and computational intelligence solutions. IEEE Computational Intelligence Magazine. 18.

(19) (implementado en alguna plataforma de hardware) que se encarga de diferenciar una imagen de un rostro y aplicarle técnicas y algoritmos para establecer o verificar la identidad de esta persona.. 2.1.2. Reconocimiento de patrones.. Los organismos vivos de nuestro planeta a través de su proceso evolutivo han adquirido habilidades para obtener información del entorno y actuar en función de ello; llegan a ser capaces de identificar momentos óptimos para realizar emigración en búsqueda de alimento o habitad más favorable, identificar predadores o presas, objetos y un sin número de escenarios o condiciones diferentes. La ingeniería y ciencias computacionales han realizado esfuerzos por emular estas capacidades desarrollando teorías y tecnologías para tal fin. Emulando la naturaleza, los sistemas inteligentes obtienen información del entorno a través de dispositivos tales como cámaras, sensores de presión, acelerómetros, velocímetros, etc. El reconocimiento de patrones puede definirse como el proceso de clasificación automática de un objeto físico o abstracto, en una o más clases3.. 2.1.2.1. Conceptos de reconocimiento de patrones.. Patrón: entidad que puede ser identificada de acuerdo con sus atributos, puede ser abstracto si hace referencia a ideas conceptuales o concretos si representa físicamente un objeto, imágenes, señales etc. Clase: categoría de los patrones, determinada por aquellos atributos y comportamientos en común, puede interpretarse como un prototipo o modelo que representa un objeto. ________________________ 3 M. NARASIMHA Murty y V. SUSHEELA Devi, Pattern Recognition. An Algorithmic Approach. 19.

(20) Característica: describe el patrón con el valor de sus atributos, p. ej., color, intensidad, morfología de una imagen, etc. Similitud: hace referencia a valores parecidos de un atributo en dos o más objetos, su importancia radica en que en un proceso de reconocimiento se evalúa esta entre el objeto y un modelo. Existen tres enfoques para evaluar la similitud los cuales son: la clasificación, el análisis de regresión y la descripción; el primero está relacionado con asignar a un patrón a una clase con base en la evaluación de sus atributos; el segundo permite estimar el valor de una variable a partir de otras o de un valor pasado de sí misma; el ultimo evalúa la similitud a partir de una regla estructural conformada por una secuencia de primitivas, es decir a partir de reglas sintácticas previamente definidas.. 2.1.3. Métodos de reconocimiento facial.. A continuación se presentan los diferentes algoritmos para el reconocimiento facial, estos se pueden clasificar dentro de dos grandes grupos4: Métodos holísticos: utilizan toda la imagen de cara, que se convierte en la unidad básica de procesamiento. Métodos basados en características locales: utilizan características locales como los ojos, nariz, boca, etc., sus posiciones y variables estadísticas son el objeto del análisis del sistema de reconocimiento.. _____________________ 4. GÁMEZ JIMÉNEZ, Carmen Virginia, Diseño y desarrollo de un sistema de reconocimiento de caras. 20.

(21) 2.1.3.1. Principal Component Analysis: PCA. Se basa análisis de datos multivariantes con el objetivo de recudir la dimensión de estos. Se pretende establecer si a partir de un número de muestras de un conjunto de valores la información puede representarse con un número menor de valores. Los pasos del algoritmo son los siguientes: obtener un con junto de datos de dimensión n, calcular la media de los datos y restársela a cada uno de ellos, calcular la matriz de covarianza. Calcular los eigenvectores e eingenvalores de la matriz de covarianza, elegir las componentes y formar un vector característico, y obtener el nuevo conjunto de datos multiplicando los datos originales por el vector característico.. 2.1.3.2. Independent Component Analysis: ICA. Es una generalización del método PCA, que descompone una señal en una combinación lineal de fuentes independientes, logrando minimizar mayores órdenes de dependencia. Se tienen dos matrices, una de variables independientes y otra de observaciones, en la segunda cada columna es resultado de un experimento aleatorio, se genera entonces una matriz de combinación desconocida a partir de estas dos.. 2.1.3.3. Linear Discriminant Analysis: LDA. Utiliza el aprendizaje supervisado para clasificar datos, pretende obtener una proyección de los datos en un espacio menos o igual que los datos entrantes, para que la separación de las clases sea la mayor posible, se dispone de un conjunto de caras de entrenamiento con diferentes expresiones faciales y vistas.. 2.1.3.4. Métodos basados en kernels. Son una generalización de los métodos PCA, ICA, LDA. Se tienen en cuenta momentos de mayor orden que en los mencionados sin incurrir en un costo de procesamiento elevado. El problema de la clasificación se lleva a un espacio de mayor dimensión donde las clases son linealmente separables.. 21.

(22) 2.1.3.5. Evolutionary Pursuit: EP. Se basa en un algoritmo genético para encontrar caras a través de la rotación de ejes definidos en un espacio blanco PCA adecuado. Se utiliza para buscar entre las diferentes rotaciones y vectores un subconjunto de vectores óptimo.. 2.1.3.6. Support Vector Machine: SVM. Este método genérico de resolución de problemas de reconocimiento de patrones, analiza un conjunto de puntos en un determinado espacio que pertenecen a dos clases distintas y encuentra el hiperplano que separa la mayor cantidad de puntos de la misma clase del mismo lado.. 2.1.3.7 Elastic Bunch Graph Matching: EBGM. La cara se representa mediante grafos etiquetados, que están formados por vectores y nodos, los primeros se etiquetan con la información geométrica y los segundos con un conjunto de características locales llamados jets. Las imágenes de las caras deben ser normalizadas centrando los valores de los pixeles en la media de la imagen original, igualmente se normaliza la geometría; se localizan los puntos principales, se aplica un proceso para evaluar similitud y se comparan para establecer la mejor correspondencia.. 2.1.3.8 Local Binary Pattern: LBP. Se recorre la imagen y etiqueta sus pixeles mediante un umbral de la diferencia entre el pixel central y sus vecinos, cuyo resultado será un numero binario, se utiliza para la descripción de una cara y se construyen varios descriptores locales que se combinan en un descriptor global. Se tiene información de la imagen mediante etiquetas LBP para el histograma que contienen información sobre el patrón a nivel de pixel y mediante la comparación del histograma se puede realizar el reconocimiento de caras.. 2.1.3.9. Métodos 3D. Los métodos basados en características locales, con reconocimiento de caras en dos dimensiones son sensibles a condiciones de iluminación, la orientación, la expresión facial, etc., ante esto los métodos 3D 22.

(23) proporcionan mayor información de la orientación y condiciones luminosas. Las caras se tratan como superficies tridimensionales, existen métodos que se basan en producir gradientes de la superficie, para evaluar la correspondencia de dos superficies los métodos clásicos se basan en una transformación Euclidea que maximice un criterio de similitud.. 2.1.4. APIs de Amazon Rekognition. Amazon Rekognition facilita la incorporación del análisis de imágenes y videos a sus aplicaciones. Usted tan solo debe suministrar una imagen o video a la API de Rekognition y el servicio puede identificar objetos, personas, texto, escenas y actividades, además de detectar contenido inapropiado. Amazon Rekognition también ofrece reconocimiento y análisis facial con un alto nivel de precisión. Puede detectar, analizar y comparar rostros para una amplia variedad de casos de uso de verificación de usuarios, catalogación, contabilización de personas y seguridad pública. Amazon Rekognition está basado en la misma tecnología de aprendizaje profundo sólida y de alta escalabilidad que fue desarrollada por Amazon para analizar miles de millones de imágenes y videos diariamente. No es necesario contar con experiencia en aprendizaje automático para utilizarla. Amazon Rekognition es una API simple y fácil de usar que puede analizar rápidamente cualquier archivo de video o imagen almacenado en Amazon S3. Amazon Rekognition siempre está aprendiendo de los datos nuevos. Dentro de los principales beneficios de Amazon Rekognition se encuentran: -. Integración eficiente de análisis de videos e imágenes. Aprendizaje continuo. Completamente administrado. Amazon Rekognition facilita la incorporación de características de análisis visual a las aplicaciones con APIs que son fáciles de usar y no requieren experiencia en aprendizaje automático. Las APIs de Rekognition permiten solicitar una variedad de características,. 23.

(24) incluida la detección de objetos, el reconocimiento facial y el seguimiento de personas. El servicio se entrena continuamente con datos nuevos para ampliar su capacidad de reconocimiento de objetos, escenas y actividades con el objetivo de mejorar su capacidad general de reconocimiento preciso. Amazon Rekognition proporciona tiempos de respuesta estables independientemente del volumen de las solicitudes que realice. La latencia de la aplicación permanece estable, aunque el volumen de las solicitudes aumente a decenas de millones de solicitudes. -. Bajo costo. Puede ejecutar análisis en tiempo real en videos a partir de Amazon Kinesis Video Streams o analizar imágenes a medida que se carguen en Amazon S3. Para tareas de mayor tamaño, Amazon Rekognition puede trabajar en conjunto con AWS Batch para procesar y analizar miles de imágenes o videos almacenados en Amazon S3. Solo se paga por el número de imágenes o minutos de video que analice y los datos faciales que almacene para el reconocimiento facial. No se requieren tarifas mínimas ni compromisos iniciales.. 2.1.5. Biblioteca de visión por computador OpenCv. OpenCV (Open Source Computer Vision Library) es una biblioteca de software de visión abierta y software de aprendizaje automático. OpenCV fue construido para proporcionar una infraestructura común para aplicaciones de visión por computadora y para acelerar el uso de la percepción de la máquina en los productos comerciales. Al ser un producto con licencia de BSD, OpenCV facilita a las empresas utilizar y modificar el código.. 24.

(25) La biblioteca cuenta con más de 2500 algoritmos optimizados, que incluyen un conjunto completo de algoritmos de visión artificial y de aprendizajes automáticos tanto clásicos como avanzados. Estos algoritmos se pueden usar para detectar y reconocer rostros, identificar objetos, clasificar acciones humanas en videos, rastrear movimientos de la cámara, rastrear objetos en movimiento, extraer modelos 3D de objetos, producir nubes de puntos 3D desde cámaras estéreo, unir imágenes para producir una alta resolución imagen de una escena completa. La biblioteca se usa ampliamente en compañías, grupos de investigación y por organismos gubernamentales.. Tiene interfaces C ++, Python, Java y MATLAB y es compatible con Windows, Linux, Android y Mac OS. OpenCV se inclina principalmente hacia las aplicaciones de visión en tiempo real y aprovecha las instrucciones de MMX y SSE cuando están disponibles.. 2.1.6. Archimate. El lenguaje consiste de tres tipos de elementos principales, que se inspiran en el lenguaje natural donde una oración tiene un sujeto (estructura activa), un verbo (comportamiento) y un objeto (estructura pasiva): -. -. -. Elementos de estructura activa: se define como la entidad que es capaz de realizar un comportamiento; son actores de negocio, componentes de aplicación, y dispositivos que muestran el comportamiento actual. Elementos de comportamiento: se define como la unidad de actividad realizada por uno o más elementos de estructura activos, usualmente son información u objetos de datos. Elementos de estructura pasiva (objetos): se define como un objeto sobre el que se realiza el comportamiento.. La figura 1 muestra el metamodelo genérico de los conceptos Core de Archimate.. 25.

(26) Figura 1. Metamodelo genérico: los conceptos Core de Archimate5.. El lenguaje también define tres capas principales, descritas a continuación: -. -. Capa de negocio: ofrece productos y servicios a clientes externos, que se realizan en la organización a través de procesos comerciales realizados por actores empresariales. Capa de aplicación: es compatible con la capa empresarial con servicios de aplicaciones que se realizan mediante aplicaciones (de software). Capa tecnológica: ofrece servicios de infraestructura (por ejemplo, procesamiento, almacenamiento y servicios de comunicación) necesarios para ejecutar aplicaciones.. Los conceptos presentados anteriormente5 se pueden organizar como un framework de nueve celdas, tal como se muestra en la figura 2.. _____________________ 5. THE OPEN GROUP, ArchiMate 2.0 Specification. 26.

(27) Entorno Negocios Aplicación Tecnología estructura pasiva comportamiento estructura activa. Figura 2. Framework Arquitectónico.. 2.1.7. ADM.. El lenguaje Archimate complementa TOGAF, proporciona un conjunto de conceptos y representación gráfica. La estructura del lenguaje principal se corresponde directamente con las arquitecturas en el ADM de TOGAF6, el cual es un método genérico destinado a ser utilizado en una amplia variedad de empresas diferentes y con otros marcos de trabajo; tal como se muestra en la figura 3.. Figura 3. Correspondencia entre el lenguaje Archimate y el ADM de TOGAF6. _____________________ 6 THE OPEN GROUP, ArchiMate 2.0 Specification. 27.

(28) PARTE II. DESARROLLO DE LA INVESTIGACIÓN. 28.

(29) CAPITULO 3 ANALISIS. Esta fase aborda la arquitectura empresarial, donde se presenta en el proyecto contexto del negocio, identificando el enfoque en garantizar los niveles de seguridad física de las organizaciones, se presentan tres puntos de vista que resumen la arquitectura general del proyecto.. 3.1. Punto de vista de Capas. Este punto de vista presenta un nivel de abstracción de visión global, que se relaciona con las capas de negocios, aplicación y tecnología, permite visualizar sus componentes principales, se presenta en la figura 4.. Figura 4. Punto de vista de Capas.. 29.

(30) 3.2. Punto de vista de motivación. Este punto de vista presenta un nivel de abstracción de visión global, que se relaciona con la extensión de motivación, puede ser usado para presentar una vista completa o parcial de los aspectos de motivación en relación con los stakeholders, sus objetivos y como se aplican.. Se presenta como driver la mejora en la seguridad con un assessment relacionado con los riesgos de seguridad que resultan en dos requerimientos de uso de tecnología para la mejora de la seguridad y la necesidad de garantizar bajo costo de la solución, su representación se muestra en la figura 5.. Figura 5. Punto de vista de motivación.. 30.

(31) 3.3. Punto de vista de migración e implementación. Este punto de vista presenta un nivel de abstracción de visión global, que se relaciona con la extensión de implementación y migración, se utiliza para modelar las relaciones los programas, proyectos y la parte de la arquitectura que ellos implementan, se presenta en la figura 6.. Figura 6. Punto de vista de implementación y migración.. 31.

(32) CAPITULO 4 DISEÑO. En esta fase se llega a la conclusión de que la aplicación debe implementarse en un computador a pesar de lo planteado en los objetivos específicos referente al uso de un dispositivo móvil, debido a las necesidades de procesamiento y robustez que requiere este proyecto, y considerando que el desarrollo del prototipo se aproxime en un mayor grado a lo necesario para un proyecto real de este tipo y no requiera grandes esfuerzos en migración de tecnología y lenguajes.. Debido a las prestaciones de desempeño que ofrece Amazon Rekognition y considerando los bajos costos del uso de esta tecnología se decide utilizarla como base para la ejecución en este proyecto.. 4.1. Comparación de Rostros. La aplicación basa su diseño en el esquema sugerido por Amazon mediante el uso de Amazon Rekognition en aplicaciones de verificación de usuarios basada en el rostro.. Esta configuración permite confirmar las identidades de usuarios comparando su imagen en vivo con una imagen de referencia, una cámara captura una imagen del empleado y la envía, en tanto que el módulo S3 de Amazon (dedicado a almacenamiento), permite recuperar la imagen según la tarjeta del empleado. Posterior a ello la API CompareFaces compara la imagen tomada en tiempo real con la imagen de referencia y retorna un puntaje de similitud, tal como se muestra en la figura 7.. 32.

(33) Figura 7. Esquema de verificación de usuarios basada en rostro7.. 4.2. Detección de rostro. Para el funcionamiento automático del sistema, se hace necesario desarrollar una aplicación de captura de fotografía de forma automática, para lo cual se recurre a OpenCV, una biblioteca de visión por computador y aprendizaje automático que permite identificar el rostro de una persona frente a la cámara y de esta manera tomar la imagen para ser enviada a la API CompareFaces.. La biblioteca OpenCv utiliza el método de clasificadores en cascada basados en características Haar (un sistema semejante al del análisis por Fourier que permite que una función objetivo se represente en términos de una base ortogonal), este es un enfoque de aprendizaje automático donde la función de cascada esta entrenada a partir de muchas imágenes positivas y negativas, por lo tanto se utilizan funciones Haar mostradas en la figura 8, cada característica es un valor único que se obtiene al restar la suma de pixeles debajo del rectángulo blanco de la suma de la suma de pixeles debajo del rectángulo negro.. _____________________ 7 AMAZON, Amazon rekognition, análisis de videos e imágenes basado en aprendizaje profundo. 33.

(34) Figura 8. Características Haar 8. Dada la complejidad se introduce una imagen integral, en la figura 9 se muestran dos características que se enfocan en la región de los ojos y la de la nariz y mejillas respectivamente, ala de la derecha se basa en que los ojos son más oscuros que la zona de la nariz y así se aplican todas las características en todas la imágenes de entrenamiento, lo cual resulta ser ineficiente y muy costoso en términos de tiempo y procesamiento. Por lo que se introdujo el concepto de clasificadores en cascada, que en lugar de aplicar todas las funciones en una ventana, las características se agrupan en diferentes etapas de clasificadores y se aplican una a una, lo que permite que si una ventana falla en una etapa no se consideran las siguientes.. _____________________ 8 PAUL VIOLA, MICHAEL JONES. Rapid Object Detection using a Boosted cascade of Simple Features 34.

(35) Figura 9. Primera y segunda características Haar seleccionadas8. 35.

(36) CAPITULO 5 DESARROLLO. 5.1. Desarrollo del módulo de captura automática de fotografía. Se hizo uso de la biblioteca OpenCv para identificar el rostro de una persona frente a la cámara y tomar la fotografía automáticamente para ser utilizada en la comparación de rostros.. La librería OpenCv hace uso de varios archivos de clasificadores que le permiten identificar características específicas de una imagen uno de los cuales el haarcascade_frontalface_alt2.xml que permite detectar rostros expuestos de manera frontal a la cámara, se hace uso de la librería opencv-341.jar la cual debe ser importada al proyecto para permitir el acceso a las funciones que hacen posible la identificación del rostro.. 5.2. Desarrollo módulo de comparación de rostros. El desarrollo del proyecto parte de la creación de una cuenta en Amazon AWS services, la cual permitirá acceder a los servicios tales como almacenamiento mediante el módulo S3 y uso de la API CompareFace.. Es necesario tomar los valores de AWSAccessKeyId y AWSSecretKey que corresponder al identificador del usuario y la clave de autenticación.. 5.2.1 Configuración del equipo. Amazon provee una interface de línea de comandos (CLI) para administrar los productos de AWS. La cual permite configurar una herramienta para controlar los servicios de AWS desde línea de comando, es una aplicación que debe instalarse en el equipo.. 36.

(37) Existe un comando que configura la cuenta del usuario que va a utilizar los servicios tal como se muestra a continuación:. $ aws configure AWS Access Key ID [None]: accesskey AWS Secret Access Key [None]: secretkey Default region name [None]: us-west-2 Default output format [None]:. En él se introducen los valores como el AWSAccessKeyId y el AWSSecretKey para la autenticación del usuario y el default output format que para efectos de facilidad de interpretación se eligió JSON.. 5.2.2. Integración con la API CompareFaces.. Se hace uso de la API CompareFaces que permite comparar dos rostros e identificar el porcentaje de similitud. La herramienta CLI provee unos comandos para utilizar el API CompareFaces como se muestra a continuación: aws rekognition compare-faces \ --source-image '{"S3Object":{"Bucket":"bucket-name","Name":"source.jpg"}}' \ --target-image '{"S3Object":{"Bucket":"bucket-name","Name":"target.jpg"}}' \ --region us-east-1 \ --profile adminuser. En el anterior comando es necesario introducir un nombre de bloque de almacenamiento previamente creado en el S3 y que contiene las imágenes fuente y objetivo que van a ser comparadas. 37.

(38) Para fines de creación de la aplicación se hizo uso de los recursos de SDK para java provistos para el uso de la API CompareFaces. Se utilizó para el desarrollo de la aplicación el IDE eclipse para programar en lenguaje java mediante el plugin AWS toolkit for eclipse 2.0, el cual permite crear proyectos de java con los requerimientos necesarios incorporar las librerías de AWS.. Se implementó un módulo de acuerdo lo sugerido en la documentación de amazon rekognition sobre comparación de rostros mediante el SDK para java, el cual se aprecia en el Anexo 1.. 5.3. Interface final de usuario. Se creó una aplicación de escritorio, la cual presenta en la parte izquierda la imagen de lo que la cámara está capturando; mediante el uso de la librería OpenCv se identifica un rostro, se dibuja un rectángulo y una elipse sobre el rostro, se captura la imagen que será utilizada en la comparación por la API CompareFace. La figura 10 muestra la visualización de la aplicación.. Imagen capturada. Figura 10. Vista de la aplicación de escritorio. 38.

(39) CAPITULO 6 PRUEBAS. Las pruebas se orientan a establecer si la aplicación ofrece resultados acorde a las necesidades de aumento de seguridad en los procesos de control de ingreso, una de ellas permite establecer el porcentaje de similitud cuando se compara dos imágenes del rostro de la misma persona y la otra cuando estas corresponden a personas diferentes.. Caso de Prueba Actor Descripción. PRU001 Desarrollador Comparar dos rostros que pertenecen a la misma persona. Condiciones. 1. Iniciar la Herramienta. 2. Cargar una Fotografía target de una persona. 2. Ubicar una persona frente a la cámara, que sea la misma de la fotografía target.. Resultado Esperado Evaluación. Obtener un porcentaje de coincidencia mayor o igual al 80% EXITOSA, se obtiene un porcentaje de coincidencia del 99%. Tabla 1. Caso de prueba 001.. Caso de Prueba Actor Descripción. PRU002 Desarrollador Comparar dos rostros que pertenecen diferentes personas. Condiciones. 1. Iniciar la Herramienta. 2. Cargar una Fotografía target de una persona. 2. Ubicar una persona frente a la cámara, para que el rostro coincida con la fotografía target.. Resultado Esperado Evaluación. Que arroje un porcentaje de coincidencia inferior al 80% o un mensaje de no coincidencia EXITOSA, se obtiene mensaje de no coincidencia.. Tabla 2. Caso de prueba 002. 39.

(40) PARTE III. CIERRE DE LA INVESTIGACIÓN. 40.

(41) CAPITULO 7 CONCLUSIONES. 7.1. Resultados y discusión. El tiempo de respuesta de la aplicación se encuentra alrededor de 0.5 segundos. Las pruebas demostraron un porcentaje de coincidencia cercano al 99%, para los casos en los que la imagen objetivo y la imagen fuente no coinciden se presentó como resultado no coinciden, importante destacar que el sistema fue construido para hacer una identificación basada en una toma frontal del rostro pues la detección automática del mismo se diseñó de esta forma.. 7.2. Verificación, contraste y evaluación de los objetivos Al contrastar los objetivos planteados, se evidencia el cumplimiento de todos ellos, la tabla 3 muestra el contraste entre los objetivos y la evidencia de cumplimiento.. 7.3. Síntesis del modelo propuesto Este proyecto parte de la necesidad de aumentar la seguridad en el control de ingreso de personal, ante lo cual se propone la una solución a partir de verificación de usuarios basada el rostros. Se utiliza el esquema propuesto por Amazon Rekognition para tal fin y se implementa utilizando su SDK de java. Se complementa la solución con una captura automática de fotografía a través de la biblioteca de visión por computador OpenCv.. 41.

(42) Objetivo. Evidencia de cumplimiento. Analizar y evaluar las diferentes opciones de tecnología de reconocimiento facial disponibles para integración a través de internet.. En el análisis y desarrollo de la investigación se presentan consideraciones sobre las alternativas. En el desarrollo de la investigación. Desarrollar un módulo que permita la se evidencia la implementación de toma automática de fotografía. este módulo mediante la biblioteca OpenCv. Desarrollar un módulo para En el desarrollo de la investigación se integración con la tecnología de evidencia el uso del SDK de AWS para java para la comparación de reconocimiento facial seleccionada. rostros.. Tabla 3. Contraste de objetivos con evidencia de cumplimiento. 7.4. Aportes originales. En este proyecto se propone el uso de tecnología de reconocimiento facial para mitigar riesgos de seguridad en los sistemas de control de acceso de empresas, comparando el rostro de una persona que desea acceder a una instalación, mediante integración con APIs de reconocimiento de imágenes ampliamente probadas, con gran fiabilidad en sus resultados y basadas en Deep learning, por tanto permite explotar el potencial de estos nuevos avances tecnológicos para mejorar la seguridad.. 42.

(43) CAPITULO 8 PROSPECTIVA DEL TRABAJO DE GRADO. 8.1. Líneas de investigación futuras De acuerdo con los desarrollos y las pruebas realizadas a la tecnología, es posible proyectar ampliaciones de las aplicaciones de este proyecto al análisis de imágenes en videos para seguimiento automático de personas con actividad sospechosa en la empresa, o con expresiones faciales que correspondan con algunos estados emocionales que puedan representar un riesgo para la seguridad de las instalaciones.. 8.2. Trabajos de Investigación futuros -. -. Diseño del sistema de control de ingreso, con capa de persistencia, interface de administrador, interface de usuario final y protocolo con cámara remota. Seguimiento automático de personas en las instalaciones de una empresa, por medio de tecnología de reconocimiento facial aplicada en videos. Análisis de emociones a través de microgestos faciales detectados por tecnología basada en Deep learning.. 43.

(44) BIBLIOGRAFIA. AMAZON, Amazon rekognition, análisis de videos e imágenes basado en aprendizaje profundo. Disponible en: https://aws.amazon.com/es/rekognition/. ANGULO USATEGUI, J. (1986). Visión Artificial por Computador. Madrid: Thomson Paraninfo S.A.. BRANCH, J., & Olague, G. (2001). La visión por computador: Una aproximación al estado del arte.Revista Dyna.. CÁCERES, T. J. (2002). La visión artificial y las operaciones morfológicas en imágenes binarias. Alcalá, España.. CALLE, A. S. (2005). Aplicaciones de la visión artificial y la biometría informática. Madrid: Dykinson.. CAMBRIDGE, A. L. (1994). The Database of Faces. Obtenido de AT&T Laboratories Cambridge: http://face-rec.org/databases/.. FEIGENBAUM, E. A. (1984). The fifth generation: artificial intelligence and Japan's computer challenge to the world. New York: New American Library.. FREUND, Y., & SCHAPIRE, R. E. (1997). A decision-theoretic generalization of on-line learning. Journal of Computer and System Sciences.. 44.

(45) GÁMEZ JIMÉNEZ, Carmen Virginia, Diseño y desarrollo de un sistema de reconocimiento de caras.. GÓMEZ VERDEJO, V., ORTEGA-MORAL, M., ARENAS-GARCÍA, J., & FIGUEIRASVIDAL, A. R. (2006). Boosting by weighting critical and erroneous samples. HESELTINE, T., Pears, N., & AUSTIN, J. (2002). Evaluation of image preprocessing techniques for eigenface-based face recognition. In Second International Conference on Image and Graphics.. JAIN, A., Bolle, R., & PANKANTI, S. (2006). Biometrics: personal identification in networked society. New York: Springer Science & Business Media.. JAIN, A., Flynn, P., & Ross, A. A. (2007). Handbook of biometric. New York: Springer Science & Business Media.. Ken-Ichi, M., MASATSUGU, K., & HIDENORI, S. (1978). Design of local parallel pattern processor for image processing. Proceedings of the National Computer Conference.. KIRBY, M., & SIROVICH, L. (1990). Application of the Karhunen-Loeve procedure for the characterization of human faces. IEEE Transactions on Pattern analysis and Machine intelligence.. LÓPEZ BELTRÁN, R., SOTTER SOLANO, E., & ZUREK VARELA, E. (2001). Aplicación del sistema Robot Visión PRO para operaciones automáticas de control de calidad. 45.

(46) M. NARASIMHA Murty y V. SUSHEELA Devi, Pattern Recognition. An Algorithmic Approach.. MARR, D. (1982). Vision - A computational investigation into the human representation and processing of visual information.. MICHALSKI, R. S., CARBONELL, J. G., & MITCHELL, T. (2013). Machine learning: An artificial intelligence approach. Springer Science & Business Media.. NISHINO, H. (1978). PIPS (Pattern Information Processing System). Proc. 4th Int. Joint Conf. Pattern Recognition.. PAUL VIOLA, MICHAEL JONES. Rapid Object Detection using a Boosted cascade of Simple Features. Conference On Computer Vision And Pattern Recognition 2001.. PAJARES MARTINSANZ, G., & Santos Peñas, M. (2006). Inteligencia artificial e ingeniería del conocimiento. México: Alfaomega Grupo Editor.. PEDREGOSA, F., VAROQUAUX, G., & GRAMFORT, A. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research.. PRESSMAN, R. S. (2005). Software engineering: a practitioner's approach. Palgrave Macmillan.. ROCHA, C. A., & ESCORCIA, J. R. (2010). Sistema de Visión Artificial para la Detección y el Reconocimiento de Señales de Tráfico basado en Redes Neuronales. Obtenido de Eighth LACCEI Latin American and Caribbean Conference for Engineering and Technology: http://www.laccei.org/ 46.

(47) RODRÍGUEZ SALAVARRÍA, J. P. (Octubre de 2009). Sistema de control de acceso basado en el perfil lateral de una persona utilizando visión artificial. Obtenido de Escuela Politécnica Nacional: http://bibdigital.epn.edu.ec/handle/15000/1906.. SUCAR, L. E. (2002). Procesamiento de Imágenes y Visión Computacional.. THE OPEN GROUP. ArchiMate 2.0 Specification.. THE OPEN GROUP, ArchiMate 3.0.1 Specification. Disponible en: http://pubs.opengroup.org/architecture/archimate3-doc/apdxd.html. THE OPEN GROUP. TOGAF 9 Foundation, Preparation for the TOGAF 9 part 1 Examination.. Turk, M. (1997). Eigenfaces vs. Fisherfaces: Recognition using class specific linear projection. IEEE Transactions on Pattern Analysis and Machine Intelligence.. XIAO, Q. (2007). Technology review-biometrics-technology, application, challenge, and computational intelligence solutions. IEEE Computational Intelligence Magazine.. 47.

(48) ANEXOS. Ejemplo de comparación de dos imágenes mediante AWS SDK para java. package com.amazonaws.samples; import import import import import. java.io.File; java.io.FileInputStream; java.io.InputStream; java.nio.ByteBuffer; java.util.List;. import com.amazonaws.AmazonClientException; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; import com.amazonaws.services.rekognition.AmazonRekognition; import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder; import com.amazonaws.services.rekognition.model.Image; import com.amazonaws.util.IOUtils; import com.amazonaws.services.rekognition.model.BoundingBox; import com.amazonaws.services.rekognition.model.CompareFacesMatch; import com.amazonaws.services.rekognition.model.CompareFacesRequest; import com.amazonaws.services.rekognition.model.CompareFacesResult; import com.amazonaws.services.rekognition.model.ComparedFace;. public class CompareFacesExample { public static void main(String[] args) throws Exception{ Float similarityThreshold = 70F; String sourceImage = "source.jpg"; String targetImage = "target.jpg"; ByteBuffer sourceImageBytes=null; ByteBuffer targetImageBytes=null;. AWSCredentials credentials; try { credentials = new ProfileCredentialsProvider("AdminUser").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load the credentials from the credential profiles file. " + "Please make sure that your credentials file is at the correct ". 48.

(49) + "location (/Users/userid/.aws/credentials), and is in valid format.", e); } EndpointConfiguration endpoint=new EndpointConfiguration("endpoint", "us-east-1"); AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder .standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();. //Load source and target images and create input parameters try (InputStream inputStream = new FileInputStream(new File(sourceImage))) { sourceImageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream)); } catch(Exception e) { System.out.println("Failed to load source image " + sourceImage); System.exit(1); } try (InputStream inputStream = new FileInputStream(new File(targetImage))) { targetImageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream)); } catch(Exception e) { System.out.println("Failed to load target images: " + targetImage); System.exit(1); } Image source=new Image() .withBytes(sourceImageBytes); Image target=new Image() .withBytes(targetImageBytes); CompareFacesRequest request = new CompareFacesRequest() .withSourceImage(source) .withTargetImage(target) .withSimilarityThreshold(similarityThreshold);. 49.

(50) // Call operation CompareFacesResult compareFacesResult=rekognitionClient.compareFaces(request);. // Display results List <CompareFacesMatch> faceDetails = compareFacesResult.getFaceMatches(); for (CompareFacesMatch match: faceDetails){ ComparedFace face= match.getFace(); BoundingBox position = face.getBoundingBox(); System.out.println("Face at " + position.getLeft().toString() + " " + position.getTop() + " matches with " + face.getConfidence().toString() + "% confidence."); } List<ComparedFace> uncompared = compareFacesResult.getUnmatchedFaces(); System.out.println("There were " + uncompared.size() + " that did not match"); System.out.println("Source image rotation: " + compareFacesResult.getSourceImageOrientationCorrection()); System.out.println("target image rotation: " + compareFacesResult.getTargetImageOrientationCorrection()); } }. 50.

(51)

Figure

Figura 1. Metamodelo genérico: los conceptos Core de Archimate 5 .
Figura 3. Correspondencia entre el lenguaje Archimate y el ADM de TOGAF 6 .  _____________________
Figura 4. Punto de vista de Capas.
Figura 5. Punto de vista de motivación.
+7

Referencias

Documento similar

En el presente artículo se analiza la factibilidad de la implementación de algoritmos de reconocimiento facial integrados a los sistemas de video vigilancia de un territorio, para

Crear un sistema robusto de seguridad con reconocimiento facial basado en visión artificial. Hacer tracking de cada rostro que se ponga en la base de datos virtual. Hacer que el

CENTRO TECNOLÓXICO DE TELECOMUNICACIÓNS DE GALICIA Identificación (reconocimiento 1:N) Reconocimiento facial: 2 modos de funcionamiento Verificación (reconocimiento 1:1)

En este proyecto se pretende hacer un estudio de algunos de los algoritmos que usan los sistemas de reconocimiento facial y, posteriormente, implementar un sistema que aúne este

La demanda de sistemas de reconocimiento facial está aumentando a gran velocidad, implementándose cada vez sus métodos en un mayor número de aplicaciones e

Registro de asistencia a eventos mediante reconocimiento facial Proyecto en curso Mario Javier Mesa González Ingeniería de Sistemas e-mail: Universidad Autónoma de Bucaramanga

Para la extracción de características solo basta con tomar los segmentos del rostro que consideremos necesarios como los ojos y la boca, se podría tomar cada

La presente tesis presenta una propuesta de un Sistema de Reconocimiento Facial que contribuya al Con- trol de la Trata de Personas en el Perú, para lo cual se usó la metodología XP