Connect with us

DeepFace pour la reconnaissance faciale avancée

Intelligence artificielle

DeepFace pour la reconnaissance faciale avancée

mm

La reconnaissance faciale a été un domaine tendance dans l’IA et l’apprentissage automatique depuis plusieurs années, et les implications culturelles et sociales généralisées de la reconnaissance faciale sont loin d’être négligeables. Cependant, il existe un écart de performance entre les systèmes visuels humains et les machines qui limite actuellement les applications de la reconnaissance faciale. 

Pour surmonter le tampon créé par l’écart de performance, et offrir une précision de niveau humain, Meta a introduit DeepFace, un cadre de reconnaissance faciale. Le modèle DeepFace est formé sur un grand jeu de données faciales qui diffère considérablement des jeux de données utilisés pour construire les benchmarks d’évaluation, et il a le potentiel de surpasser les cadres existants avec des adaptations minimales. De plus, le cadre DeepFace produit des représentations de visage compactes par rapport aux autres systèmes qui produisent des milliers de caractéristiques d’apparence faciale. 

Le cadre DeepFace proposé utilise l’apprentissage profond pour former un grand jeu de données comprenant différentes formes de données, notamment des images, des vidéos et des graphiques. L’architecture du réseau DeepFace suppose que, une fois l’alignement terminé, l’emplacement de chaque région faciale est fixe au niveau du pixel. Par conséquent, il est possible d’utiliser les valeurs de pixel RGB brutes sans utiliser de multiples couches de convolution comme dans les autres cadres. 

La pipeline conventionnelle des cadres de reconnaissance faciale modernes comprend quatre étapes : détection, alignement, représentation et classification. Le cadre DeepFace utilise un modelage 3D explicite pour appliquer une transformation pièce par pièce, et utilise un réseau neuronal profond de neuf couches pour dériver une représentation faciale. Le cadre DeepFace tente d’apporter les contributions suivantes

  1. Développer une architecture de DNN ou de réseau neuronal profond efficace qui puisse exploiter un grand jeu de données pour créer une représentation faciale qui peut être généralisée à d’autres jeux de données. 
  2. Utiliser un modelage 3D explicite pour développer un système d’alignement facial efficace. 

Comprendre le fonctionnement du modèle DeepFace

Alignement du visage

L’alignement du visage est une technique qui fait pivoter l’image d’une personne selon l’angle des yeux. L’alignement du visage est une pratique courante qui est utilisée pour prétraiter les données de reconnaissance faciale, et les jeux de données alignés sur le visage aident à améliorer la précision des algorithmes de reconnaissance en fournissant une entrée normalisée. Cependant, aligner les visages de manière non contrainte peut être une tâche difficile en raison de multiples facteurs impliqués comme les expressions non rigides, les poses du corps, etc. Plusieurs techniques d’alignement sophistiquées comme l’utilisation d’un modèle 3D analytique du visage ou la recherche de points fiduciaux à partir d’un jeu de données externe peuvent permettre aux développeurs de surmonter les défis. 

Bien que l’alignement soit la méthode la plus populaire pour traiter la vérification et la reconnaissance faciale non contrainte, il n’y a pas de solution parfaite pour le moment. Les modèles 3D sont également utilisés, mais leur popularité a considérablement diminué au cours des dernières années, en particulier lorsqu’ils sont utilisés dans un environnement non contraint. Cependant, puisque les visages humains sont des objets 3D, il peut s’agir de la bonne approche si elle est utilisée correctement. Le modèle DeepFace utilise un système qui utilise des points fiduciaux pour créer un modelage 3D analytique du visage. Ce modelage 3D est ensuite utilisé pour déformer une culture faciale en un mode frontal 3D. 

De plus, tout comme la plupart des pratiques d’alignement, l’alignement DeepFace utilise également des détecteurs de points fiduciaux pour diriger le processus d’alignement. Bien que le modèle DeepFace utilise un détecteur de points simples, il l’applique à plusieurs reprises pour affiner la sortie. Un régresseur à vecteur de support ou SVR formé pour préjuger les configurations de points extrait les points fiduciaux d’un descripteur d’image à chaque itération. Le descripteur d’image DeepFace est basé sur les histogrammes LBP, bien qu’il prenne également en compte d’autres fonctionnalités. 

Alignement 2D

Le modèle DeepFace initie le processus d’alignement en détectant six points fiduciaux dans la culture de détection, centrée au milieu des yeux, des emplacements de la bouche et du bout du nez. Ils sont utilisés pour faire pivoter, mettre à l’échelle et traduire l’image en six emplacements ancrés, et itérer sur l’image déformée jusqu’à ce qu’il n’y ait pas de changement visible. La transformation agrégée génère ensuite un corps aligné 2D. La méthode d’alignement est assez similaire à celle utilisée dans LFW-a, et elle a été utilisée au fil des ans dans une tentative d’améliorer la précision du modèle. 

Alignement 3D

Pour aligner les visages avec des rotations hors plan, le cadre DeepFace utilise un modèle de forme 3D générique, et enregistre une caméra 3D qui peut être utilisée pour envelopper le corps aligné 2D dans le plan d’image 3D. En conséquence, le modèle génère la version alignée 3D du corps, et cela est réalisé en localisant 67 points fiduciaux supplémentaires dans le corps aligné 2D à l’aide d’un deuxième SVR ou régresseur à vecteur de support. 

Le modèle place ensuite manuellement les 67 points ancrés sur la forme 3D et est ainsi en mesure de réaliser une correspondance complète entre les références 3D et leurs points fiduciaux correspondants. À l’étape suivante, une caméra affine 3D-2D est ajoutée à l’aide d’une solution de moindres carrés généralisée aux systèmes linéaires avec une matrice de covariance connue qui minimise certaines pertes. 

Frontalisation

Puisque les déformations non rigides et les projections de perspective complètes ne sont pas modélisées, la caméra 3D-2D ajustée ne sert que d’approximation. Dans une tentative de réduire la corruption des facteurs d’identité importants pour la déformation finale, le modèle DeepFace ajoute les résidus correspondants aux composantes x-y de chaque point fiducial de référence. Une telle relaxation à des fins de déformation de l’image 2D avec moins de distorsions pour l’identité est plausible, et sans elle, les visages auraient été déformés dans la même forme en 3D, perdant ainsi des facteurs discriminatifs importants dans le processus. 

Enfin, le modèle atteint la frontalisation en utilisant une transformation affine pièce par pièce dirigée par la triangulation de Delaunay dérivée de 67 points fiduciaux. 

  1. Visage détecté avec 6 points fiduciaux. 
  2. Corps aligné 2D induit. 
  3. 67 points fiduciaux sur le corps aligné 2D. 
  4. Forme de référence 3D transformée en image de corps aligné 2D. 
  5. Visibilité du triangle par rapport à la caméra 3D-2D. 
  6. 67 points fiduciaux induits par le modèle 3D. 
  7. Version alignée 3D du corps final. 
  8. Nouvelle vue générée par le modèle 3D. 

Représentation

Avec une augmentation de la quantité de données de formation, les méthodes d’apprentissage ont prouvé être plus efficaces et plus précises que les fonctionnalités conçues principalement parce que les méthodes d’apprentissage peuvent découvrir et optimiser les fonctionnalités pour une tâche spécifique. 

Architecture DNN et formation

Le DNN DeepFace est formé sur une tâche de reconnaissance faciale multiclasse qui classe l’identité d’une image de visage. 

La figure ci-dessus représente l’architecture globale du modèle DeepFace. Le modèle a une couche de convolution (C1) avec 32 filtres de taille 11x11x3 qui est alimentée par une image RGB 3D alignée de taille 152×152 pixels, et cela donne 32 cartes de fonctionnalités. Ces cartes de fonctionnalités sont ensuite alimentées dans une couche de pooling Max (M2) qui prend le maximum sur des voisinages spatiaux 3×3, et a une stride de 2, séparément pour chaque canal. À la suite, il y a une autre couche de convolution (C3) qui comprend 16 filtres chacun de taille 9x9x16. L’objectif principal de ces couches est d’extraire des fonctionnalités de bas niveau comme la texture et les bords simples. L’avantage de l’utilisation des couches de pooling Max est qu’il rend la sortie générée par les couches de convolution plus robuste aux translations locales, et lorsqu’il est appliqué à des images de visage alignées, il rend le réseau beaucoup plus robuste aux erreurs d’enregistrement à petite échelle. 

Plusieurs niveaux de pooling font que le réseau est plus robuste à certaines situations, mais cela fait également perdre au réseau des informations concernant la position précise des micro-textures et des structures faciales détaillées. Pour éviter que le réseau perde ces informations, le modèle DeepFace utilise une couche de pooling Max seulement avec la première couche de convolution. Ces couches sont ensuite interprétées par le modèle comme une étape de prétraitement adaptatif frontal. Bien qu’elles fassent la majeure partie du calcul, elles ont un nombre limité de paramètres en elles-mêmes, et elles ne font que développer l’entrée en un ensemble de fonctionnalités locales. 

Les couches suivantes L4, L5 et L6 sont connectées localement, et comme une couche de convolution, elles appliquent une banque de filtres où chaque emplacement dans la carte de fonctionnalités apprend un ensemble unique de filtres. Comme différentes régions dans une image alignée ont des statistiques locales différentes, cela ne peut pas tenir l’hypothèse de stationnarité spatiale. Par exemple, la zone entre les sourcils et les yeux a une capacité de discrimination plus élevée par rapport à la zone entre la bouche et le nez. L’utilisation de couches loyales affecte le nombre de paramètres soumis à la formation mais n’affecte pas la charge de calcul pendant l’extraction des fonctionnalités. 

Le modèle DeepFace utilise trois couches en premier lieu uniquement parce qu’il dispose d’un grand nombre de données de formation étiquetées. L’utilisation de couches connectées localement peut être justifiée davantage car chaque unité de sortie d’une couche connectée localement peut être affectée par un grand patch de données d’entrée. 

Enfin, les couches supérieures sont connectées entièrement avec chaque unité de sortie étant connectée à toutes les entrées. Les deux couches peuvent capturer les corrélations entre les fonctionnalités capturées dans différentes parties des images de visage comme la position et la forme de la bouche, et la position et la forme des yeux. La sortie de la première couche entièrement connectée (F7) sera utilisée par le réseau comme son vecteur de fonctionnalité de représentation de visage brut. Le modèle alimente ensuite la sortie de la dernière couche entièrement connectée (F8) dans un softmax à K voies qui produit une distribution sur les étiquettes de classe. 

Jeux de données

Le modèle DeepFace utilise une combinaison de jeux de données avec le jeu de données de classification de visage social ou SFC étant le principal. De plus, le modèle DeepFace utilise également le jeu de données LFW, et le jeu de données YTF. 

Jeux de données SFC

Le jeu de données SFC est appris à partir d’une collection de photos de Facebook, et il se compose de 4,4 millions d’images étiquetées de 4 030 personnes avec chacune d’elles ayant 800 à 1 200 visages. Les 5 % les plus récents des images de visage du jeu de données SFC de chaque identité sont laissés de côté pour les tests. 

Jeux de données LFW

Le jeu de données LFW se compose de 13 323 photos de plus de 5 000 célébrités qui sont ensuite divisées en 6 000 paires de visage sur 10 partitions. 

Jeux de données YTF

Le jeu de données YTF se compose de 3 425 vidéos de 1 595 sujets, et il s’agit d’un sous-ensemble des célébrités du jeu de données LFW. 

Résultats

Sans frontalisation et en utilisant uniquement l’alignement 2D, le modèle atteint un score de précision d’environ 94,3 %. Lorsque le modèle utilise le centre de la culture de détection, il n’utilise pas d’alignement, et dans ce cas, le modèle retourne un score de précision de 87,9 % car certaines parties de la région faciale peuvent tomber en dehors du centre de la culture. Pour évaluer la capacité discriminative de la représentation de visage en isolation, le modèle suit le cadre d’apprentissage non supervisé pour comparer le produit scalaire des fonctionnalités normalisées. Il améliore la précision moyenne du modèle à 95,92 % 

Le modèle ci-dessus compare les performances du modèle DeepFace par rapport aux autres modèles de reconnaissance faciale de pointe. 

L’image ci-dessus représente les courbes ROC sur le jeu de données. 

Conclusion

Idéalement, un classificateur de visage devrait être capable de reconnaître les visages avec la précision d’un humain, et il devrait être capable de retourner une précision élevée quelle que soit la qualité de l’image, la pose, l’expression ou l’éclairage. De plus, un cadre de reconnaissance faciale idéal devrait être capable d’être appliqué à une variété d’applications avec peu ou pas de modifications. Bien que DeepFace soit l’un des cadres de reconnaissance faciale les plus avancés et les plus efficaces actuellement, il n’est pas parfait, et il peut ne pas être capable de fournir des résultats précis dans certaines situations. Mais le cadre DeepFace est un jalon important dans l’industrie de la reconnaissance faciale, et il comble l’écart de performance en utilisant une technique d’apprentissage de métrique puissante, et il continuera à devenir plus efficace avec le temps. 

Un ingénieur de profession, un écrivain de cœur. Kunal est un rédacteur technique avec une profonde affection et une compréhension de l'IA et du ML, dédié à simplifier les concepts complexes dans ces domaines grâce à sa documentation engageante et informative.