Intelligence Artificielle
DeepFace pour la reconnaissance faciale avancée

La reconnaissance faciale est un domaine tendance dans l'IA et le ML depuis plusieurs années maintenant, et les implications culturelles et sociales généralisées de la reconnaissance faciale sont considérables. 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 au niveau humain, Meta a introduit Visage profond, un cadre de reconnaissance faciale. Le modÚle DeepFace est formé sur un vaste ensemble de données faciales qui diffÚre considérablement des ensembles de données utilisés pour construire les références d'évaluation, et il a le potentiel de surpasser les cadres existants avec un minimum d'adaptations. De plus, le framework DeepFace produit des représentations de visage compactes par rapport à d'autres systÚmes qui produisent des milliers de caractéristiques d'apparence faciale.
Le framework DeepFace proposĂ© utilise L'apprentissage en profondeur pour s'entraĂźner sur un vaste ensemble de donnĂ©es composĂ© de diffĂ©rentes formes de donnĂ©es, notamment des images, des vidĂ©os et des graphiques. L'architecture du rĂ©seau DeepFace suppose qu'une fois l'alignement terminĂ©, l'emplacement de chaque rĂ©gion du visage est fixĂ© au niveau du pixel. Par consĂ©quent, il est possible dâutiliser les valeurs RVB brutes des pixels sans utiliser plusieurs couches convolutionnelles comme cela est le cas dans dâautres frameworks.
Le pipeline conventionnel des cadres de reconnaissance faciale modernes comprend quatre étapes : détection, alignement, représentation et classification. Le framework DeepFace utilise une modélisation de visage 3D explicite pour appliquer une transformation par morceaux et utilise un réseau neuronal profond à neuf couches pour dériver une représentation faciale. Le framework DeepFace tente d'apporter les contributions suivantes
- DĂ©veloppez une architecture DNN ou Deep Neural Network efficace qui peut exploiter un vaste ensemble de donnĂ©es pour crĂ©er une reprĂ©sentation faciale qui peut ĂȘtre gĂ©nĂ©ralisĂ©e Ă dâautres ensembles de donnĂ©es.
- Utilisez la modĂ©lisation 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 en fonction de l'angle des yeux. L'alignement des visages est une pratique populaire utilisĂ©e pour prĂ©traiter les donnĂ©es pour la reconnaissance faciale, et les ensembles de donnĂ©es alignĂ©s facialement aident Ă amĂ©liorer la prĂ©cision des algorithmes de reconnaissance en fournissant une entrĂ©e normalisĂ©e. Cependant, aligner les visages sans contrainte peut ĂȘtre une tĂąche difficile en raison des multiples facteurs impliquĂ©s tels que les expressions non rigides, les poses du corps, etc. Plusieurs techniques d'alignement sophistiquĂ©es, telles que l'utilisation d'un modĂšle analytique 3D du visage ou la recherche de points de rĂ©fĂ©rence Ă partir d'un ensemble de donnĂ©es externes, pourraient permettre aux dĂ©veloppeurs de surmonter les dĂ©fis.
Bien que lâalignement soit la mĂ©thode la plus populaire pour gĂ©rer la vĂ©rification et la reconnaissance faciale sans contrainte, il nâexiste pas de solution parfaite pour le moment. Les modĂšles 3D sont Ă©galement utilisĂ©s, mais leur popularitĂ© a considĂ©rablement diminuĂ© ces derniĂšres annĂ©es, notamment lorsque l'on travaille dans un environnement sans contrainte. Cependant, comme les visages humains sont des objets 3D, cette approche pourrait ĂȘtre la bonne si elle est utilisĂ©e correctement. Le modĂšle DeepFace utilise un systĂšme qui utilise des points de rĂ©fĂ©rence pour crĂ©er une modĂ©lisation 3D analytique du visage. Cette modĂ©lisation 3D est ensuite utilisĂ©e pour transformer un recadrage facial en mode frontal 3D.
De plus, tout comme la plupart des pratiques dâalignement, lâalignement DeepFace utilise Ă©galement des dĂ©tecteurs de points de repĂšre pour diriger le processus dâalignement. Bien que le modĂšle DeepFace utilise un simple dĂ©tecteur de points, il l'applique en plusieurs itĂ©rations pour affiner le rĂ©sultat. Un rĂ©gresseur de vecteur de support ou SVR formĂ© pour prĂ©juger des configurations de points extrait les points de rĂ©fĂ©rence d'un descripteur d'image Ă chaque itĂ©ration. Le descripteur d'image de DeepFace est basĂ© sur les histogrammes LBP bien qu'il prenne Ă©galement en compte d'autres fonctionnalitĂ©s.
Alignement 2D
Les Visage profond Le modÚle lance le processus d'alignement en détectant six points de référence dans la zone de détection, centrés au milieu des yeux, à l'emplacement de la bouche et au bout du nez. Ils sont utilisés pour faire pivoter, redimensionner et traduire l'image en six emplacements d'ancrage, et parcourir l'image déformée jusqu'à ce qu'il n'y ait plus de changement visible. La transformation agrégée génÚre ensuite un corp aligné en 2D. La méthode d'alignement est assez similaire à celle utilisée dans LFW-a et a été utilisée au fil des années pour tenter d'améliorer la précision du modÚle.
Alignement 3D
Pour aligner les visages avec des rotations hors plan, le framework 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Ă© en 2D sur la forme 3D dans son plan image. En consĂ©quence, le modĂšle gĂ©nĂšre la version du corps alignĂ©e en 3D, et cela est obtenu en localisant 67 points de rĂ©fĂ©rence supplĂ©mentaires dans le corps alignĂ© en 2D Ă l'aide d'un deuxiĂšme SVR ou support Vector Regressor.
Le modÚle place ensuite manuellement les 67 points d'ancrage sur la forme 3D et est ainsi capable d'obtenir une correspondance complÚte entre les références 3D et leurs points de référence correspondants. Dans l'étape suivante, une caméra affine 3D vers 2D est ajoutée en utilisant la solution des moindres carrés généralisés 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 en perspective complĂšte ne sont pas modĂ©lisĂ©es, la camĂ©ra 3D vers 2D installĂ©e ne sert qu'Ă titre d'approximation. Dans le but de rĂ©duire la corruption de facteurs porteurs d'identitĂ© importants jusqu'Ă la dĂ©formation finale, le modĂšle DeepFace ajoute les rĂ©sidus correspondants aux composantes xy de chaque point de rĂ©fĂ©rence de rĂ©fĂ©rence. Une telle relaxation dans le but de dĂ©former l'image 2D avec moins de distorsions de l'identitĂ© est plausible, et sans elle, les visages auraient Ă©tĂ© dĂ©formĂ©s dans la mĂȘme forme en 3D, perdant ainsi d'importants facteurs discriminants.
Enfin, le modÚle réalise la frontalisation en utilisant une transformation affine par morceaux dirigée par la triangulation de Delaunay dérivée de 67 points de référence.
- Visage détecté avec 6 points de repÚre.
- Corps aligné en 2D induit.
- 67 points de référence sur le corps aligné en 2D.
- Forme 3D de référence transformée en image corporelle alignée en 2D.
- Visibilité triangulaire par rapport à la caméra 3D-2D.
- 67 points de repĂšre induits par le modĂšle 3D.
- Version alignée en 3D du corps final.
- Nouvelle vue générée par le modÚle 3D.
Représentation
Avec l'augmentation de la quantité de données de formation, les méthodes basées sur l'apprentissage se sont révélées plus efficaces et plus précises que les fonctionnalités conçues, principalement parce que les méthodes basées sur l'apprentissage peuvent découvrir et optimiser les fonctionnalités pour une tùche spécifique.
Architecture et formation DNN
Le DeepFace DNN est formé sur une tùche de reconnaissance faciale multiclasse qui classe l'identité d'une image faciale.
La figure ci-dessus représente l'architecture globale du modÚle DeepFace. Le modÚle comporte une couche convolutive (C1) avec 32 filtres de taille 11x11x3 qui reçoit une image RVB à 3 canaux alignée en 3D de taille 152 à 152 pixels, et il en résulte 32 cartes de caractéristiques. Ces cartes de caractéristiques sont ensuite transmises à une couche Max Pooling ou M2 qui prend le maximum sur 3 à 3 quartiers spatiaux et a une foulée de 2, séparément pour chaque canal. Vient ensuite une autre couche convolutive (C3) qui comprend 16 filtres chacun de taille 9x9x16. L'objectif principal de ces calques est d'extraire des fonctionnalités de bas niveau telles que la texture et les bords simples. L'avantage de l'utilisation des couches Max Pooling est qu'elle rend la sortie générée par les couches convolutives plus robuste aux traductions locales, et lorsqu'elles sont appliquées à des images de visages alignés, elles rendent le réseau beaucoup plus robuste aux erreurs d'enregistrement à petite échelle.
Plusieurs niveaux de regroupement rendent le rĂ©seau plus robuste dans certaines situations, mais cela entraĂźne Ă©galement une perte d'informations sur la position prĂ©cise des microtextures et des structures faciales dĂ©taillĂ©es. Pour Ă©viter que le rĂ©seau ne perde les informations, le modĂšle DeepFace utilise une couche de pooling maximale uniquement avec la premiĂšre couche convolutive. Ces couches sont ensuite interprĂ©tĂ©es par le modĂšle comme une Ă©tape de prĂ©traitement adaptatif frontal. Bien quâils effectuent la majeure partie des calculs, ils disposent eux-mĂȘmes de paramĂštres limitĂ©s et Ă©tendent simplement lâentrĂ©e Ă un ensemble de caractĂ©ristiques locales.
Les couches suivantes L4, L5 et L6 sont connectĂ©es localement et, tout comme une couche convolutive, elles appliquent un banc de filtres oĂč chaque emplacement de la carte de caractĂ©ristiques apprend un ensemble unique de filtres. Comme diffĂ©rentes rĂ©gions dâune image alignĂ©e ont des statistiques locales diffĂ©rentes, lâhypothĂšse de stationnaritĂ© spatiale ne peut pas ĂȘtre respectĂ©e. Par exemple, la zone situĂ©e entre les sourcils et les yeux a une capacitĂ© de discrimination plus Ă©levĂ©e que la zone situĂ©e entre la bouche et le nez. L'utilisation de couches fidĂšles affecte le nombre de paramĂštres soumis Ă l'entraĂźnement mais n'affecte pas la charge de calcul lors de l'extraction des fonctionnalitĂ©s.
Le modĂšle DeepFace utilise trois couches en premier lieu uniquement parce qu'il contient une grande quantitĂ© de donnĂ©es d'entraĂźnement bien Ă©tiquetĂ©es. L'utilisation de couches connectĂ©es localement peut ĂȘtre davantage justifiĂ©e dans la mesure oĂč chaque unitĂ© de sortie d'une couche connectĂ©e localement peut ĂȘtre affectĂ©e par un grand nombre de donnĂ©es d'entrĂ©e.
Enfin, les couches supérieures sont entiÚrement connectées, chaque unité de sortie étant connectée à toutes les entrées. Les deux couches peuvent capturer les corrélations entre les caractéristiques capturées dans différentes parties des images du visage, telles que la position et la forme de la bouche, ainsi que 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 vecteur de caractéristiques de représentation brute du visage. Le modÚle transmettra ensuite la sortie de la derniÚre couche entiÚrement connectée (F8) à un softmax K-way qui produit une distribution sur les étiquettes de classe.
Jeux de données
Le modÚle DeepFace utilise une combinaison d'ensembles de données, l'ensemble de données Social Face Classification ou SFC étant le principal. De plus, le modÚle DeepFace utilise également l'ensemble de données LFW et l'ensemble de données YTF.
Ensemble de données SFC
L'ensemble de données SFC est tiré d'une collection d'images de Facebook et se compose de 4.4 millions d'images étiquetées de 4,030 800 personnes, chacune d'elles ayant entre 1200 et 5 XNUMX visages. Les XNUMX % les plus récents des images de visage de l'ensemble de données SFC de chaque identité sont laissés de cÎté à des fins de test.
Ensemble de données LFW
L'ensemble de données LFW comprend 13,323 6,000 photos de plus de cinq mille célébrités qui sont ensuite divisées en 10 XNUMX paires de visages réparties en XNUMX divisions.
Ensemble de données YTF
L'ensemble de données YTF se compose de 3,425 1,595 vidéos de XNUMX XNUMX sujets et constitue un sous-ensemble des célébrités de l'ensemble 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 % seulement. Lorsque le modÚle utilise le corps central de la détection du visage, il n'utilise aucun alignement et, dans ce cas, le modÚle renvoie un score de précision de 87.9 %, car certaines parties de la région du visage peuvent sortir du corps central. Pour évaluer la capacité discriminante de la représentation du visage de maniÚre isolée, le modÚle suit le cadre d'apprentissage non supervisé pour comparer le produit interne des caractéristiques normalisées. Cela augmente la précision moyenne du modÚle à 95.92 %
Le modĂšle ci-dessus compare les performances du modĂšle DeepFace par rapport Ă dâautres modĂšles de reconnaissance faciale de pointe.
L'image ci-dessus représente les courbes ROC sur l'ensemble de données.
Conclusion
IdĂ©alement, un classificateur de visages sera capable de reconnaĂźtre les visages avec la prĂ©cision dâun humain et pourra restituer une grande prĂ©cision quelle que soit la qualitĂ© de lâimage, la pose, lâexpression ou lâĂ©clairage. De plus, un cadre de reconnaissance faciale idĂ©al pourra ĂȘtre appliquĂ© Ă une variĂ©tĂ© dâapplications avec peu ou pas de modifications. Bien que DeepFace soit actuellement lâun des cadres de reconnaissance faciale les plus avancĂ©s et les plus efficaces, il nâest pas parfait et il pourrait ne pas ĂȘtre en mesure de fournir des rĂ©sultats prĂ©cis dans certaines situations. Mais le Visage profond Le cadre est une Ă©tape importante dans l'industrie de la reconnaissance faciale, et il comble l'Ă©cart de performance en utilisant une puissante technique d'apprentissage mĂ©trique, et il continuera Ă devenir plus efficace au fil du temps.