50
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 …repository.udistrital.edu.co/bitstream/11349/13637/1... · automática de fotografía. El desarrollo fue realizado en Java, se utilizó

Embed Size (px)

Citation preview

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

A mi madre

Por tanto esfuerzo y amor conmigo

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.

14

PARTE I

CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN

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.

28

PARTE II.

DESARROLLO DE LA INVESTIGACIÓN

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

35

Figura 9. Primera y segunda características Haar seleccionadas8

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.

40

PARTE III.

CIERRE DE LA INVESTIGACIÓN

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());

}

}