Reconnaissance faciale - 3 minutes
-

ELVIS Reconnaissance faciale

Notre Blog
Reconnaissance faciale - Innovation Apside

Reconnaissance faciale : la naissance d’une idée

Tout d’abord, laissez-moi vous situer le projet. En janvier 2019, une idée née dans les locaux du Lab by Apside. L’idée d’un assistant personnel capable d’interagir avec les collaborateurs. Vous allez me dire, rien de révolutionnaire dans cette « description ». Vous avez raison ! Notre objectif le plus important était de concevoir et de développer une solution nouvelle avec une architecture réfléchie et adaptative à l’évolution du projet.

Le nom ELVIS est un acronyme qui contient la signification de notre projet : Système d’Interprétation de la Vision, du Langage et des Émotions. Vous l’aurez donc compris, notre but était de créer un système doté de caméra et de micro permettant d’interagir de façon adaptée à une personne. Pour se faire, nous avons pensé une architecture modulaire, client/serveur, de type organique (par analogie au corps humain). Nous avons découpé en trois catégories les différents modules : Perception, Action, Intelligence.

Reconnaissance faciale : le sens de la vue

Le processus est simple : le module SIGHT gère la récupération d’un flux vidéo provenant d’une caméra, puis à chaque itération (c’est-à-dire, à chaque image du flux vidéo) une détection de visage est faite, ce qui nous donne une liste de « zones » dans l’image. À partir de cette liste, des « trackers » sont créés. Ces objets permettent de suivre des visages et contiennent des informations sur le statut de la reconnaissance de ce dernier. En clair, ils évitent des boucles de recalcul, à chaque itération, ce gain sera utilisé pour entraîner les réseaux de neurones associés à la reconnaissance faciale des visages.

Pour la détection des visages, nous avons testé plusieurs algorithmes :
- SSD : Single Shot multibox Detector permet de détecter une multitude d’objets différents en temps réel (Hui, 2008), nous l’avons utilisé avec Caffe, OpenCV et Dlib.
- HOG : Histogram of Oriented Gradients permet de détecter l’orientation des pixels pour une case dans une grille donnée. L’orientation sera ensuite comparée à un descripteur d’objets. Ces orientations de pixels permettent de s’affranchir des informations superflues comme la couleur ou la luminosité.
- CNN : Convolutional Neural Network est une implémentation d’un type particulier de réseau de neurones utilisée avec la librairie Dlib.

Par rapport à ces résultats, l’algorithme SSD sera celui retenu pour la détection des visages pour sa rapidité et sa robustesse malgré l’absence des emplacements du nez, des yeux et de la bouche de l’utilisateur.

Reconnaissance Faciale - module SIGHT - Expertise Apside
Reconnaissance faciale - le visage non humain

Reconnaissance faciale : le visage non humain

Petite anecdote concernant nos tests pour la détection de visage. Pour tester la robustesse du système, vous trouverez ci-contre ce que nous lui avons présenté.

Ces résultats sont ceux des algorithmes SSD (à gauche) et HOG (à droite), comme vous pouvez le voir, ils sont si bien entraînés qu’ils peuvent détecter un simple dessin de visage, ce qui prouve que ces outils n’ont aucune notion de contexte ou de réalité. Leur seul but étant de détecter un visage mais rien ne leur précise qu’ils doivent détecter un visage humain. Pour pallier à ce problème, une solution envisagée est la mise en place d’un algorithme pour la détection de la couleur de la peau par exemple afin de vérifier que le visage est réellement humain.

Reconnaissance faciale - avancement

Reconnaissance faciale : l’avancement

Actuellement, le projet ELVIS de reconnaissance faciale est en cours de développement. Nous concentrons nos efforts sur les différents modules et sur l’intégrité de messagerie de l’ensemble. Notre solution pour la reconnaissance faciale est d’associer un réseau unique par personne détecter (identifiée comme nouvelle pour le système). Avoir un réseau de taille minimale à entraîner sera plus simple qu’un max-réseau avec nombre de neurones de sorties dynamique. Nous testons actuellement cette solution et publierons bientôt des résultats.