OneEye

Inspiración

El reconocimiento facial es una solución biométrica que mide características únicas del rostro. Las aplicaciones disponibles en la actualidad incluyen la verificación de vuelos, el etiquetado de amigos y familiares en las fotos y la publicidad "personalizada".

Los vendedores minoristas están usando el reconocimiento facial para recopilar datos sobre los clientes mientras compran en las tiendas, de acuerdo con una compañía de TI con información al respecto. Los datos recopilados incluyen la cantidad de personas que ingresan, la edad, el origen étnico y el género. Se trata de conocer mejor el tráfico de transeúntes y tratar de ofrecer ofertas más adecuadas a esos clientes.

El software de reconocimiento facial destinado a eliminar a los viajeros con pasaportes falsos se extenderá a todos los aeropuertos internacionales en los Estados Unidos como parte de un plan para combatir el fraude de identidad entre los visitantes de países con acuerdos de exención de visa, según Aduanas y Protección Fronteriza.

Compañías, como FaceFirst, están creando un planeta personalizado mediante la tecnología de reconocimiento facial. Su solución puede detectar y disuadir amenazas en tiempo real, transformar el rendimiento del equipo y fortalecer las relaciones con los clientes.

Pero todas estas soluciones son muy caras y necesitan un equipo de muchas personas para implementarlas. AWS DeepLens hace que sea muy fácil y conveniente implementar un algoritmo de aprendizaje profundo en el dispositivo.

Qué hace

Hemos implementado dos casos de uso para la solución de identificación de rostros con DeepLens: el primero es la identificación del cliente. Para satisfacer el objetivo, utilizamos las imágenes de perfil de los clientes en un sistema (es decir, biblioteca, tienda de comestibles, banco, etc.) para hacer coincidir los resultados de la detección de rostros de DeepLens en tiempo real cuando el cliente ingresa a una sucursal. Tras la identificación del cliente a través del algoritmo de DeepLens, una llamada a la API obtiene los detalles de la cuenta del cliente y la muestra en la aplicación web de escritorio. Esta es una demostración de la identificación del cliente.

El segundo caso de uso es el alerta ámbar. Desarrollamos una aplicación móvil que toma una fotografía de una persona desaparecida (o persona buscada) y la carga en un servidor de almacenamiento (es decir, AWS S3). Tan pronto como se carga la imagen, DeepLens usa esta nueva imagen en su algoritmo de identificación de rostros e identifica a la persona en el streaming de video en tiempo real. Cuando se detecta a una persona desaparecida, DeepLens envía una notificación por correo electrónico o por teléfono, lo que esté suscrito, para notificar a las autoridades. Esta es una demostración de caso de uso en alerta ámbar.

Cómo lo desarrollamos

El modelo de reconocimiento facial se crea utilizando las bibliotecas de detección de rostros de vanguardia de dlib. Tiene una precisión de 99,38 % con las caras etiquetadas según el índice de referencia Wild 1. La función lambda de Greengrass ejecuta el algoritmo de detección de rostros en el dispositivo DeepLens y publica un evento en el tema IOT tan pronto como identifica un rostro. Existe otra función lambda que escucha este tema y recupera la información del cliente mediante una llamada a la API desde la base de datos de back-end. Una vez que se hayan recuperado los datos, esta función Lambda publicará un evento en SNS con la información de los clientes como carga útil. Un servidor web NodeJs (que se ejecuta en EC2) acepta la llamada POST de SNS y transmite un mensaje (vía web o móvil) a todos los clientes registrados a través de WebSocket. Esta arquitectura permite la actualización en tiempo real de la aplicación cliente tan pronto como un nuevo potencial comprador ingresa a la sucursal.

Desafíos

El primer desafío fue configurar las bibliotecas openCV en nuestros dispositivos DeepLens y probarlas. Al principio tuvimos algunos problemas con la depuración del código de la función lambda de Greengrass y la redistribuimos sin usar la consola de AWS. Otro desafío al que nos enfrentamos fue hacer que el proyecto funcionara de principio a fin con todos sus componentes (código ML, almacenamiento de datos, API, aplicación móvil, aplicación web, etc.) en el poco tiempo que teníamos para dedicar, ya que todos trabajábamos todo el día. 

Logros de los que estamos orgullosos

OneEye identifica rostros con una precisión muy alta y actualiza dinámicamente los que son nuevos en la base de datos. Fue una experiencia emocionante crear y ejecutar un modelo complejo de aprendizaje profundo en un dispositivo. Nos enorgullece presentar una solución totalmente funcional para un problema aún muy complicado. 

Lo que aprendimos

Trabajar con DeepLense es divertido y educativo. Obtuve muchos conocimientos y experiencia sobre cómo usar Greengrass y AWS IOT al implementar los casos de uso. También aprendí que la tecnología está creciendo muy rápidamente y este tipo de proyectos o hackathon nos permite estar al día.

Pasos siguientes

Las situaciones de detección de clientes y de personas desaparecidas son casos reales existentes que requieren que se eleven de manera urgente y se hagan modificaciones. Este proyecto con DeepLens es un comienzo para romper con los formatos actuales para hacer esto. El siguiente paso para OneEye sería encontrar patrocinadores para que esté disponible para estos casos de uso. 

Desarrollado con

python
node.js
angular.js
amazon-sns
amazon-web-services
deeplens
opencv