Analizaremos algunas de las opciones que los desarrolladores tenemos a la mano para incorporar capacidades de Reconocimiento Facial en nuestras aplicaciones. En concreto, analizaremos los servicios ofrecidos por Microsoft (Cognitive Services), Google (Cloud Vision API) y OpenCV (librería open source) y mostraremos su uso desarrollando una aplicación de Android que consuma dichos servicios.
Presentada por: Luis Beltran
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Reconocimiento facial en aplicaciones móviles: Comparando OpenCV, Cognitive Services y Cloud Visión API
1. Reconocimiento facial en apps
móviles: Comparando OpenCV,
Cognitive Services y Cloud Visión API
Presenta:
ISC Luis Beltrán
2. Luis Beltrán
• Profesor en Instituto Tecnológico de Celaya
• Estudiante de doctorado en la Universidad Tomás Bata en Zlín, República Checa
• Microsoft MVP en Visual Studio y Tecnologías de Desarrollo
• Desarrollador Móvil Certificado por Xamarin
6. Reconocimiento facial
Es un área de la visión de computadora y una
aplicación directa del procesamiento de imágenes
que compete a investigadores, neurocientíficos y
psicólogos que trata de resolver el siguiente
problema:
“Dada una imagen de una escena, identifica o
verifica una o más personas utilizando un
repositorio de rostros”
7. • Las personas realizan el reconocimiento facial de
manera sencilla a través de sus habilidades naturales
de cognición y percepción.
• Se ha comprobado científicamente que incluso un
recién nacido es capaz de distinguir entre rostros
conocidos.
• Una máquina requiere sistemas complejos que
involucran múltiples algoritmos avanzados, así como
bases de datos enormes y adecuadas para poder
reconocer personas.
8. Tipos de comparaciones
• Verificación (autentificación)
El sistema compara el rostro proporcionado del
individuo contra el que supuestamente dice ser; el
sistema confirma o rechaza esta petición.
• Identificación (reconocimiento)
El sistema compara la imagen proporcionada contra
todos los rostros conocidos (almacenados en el
repositorio) para determinar su identidad.
9. Face detection
• Consiste en localizar un rostro
dentro de una imagen y aislarlo
de los otros objetos.
11. Escala de grises
• Se aumenta el contraste de la
imagen
• Se separan los componentes cuyo
nivel de grises sea mayor que un
umbral (thresholding)
• Utilizando plantillas ya existentes,
se determinan los rasgos faciales
(pupilas, nariz, boca, orejas, etc)
12. Redes neuronales
• Se entrena una red neuronal con imágenes de
muestra que representan caras y otras que no.
• Cuando la red ha sido suficientemente entrenada,
puede distinguir entre lo que es una cara y lo que no.
13.
14.
15.
16.
17.
18. Face API (Microsoft Cognitive Services)
• API de Reconocimiento Facial
• Detección de caras en una imagen
• Permite identificación y verificación facial
• Búsqueda de caras similares
• Agrupación de caras
https://azure.microsoft.com/es-mx/services/cognitive-services/face/
19.
20. ¿Cómo funciona?
• Es un servicio en la nube con 2 funciones
principales: Face Detection (con atributos) y Face
Recognition (verification, similar faces, grouping,
identification, storage).
• Se expone un REST API al cual se le proporciona
una imagen (arreglo de bytes o stream) y se retorna
un contenido JSON con la información del resultado
del análisis
23. Google Cloud Vision API
• API general de extracción de información de una
imagen que utiliza potentes modelos de Machine
Learning encapsulados en una REST API fácil de
utilizar.
• Caso específico de rostros: detección de caras,
atributos faciales clave asociados (emociones,
accesorios, etc).
• No proporciona reconocimiento facial.
https://cloud.google.com/vision/
24.
25. ¿Cómo funciona?
• Es un servicio en la nube que puede realizar Face
Detection (con atributos).
• Se expone un REST API al cual se le proporciona
una imagen (arreglo de bytes, stream o URL) y se
retorna un contenido JSON con la información del
resultado del análisis
28. OpenCV
• Es una biblioteca open source enfocada al área de
visión de computadora y el machine learning.
• Incluye más de 2500 algoritmos para diversas
funciones, como:
• Identificación de objetos
• Detección de rostros
• Clasificación de acciones humanas
• Identificación de imágenes similares
• Reconocimiento de patrones
• Principales lenguajes: Python y C++
29.
30. ¿Cómo funciona?
• En este caso no hay un servicio API que encapsule
los algoritmos de reconocimiento facial, por lo que
hay que construirlo “desde cero” o utilizar los
existentes en la librería.
• Al ser de código abierto, los algoritmos pueden ser
modificados y adaptados, consideración que NO se
puede hacer con los servicios de Microsoft y
Google.
31. Esquema de precios
• No hay costos asociados por utilizar la librería, por
lo que es gratis al 100%
33. Aplicaciones
• Descripción de una persona: sexo, edad, emociones
• Seguridad: Autentificación, control de acceso
• Publicidad interactiva
• Videojuegos
• Industria (control de elementos en base a gestos
faciales)
• Fotografías (Facebook, Google)
• Biometría (pasaportes, votaciones, licencias de
manejo)