PROTOTIPO PARA EL CONTROL DE INGRESO DE...
-
Upload
hoangkhanh -
Category
Documents
-
view
217 -
download
0
Transcript of PROTOTIPO PARA EL CONTROL DE INGRESO DE...
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
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
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.
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.
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.
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
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
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
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
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
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.
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.
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.
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.
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.
2XIAO, Q. (2007). Technology review-biometrics-technology, application,
challenge, and computational intelligence solutions. IEEE Computational
Intelligence Magazine.
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.
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.
_____________________
4GÁMEZ JIMÉNEZ, Carmen Virginia, Diseño y desarrollo de un sistema de
reconocimiento de caras.
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.
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
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,
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.
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.
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.
_____________________
5THE OPEN GROUP, ArchiMate 2.0 Specification.
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.
_____________________ 6THE OPEN GROUP, ArchiMate 2.0 Specification.
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.
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.
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.
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.
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.
_____________________ 7AMAZON, Amazon rekognition, análisis de videos e imágenes basado en
aprendizaje profundo.
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.
_____________________ 8PAUL VIOLA, MICHAEL JONES. Rapid Object Detection using a Boosted
cascade of Simple Features
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.
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.
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.
Figura 10. Vista de la aplicación de escritorio.
Imagen
capturada
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 PRU001
Actor Desarrollador
Descripción 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 Obtener un porcentaje de coincidencia mayor o igual al 80%
Evaluación EXITOSA, se obtiene un porcentaje de coincidencia del 99%
Tabla 1. Caso de prueba 001.
Caso de Prueba PRU002
Actor Desarrollador
Descripción 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 Que arroje un porcentaje de coincidencia inferior al 80% o un mensaje de no coincidencia
Evaluación EXITOSA, se obtiene mensaje de no coincidencia.
Tabla 2. Caso de prueba 002.
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.
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.
Desarrollar un módulo que permita la
toma automática de fotografía.
En el desarrollo de la investigación
se evidencia la implementación de
este módulo mediante la biblioteca
OpenCv.
Desarrollar un módulo para
integración con la tecnología de
reconocimiento facial seleccionada.
En el desarrollo de la investigación se
evidencia el uso del SDK de AWS
para java para la comparación de
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.
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.
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.
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
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/
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.
48
ANEXOS
Ejemplo de comparación de dos imágenes mediante AWS SDK para java.
package com.amazonaws.samples;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.nio.ByteBuffer;
import 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 "
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);
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());
}
}