OneEye

Inspiration

La reconnaissance faciale est une solution biométrique qui mesure les caractéristiques uniques du visage des individus. Les applications qui sont aujourd'hui disponibles incluent l'enregistrement pré-vol, le marquage d'amis et de membres de la famille sur des photos et la publicité « sur mesure ».

Les détaillants utilisent la reconnaissance faciale pour collecter des données sur les clients lorsque ces derniers effectuent des achats en magasin, selon une société informatique disposant d'un aperçu de l'espace. Les données collectées incluent le nombre de personnes entrant, l'âge, l'origine ethnique et le sexe. Le but étant de connaître davantage le trafic piétonnier et d'essayer de proposer des offres plus appropriées à ces clients.

Un logiciel de reconnaissance faciale destiné à déceler les voyageurs munis de faux passeports sera déployé dans tous les aéroports internationaux des États-Unis dans le cadre d'un plan visant à lutter contre la fraude d'identité parmi les visiteurs issus de pays ayant signé un accord d'exemption de visa, selon le Customs and Border Protection (bureau des douanes et de la protection des frontières).

Des entreprises telles que FaceFirst créent une planète personnalisée grâce à la technologie de reconnaissance faciale. Leur solution peut détecter et dissuader les menaces en temps réel, transformer les performances des équipes et renforcer les relations client.

Cependant, toutes ces solutions sont très coûteuses et nécessitent le déploiement d'une grande équipe. AWS DeepLens permet d'implémenter de manière très simple et pratique un algorithme de deep learning sur l'appareil.

Fonctionnement

Nous avons mis en œuvre deux cas d'utilisation de la solution d'identification faciale avec DeepLens : le premier cas étant l'identification du client. Pour atteindre cet objectif, nous avons utilisé les photos de profil des clients qui émanent d'un système (par ex. : bibliothèque, épicerie, banque, etc.) pour les faire correspondre aux résultats de la détection de visages DeepLens en temps réel lorsqu'un client pénètre dans un établissement. Lors de l'identification du client via l'algorithme DeepLens, un appel d'API extrait les détails du compte du client et affiche les informations sur une application web de bureau. Voici une démo de l'identification du client.

Le deuxième cas d'utilisation est Amber Alert. Nous avons développé une application mobile qui prend une photo d'une personne disparue (ou recherchée) et la charge sur l'infrastructure dorsale de stockage (c'est-à-dire AWS S3). Dès que l'image est chargée, DeepLens utilise cette nouvelle photo dans son algorithme d'identification faciale et identifie la personne en streaming vidéo en temps réel. Lorsque la personne disparue est détectée, DeepLens envoie une notification par e-mail ou par téléphone, selon la souscription, pour en informer les autorités. Voici une démo du cas d'utilisation d'Amber Alert.

Élaboration

Le modèle de reconnaissance faciale est conçu à l'aide de bibliothèques de détection de visage de pointe de dlib. Le modèle apporte une précision de 99,38 % sur les visages étiquetés du Wild benchmark 1. La fonction lambda Greengrass exécute l'algorithme de détection de visage sur l'appareil DeepLens et publie un événement dans la rubrique IoT dès qu'il identifie un visage. Une autre fonction Lambda existe également et récupère les informations du client via un appel API depuis la base de données de l'infrastructure dorsale. Une fois les données récupérées, cette fonction Lambda publiera un événement sur SNS avec les informations client sous forme de charge utile. Un serveur Web NodeJs (fonctionnant sur EC2) accepte l'appel POST de SNS et diffuse un message à tous les clients (Web ou mobiles) inscrits via WebSocket. Cette architecture permet de mettre à jour l'application client en temps réel dès qu'un nouveau client entre dans un établissement.

Défis

Le premier défi était de configurer des bibliothèques openCV sur notre DeepLens et de le tester. Nous rencontrions au départ des problèmes avec le débogage du code de la fonction lambda Greengrass et son redéploiement sans utiliser la console AWS. Faire en sorte que le projet fonctionne de bout en bout avec tous ses composants (code ML, DataStorage, API, application mobile, application Web, etc.) était un autre défi que nous devions relever, et ce en très peu de temps, du fait que nous travaillions tous à temps plein. 

Réalisations dont nous sommes fiers

OneEye identifie les visages avec une très grande précision et met à jour dynamiquement les nouveaux visages dans la base de données. Le fait d'avoir pu créer et exécuter un modèle complexe de deep learning sur un appareil était une expérience très enrichissante, et nous sommes fiers de pouvoir proposer une solution entièrement fonctionnelle pour répondre à un problème encore très complexe. 

Leçons apprises

Travailler avec DeepLens est à la fois amusant et éducatif. J'ai acquis beaucoup de connaissances et d'expérience sur la manière d'utiliser Greengrass et AWS IoT en mettant en pratique les cas d'utilisation. J'ai également appris que la technologie évoluait à vitesse grand V et que ce genre de projets/hackathons nous permettaient de garder la cadence.

Prochaines étapes

Les scénarios de détection de clients et de personnes disparues sont des cas réels qui nécessitent une remontée et des modifications urgentes. Ce projet DeepLens signe le début de perturbations pour les méthodes actuelles. La prochaine étape pour OneEye serait de dénicher des sponsors afin de rendre OneEye disponible pour ces cas d'utilisation. 

Conçu avec

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