# Rapport séminaire image
Azavant Florent
Lafaye Luka
Nouicer Bilal
Perez Léa
Vinzani Quentin
# *DP1 : La reconnaissance de visage : De la méthode ACP-PCA aux réseaux de neurones profonds*
# Synthèse
## 1. Qu'est-ce que la reconnaissance faciale? A quoi sert-elle?
La reconnaissance faciale est une technique biométrique qui a été longtemps utilisée dans les domaines suivants :
- la sécurité
- la cryptographie
- le judiciaire
- le cinéma
- les jeux-vidéos
- la santé
- le militaire,
- les finances
Elle permet une vérification d'identité à partir d'une vidéo ou d'une image.
Historiquement, on retient quatre courants techniques de la reconnaissance faciale :

*Milestones of feature representation for face recognition - Wang Mei*
1. **Holisme** : on considère et appréhende les caractéristiques d'un visage comme un tout afin de l'identifier.
2. **Local handcraft** : approche qui se concentre sur la détection et l'extraction manuelle de caractéristiques faciales locales. On définit manuellement des zones spécifiques du visage, telles que les yeux, le nez, la bouche, etc., et on extrait des caractéristiques telles que les formes, les textures et les couleurs de ces zones.
3. **Shallow learning** : approche utilisant des réseaux de neurones peu profonds. Les caractéristiques faciales sont extraites manuellement à l'aide d'algorithmes tels que les filtres de caractéristiques et les transformées en ondelettes.
4. **Deep learning** : on utilise des réseaux de neurones avec plusieurs couches pour entraîner un modèle capable de faire de la reconnaissance d'images.
Le développement des cartes graphiques et l'augmentation considérable des quantités de données d'entraînement disponibles ont favorisé de nombreuses applications de la reconnaissance faciale ces cinq dernières années.
## 2. Histoire de la technologie et avènement du deep learning
L'histoire de la reconnaissance faciale commence au cours des années 1960, avec le développement d'approches holistiques du problème.
Les approches holistiques de la reconnaissance faciale impliquent l'analyse d'un visage entier comme une seule entité, plutôt que de le décomposer en caractéristiques individuelles. Ces premières méthodes reposaient sur des algorithmes simples qui comparaient la forme et la structure globales d'un visage à une base de données de visages connus. Ces systèmes étaient limités dans leur précision et ne pouvaient reconnaître qu'un petit nombre d'individus.
Dans les années 1980, les chercheurs ont commencé à développer des approches basées sur les caractéristiques de la reconnaissance faciale. Ces méthodes impliquent de décomposer un visage en caractéristiques individuelles, telles que les yeux, le nez et la bouche ; et d'analyser chaque caractéristique séparément. Cette approche a entraîné une amélioration significative de la précision de la reconnaissance.
Dans les années 1990, le développement de la technologie de reconnaissance faciale 3D a permis une analyse plus approfondie des traits du visage, ce qui a entraîné une précision encore plus élevée. Cependant, ces systèmes étaient encore limités dans leur capacité à reconnaître les individus dans des scénarios du monde réel, comme dans un faible éclairage ou lorsque le visage d'un individu était partiellement obscurci.
Avec l'avènement de "l'apprentissage profond" (deep learning) dans les années 2000, la technologie de reconnaissance faciale a subi une transformation importante. Les approches d'apprentissage en profondeur impliquent la formation d'un modèle sur un grand ensemble de données d'images faciales, ainsi qu'une puissance de calcul décuplée, permettant au système d'apprendre les modèles complexes et les variations des traits du visage. Cela a entraîné une augmentation significative de la précision de la reconnaissance et de la capacité à reconnaître les individus dans un large éventail de scénarios du monde réel.
La technologie évolue encore et il y a des débats en cours sur ses implications éthiques.
## 3. Approches "profondes"
### A. Rappels
Tout d'abord, un détecteur de visages est utilisé pour les repérer dans une image ou une vidéo. Ensuite, les traits du visage sont repérés pour les aligner selon des coordonnées usuelles. Ces visages "normalisés" sont ensuite donnés en entrée pour la reconnaissance faciale.
La reconnaissance faciale peut aussi être utilisée pour la vérification: en calculant le nombre de similarités entre le visage qu'on lui donne et les visages connus, elle peut déterminer si l'image est celle d'une personne déjà connue par le modèle. Cela peut servir pour éviter l'usurpation d'identité.
La reconnaissance faciale comporte ainsi plusieurs étapes.
**1. Face processing**
La reconnaissance faciale peut être très performante, mais en fonction de la pose, de l’expression faciale, de la luminosité des reflets etc, les performances peuvent être largement affectées.
Tout d'abord il faut utiliser un algorithme de data augmentation permettant de générer plusieurs images d'un visage à partir d'un exemple, ce qui permet de faire travailler les algorithmes avec des images prises sous des angles moins "usuels". Ensuite, un détecteur est utilisé pour repérer les traits des visages présents dans chacune des images générées.
Le modèle calcule le coût de ces images, ce qui lui permet de s'ajuster de manière à générer dans le futur des images plus réalistes de visages dits normalisés.
On utilise notre modèle entraîné pour générer plein d'échantillons d'images à partir de notre jeu de visages initial.
**2. Deap feature extraction**
Il y a deux composants principaux, l'architecture du réseau de neurones et la fonction de perte.
Il y a deux types de réseaux, fédérateurs et multiples. Les réseaux fédérateurs s'inspirent des réseaux de convolution. Les réseaux multiples utilisent plusieurs réseaux, ils sont entraînés sur plusieurs images ou plusieurs tâches, de sorte qu'à chaque réseau correspond une entrée ou une tâche distincte. Les résultats sont combinés pour obtenir une meilleure performance globale.
On utilise la fonction perte pour former le réseau. Généralement celle-ci est la fonction softmax car elle encourage la séparabilité des caractéristiques. Cependant elle n'est pas toujours efficace pour la reconnaissance faciale. Il y a donc beaucoup de travaux sur les fonctions de pertes pour avoir une fonction qui à la fois sépare les caractéristiques et est discriminante. Il y a par exemple la perte basée sur la distance euclidienne, la perte basée sur la marge angulaire/cosinus et les variations de la perte softmax.
**3. Face matching**
Une fois que le réseau est entraîné sur un dataset d'images conséquent et que la fonction de perte est appropriée, on teste le réseau sur les images du dataset "test", ce qui permet d'obtenir une analyse profonde des images et de leurs caractéristiques. Une fois les traits et caractéristiques extraits, on peut calculer les similarités entre deux caractéristiques.
On peut ensuite procéder à une vérification de "face matching". En calculant le nombre de similarités entre le visage qu'on lui donne et les visages connus (jeu initial), le modèle peut déterminer si l'image est celle d'une personne présente dans le jeu de visages initial.
Cette phase utilise les images générées par l'algorithme de data augmentation. On connaît les résultats de chaque test et on les compare aux prédictions pour vérifier si notre modèle s'adapte.
### B. Modules importants et architectures
La reconnaissance faciale utilise initialement des "backbone network", qui sont inspirés de réseaux de convolution, comme AlexNet, VGGNet, et ResNet.
Par exemple, en 2012, AlexNet atteint un record de précision. Ce réseau est constitué de 5 couches de convolution et de 3 couches entièrement connectées, et utilise la fonction ReLU. En 2014, VGGNet propose une architecture de réseau "standard". Il utilise des filtres convolutifs 3x3 partout et double le nombre d'informations sur les caractéristiques après application du filtre 2x2. Il a augmenté la profondeur du réseau à 16-19 couches de poids, ce qui a permis un meilleur apprentissage. Chaque réseau a permis de rendre l'apprentissage et donc la reconnaissance faciale plus performants, et régulièrement de nouveaux réseaux sont créés/découverts. Plus tard, il y a la création du "maxout" qui permet d'obtenir une représentation réduite d'une image, ce qui aide à réduire le temps d'apprentissage.
Les réseaux multiples sont des réseaux multi-entrées. Ces réseaux génèrent plusieurs images de différents patchs ou poses d'images en entrées, ils se transforment aussi en plusieurs réseaux pour différentes entrées d'image. Les réseaux multiples peuvent se construire grâce à plusieurs patchs d'images, et chaque réseau va gérer un type de patch pour en extraire les caractéristiques. Ces réseaux peuvent aussi servir à gérer des images avec différentes poses. C'est à dire qu'au sein d'un grand réseau multi-vues on peut avoir des sous réseaux qui vont gérer les photos en fonction de si elles sont de face, de quart-profil, de profil etc.
Les autres réseaux multiples sont les réseaux multi-tâches. L'identification est la tâche principale, et les tâches secondaires vont être par exemple l'alignement du visage (pose), l'éclairement, reconnaître une expression faciale (sourire par exemple), reconnaître le genre de la personne, estimer son âge...
Les méthodes de "one-to-many augmentation" sont utiles car elles permettent d'augmenter le nombre de données. Elles se catégorisent en 4 classes : augmentation de données, les modèles 3D, le modèle CNN et le modèle GAN. L'augmentation de données consiste en des changements photométriques ou géométriques, par exemple mettre l'image en miroir, la faire tourner, varier la position, l'échelle etc. Les modèles 3D sont juste de la modélisation 3D à partir d'images en 2D et en sortie on a une projection de cette modélisation en 2D dans différentes positions. Le modèle CNN permet à partir d'images en 2D de donner d'autres images directement en 2D avec des angles et positions différentes (comme 3D mais sans le passage par la modélisation 3D). Le modèle GAN utilise le modèle 3D pour créer des images "fausses" (c'est la partie générateur), ensuite il y a un deuxième réseau dont le but en sortie est de dire si l'image en entrée est réelle ou créée par le premier réseau. Le but de ce réseau est d'apprendre à créer des images toujours plus réalistes.
Il existe aussi des méthodes de "many-to-one normalization" qui produisent des images de face pour faciliter l'alignement et la comparaison des visages. Il existe 3 modèles ; SAE, CNN et GAN. Le modèle SAE permet de créer des images frontales à partir de photos qui ne le sont pas. Le modèle CNN est constitué d'un module d'extraction des caractéristiques et d'un module de reconstruction frontale, cela permet de minimiser les erreurs de reconstruction. Le modèle GAN est un modèle d'encodeur-décodeur, il contient différents calculs de perte (contradictoire, symétrie, préservation de l'identité) ce qui permet lors de la génération de l'image frontale de garder un maximum les structures globales et les détails.
### C. Datasets et évaluation
Les visages humains sont similaires et on peut améliorer la généralisation en utilisant des réseaux de neurones profonds (DNN) formés sur un grand nombre d'identités. Les géants d'internet ont rapporté des résultats obtenus avec des DNN formés sur des milliards d'identités en utilisant des bases de données privées et des clusters GPU puissants, mais les résultats ne sont pas reproductibles ni comparables. Du côté de la communauté académique, on utilise des bases de données publiques et des groupes plus petits afin d'obtenir des résultats reproductibles et comparables (avec certains biais), mais avec des bases de données plus petites (100k identités).
En ce qui concerne la reproductibilité des résultats publiés, les GAFAMs imposent une rude concurrence aux académiques avec la publication de leurs bibliothèques. Les académiques doivent trouver des architectures et des fonctions de perte efficaces pour obtenir les mêmes résultats.
Les dates importantes dans l'évolution des datasets sont 2007 où on introduit le *Labeled Faces in the Wild* (LFW), un ensemble de données populaire utilisé dans le domaine de la reconnaissance faciale. Ensuite, il faut attendre 2014 pour obtenir CASIA-WebFace, le premier ensemble de données publiques d'entraînement largement utilisé.
Parmi les géants du net, on trouve en première place Google avec plus de 500 millions de photos dans ces données pour la reconnaissance faciale.
### D. Challenges
Dans un algorithme de reconnaissance faciale, les résultats de l'entraînement sur un dataset donné vont être l'attribution d'une identité et on va vérifier que le réseau associe la bonne image à la bonne personne. La phase d'entraînement, qu'elle soit à partir de photos ou de vidéos, prend donc en entrée des visages et va tenter de les associer à l'identité correspondante dans la base de données connues. La mesure de "réussite" de la comparaison de l'image peut se faire avec plusieurs mesures comme la précision, l'exactitude, ou en calculant des taux de différences sur des caractéristiques faciales par exemple.
Les challenges actuels que l'on peut observer au niveau des résultats sont par exemple la pose, il y a 10% de réussite en moins lorsque les images ne sont pas frontales. Il y a aussi une difficulté avec l'âge, les algorithmes ne reconnaissent pas forcément quelqu'un si dans la base de données il y apparaît beaucoup plus jeune. Le dernier "gros défi" est causé par le maquillage qui induit des changements au niveau de l'apparence. Il existe encore d'autres challenges avec par exemple les biais (voir ci-après).
## 4. Recherche de biais
Les technologies de reconnaissance faciale présentent de nombreux biais : elles ont tendance à être moins précises pour les femmes et les personnes de couleur (**biais de genre**), en particulier les personnes de couleur foncée ; pour les personnes âgées et les enfants (**les biais d'âge**), en raison de la variabilité des traits faciaux au fil du temps et de l'âge ; pour ceux dont les visages sont tournés de côté ou inclinés (**biais de position**) ; ceux qui portent des lunettes, masques, chapeaux ou autres accessoires particuliers (**biais de comportement**) ; et ainsi de suite.
Ces biais peuvent varier selon les systèmes de reconnaissance faciale utilisés, et il existe des efforts pour améliorer la précision et réduire les biais dans les technologies de reconnaissance faciale. Cependant, cela est souvent dû à un manque de diversité dans les données d'entraînement utilisées pour développer les modèles.
### Le biais racial
Les biais raciaux sont un problème important dans les technologies de reconnaissance faciale. Les études montrent que les systèmes de reconnaissance faciale ont tendance à être moins précis pour les personnes de couleur, en particulier les personnes de couleur foncée. Ces biais ont de nombreux enjeux sociétaux, dans la mesure où ils sont utilisés comme base de décision par de nombreuses entités importantes (états, grosses entreprises...).
### Les protocoles d'entraînement
Il existe deux types de protocole de formation pour les réseaux de neurones : le protocole indépendant du sujet et le protocole dépendant du sujet.
Protocole indépendant du sujet : dans ce type de protocole, le modèle est entraîné à reconnaître des visages indépendamment du sujet. Il utilise des données d'entraînement qui comprennent des images de visages de différents individus. L'avantage de ce protocole est qu'il est généralement plus robuste et moins sensible aux variations de l'expression faciale, de l'éclairage et de l'angle de prise de vue.
Protocole dépendant du sujet : dans ce type de protocole, le modèle est entraîné à reconnaître des visages en se basant sur un seul sujet. Il utilise des données d'entraînement qui comprennent des images de visages d'un seul individu. L'avantage de ce protocole est qu'il est généralement plus précis et plus rapide, car il est spécifique à un individu. Cependant, il est également plus sensible aux variations de l'expression faciale, de l'éclairage et de l'angle de prise de vue.
Afin que les protocoles de formation des réseaux de neurones soient moins soumis aux biais, il est important de s'assurer que les données d'entraînement utilisées pour entraîner les modèles sont diversifiées et représentatives de la population cible
### Vérification et identification
Il existe deux principaux types de tâches de reconnaissance faciale: la vérification et l'identification.
La vérification (1 contre 1) : cela consiste à vérifier si une image de visage donnée correspond à une image enregistrée d'un individu spécifique. Elle permet de dire si deux images de visage proviennent de la même personne ou non. Cela est souvent utilisé pour l'authentification d'utilisateur, par exemple pour déverrouiller un téléphone ou accéder à un compte en ligne. Pour la vérification de visages, les métriques incluent les fausses acceptations/rejets (courbes DET) et la précision, qui est introduite en termes de pourcentage de classification correcte. Les seuils et les points opérationnels sont considérés comme cruciaux
L'identification (1 contre plusieurs), qui consiste à identifier à quelle personne appartient une image de visage donnée. Elle permet de dire à quelle personne correspond une image de visage donnée parmi une base de données de personnes enregistrées. Cela est souvent utilisé pour la surveillance de la foule, la reconnaissance automatique des personnes dans les vidéos ou pour les systèmes de reconnaissance de visages dans les aéroports. Pour l'identification de visages, il existe deux types d'ensembles fermés : les recherches menées par l'utilisateur (en criminologie) et les ensembles ouverts à haut débit.
## 5. Applications et avancées rapportées par notre groupe
A Télécom SudParis, plusieurs projets autour de la reconnaissance faciale ont vu le jour, ainsi que des améliorations sur des réseaux. Un premier réseau a été créé en utilisant "OpenFace framework" (une implémentation open source pour la reconnaissance faciale). Pour l'entrainement, ce sont OpenCV, Torch, OpenFace qui ont été utilisés. Le réseau est basé sur l'architecture de FaceNet avec la fonction de perte "triplet loss", 24 couches et 3 733 968 paramètres.
Les améliorations amenées par la suite sont par exemple l'utilisation d'un détecteur de visage plus précis et plus rapide.
En 2019, sur le NIST SRE2019 (Speaker Recognition Evaluation) dont le but est de reconnaître un interlocuteur, plusieurs challenges ont été rencontrés et donc plusieurs solutions adressées. Par exemple, de mauvaises conditions d'acquisition comme l'éclairement, les visages couverts, les visages qu'on ne voit qu'à moitié, plusieurs visages en même temps, vidéo de mauvaises qualités. Les solutions proposées sont par exemple d'utiliser un meilleur détecteur de visages, mieux régler les paramètres du réseau de neurones et ajouter de nouveaux modèles.
## 6. Enjeux actuels
Aujourd'hui, la reconnaissance faciale est sujet à controverse. Bien qu'elle puisse par exemple aider les forces de l'ordre dans leur travail, elle pose aussi des problèmes, notamment des questions sur les défis éthiques et légaux. Ces enjeux actuels seraient de permettre à la police de surveiller par exemples les zones d'affluences comme les aéroports, les gares, les lieux de spectacles etc... Cela pourrait permettre d'être plus efficace dans la lutte contre le terrorisme par exemple, mais aussi lorsqu'un crime est produit en pleine rue, cela induit donc un système de vidéosurveilance pour l'accompagner. Cependant ce système reste critiqué au nom des libertés fondamentales, car cela porte atteinte à la vie privée, puisque ça permettrait un certain fichage des individus et risquerait un éventuel profilage de certaines minorités ce qui risquerait des discriminations.
A ce titre, le 12 mai 2021 a été adopté le projet de loi relatif à la prévention d’actes de terrorisme et au renseignement. Ce texte autorise l'Etat français à utiliser les données recueillies par les réseaux sociaux et tout autre dispositif sur le territoire français afin de lutter contre les actes terroristes. Bien que la fin soit louable et compréhensible en ce contexte de crise, les moyens restent discutables.
En effet ce genre de détection part du principe que chaque individu est une menace potentielle. Outre cet aspect, ce type d'outils peut être très dangereux dans les mains de gouvernements malintentionnés et peut amener à des systèmes assez dystopiques (comme les crédits sociaux en Chine) qui suppriment quasiment toute vie privée.
Par exemple, la répression des Ouïghours en Chine est aidée par la reconnaissance faciale: Huawei a collaboré avec l'entreprise Megvi travaillant sur une solution permettant, via une image de vidéo surveillance, de reconnaître l'âge, le sexe et l'appartenance ethnique des individus présents sur l'image et ce n'est pas fini ; si le programme estime qu'il a à faire à un Ouïghour, une alerte sera automatiquement envoyée à la police pour appréhender l'individu. Par la suite, ce dernier peut être envoyé en "camp de rééducation", où il sera intégré à la base de données (critères physiques, démarche pour reconnaissance des individus de dos, voix etc… ).
Dans l'immédiat, à partir d'une photo de quelqu'un, on peut retracer une partie de sa vie grâce à son identité numérique via des outils comme pimeyes.com qui permettent de faire des recherches par visages. On peut aisément imaginer connecter ce moteur de recherche à un modèle de langage pour doter le grand publique de programmes permettant de tout savoir sur un individu seulement avec une photo.
Aussi, de tels systèmes peuvent être couplés avec des armes létales … "Automatiser la mort" est un enjeu contemporain et non négligeable, aboutissant sur tout un florilège de questions aussi difficiles les unes que les autres. Un grand nombre de pays développés investissent énormément dans ce type de recherches, la Chine est par exemple l'un de ces pays. L'avènement de telles technologies est sans doute l'issue logique de cette course à l'armement.
## Bibliographie
**Lien article :**
https://www.researchgate.net/profile/Wang-Mei-2/publication/324600003_Deep_Face_Recognition_A_Survey/links/5b5679a745851507a7c405c1/Deep-Face-Recognition-A-Survey.pdf
**Enjeux de la reconnaissance faciale**
https://observatoire-ia.ulaval.ca/petit-guide-sur-la-reconnaissance-faciale/#:~:text=Cette%20technologie%20est%20utilis%C3%A9e%20aussi,est%20coupl%C3%A9e%20avec%20la%20vid%C3%A9osurveillance.
**Projet de loi sur la prévention d'actes terroristes**
https://www.assemblee-nationale.fr/dyn/15/dossiers/prevention-actes-terrorisme-et-renseignement
**Répression des Ouïghours**
https://www.francetvinfo.fr/replay-radio/le-monde-est-a-nous/en-chine-les-ouighours-etouffes-par-la-reconnaissance-faciale_4197391.html