70
PROTOTIPO ARQUITECTÓNICO Y FUNCIONAL DE UN SISTEMA DE INFORMACIÓN PARA EL RECONOCIMIENTO BIOMÉTRICO FACIAL DE PERSONAS UTILIZANDO AMAZON REKONIGTION Y UNA ARQUITECTURA DE MICROSERVICIOS CON SPRING CLOUD PARA EL RASTREO E IDENTIFICACIÓN DE PERSONAS REPORTADAS COMO PERDIDAS O EXTRAVIADAS RONAL ALBERTO TRIANA TARAZONA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA ESPECIALIZACION EN INGENIERIA DE SOFTWARE BOGOTÁ 2017

PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

PROTOTIPO ARQUITECTÓNICO Y FUNCIONAL DE UN SISTEMA DE

INFORMACIÓN PARA EL RECONOCIMIENTO BIOMÉTRICO FACIAL DE

PERSONAS UTILIZANDO AMAZON REKONIGTION Y UNA ARQUITECTURA DE

MICROSERVICIOS CON SPRING CLOUD PARA EL RASTREO E IDENTIFICACIÓN

DE PERSONAS REPORTADAS COMO PERDIDAS O EXTRAVIADAS

RONAL ALBERTO TRIANA TARAZONA

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

ESPECIALIZACION EN INGENIERIA DE SOFTWARE

BOGOTÁ

2017

Page 2: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

PROTOTIPO ARQUITECTÓNICO Y FUNCIONAL DE UN SISTEMA DE

INFORMACIÓN PARA EL RECONOCIMIENTO BIOMÉTRICO FACIAL DE

PERSONAS UTILIZANDO AMAZON REKONIGTION Y UNA ARQUITECTURA DE

MICROSERVICIOS CON SPRING CLOUD PARA EL RASTREO E IDENTIFICACIÓN

DE PERSONAS REPORTADAS COMO PERDIDAS O EXTRAVIADAS

RONAL ALBERTO TRIANA TARAZONA

Proyecto de grado para optar al título de especialista en ingeniería de software

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

ESPECIALIZACION EN INGENIERIA DE SOFTWARE

BOGOTÁ

2017

Page 3: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Tabla de Contenido

INTRODUCCIÓN 6

1. PLANTEAMIENTO DEL PROBLEMA 8 1.1 Formulación del problema 9 1.2 Sistematización del problema 9

2. OBJETIVO GENERAL 10 2.1 Objetivos Específicos 10

3. JUSTIFICACIÓN 11

4. ALCANCES Y LIMITACIONES 12 4.1 ALCANCES 12 4.2 LIMITACIONES 12

5. MARCO DE REFERENCIA 13 5.1 Marco Teórico 13

5.1.1 ¿Qué es la biometría? 13 5.1.4 Biometría: una historia muy antigua 15 5.1.5 Usos de la biometría 17 5.1.6 Confiabilidad de la biometría 18

5.2 Amazon Rekonigtion 19 5.2.1 Novedades de Amazon Rekonigtion 20 5.2.2 Beneficios Amazon Rekonigtion 24 5.2.3 Caso de Uso 26

5.3 Spring Framework 27 5.3.2 Características Spring Framework 28 5.3.3 Arquitectura Spring Cloud 29

6. METODOLOGÍA 32 6.1 Fase de Planeación 33 6.2 Fase de Diseño de la Arquitectura 34 6.3 Fase de Pruebas de Concepto 37 6.4 Fase de Implementación 38

7. ASPECTOS METODOLÓGICOS 54 7.1 Holotipo De la Investigación 54 7.2 Posibles fuentes para la investigación 54

8. CONCLUSIONES Y RECOMENDACIONES 55

9. CRONOGRAMA 56

10. PRESUPUESTO 57

11. BIBLIOGRAFÍA 59

Page 4: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

12. ANEXOS 62 12.1 Configuración y Uso Amazon Web Services AWS 62 12.2 Prueba de concepto Comparación de rostros con Java 66

Page 5: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

INTRODUCCIÓN

Las cifras de personas desaparecidas en Colombia son bastante abrumadoras y más aún

aquellas que se relacionan con el conflicto armado. La cantidad de personas desaparecidas es

tan escalofriante que supera las cifras de desaparición forzada de dictaduras militares de

Augusto Pinochet y Jorge Videla en Chile (40.000) y Argentina (30.000) . 1

Pero no todos los casos de desaparición tienen que ver con el conflicto armado, muchos de

los reportados como desaparecidos que luego fueron encontrados, dijeron a las autoridades

que la principal causa de su decisión de irse estuvo ligada a los problemas personales y

familiares. La población más vulnerable frente a la desaparición la constituyen los

consumidores de droga. Fueron 872 casos, de los que fueron hallados con vida 222. En otros

22 casos se encontró que la persona había muerto en circunstancias probablemente asociadas

a su adicción . 2

En Colombia, el plan nacional de búsqueda está conformado por 4 fases : 3

1. Recolección de información

2. Análisis y verificación de información

3. Recuperación, análisis e identificación

4. Destino final del cuerpo

1 "Cifras de desaparición forzada | Colombia 2020 - El Espectador." 4 jul.. 2017, https://colombia2020.elespectador.com/desaparecidos/las-escalofriantes-cifras-de-la-desaparicion-forzada. Se consultó el 12 nov.. 2017. 2 "Desaparición forzada en Colombia cada vez se relaciona menos con ...." 9 ago.. 2016, http://www.eltiempo.com/justicia/cortes/desaparicion-forzada-en-colombia-cada-vez-se-relaciona-menos-con-conflicto-armado-38376. Se consultó el 12 nov.. 2017. 3 "Plan Nacional de Búsqueda." http://tbinternet.ohchr.org/Treaties/CED/Shared%20Documents/COL/INT_CED_ADR_COL_22512_S.pdf. Se consultó el 12 nov.. 2017.

Page 6: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Cada una de estas fases tiene una serie de actividades y responsables asociados a cada una de

ellas. El Plan Nacional de Búsqueda de Personas Desaparecidas, que se propone tiene como

objetivo principal encontrar con vida a la persona desaparecida o entregar los cadáveres a sus

familiares para que puedan desarrollar su proceso de duelo según sus costumbres y creencias.

Todos estos planes pueden tomar cierto tiempo por la cantidad de protocolos que se deben

cumplir. Tiempo del cual no dispone la persona desaparecida y mucho menos si su vida se

encuentra en peligro. Es por ello, que de acuerdo al autor de este documento, se hace

necesario establecer una nueva fase entre la fase 1 y la 2 de plan nacional de búsqueda de

personas desaparecidas el registro en un sistema automatizado que permita iniciar el proceso

de búsqueda y rastreo de manera inmediata, utilizando las técnicas de identificación

biométrica facial.

En colombia ya existen sistemas de identificación facial como el implementado en el sistema

de transporte Transmilenio en Bogotá y en algunos estadios de fútbol . El objetivo de estos 4 5

es lograr la identificación de delincuentes, entonces por qué no implementar un sistema que

permita automatizar la identificación y rastreo de personas reportadas como perdidas o

extraviadas.

4 "Así funciona el sistema de reconocimiento facial que se implementa ...." http://www.noticiasrcn.com/nacional-bogota/asi-funciona-el-sistema-reconocimiento-facial-se-implementa-transmilenio. Se consultó el 12 nov.. 2017. 5 "Sistema de reconocimiento facial llegará a 5 estadios de Colombia ...." 2 jun.. 2016, https://www.laopinion.com.co/futbol/sistema-de-reconocimiento-facial-llegara-5-estadios-de-colombia-112856. Se consultó el 12 nov.. 2017.

Page 7: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

1. PLANTEAMIENTO DEL PROBLEMA

Es urgente agilizar la búsqueda de personas desaparecidas. Sin embargo, los pasos que se han

dado en esta dirección no son suficientes. El drama que hoy viven miles de familias

colombianas es el principal reto humanitario que enfrenta el país. Con el fin del conflicto

armado en Colombia empieza a descubrirse la realidad de un fenómeno que por años ha

causado dolor e incertidumbre en miles de familias: la desaparición de niños y adolescentes,

la población más afectada por este flagelo. En los últimos tres años, 9.548 niños y

adolescentes fueron declarados desaparecidos. En el 2016 la cifra fue de 2.788 (de los cuales

aparecieron 1.329 y no se sabe nada de 1.459) y a mayo de este año ya se registran 1.041

casos (casi 7 por día) en los que se desconoce el paradero de esos jóvenes . 6

Es por ello, que este proyecto busca empezar a identificar mecanismos con los cuales se

puedan empezar a rastrear e identificar aquellas personas reportadas como desaparecidas

implementando soluciones tecnológicas que sean más eficaces y que permitan complementar

a los actuales sistemas de búsqueda que existen en el país.

6 "Cifras de desaparición de menores en Colombia tras el conflicto armado." 24 jul.. 2017, http://www.eltiempo.com/justicia/investigacion/cifras-de-desaparicion-de-menores-en-colombia-tras-el-conflicto-armado-112128. Se consultó el 12 nov.. 2017.

Page 8: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

1.1 Formulación del problema

¿Cómo mejorar el proceso de identificación de personas reportadas como perdidas o

extraviadas utilizando tecnologías de identificación biométrica garantizando resultados

rápidos y eficientes?

1.2 Sistematización del problema

¿La tecnología disponible actualmente tiene la capacidad de realizar identificación biométrica

facial de manera rápida y confiable?

¿Pueden estas soluciones de identificación biométrica facial ayudar con el rastreo de personas

reportadas como perdidas o extraviadas?

¿Puede la sociedad aceptar un sistema que los esté monitoreando constantemente violando el

derecho a la intimidad y privacidad?

Page 9: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

2. OBJETIVO GENERAL

Diseñar un prototipo arquitectónico y funcional que permita realizar la identificación

biométrica facial de personas que hayan sido reportadas como perdidas o extraviadas

utilizando amazon rekonigtion y una arquitectura de microservicios con spring cloud.

2.1 Objetivos Específicos

● Identificar los servicios de Amazon Rekonigtion que permitan realizar las operaciones

de reconocimiento biométrico facial.

● Diseñar los componentes de la arquitectura que formarán parte del API de servicios

teniendo en cuenta las tecnologías de Spring Cloud.

● Implementar el prototipo arquitectónico que permita realizar la identificación

biométrica facial.

Page 10: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

3. JUSTIFICACIÓN

Con el paso del tiempo, la biometría está abarcando una gran infraestructura en todo el

mundo, ya podemos ver los registros en sistemas gubernamentales, en edificios, empresas,

teléfonos inteligentes e incluso, en el sector bancario. Los sistemas biométricos pueden

cumplir con exigentes requisitos de seguridad y llegan a convertirse en una solución global en

muchos otros aspectos y registros de usuarios.

La biometría proporciona el único medio verdadero de la vinculación de las identidades

digitales con el usuario y puede llegar a determinar quién es en realidad el que está usando el

sistema. Además, se ha convertido en el sistema más utilizado en países desarrollados como

Estados Unidos y algunos de Europa, debido a su facilidad de uso, rendimiento,

interoperabilidad, capacidad de frustrar los impostores.

Con los altos índices de personas reportadas como perdidas, los sistemas de identificación

biométrica facial juegan una parte clave y se convierten en sistemas alternativos que ayuden

en la búsqueda y rastreo de estas personas, automatizando estos procesos y logrando obtener

resultados mucho más rápidos.

Page 11: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

4. ALCANCES Y LIMITACIONES

4.1 ALCANCES

● Esta investigación pretende demostrar las ventajas de la utilización de servicios

basados en la nube como lo es el API de Amazon Rekonigtion que facilita la

agregación de análisis de imágenes a sus aplicaciones.

● Esta investigación pretende demostrar que la construcción de sistemas distribuidos no

necesita ser compleja y propensa a errores. Spring Cloud ofrece un modelo de

programación simple y accesible para los patrones de sistemas distribuidos más

comunes, ayudando a los desarrolladores a desarrollar aplicaciones flexibles,

confiables y coordinadas.

● La investigación principalmente formulará la documentación y arquitectura necesaria

para un sistema propuesto que agilice y mejore eficazmente los procesos de búsqueda

e identificación utilizando biometría facial.

4.2 LIMITACIONES

● Los componentes desarrollados de el sistema propuesto tiene como objetivo ser una

prueba de concepto de la arquitectura de Spring Cloud y los servicios de Amazon

Rekonigtion.

● El sistema propuesto no se implementara en ningún tipo de empresa. Es una

propuesta de un posible modelo a utilizar para la implementación de estos sistemas de

identificación.

Page 12: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

● El sistema propuesto expondrá solo 3 servicios de tipo REST que corresponden al

registro de personas a identificar, recibimiento de imágenes para identificar en ellas

las personas configuradas para buscar y un último servicio que devuelve un resultado

de las personas identificadas por el sistema.

5. MARCO DE REFERENCIA

5.1 Marco Teórico

Frente al fraude de documentos y al robo de identidad, con nuevas amenazas como el

terrorismo o la delincuencia informática, y frente a los cambios comprensibles en las

reglamentaciones internacionales, se están implementando nuevas soluciones tecnológicas

gradualmente. Una de esas tecnologías, la biometría, se ha establecido rápidamente como el

medio más pertinente para identificar y autenticar individuos de una manera rápida y

confiable, a través del uso de las características biológicas únicas.

Hoy en día, muchas aplicaciones usan esa tecnología. En el pasado, estaba reservada para

aplicaciones sensibles, como la seguridad de los sitios militares, sin embargo, ahora se está

desarrollando rápidamente, a través de aplicaciones de dominio público.

5.1.1 ¿Qué es la biometría?

La biometría es la ciencia del análisis de las características físicas o del comportamiento,

propias de cada individuo, con el fin de autenticar su identidad. En el sentido literal y el más

simple, la biometría significa la "medición del cuerpo humano".

Page 13: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Hay dos categorías de tecnologías biométricas:

Mediciones fisiológicas

Pueden ser morfológicas o biológicas. Los análisis morfológicos, consisten, principalmente,

en las huellas dactilares, la forma de la mano, del dedo, el patrón de las venas, el ojo (iris y

retina) y la forma de la cara. Los análisis biológicos, el ADN, la sangre, la saliva o la orina

pueden usarse por parte de los equipos médicos y la policía forense.

Mediciones del comportamiento

Las formas más comunes son el reconocimiento de voz, la dinámica de la firma (velocidad de

movimiento del bolígrafo, aceleraciones, presión ejercida, inclinación), la dinámica de la

pulsación de las teclas, la manera en que se utilizan los objetos, la marcha, el sonido de los

pasos, los gestos, etc.

Las diferentes técnicas utilizadas son objeto de investigación y desarrollo constante, y, por

supuesto, se mejoran continuamente. Sin embargo, los diferentes tipos de mediciones no

tienen el mismo nivel de confiabilidad. Generalmente se considera que las mediciones

fisiológicas ofrecen el beneficio de permanecer más estables durante toda la vida de un

individuo. Por ejemplo, no están tan sujetas a los efectos del estrés, en comparación con la

identificación mediante la medición del comportamiento. La biometría permite que una

persona se identifique y autentique con base en un conjunto de datos reconocibles y

verificables, que son únicos y específicos para él/ella.

La identificación biométrica consiste en determinar la identidad de una persona. El objetivo

es capturar un elemento biométrico, por ejemplo, tomando una foto del rostro, grabando la

voz, o capturando una imagen de la huella dactilar. Luego, esos datos se comparan con los

Page 14: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

datos biométricos de otras varias personas, alojados en una base de datos. De ese modo, la

pregunta es muy simple: "¿Quién es usted?".

La autenticación biométrica, también conocida como verificación, es el proceso por el que

se comparan los datos de las características de una persona con la "plantilla" biométrica de

esa persona, con el fin de determinar su semejanza. En primer lugar, el modelo de referencia

se almacena en una base de datos o en un elemento seguro portátil, como una tarjeta

inteligente. Luego se comparan los datos almacenados con los datos biométricos de la

persona para autenticarse. Aquí, lo que se está verificando es la identidad de la persona.

5.1.4 Biometría: una historia muy antigua

La biometría responde a la eterna preocupación en cuanto a la capacidad de demostrar la

identidad de manera irrefutable, usando aquello que hace a uno diferente. Si nos remontamos

a los tiempos prehistóricos, el hombre ya tenía la sensación de que ciertas características,

tales como la huella digital, eran suficiente para identificarlo y, por ende, "firmaba" con el

dedo.

En el siglo II aC, el emperador chino Ts'In She ya autenticaba ciertos sellos con una huella

dactilar. En el siglo XIX, Bertillon dio los primeros pasos en la policía científica. Utilizó las

mediciones tomadas de ciertas características anatómicas para identificar a los criminales

reincidentes, una técnica que, a menudo, tuvo éxito, aunque no ofrecía ninguna garantía real

de confiabilidad.

Luego, este uso incipiente de la biometría fue un poco olvidado y lo redescubrió William

James Herschel, un oficial británico, para usarlo con un propósito completamente diferente.

Después de haber sido puesto a cargo de la construcción de carreteras en Bengala, solicitaba a

Page 15: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

sus subcontratistas firmar contratos con la huella dactilar, una forma segura de encontrarlos

más fácilmente si no cumplían con lo acordado.

En el Reino Unido, la policía metropolitana comenzó a utilizar la biometría para su

identificación en 1901. En los EE.UU., fue iniciado por la policía de Nueva York en 1902 y

por el FBI en 1924. La policía francesa comenzó a usar el mismo proceso a finales de 1902 .

La biometría está creciendo rápidamente, especialmente en el ámbito de los documentos de

identidad. En general, se combina con otras tecnologías de seguridad, tales como las tarjetas

inteligentes.

La biometría está íntimamente vinculada a la cuestión de la identidad

Hay tres maneras posibles de comprobar la identidad:

1. Por medio de algo que usted posee. Hasta ahora, esto era algo relativamente fácil de

hacer, ya fuera mediante el uso de la llave del vehículo, un documento, una tarjeta o

una placa de identificación.

2. Por medio de algo que usted sabe, un nombre, un secreto o una contraseña.

3. Por medio de una parte de su cuerpo, la huella digital, la mano, la cara.

El uso de la biometría ofrece una serie de beneficios, el principal es el nivel de seguridad y de

precisión que garantiza. En contraste con las contraseñas, las placas de identificación o los

documentos, los datos biométricos no se pueden olvidar, intercambiar o robar, y no se pueden

falsificar.

Page 16: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Según los cálculos realizados por Sir Francis Galton (primo de Darwin), la probabilidad de

encontrar dos huellas dactilares similares es de 1 en 64 mil millones, incluso en el caso de

gemelos idénticos (homocigotos).

5.1.5 Usos de la biometría

Las autoridades nacionales son quienes, principalmente, introducen estas aplicaciones, debido

a que el registro y la gestión biométrica de las huellas dactilares de una población necesitan

un marco legal y técnico estrictamente regulado.

La aplicación más ampliamente implementada hasta la fecha es el pasaporte electrónico

(ePassport), en particular con la segunda generación de esos documentos, también conocidos

como pasaportes biométricos, en los que se almacenan dos huellas dactilares, además de una

foto. La biometría proporciona pruebas irrefutables de la relación entre el documento y su

titular. Otra ventaja de esta solución es que acelera el cruce de fronteras, mediante el uso de

escáneres que utilizan el principio de reconocimiento por comparación de la cara y/o las

huellas digitales.

Existen otras aplicaciones, principalmente las tarjetas nacionales de identidad, extendidas en

países europeos y de Oriente Medio, o en África, para la identificación o los programas de

salud, como es el caso de Gabón. Con estas tarjetas de identificación biométrica, las huellas

digitales se utilizan para confirmar la identidad del titular de la tarjeta antes de que se le

otorgue acceso a los servicios gubernamentales o de la salud.

Además, muchos países han establecido infraestructuras biométricas para el control de los

flujos migratorios desde y hacia sus territorios. Las cámaras y los escáneres de huellas

Page 17: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

dactilares instalados en los puestos fronterizos capturan cierto tipo de información que ayuda

a identificar, de una manera más precisa y confiable, a los viajeros que entran en el país. En

algunos países, lo mismo aplica en los consulados para las solicitudes y las renovaciones de

visas.

La adquisición de los datos requiere un equipo confiable para garantizar la captura óptima de

las fotos y las huellas dactilares, lo cual es esencial para que los procesos de comparación y

de verificación sean precisos.

Las bases de datos de la AFIS (Sistema de Identificación Automática de Huellas Digitales), a

menudo vinculadas a una base de datos del registro civil, garantizan la identidad y la

singularidad de los ciudadanos en relación con el resto de la población, de forma confiable,

rápida y automatizada. Pueden combinar huellas dactilares, fotos y escaneos del iris para

mayor confiabilidad.

5.1.6 Confiabilidad de la biometría

La biometría se basa en algoritmos estadísticos. Por lo tanto, no puede ser 100% confiable

cuando se utiliza por sí sola.

Aquí nos referimos a los "falsos rechazos" o a las "falsas aceptaciones". En un caso, la

máquina no puede reconocer un elemento de los datos biométricos que, sin embargo,

corresponde a la persona. En el otro caso, asimila dos elementos de los datos biométricos que

no son de la misma persona. El "falso rechazo" o la "falsa aceptación" son síntomas que se

producen con todas las técnicas utilizadas en la biometría.

Ya hace algunos años, el uso de varios datos biométricos combinados, por ejemplo, el rostro

y el iris o el iris y las huellas dactilares, ha hecho posible reducir las tasas de error

considerablemente.

Page 18: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

De todas maneras, esa confiabilidad depende de que las herramientas de adquisición y los

algoritmos sean de buena calidad. Aunque esta solución puede parecer atractiva en principio,

la identificación requiere la implementación de un servidor centralizado, con una arquitectura

particularmente segura.

5.2 Amazon Rekonigtion

Amazon Rekognition es un servicio que facilita la agregación de análisis de imágenes a sus

aplicaciones. Con Rekognition, puede detectar objetos, escenas, rostros; reconocer a famosos;

e identificar contenido inapropiado en las imágenes. También puede buscar y comparar

rostros. La API de Rekognition le permite añadir a sus aplicaciones la búsqueda visual y

clasificación de imágenes sofisticadas basadas en el aprendizaje profundo.

Amazon Rekognition se basa en la misma tecnología de aprendizaje profundo demostrada y

altamente escalable desarrollada por los científicos de visión informática de Amazon para

analizar miles de millones de imágenes al día para Prime Photos. Amazon Rekognition utiliza

modelos de redes neuronales profundas para detectar y etiquetar miles de objetos y escenas

en sus imágenes, y añadimos constantemente nuevas etiquetas y características de

reconocimiento facial al servicio.

La API de Rekognition le permite añadir descubrimiento y búsquedas visuales potentes a sus

aplicaciones. Con Amazon Rekognition, solo paga por las imágenes que analiza y los

metadatos de rostros que almacena. No se requieren pagos mínimos ni compromisos iniciales.

Page 19: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

5.2.1 Novedades de Amazon Rekonigtion Detección de objetos y escenas

Rekognition identifica miles de objetos, como vehículos, mascotas o muebles, y proporciona

una puntuación de confianza. Rekognition también detecta escenas dentro de una imagen,

como una puesta de sol o una playa. Esto facilita la incorporación de características que

pueden buscar, filtrar y preparar bibliotecas de imágenes de gran tamaño.

Figura 1. Detección de Objetos y Escenas. Fuente: https://aws.amazon.com/es/rekognition/

Moderación de imágenes

Rekognition permite detectar contenido explícito y sugerente para que pueda filtrar imágenes

basadas en los requisitos de su aplicación. Rekognition proporciona una lista jerárquica de

Page 20: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

etiquetas con puntuaciones de confianza que permiten un control detallado sobre las

imágenes que desea aceptar.

Figura 2. Moderación de Imágenes. Fuente: https://aws.amazon.com/es/rekognition/

Análisis facial

Con Rekognition, puede detectar rostros en imágenes y analizar los atributos faciales, como

si la persona está sonriendo o tiene los ojos abiertos. Al analizar una imagen, Rekognition

mostrará la posición y un marco rectangular para cada rostro detectado. Con el análisis facial

de Rekognition, puede monitorear con facilidad las emociones de los usuarios.

Page 21: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Figura 3. Analisis Facial. Fuente: https://aws.amazon.com/es/rekognition/

Comparación de rostros

Rekognition le permite medir las probabilidades de que los rostros de dos imágenes sean de

la misma persona. Con Rekognition, puede utilizar la puntuación de parecido para verificar

un usuario con una foto de referencia en casi tiempo real.

Figura 4. Comparación de Rostros. Fuente: https://aws.amazon.com/es/rekognition/

Page 22: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Reconocimiento facial

Rekognition le permite encontrar rostros parecidos en una gran colección de imágenes. Puede

crear un índice de rostros detectados en sus imágenes. La búsqueda rápida y precisa de

Rekognition le proporciona los rostros que más se parecen al rostro de referencia

Figura 5. Reconocimiento Facial. Fuente: https://aws.amazon.com/es/rekognition/

Reconocimiento de famosos

Rekognition detecta y reconoce a miles de individuos famosos, destacados o importantes en

su ámbito. Esto le permite indexar y buscar bibliotecas de imágenes digitales de famosos

según su interés en particular.

Page 23: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Figura 6. Reconocimiento de Famosos. Fuente: https://aws.amazon.com/es/rekognition/

5.2.2 Beneficios Amazon Rekonigtion

Integre un reconocimiento de imágenes potente en su aplicación de manera sencilla

Amazon Rekognition elimina la complejidad de crear capacidades de reconocimiento de

imágenes en sus aplicaciones al poner el análisis de imágenes potente y preciso a disposición

de todos con una sencilla API. No necesita tener experiencia con la visión informática ni el

aprendizaje profundo para aprovechar el análisis de imágenes fiable de Rekognition. Con la

API de Rekognition, pude incorporar el análisis de imágenes de manera rápida y sencilla a

cualquier aplicación web, móvil o de dispositivo conectado.

Inteligencia artificial en el núcleo

Amazon Rekognition se ha creado a partir de tecnología de aprendizaje profundo que ya

utiliza Amazon. Seguimos añadiendo soporte para nuevos objetos y mejorando el análisis

Page 24: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

facial. La amplitud y la precisión de Rekognition sigue creciendo a medida que lo entrenamos

para que asuma nuevos desafíos.

Análisis de imágenes escalable

Amazon Rekognition se utiliza para analizar miles de millones de imágenes al día. El servicio

proporciona tiempos de respuesta uniformes independientemente del volumen de las

solicitudes de análisis que realice. La latencia de su aplicación permanece uniforme, aunque

aumente el volumen de solicitudes. No es necesario aprovisionar capacidad adicional cuando

su aplicación sea un éxito y de repente cuente con millones de usuarios.

Integración con servicios de AWS populares

Amazon Rekognition está diseñado para integrarse a la perfección con servicios de AWS

populares como Amazon S3 y AWS Lambda. Se puede llamar a la API de Rekognition

directamente desde AWS Lambda como respuesta a eventos de Amazon S3. Como S3 y

Lambda se escalan automáticamente como respuesta a la demanda de su aplicación, puede

crear aplicaciones de análisis de imágenes escalables, económicas y fiables. Por ejemplo,

cada vez que una persona llegue a su casa, la cámara de su puerta pude cargar una imagen del

visitante en S3, activando una función de Lambda que usa las API de Rekognition para

identificar a la persona. Puede ejecutar análisis directamente en imágenes almacenadas en

Amazon S3 sin tener que cargar o transferir los datos. La compatibilidad con AWS Identity

and Access Management (IAM) hace que sea sencillo controlar el acceso a las API de

Page 25: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Rekognition de manera segura. Con IAM, puede crear y administrar usuarios y grupos de

AWS para conceder el acceso adecuado a sus desarrolladores y usuarios finales.

Bajo costo

Con Amazon Rekognition, solo paga por la cantidad de imágenes que analiza y los metadatos

de rostros que almacena. No se requieren pagos mínimos ni compromisos iniciales. Comience

de manera gratuita y ahorre más cuando crezca gracias al modelo de precios por niveles de

Rekognition.

5.2.3 Caso de Uso

Reconocimiento facial

Amazon Rekognition almacena metadatos de rostros, lo que facilita la búsqueda en su

colección de imágenes de rostros muy parecidos con la función IndexFaces de la API. A

continuación, puede usar la función SearchFaces para obtener resultados de alta confianza.

Una colección de rostros es un índice de rostros que usted posee y administra.

Page 26: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Figura 7. Buscar imagen en coleccion de imagenes. Fuente: https://aws.amazon.com/es/rekognition/

5.3 Spring Framework

El Spring Framework proporciona un modelo de programación y configuración completa

para las aplicaciones empresariales modernas basadas en Java – en cualquier tipo de

plataforma de despliegue. Ayuda a los desarrolladores a crear aplicaciones de alta calidad,

más rápidamente. Spring proporciona un modelo de programación coherente y consistente, el

cual es bien comprendido y usado por millones de desarrolladores Java.

Un elemento clave de Spring es el apoyo infraestructural a nivel de aplicación: Spring se

centra en la “fontanería” de las aplicaciones empresariales para que los equipos pueden

centrarse en la lógica de negocios a nivel de aplicación, sin ataduras innecesarias a los

entornos de implementación específicos.

Page 27: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

5.3.2 Características Spring Framework

Simplicidad

Spring MVC, que es parte del Spring Framework, es la tecnología líder para la construcción

de aplicaciones web. Spring MVC proporciona un modelo de componentes limpio para la

creación de aplicaciones web escalables que son comprobables y basadas en las mejores

prácticas. Al hacer uso de la convención sobre configuración, conseguir que la ejecución de

una aplicación Spring MVC pueda ser tan simple con unas pocas anotaciones y registro del

servlet Spring MVC.

Flexibilidad

Si bien es sencillo para empezar, Spring MVC también es muy flexible. Ofrece soporte

true-and-true para todo tipo de casos de uso – desde la seguridad hasta la gestión de sesiones,

a partir de la administración de formularios y validación hasta la gestión de plantillas. Spring

MVC también sirve como base para Spring Web Flow, que ofrece una forma limpia para

gestionar la navegación a modo de asistente en una aplicación web.

Acceso a datos

Porque elegir entre las opciones de datos puede ser desalentador, Spring Framework

proporciona soporte declarativo, impulsado por anotaciones para gestiones transversales

como las transacciones y almacenamiento en caché.

Spring también ofrece convenientes objetos de la plantilla que reducen las interacciones de la

API con la mayoría de almacenamiento de datos a una sola línea. Estos objetos de la plantilla

Page 28: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

le permiten enfocarse en la tareas a la mano y ocuparse de forma transparente de las tareas de

código repetitivo típicos de las tecnologías de acceso a datos tales como la adquisición de

conexión, creación de la sesión, y de concurrencia.

Spring Framework también proporciona una API unificada que desacopla el almacenamiento

en caché de su elección de la tecnología de la persistencia. Con constante apoyo a la gestión

de transacciones de Spring y APIs ligeras, usted puede construir fácilmente sofisticados,

servicios empresariales Java basados en objetos y objetos de acceso a datos.

Integración

Spring Framework ofrece apoyo integral a las demandas de integración de las aplicaciones de

hoy en día, proporcionando un modelo simple para la construcción de soluciones de

integración empresarial al tiempo que se mantiene la separación de intereses que es esencial

para producir código mantenible y comprobable.

Las soluciones de integración ligeras, probadas de Spring incluyen Spring Integration para la

construcción de aplicaciones asíncronas, orientadas a eventos (y para la integración con

frameworks RPC si es más su estilo); Spring Batch para la lectura y escritura fiable de

grandes cantidades de datos; y Spring Web Services para interoperar con servicios web

basados en SOAP.

5.3.3 Arquitectura Spring Cloud

La construcción de sistemas distribuidos no necesita ser compleja y propensa a errores.

Spring Cloud ofrece un modelo de programación simple y accesible para los patrones de

sistemas distribuidos más comunes, ayudando a los desarrolladores a desarrollar aplicaciones

Page 29: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

flexibles, confiables y coordinadas. Spring Cloud está construido sobre Spring Boot, lo que

facilita que los desarrolladores comiencen y se vuelvan productivos rápidamente.

Spring Cloud proporciona herramientas para que los desarrolladores construyan rápidamente

algunos de los patrones comunes en sistemas distribuidos (por ejemplo, gestión de

configuración, descubrimiento de servicios, circuit breakers, enrutamiento inteligente,

micro-proxy, bus de control, one-time tokens, bloqueos globales, leadership election,

sesiones distribuidas, estado de cluster).

Figura 8. Arquitectura Spring Cloud. Fuente: https://spring.io/

Service Discovery

Un directorio dinámico que permite el equilibrio de carga del lado del cliente y el

enrutamiento inteligente.

Page 30: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Distributed Tracing

Instrumentación de aplicación automatizada y visibilidad operacional para sistemas

distribuidos.

Circuit Breaker

Tolerancia a errores del microservicio con un panel de control.

OAuth2

Soporte para inicio de sesión único, relevo de tokens y intercambio de tokens.

Configuration Server

Gestión de configuración dinámica y centralizada para sus aplicaciones descentralizadas.

Consumer-Driven Contracts

Patrones de evolución del servicio para admitir API basada en HTTP y basada en mensaje.

API Gateway

Punto de entrada único para consumidores API (navegadores, dispositivos, otras API).

Page 31: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

6. METODOLOGÍA

La siguiente tabla describe las actividades a realizar para el desarrollo del proyecto.

ACTIVIDADES A REALIZAR Fase de Planeación Descripción

Actividad 1 Recopilacion de informacion de componentes de arquitectura Spring Cloud.

Actividad 2 Recopilación de información API Amazon Rekonigtion. Fase Diseño de la

Arquitectura Actividad 3 Definir las operaciones a implementar en el API del prototipo Actividad 4 Identificar componentes de Spring Cloud a utilizar Actividad 5 Identificar las operaciones de Amazon Rekonigtion a utilizar

Fase Pruebas de Concepto Actividad 6 Prueba de concepto componentes Spring Cloud. Actividad 7 Prueba de concepto servicios de reconocimiento AWS Rekonigtion

Fase de implementación

Actividad 8 Construir componente que se comunica con Amazon Rekonigtion para realizar las diferentes operaciones de identificación biométrica facial.

Actividad 9 Construir componente que expone los servicios de registro, identificación y reportes.

Actividad 10 Construir componentes que hacen parte de la arquitectura Spring Cloud.

Actividad 11 Unificación del proyecto.

Actividad 12 Pruebas técnicas de identificación biométrica facial con el componente unificado y desplegado.

Actividad 13 Ajustes a los inconvenientes o errores encontrados. Fase de Cierre del Proyecto

Actividad 14 Elaborar manual de instrucciones y funcionamiento del sistema. Actividad 15 Conclusiones y recomendaciones.

Tabla 1. Metodología desarrollo del Proyecto. Fuente: Propia

Page 32: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

6.1 Fase de Planeación

El desarrollo de esta fase consiste en realizar una lectura profunda de las 2 tecnologías a

utilizar en el desarrollo como lo es el API de servicios de amazon llamado Amazon

Rekonigtion y el framework Spring Framework y sus componentes para Spring Cloud.

Spring framework después de su expansión al MVC (Modelo Vista Controlador), siguió

evolucionando convirtiéndose en un framework de gran escala de Java para las aplicaciones

de Internet, ofreciendo a los ingenieros una poderosa herramienta para el desarrollo de

aplicaciones web, así como para proyectos de seguridad. Siendo uno de los favoritos para los

programadores, ofrece una amplia gama de servicios: API REST, servicios web SOAP,

seguridad, etc. Otro de los beneficios es que existe una gran comunidad de desarrolladores

que trabajan con Spring y por lo tanto hay una fuente enorme de documentación.

Pros y contras

Spring no se encuentra en el número 1 por cualquier razón. Estas son las más destacadas:

● Inyección simplificada de datos de prueba mediante el uso de POJOs.

● Modularidad mejorada, lo que provoca una mejor legibilidad del código.

● Acoplamiento flexible entre los diferentes módulos.

● Inyección de dependencias con un uso flexible.

Aunque no podemos considerarlo un inconveniente, ya que existe una gran cantidad, sí es

cierto que Spring MVC quizás debería ser más fácil de aprender para los desarrolladores

novatos. A menudo se quejan de que la curva de aprendizaje al principio está demasiado

empinada. Algunas partes del código pueden estar poco documentadas y el aprendizaje inicial

se puede hacer dificultoso. Además, la información a veces es diferente entre las versiones. A

Page 33: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

pesar de todo, la mayoría de los ingenieros que trabajan con Java lo consideran uno de los

mejores frameworks, si no el mejor.

Se define la utilización de Spring Cloud debido a la facilidad y flexibilidad que este

framework permite en el desarrollo de aplicaciones empresariales . Netflix implementa una 7

arquitectura similar la cual está compuesta por más de 500 microservicios, y cuentan con más

de 50 millones de suscriptores que realizan unas 2.000 millones de peticiones al día.

El uso de los servicios de amazon rekonigtion son muy sencillos, basta con almacenar una

imagen en un recurso como Amazon S3, llamar a una API específica según el tipo de

procesamiento que desea realizar y leer el archivo JSON con retorno de la información

generada, todos con un tiempo de respuesta increíbles (menos de 0,5 seg). No es necesario

configurar ningún servidor. Tal como lo vimos en el marco teórico, el amazon rekonigtion

ofrecer una variedad de servicios que pueden ser implementados en diferentes tipos de

proyecto como lo es el reconocimiento de escenas/objetos, analisis facial, comparacion, entre

otros.

6.2 Fase de Diseño de la Arquitectura

En esta fase, lo primero era definir cuales serian las operaciones que debía implementar el

prototipo arquitectónico. Se definieron 3 operaciones las cuales serán descritas en seguida:

1. Registro de usuarios a identificar: Este servicio tiene como objetivo recibir la

imagen y la información de un usuarios que se espera sea identificado. La imagen del

usuario es almacenada en una colección de usuarios en amazon rekonigtion y en una

7 "Spring Cloud Netflix." https://cloud.spring.io/spring-cloud-netflix/. Se consultó el 13 nov.. 2017.

Page 34: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

base de datos local utilizando el número de identificación del usuario como llave para

posteriores consultas.

2. Identificación de usuarios: Es un servicio encargado de recibir imágenes en las

cuales se espera identificar a alguno de los usuarios que fueron configurados para

identificar. Además de la imagen, este servicio recibe la fecha y las coordenadas de

donde fue tomada la imagen. Si un usuario es identificado en una de estas imágenes

recibidas, se almacena en una colección la imagen y el número de documento del

usuario identificado.

3. Reporte de usuarios identificados: Es un servicio encargado de devolver la

información de los usuarios que fueron identificados en las imágenes recibidas. Se

puede realizar la consulta en un rango de fechas o por el número de identificación del

usuario.

De acuerdo a la documentación realizada en fase anterior se definió utilizar los siguientes

componentes para el desarrollo del proyecto:

De Spring Cloud:

❖ Eureka: Eureka es un servidor para el registro y localización de microservicios,

balanceo de carga y tolerancia a fallos. La función de Eureka es registrar las diferentes

instancias de microservicios existentes, su localización, estado, metadatos…

❖ Cloud Config: Cloud-config es un servidor de configuración pensado para sistemas

distribuidos. Su función es almacenar las propiedades de configuración de los

microservicios del ecosistema.

❖ Ribbon: Ribbon es un balanceador de carga del lado del cliente que le da mucho

control sobre el comportamiento de los clientes HTTP y TCP.

Page 35: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

❖ Zuul: Es un punto de entrada de todas las peticiones, ya que actúa como enrutador y

filtro de éstas.

❖ Spring Security: ofrece la integración de una capa de seguridad en el sistema, bien

con seguridad básica o mediante servidores de autenticación OAuth2.

De Amazon Rekonigtion:

❖ Se usará la operación CompareFaces para comparar un rostro de la imagen de 8

origen con cada rostro detectado en la imagen de destino.

De acuerdo a lo anterior, el sistema desarrollado será similar al de la siguiente imagen:

 

Figura 9. Arquitectura Prototipo Arquitectónico Proyecto. Fuente: Propia

8 "Ejercicio 3: Comparar rostros (API) - Amazon Rekognition - AWS ...." http://docs.aws.amazon.com/es_es/rekognition/latest/dg/get-started-exercise-compare-faces.html. Se consultó el 13 nov.. 2017.

Page 36: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

6.3 Fase de Pruebas de Concepto

En esta fase se empiezan a implementar pequeños proyectos con el objetivo de validar el

correcto funcionamiento de cada uno de los componentes seleccionados en la fase anterior.

Para Spring se implementan las siguientes pruebas de concepto de la pagina oficial de spring

https://spring.io/guides

1. Servicio de registro y descubrimiento :

https://spring.io/guides/gs/service-registration-and-discovery/

2. Configuración centralizada:

https://spring.io/guides/gs/centralized-configuration/

3. Equilibrio de carga en el cliente:

https://spring.io/guides/gs/client-side-load-balancing/

4. Enrutamiento y filtrado:

https://spring.io/guides/gs/routing-and-filtering/

5. Seguridad de spring:

https://spring.io/guides/topicals/spring-security-architecture/

Para amazon rekonigtion se implementa la guía de la página oficial para comparar rostros :

http://docs.aws.amazon.com/es_es/rekognition/latest/dg/get-started-exercise-compare-faces.h

tml

Se realiza prueba de concepto del servicio CompareFaces de Amazon Rekonigtion y se valida

que se obtengan los resultados deseados de acuerdo a las verificaciones indicadas.

Page 37: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Para poder hacer uso de los servicios de Amazon, se creó la cuenta de correo electrónico [email protected]. Ver en anexos para mas detalles sobre la creacion y configuracion de usuarios para el uso de amazon rekonigtion. Se creo la cuenta en amazon en la pagina oficial https://aws.amazon.com/es/ Y se crearon los grupos y usuarios de acceso a los servicios de amazon de acuerdo a la siguiente documentación: http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/getting-started_create-admin-group.html

Información Usuario IAM

Nombre de Usuario adminuser_rekonigtion

Contraseña de Usuario D3s4rr0ll0.2017.*

Grupo user_group_rekonigtion

Access key ID AKIAIGVEEWJTN5HG6MIA

Secret access key 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

6.4 Fase de Implementación

La primera actividad de esta fase es implementar el componente que se va a comunicar

directamente con amazon rekonigtion. Se ha nombrado a este componente

amazon-rekonigtion-rs. Es un componente de spring de tipo REST que expone la

siguientes operaciones:

1. Iniciar cliente: Este servicio es el encargado de establecer la conexión los servicios

del api de amazon rekonigtion.

Page 38: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

2. Crear colección: Este servicio es el encargado de realizar la creación de una

colección en amazon rekonigtion y es en donde posteriormente podemos almacenar

las imágenes de los usuarios a registrar.

3. Registrar usuario: Este servicio recibe una imagen para registrar en una colección

que haya sido creada con el servicio de crear colección.

4. Identificar rostros en imagen: Este servicio es el encargado de recibir una imagen

para identificar en ella si existe algun usuario de los configurados para identificar.

La siguiente actividad es construir el componente que expone las 3 operaciones definidas a

implementar en el prototipo. El componente se ha llamado reconocimiento-facial-rs. Es un

componente spring de tipo REST.

Se crearon otros componentes los cuales se describirán a continuación:

constantes-reconocimiento-facial : Es un componente java que contiene las constantes

globales usadas en toda la aplicación. Como por ejemplo constantes que contiene los tipos y

mensajes de error o éxito que se puedan generar en la aplicación.

database-reconocimiento-facial-rs : Es un componente de spring, que utiliza spring data

para realizar la conexión y manejo con la base de datos de la aplicación. Es el componente

Spring de tipo REST que expone todas las operaciones relacionadas con la base de datos.

consumidor-reconocimiento-facial-rabbitmq: Cuando se reciben las imágenes en las

cuales se va a identificar si existe un usuario de los configurados para identificar, esta imagen

Page 39: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

es publicada en una cola de RabbitMQ. Este componente es el encargado de leer esa cola y

empezar a procesar cada una de las imágenes recibidas.

La siguiente actividad es implementar los demás componentes que forman parte de la

arquitectura de spring cloud y que fueron seleccionados para implementar en el prototipo.

Se crea el componente reconocimiento-facial-gateway el cual utiliza zuul y es el punto de

entrada a nuestro ecosistema de microservicios, proporcionando capacidades de enrutamiento

dinámico, seguridad y monitorización de las llamadas que se realicen. Aquí se utiliza spring

security con OAuth2 para proporcionar seguridad de acceso a los servicios.

Se implementa el servidor de Eureka y se configura cada microservicios para registrarse en el

servidor y pueda ser visto por el resto del ecosistema. Cada microservicio utiliza Ribbon para

realizar el balanceo de carga con cada uno de los microservicios que se comunica, enviando

peticiones solo a aquellos que tengan la disponibilidad de responder. Se configura de igual

forma cada microservicio para que consulte la configuración que se encuentra en un

repositorio de git.

Luego de implementar todos los componentes que hacen parte de la arquitectura propuesta es

hora de realizar unas pruebas sobre el sistema para verificar el correcto funcionamiento. Las

pruebas básicas a realizar serán las siguientes:

1. Realizar el registro de un usuario a identificar

Page 40: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

2. Enviar 5 imágenes para identificar en ellas a la persona configurada anteriormente. En

solo 2 imagenes estará el rostro de la persona configurada.

3. Consultar los resultados y validar que efectivamente se haya identificado a la persona

en las 2 imágenes enviadas.

Iniciamos cada uno de los componentes (microservicios) que hacen parte de la aplicación de

reconocimiento facial.

La url base para el consumo de los servicios es la siguiente:

http://localhost:8080/reconocimiento-facial/

Iniciamos con la configuración de un usuario para su identificación.

La descripción del servicio es la siguiente:

Método: POST Path: /registro-usuario Headers:

Accept : application/json Content-Type: application/json

Body: Solicitud:

Respuesta:

El código java del recurso expuesto es el siguiente:

Page 41: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

La imagen del usuario a identificar es la siguiente:

Realizamos el consumo del servicio utilizando Postman , un cliente de servicio REST. 9

9 "Postman." https://www.getpostman.com/. Se consultó el 15 nov.. 2017.

Page 42: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Donde podemos verificar que el usuario se configuró de manera correcta.

Seguimos con la carga de imágenes para identificar en ellas el usuario configurado.

La descripción del servicio es la siguiente:

Método: POST Path: /imagen Headers:

Accept : application/json Content-Type: application/json

Body: Solicitud:

Respuesta:

Page 43: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

El código java del recurso expuesto es el siguiente:

Las 5 imágenes a enviar en este servicio son las siguientes:

Imagen 1: En esta imagen se encuentra el usuario configurado.

Page 44: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Imagen 2: En esta imagen se encuentra el usuario configurado.

Imagen 3: En esta NO imagen se encuentra el usuario configurado.

Page 45: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Imagen 4: En esta NO imagen se encuentra el usuario configurado.

Imagen 5: En esta NO imagen se encuentra el usuario configurado.

Realizamos el consumo del servicio utilizando Postman, un cliente de servicio REST.

Page 46: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Donde podemos verificar que el usuario se configuró de manera correcta. Consumimos 5

veces el servicio enviando cada una de las imágenes.

Seguimos con la consulta de resultados para validar en cuál de las imágenes enviadas se

identificó el usuario.

La descripción del servicio es la siguiente:

Método: GET Path: /resultados Headers:

Accept : application/json Content-Type: application/json

Body: Solicitud: Respuesta:

Page 47: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

El código java del recurso expuesto es el siguiente:

El consumo del servicio se muestra a continuacion:

Page 48: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Donde se observa que hay 2 resultados para el usuario identificado con el número de

documento ‘1234567890’. En base de datos se observa lo siguiente:

Al decodificar el string base 64 a una imagen, se puede validar que las 2 imagenes

corresponden con las imágenes en donde efectivamente se encontraba el usuario. Para

decodificar este string base 64 utilizamos la siguiente pagina

https://codebeautify.org/base64-to-image-converter

Page 49: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Resultado 1:

Resultado 2:

Page 50: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Flujos básicos de cada operación de la aplicación:

Registro de usuarios a identificar:

Figura 10. Flujo básico registro de usuarios. Fuente: propia

Page 51: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Identificación de usuarios:

Figura 11. Flujo básico identificacion de usuarios. Fuente: propia

Page 52: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Reporte de usuarios identificados:

Figura 10. Flujo básico reporte de usuarios. Fuente: propia

Page 53: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

7. ASPECTOS METODOLÓGICOS

7.1 Holotipo De la Investigación

El holotipo de la investigación de proyectiva.

7.2 Posibles fuentes para la investigación

Para el desarrollo de los componentes de software que hacen parte del prototipo se utilizará la

documentación oficial de Spring Framework:

https://spring.io/

Para el caso de el API de reconocimiento facial se utilizará la documentación oficial de

amazon con respecto a ese producto en específico:

https://aws.amazon.com/rekognition/

Page 54: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

8. CONCLUSIONES Y RECOMENDACIONES

● El uso de servicios en la nube como el de Amazon Rekonigtion están diseñados para

permitir que los proveedores de aplicaciones, los proveedores de software

independientes y los distribuidores puedan integrar de manera rápida nuevas

capacidades a todas sus aplicaciones. En el caso de Amazon Rekonigtion permiten

agregar las capacidades de procesamiento de imágenes para detección escenas y

objetos, moderación de imágenes, análisis facial, comparación de rostros,

reconocimiento facial y reconocimiento de famosos.

● El uso de una arquitectura basada en microservicios ofrece varias ventajas entre las

cuales se tiene la combinación de los servicios de acuerdo a la necesidad,

escalamiento a nivel de microservicios, mantenimiento más simple, su fallo no

arrastra a todo el sistema y los despliegues pueden ser progresivos sin necesidad de

parar todo el sistema.

● Spring tiene una filosofía modular, lo que quiere decir que partimos de una base a la

que añadimos los módulos según los vamos necesitando o según la aplicación vaya

creciendo. Esto nos permite desarrollar aplicaciones de manera más rápida, eficaz y

corta, saltándose tareas repetitivas y ahorrandonos líneas de código.

● El uso de las tecnologías propuestas en la arquitectura de Spring Cloud están

enfocadas a la integración continua, reutilización, mayor productividad y nivel de

abstracción, con el fin de producir servicios software de alto valor de forma ágil y

rápida, al menor coste.

Page 55: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

9. CRONOGRAMA

Figura 10. Cronograma de Actividades Prototipo Arquitectónico. Fuente: Propia

Page 56: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

10. PRESUPUESTO Talento Humano

Cantidad Descripción Valor Unitario Valor Total

1 Ingenieros de Sistemas y Computación por un periodo de 19 semanas, con una dedicación semanal de 15 horas.

110.000 31.350.000

Recurso Físico

Cantidad Descripción Valor Unitario Valor Total

1 Computador portátil adecuado para labores de desarrollo.

4.000.000 4.000.000

Recursos Tecnológicos

Cantidad Descripción Valor Unitario Valor Total

1 Acceso API Amazon Rekonigtion 0 0

1 Spring Framework 0 0

Se usará la capa gratuita de amazon. Como parte de la capa de uso gratuita de AWS, puede

comenzar a utilizar Amazon Rekognition de manera gratuita. Tras la inscripción, los nuevos

clientes de Amazon Rekognition pueden analizar 5.000 imágenes mensuales y almacenar

hasta 1 000 metadatos de caras mensuales, durante los primeros 12 meses.

Spring es un framework para el desarrollo de aplicaciones y contenedor de inversión de

control, de código abierto para la plataforma Java bajo licencia Apache License 2.0.

Page 57: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Gastos Varios

Cantidad Descripción Valor Unitario Valor Total

1 Papelería 300.000 300.000

1 Imprevistos 200.000 200.000

Con esto, se puede estimar un costo aproximado del proyecto de: ($ 35.850.000) treinta y cinco millones ochocientos cincuenta mil pesos m/cte.

Page 58: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

11. BIBLIOGRAFÍA

Amazon Web Services, Inc. (2017). Amazon Rekognition – Análisis de imágenes basado en el aprendizaje profundo. [online] Disponible en: https://aws.amazon.com/es/rekognition/ [Accedido 10 Nov. 2017]. Cloud.spring.io. (2017). Spring Cloud Netflix. [online] Disponible en:

http://cloud.spring.io/spring-cloud-netflix/ [Accedido 10 Nov. 2017].

Gemalto.com. (2017). Biometría para identificación y autenticación. [online] Disponible en: http://www.gemalto.com/latam/sector-publico/inspiracion/biometria [Accedido 10 Nov. 2017]. Tiempo C. CÓMO REPORTAR A UN DESAPARECIDO [Internet]. El Tiempo. 2017 [Accedido 16 November 2017]. Disponible en: http://www.eltiempo.com/archivo/documento/MAM-1293802 Tiempo C. La alarmante cifra de desaparecidos en Colombia [Internet]. El Tiempo. 2017 [Accedido 16 November 2017]. Disponible en: http://www.eltiempo.com/justicia/investigacion/cifras-a-2017-de-desaparecidos-en-colombia-125248 DISEÑO DE UN SISTEMA BIOMETRICO DE RECONOCIMIENTO FACIAL EN TIEMPO REAL [Internet]. Repositorio.utp.edu.co. 2017 [Accedido 16 November 2017]. Disponible en: http://repositorio.utp.edu.co/dspace/bitstream/handle/11059/6946/0062483995S161.pdf?sequence=1 RECOMENDACIONES PARA EL FORTALECIMIENTO DE LA BÚSQUEDA, UBICACIÓN, IDENTIFICACIÓN Y ENTREGA DIGNA DE PERSONAS DADAS POR DESAPARECIDAS. [Internet]. Comisiondebusqueda.gov.co. 2017 [Accedido 16 November 2017]. Disponible en: http://comisiondebusqueda.gov.co/images/documentos/recomendaciones-cbpd.pdf

Page 59: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Plan de investigación para el delito de desaparición forzada de personas. [Internet].

Unodc.org. 2017 [Accedido 16 November 2017]. Disponible en:

https://www.unodc.org/documents/colombia/2013/diciembre/Plan_de_Investigacion_Desapar

icion.pdf

En 2017 el país contará con Identificación Biométrica | El Nuevo Siglo Bogotá [Internet].

Elnuevosiglo.com.co. 2017 [Accedido 16 November 2017]. Disponible en:

http://www.elnuevosiglo.com.co/articulos/12-2016-en-2017-el-pais-contara-con-identificacio

n-biometrica

Los peligros que podría desatar el uso de reconocimiento facial como herramienta de

seguridad | ELESPECTADOR.COM [Internet]. ELESPECTADOR.COM. 2017 [Accedido

16 November 2017]. Disponible en:

https://www.elespectador.com/tecnologia/los-peligros-que-podria-desatar-el-uso-de-reconoci

miento-facial-como-herramienta-de-seguridad-articulo-713249

Red Nacional de Desaparecidos reporta que más de 80 mil personas están extraviadas en

Colombia - RCN Radio [Internet]. RCN Radio. 2017 [Accedido 16 November 2017].

Disponible en:

http://www.rcnradio.com/nacional/red-nacional-desaparecidos-reporta-mas-80-mil-personas-

estan-extraviadas-colombia/

Page 60: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Así funciona el sistema de reconocimiento facial que se implementa en Transmilenio

[Internet]. Noticias RCN. 2017 [Accedido 16 November 2017]. Disponible en:

http://www.noticiasrcn.com/nacional-bogota/asi-funciona-el-sistema-reconocimiento-facial-s

e-implementa-transmilenio

Page 61: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

12. ANEXOS

12.1 Configuración y Uso Amazon Web Services AWS Amazon Web Services Amazon Web Services (AWS) es una plataforma de servicios de nube que ofrece potencia de

cómputo, almacenamiento de bases de datos, entrega de contenido y otra funcionalidad para

ayudar a las empresas a escalar y crecer. Explore cómo millones de clientes aprovechan los

productos y soluciones de la nube de AWS para crear aplicaciones sofisticadas y cada vez

más flexibles, escalables y fiables. 10

La capa gratuita de AWS le permite obtener experiencia práctica gratuita con la plataforma,

los productos y los servicios de AWS. 11

Precios de Amazon Rekonigtion

Amazon Rekognition le cobra cada vez que analiza una imagen y por cada conjunto de

vectores de características faciales que almacena. Puede almacenar estos vectores de

características faciales, denominados metadatos de rostros, en colecciones para realizar

búsquedas de rostros.

Para el desarrollo del proyecto se utilizará la capa gratuita ofrecida por amazon, la cual ofrece

los siguientes servicios.

10 "¿Qué es AWS? – Amazon Web Services." https://aws.amazon.com/es/what-is-aws/. Se consultó el 27 nov.. 2017. 11 "Capa gratuita de AWS." https://aws.amazon.com/es/free/. Se consultó el 27 nov.. 2017.

Page 62: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Capa gratuita

Como parte de la capa de uso gratuita de AWS, puede comenzar a utilizar Amazon

Rekognition de manera gratuita. Tras la inscripción, los nuevos clientes de Amazon

Rekognition pueden analizar 5 000 imágenes mensuales y almacenar hasta 1 000 metadatos

de caras mensuales, durante los primeros 12 meses.

Para más información sobre la capa gratuita para el uso de amazon rekonigtion visite la

pagina https://aws.amazon.com/es/rekognition/pricing/

El primer paso para hacer uso de amazon rekongtion es crear una cuenta de AWS y crear un

usuario administrador.

Cuando se suscribe a Amazon Web Services (AWS), la cuenta de AWS se registra

automáticamente en todos los servicios de AWS, incluido Amazon Rekognition. Solo se le

cobrará por los servicios que utilice.

Para crear una cuenta de AWS

1. Abra https://aws.amazon.com/ y después elija Create an AWS Account.

2. Siga las instrucciones en línea.

3. Parte del procedimiento de inscripción consiste en recibir una llamada telefónica e

introducir un número PIN con el teclado del teléfono.

Creación de un usuario de IAM

Los servicios de AWS, como Amazon Rekognition, requieren que proporcione las

credenciales cuando tenga acceso a ellos para que el servicio pueda determinar si tiene

permisos para obtener acceso a los recursos que son propiedad de dicho servicio. La consola

requiere que especifique la contraseña. Puede crear claves de acceso para su cuenta de AWS

Page 63: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

para tener acceso a la AWS CLI o API. Sin embargo, no es recomendable que tenga acceso a

AWS con las credenciales de su cuenta de AWS. En lugar de ello, se recomienda que utilice

AWS Identity and Access Management (IAM). Cree un usuario de IAM, añada el usuario a

un grupo de IAM con permisos administrativos y, a continuación, conceda permisos

administrativos al usuario de IAM que ha creado. A continuación, podrá tener acceso a AWS

mediante una URL especial y esas credenciales de usuario de IAM.

Para crear un usuario administrador e iniciar sesión en la consola

1. Cree un usuario administrador llamado adminuser en su cuenta de AWS. Para obtener

instrucciones, consulte la sección

http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/getting-started_create-admi

n-group.html de la guía Guía del usuario de IAM.

2. Un usuario puede iniciar sesión en la Consola de administración de AWS mediante

una URL especial. Para obtener más información, consulte

http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/getting-started_how-users-s

ign-in.html en la guía Guía del usuario de IAM.

Para obtener más información sobre IAM, consulte lo siguiente:

● Identity and Access Management (IAM) 12

● Introducción 13

● Guía del usuario de IAM 14

El siguiente paso es configurar la AWS Command Line Interface (AWS CLI)

12 "Identity and Access Management (IAM) – Amazon Web Services (AWS)." https://aws.amazon.com/es/iam/. Se consultó el 27 nov.. 2017. 13 "Getting Started - AWS Documentation." http://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html. Se consultó el 27 nov.. 2017. 14 "What Is IAM? - AWS Documentation." http://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html. Se consultó el 27 nov.. 2017.

Page 64: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Para configurar la AWS CLI

1. Descargue y configure la AWS CLI. Para obtener instrucciones, consulte los

siguientes temas de la guía AWS Command Line Interface Guía del usuario:

○ Configuración inicial de la AWS Command Line Interface 15

○ Configuración de la AWS Command Line Interface 16

2. Añada un perfil con nombre para el usuario administrador en el archivo de

configuración de AWS CLI. Puede utilizar este perfil cuando ejecute los comandos de

la AWS CLI. Para obtener más información sobre los perfiles con nombre, consulte

Perfiles con nombre en la guía AWS Command Line Interface Guía del usuario. 17

Lo que se busca básicamente con esto es crear un directorio de configuración .aws que

contenga los archivos de configuración y autenticación para el acceso al API de amazon

rekonigtion.

El directorio de configuración creado para realizar la prueba quedó en la siguiente ruta:

/home/ronaltriana/.aws

El cual contiene los siguientes archivos:

15 "Instalación de la AWS Command Line Interface - AWS Documentation." http://docs.aws.amazon.com/es_es/cli/latest/userguide/installing.html. Se consultó el 27 nov.. 2017. 16 "Configuración de la AWS CLI - AWS Documentation - Amazon.com." http://docs.aws.amazon.com/es_es/cli/latest/userguide/cli-chap-getting-started.html. Se consultó el 27 nov.. 2017. 17 "Configuración de la AWS CLI - AWS Documentation - Amazon.com." http://docs.aws.amazon.com/es_es/cli/latest/userguide/cli-chap-getting-started.html. Se consultó el 27 nov.. 2017.

Page 65: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

● config

● credentials

Y el contenido de cada uno de ellos es el siguiente:

config

[profile adminuser_rekonigtion] output = json region = us-east-1

credentials

[adminuser_rekonigtion] aws_access_key_id = AKIAIGVEEWJTN5HG6MIA aws_secret_access_key = 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

Ambos archivos tienen asociado el perfil de administrador creado para acceder al API.

El archivo config contiene el tipo de salida que esperamos(json o xml) y la región que va a

hospedar los servicios de amazon rekonigtion.

El archivo credentials contiene las credenciales de autenticación a los servicios de amazon

rekongtion.

12.2 Prueba de concepto Comparación de rostros con Java

Después de haber realizado la configuración de acceso en nuestro equipo cliente, podemos

iniciar con las pruebas de concepto del API de amazon rekonigtion.

Para empezar, creamos un proyecto de tipo maven utilizando el eclipse y configuramos la

dependencia del sdk de amazon web services

Page 66: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>1.11.202</version>

</dependency>

Iniciamos creando el método para obtener el objeto cliente a amazon rekonigtion y con el

cual podemos ejecutar las diferentes operaciones que este API nos ofrece. Para obtener este

cliente debemos indicarle el perfil administrador que se creó anteriormente e indicarle la zona

en donde tenemos la instancia.

Se crea método para obtener una imagen del tipo que espera el servicio de amazon

rekonigtion a partir de una imagen ubicada en el equipo local y que su ruta se pasa como

parámetro.

Page 67: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Método encargado de realizar la comparación de los rostros utilizando una operación de

amazon rekonigtion:

Con estos 3 métodos para podemos iniciar la prueba de concepto y visualizar los resultados

de los mismos. La prueba a realizar consiste en identificar en 3 imágenes un rostro que se

encuentra en otra imagen.

La imagen rostro a identificar será la siguiente:

Page 68: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

imagenToBuscar.jpg

Las imágenes en las cuales se va a identificar el rostro son las siguientes:

imagen1ToIdentificar.jpg

Page 69: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

imagen2ToIdentificar.jpg

imagen3ToIdentificar.jpg

Page 70: PROTOTIPO INFORMACIÓN PERSONAS MICROSERVICIOS …

Procedemos a realizar las comparaciones de los rostros utilizando los métodos creados

anteriormente:

Los resultados se presentan a continuación:

Se obtienen 2 coincidencias del casi 100% en las imagenes imagen1ToIdentificar.jpg y

imagen3ToIdentificar.jpg en las cuales efectivamente se encuentra el rostro a identificar.

Los resultados también nos muestra las coordenadas del rostro que tiene la similitud en la

imagen.

La imagen imagen2ToIdentificar.jpg no arroja ningún resultado y es correcto.

Con estos simples pasos podemos realizar la comparación de rostros con muy poco desarrollo

y en muy poco tiempo gracias a los servicios en la nube ofrecidos por amazon web services.