Puebla, Pue - Mexico Año 21, nº 7282 Precio $7.00 Caen 8 ...
PROTOTIPO INFORMACIÓN PERSONAS ...repository.udistrital.edu.co/bitstream/11349/7282/1/T...Es por...
Transcript of PROTOTIPO INFORMACIÓN PERSONAS ...repository.udistrital.edu.co/bitstream/11349/7282/1/T...Es por...
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 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
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
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
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.
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.
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.
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?
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.
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.
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.
● 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".
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
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
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.
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
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.
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.
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
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.
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/
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.
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
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
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.
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.
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
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
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.
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).
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
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
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.
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.
❖ 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.
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.
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.
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
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
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:
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.
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:
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.
Imagen 2: En esta imagen se encuentra el usuario configurado.
Imagen 3: En esta NO imagen se encuentra el usuario configurado.
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.
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:
El código java del recurso expuesto es el siguiente:
El consumo del servicio se muestra a continuacion:
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
Resultado 1:
Resultado 2:
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
Identificación de usuarios:
Figura 11. Flujo básico identificacion de usuarios. Fuente: propia
Reporte de usuarios identificados:
Figura 10. Flujo básico reporte de usuarios. Fuente: propia
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/
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.
9. CRONOGRAMA
Figura 10. Cronograma de Actividades Prototipo Arquitectónico. Fuente: Propia
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.
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.
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
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/
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
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.
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
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.
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.
● 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
<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.
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:
imagenToBuscar.jpg
Las imágenes en las cuales se va a identificar el rostro son las siguientes:
imagen1ToIdentificar.jpg
imagen2ToIdentificar.jpg
imagen3ToIdentificar.jpg
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.