Reconnaissance faciale pour la sécurité : quelles solutions techniques ?

Contrairement aux ordinateurs, l’homme est naturellement capable de détecter et identifier un visage. À ce jour, aucun traitement informatique n’a réussi à égaler le couple (œil humain + mémoire). Pourtant, une telle technologie serait un atout considérable dans nos systèmes de sécurité. Pour ne citer qu’un exemple : comment s’assurer qu’une seule personne (et la bonne) pénètre dans une zone protégée par un code ou une carte d’accès. Une des solutions consiste à déployer des portiques rotatifs ou pneumatiques chers et contraignants. Un système de reconnaissance faciale apporterait gains de temps, d’argent et d’efficacité. Les autres applications et avantages sont nombreux.

 

Par Hamza Bourrahim et Godeleine Champenois
Laboratoire (C + V) O – Laboratoire de Cryptologie et Virologie Opérationnelles – Esiea

 

 

Les technologies d’identification, loin d’égaler les capacités de l’homme, ont tout de même fait un progrès considérable ces dernières années. Les algorithmes ont progressé, tant au niveau de la détection des visages qu’au niveau de la reconnaissance de ceux-ci.

Techniquement, la reconnaissance faciale s’effectue en deux étapes :
Dans un premier temps, il s’agit de détecter la présence d’un visage. Le cerveau humain est capable de détecter un visage sans en connaître l’identité, qu’il soit de face ou de profil, avec ou sans barbe ou même partiellement caché derrière un accessoire. Mais qu’en est-il pour une machine ? Comment caractériser un visage ? Une définition simpliste telle que : deux yeux, un nez, une bouche ne suffisent pas, car les caractéristiques d’un visage peuvent changer selon l’orientation, l’expression, les artifices portés, etc.
Prenons l’exemple des yeux : dans un visage de face, les deux sont visibles. De profil, il n’en reste qu’un. Ils peuvent être ouverts, fermés, en partie cachés par des lunettes. Ce sont autant de paramètres dont il faut tenir compte et qui rendent leur caractérisation compliquée.

 

fig0
Un même visage dans des contextes différents.

 

 

Dans un second temps, une fois le visage détecté, il faut l’identifier. Quels critères utiliser alors pour comparer deux visages ? Qu’est-ce qui les différencie le plus ? L’identification d’un visage se heurte aux mêmes problèmes que lors de la phase de détection : orientation, accessoires, expression, bronzage, exposition, etc. On commence à mieux comprendre les exigences demandées quand on doit fournir une photo pour un passeport.

Dans ce domaine, nous réalisons actuellement un projet d’application nommé « Facetracker ». Nous avons choisi d’exploiter la bibliothèque libre « OpenCV » qui propose de nombreux algorithmes de base pour le traitement d’images et la reconnaissance d’objets.

 

 

Image originelle.
Image originelle.

 

 

Visage détecté.
Visage détecté.

 

 

Pour détecter un objet dans une image, cette bibliothèque utilise des « classificateurs ». Un classificateur est un fichier contenant des valeurs caractérisant un objet. Ce fichier est créé au préalable par « entraînement » sur une base de données contenant une multitude d’images de cet unique objet. Lors de la phase de détection, un algorithme parcourt l’image captée en recherchant des formes d’objets préalablement acquis sous forme de « classificateurs ».

Lorsqu’un visage est détecté, l’image doit alors être traitée pour améliorer sa qualité et lisser les différences de luminosité. La quantité de traitement nécessaire pour une identification efficace dépend de la qualité de la captation et donc de la caméra. Une simplification consiste à traiter l’image captée et les classificateurs uniquement en niveaux de gris. L’image captée est également recadrée par rapport aux yeux et redimensionnée pour pouvoir être comparée aux images de la base de données.
Pour qu’une personne puisse être identifiée avec certitude, il est nécessaire d’avoir enregistré 5 à 7 photos avec à chaque fois une orientation légèrement différente de la tête. Le degré de similitude peut être modifié l’utilisateur.

 

 

Détection du visage de la personne recherchée.
Détection du visage de la personne recherchée.

 

 Recadrage d’image.
Recadrage d’image.

 

Transformation en niveau de gris.
Transformation en niveau de gris.

 

 

Comparaison avec une image de la base de données
Comparaison avec une image de la base de données

 

 

Affichage des informations concernant la personne reconnue.
Affichage des informations concernant la personne reconnue.

 

 

À l’heure actuelle, « Facetracker » est capable de reconnaître des visages à partir de différents flux ou supports (caméra temps réel, photos, films) , c’est un projet open source sous licence GPLv3, disponible sur github. Il est possible de régler la précision de la détection et/ou de l’identification. On peut aussi activer ou désactiver certains modules du traitement d’image en fonction de la précision souhaitée et de la puissance de calcul de la machine. Les performances (taux d’identification, faux positifs, faux négatifs, etc.) ne changent pas d’un support à l’autre. Du fait de la charge de calcul, la lecture d’un film ou d’une sera plus ou moins ralentie.

 

« Facetracker » en fonctionnement.
« Facetracker » en fonctionnement.

Les premiers résultats du programme sont plutôt encourageants : plus 60 % des visages sont identifiés correctement. Ce taux de réussite peut être augmenté en améliorant la qualité des images. Cela peut passer par une augmentation de la résolution ou une augmentation de la quantité de traitements appliqués au visage. Dans les deux cas, cela nécessite d’augmenter la charge de calcul qui peut devenir très lourde. Le choix de l’ordinateur effectuant le traitement ne doit donc pas être pris à la légère.
Cette charge de calcul est le critère limitant à l’heure actuelle. En effet, si les résultats sont bons, plus la base de données est grande, plus la quantité de calcul nécessaire pour l’identification est importante.

D’autres pistes d’évolution vont être explorées pour améliorer le programme. Ainsi, le ciblage de zones plus spécifiques, mais plus petites comme le nez, la bouche, les yeux pourrait réduire énormément la quantité de calcul. Séparer les zones de traitement pourrait aussi permettre de rendre le programme plus efficace en identifiant les zones les plus « discriminantes » d’un visage.
En parallèle, une amélioration des « classificateurs » et l’utilisation d’algorithmes supplémentaires sont envisagées.

Outre ces pistes d’amélioration, le programme évolue afin de proposer une interface normalisée (API) pour d’autres applications désirant s’interfacer. Cela permettra une utilisation universelle de l’application dans des domaines divers (sécurité, domotique, comptage). Nous réfléchissons à ces futures applications et aux divers moyens d’augmenter les performances de l’application tout en restant très attentif au respect de la vie privée.

 

 

 

Partager :

Dans la même catégorie

Publié le : 07/11/2024

Qu’est-ce qu’une attaque par ransomware ?

Découvrir
Publié le : 04/11/2024

Ma petite entreprise n’intéresse pas les pirates !

Découvrir
Publié le : 24/09/2024

Pourquoi les pirates volent-ils nos mots de passe ?

Découvrir
error: Le contenu est protégé !!