La reconnaissance faciale ne cesse de nous faire rêver – et frissonner – depuis quelques années. Si le principe est clair, reconnaître quelqu’un à partir de sa photo, le sujet est plus complexe qu’il n’y paraît : la « reconnaissance faciale » est en fait… 4 intelligences artificielles qui travaillent de concert !

Dans ce focus nous allons voir ce qu’elle signifie, d’où elle nous vient, quelles en sont les applications et surtout… comment elle marche ! Attendez-vous également à retrouver les grandes problématiques typiques d’un projet d’IA.

PS : à noter que la majeure partie des propos de ce focus sont tirés de la conférence « La reconnaissance faciale en 4 IA » que je donne régulièrement.

Si c’est le TP associé à ce focus qui vous intéresse, vous pourrez coder vos propres IA de reconnaissance faciale, compatibles avec n’importe quel ordinateur très facilement et avec de bonnes performances générales :

Lien vers le TP de Reconnaissance Faciale

I. Qu’est-ce que la reconnaissance faciale ?

Avant de parler de reconnaissance faciale, on va se mettre d’accord sur ce que j’appelle une intelligence artificielle ici.

Une IA, c’est une boîte noire qui va imiter une « action » humaine. Dans cette boîte, il y a un algorithme principal qui calcule en permanence et de manière déterministe. La boîte est dite noire, et s’apparente à de la magie pour certains, non pas car on ignore ce qu’il s’y passe ou comment elle marche, mais parce qu’elle réalise des millions de calculs qu’aucun humain ne peut faire de tête et donc imaginer en temps réel.

Vérification ou identification ?

Lorsque l’on met en place un système de reconnaissance faciale, il faut choisir si on part sur de la vérification d’identité ou sur de l’identification. En voici les différences :

  • vérification reconnaissance faciale
    La SmartGate compare la photo du passeport avec celle de la caméra : est-ce la même personne ? (crédit : MDRXCC BY-SA 4.0)

    Vérification : lorsque vous allez à l’aéroport, vous pouvez tomber sur des SmartGates, qui sont des portes d’embarquement équipées pour les e-passeports (par exemple à Londres ou en Australie depuis 2017). Vous placez votre passeport sur une borne qui lit la puce et récupère la photo de vous qui est enregistrée dedans, puis une caméra prend une photo de vous. La question que va se poser l’IA de vérification est « ces deux photos sont-elles de la même personne ?« . La réponse sera soit oui soit non, c’est pour cela qu’on parle de vérification d’identité.

  • identification reconnaissance faciale
    En Chine, les caméras essaient de reconnaître les individus et lèvent une alerte en cas de risque (crédit : screamingPixabay License)

    Identification : à l’inverse, pour retrouver un criminel dans une foule (par exemple en Floride en 2002 ou à l’aéroport de Boston), on prend une photo d’une personne, et on demande à l’IA « de qui s’agit-il ?« . Elle va alors chercher dans sa base de donnée de photos qui est la personne la plus ressemblante, et répondre par la probabilité que ce soit telle personne ! On parle alors d’identification car il faut retrouver l’identité de la personne et non la confirmer.

Bien évidemment, la vérification est plus simple et plus rapide à mettre en place (plus générique aussi), en particulier du point de vue des données et de la législation, qui reste sévère sur ce type de données personnelles.

Petit historique de la reconnaissance faciale

Abordons l’Histoire de la reconnaissance faciale comme s’il s’agissait d’un projet moderne d’intelligence artificielle.

tablette rand
Exemple de tablette RAND opérée par un humain avec son stylet (crédit : r.muilwijkCC BY-SA 2.0)

La première chose à faire pour démarrer une nouvelle IA est de construire un premier modèle qui va venir tester vos hypothèses métier. C’est ce qu’a fait l’équipe de Woodrow Bledsoe en 1964 : limitée par la technologie, elle a demandé à des opérateurs humains de renseigner, grâce à une tablette « RAND », 20 marqueurs clés du visage (découpé aussi par des humains), comme la position des yeux, du nez, de la bouche… Puis elle a fourni ces valeurs à une IA de reconnaissance faciale semi-automatisée afin qu’elle procède à divers calculs et soit capable de reconnaître deux photos d’une même personne !s

Une fois le système éprouvé et amélioré en ajoutant 21 marqueurs supplémentaires (épaisseur des lèvres, couleur des cheveux,… dans les années 70), on passe à la seconde phase de l’IA : l’amélioration des outils théoriques si ceux existants s’avèrent être trop limités. Pour ce faire, on a donc eu recours aux Mathématiques (« l’algèbre linéaire ») pour voir les photos différemment et trouver un moyen de les simplifier et de les traiter de manière autonome, sans avoir besoin de marqueurs humains dès les années 1988. C’est ainsi qu’en 1991 on a la première vraie IA de reconnaissance faciale, lorsqu’un algorithme de découpage automatique du visage est enfin inventé !

Troisième étape, qui intervient plus tôt dans nos projets modernes : la constitution d’un jeu de données ! En effet, à l’époque, il n’y avait quasiment aucune ressource disponible… Afin d’encourager l’industrie et l’académie à avancer sur le sujet, la DARPA a créé le programme FERET en 2003 qui fournit au monde les portraits de pas moins de 850 personnes (pour 2400 images) ! Combiné avec la nouvelle génération d’ordinateurs, on se retrouve en 2010 avec le système d’identification automatique de Facebook pour taguer les photos personnelles.

A partir de là, la reconnaissance faciale continue de s’améliorer, de voir ses algorithmes évoluer vers des solutions Deep Learning comme avec DeepFace (Facebook), un algorithme qui utilise 4 millions d’images (de 4 000 personnes) pour entraîner ses 120 millions de connexions à nous identifier !

l'histoire de la reconnaissance faciale
Un parcours assez emblématique d’un projet classique d’IA : l’Histoire de la reconnaissance faciale ! (crédit : Lambert Rosique)

Avantages et inconvénients

Comme vous vous en doutez, si la DARPA a souhaité voir la reconnaissance faciale s’améliorer, c’est parce qu’elle présente de nombreux avantages :

  • elle est sans-contact : potentiellement, l’utilisateur ne saura jamais qu’il a fait l’objet de reconnaissance faciale, comme par exemple lors du SuperBowl de 2001
  • elle utilise le matériel déjà existant : les caméras qui servent à la circulation ou pour la sécurité de certains lieux. Par exemple, en Chine, la reconnaissance faciale est utilisée pour réprimander les cyclistes et les gestes d’incivilité dans la rue
  • les vidéos qui servent pour la reconnaissance faciale peuvent, d’ailleurs servir à beaucoup d’autres choses dont de l’analyse du comportement. A l’inverse, de l’ADN ne permettra « que » de faire un test ADN…
  • enfin, elle est très rapide (0.1s pour une identification en général avec un ordinateur récent)

En revanche, il faut s’en méfier :

  • d’un point de vue éthique, la reconnaissance faciale pose beaucoup de problèmes et est très contrôlée. Beaucoup, dont Brad Smith, Président de Microsoft, ont peur qu’en 2024 on se retrouve dans la situation du livre 1984 de Georges Orwell : un monde totalitariste contrôlé par Big Brother.
  • de plus, elle reste sensible à l’angle (il faut que le visage à reconnaître soit en face de la caméra autant que possible) et à la lumière
  • elle n’est pas aussi précise que ce que l’on pourrait croire ! Concernant les polices qui l’utilisent pour traquer les criminels (San Diego, Dallas, Los Angeles…), il faut savoir que le taux de prédiction de leurs IA est de… 3%. Autrement dit, sur 100 personnes, elles n’en reconnaissent bien que 3. Ne vous attendez donc pas à ce qu’elles retrouvent des criminels, même si par effet de peur, le taux de criminalité a chuté de 25%.
  • ni aussi fiable : si pour certaines applications les scores de prédictions atteignent 96%, il est « facile » de tromper un système de reconnaissance faciale et elle n’est donc pas recommandée pour des applications de sécurité. A noter que le hack le plus connu (mettre une photo imprimée de la personne dont on veut usurper l’identité) ne fonctionne plus, car des algorithmes peuvent maintenant dire si une vraie personne est devant la caméra (on parle de Spoof Detection, et le MIT ou TrueFace.ai par exemple est bien avancé sur le sujet).

Les applications typiques et déjà existantes

Dans cette partie nous allons voir quelques exemples d’applications de la reconnaissance faciale, qui représente un marché global de 5 milliards de dollars cette année (2019) et devrait tripler d’ici 5 ans (donc 15 milliards en 2024) !

Restriction d’accès

singapour reconnaissance faciale
Vérification d’identité grâce au badge d’accès et à la caméra sur la borne, à l’Interpol World (crédit : U.S. Customs and Border ProtectionU.S. Government Works)

Tout à l’heure nous parlions des aéroports, avec les SmartGates, mais ce n’est pas le seul cas fréquent de vérification d’identité : lors de conventions, les organisateurs ont de plus en plus tendance à mettre en place des bornes dont le rôle est de comparer la photo stockée dans le badge (en fait le badge contient un QR code lié à une image de la base de donnée des inscrits) avec celle prise par la caméra de la borne. On estime ainsi que les files sont réduites (3 secondes pour analyser une personne lors de l’Interpol World à Singapour), et que le personnel d’accueil peut se limiter à 1/3 de ce qu’il est actuellement.

Ces systèmes peuvent aussi être adaptés aux sonnettes des maisons qui ont tendance, en Amérique, à activer leurs caméras dès qu’il y a du mouvement et à alerter le propriétaire si la personne n’est pas « habilitée » à être devant chez vous et à vouloir entrer !

Commerce et publicité

amazon go exemple
Exemple d’une personne dans le magasin Amazon Go (crédit : SounderBruceCC BY-SA 2.0)

Sujet beaucoup plus épineux de la reconnaissance faciale : peut-on l’utiliser pour optimiser sa stratégie marketing ? Peut-on l’employer pour mieux cibler ses publicités ?

D’un point de vue purement théorique, ce n’est pas difficile. Imaginons que je rentre dans le magasin d’Amazon Go, dont le principe est le suivant :

  • en arrivant je scanne mon téléphone pour m’authentifier
  • les centaines de caméras du magasin me suivent en permanence et enregistrent les produits que je prends dans mon panier
  • puis je sors sans passer en caisse et reçois automatiquement la facture par SMS

Avec de la reconnaissance faciale, ce tracking ne serait plus « anonyme » (même s’il ne l’est pas vraiment), et d’ailleurs personne ne sait de manière certaine si Amazon n’utilise pas la reconnaissance faciale dans ses magasins… qui ont ouverts au nombre de 4 à Seattle, 4 à Chicago, et 2 à San Francisco !

On pourrait donc voir que je passe du temps au rayon fruits et légumes, et me proposer des réductions sur les légumes de saison, ou une offre liée à un nouvel arrivage particulier, et pourquoi pas ensuite étendre l’offre au monde virtuel, lorsque je me rendrai sur le site d’Amazon.

Ce scénario peut faire peur, et on peut se dire qu’on parle des Etats-Unis là. Mais en réalité, en France, plusieurs chaînes se sont déjà lancées là-dedans : Monoprix (2017) et Casino (2018) ont déjà ouverts leurs portes à Paris !

Vie de tous les jours

reconnaissance faciale fac chine
Reconnaissance faciale à l’Université de Shen Hao (Chine) pour faire l’appel des élèves (crédit : Chi-Hung LinCC BY-SA 2.0)

30% des sociétés emploient la reconnaissance faciale pour la gestion des personnes présentes lors de meeting ou pour surveiller le temps de travail de ses employés (Amazon, Chine). Cette idée a été étendue aux classes d’écoles, où faire l’appel des élèves chaque jour (matin et soir) coûte en moyenne 30 minutes !

Ainsi, que ce soit en Chine ou en Australie (dans des écoles privées uniquement), des systèmes de reconnaissance faciale permettent de voir quels élèves entrent en classe, puis de les étudier pendant le cours afin de remonter au professeur si l’un d’entre eux a « décroché » lors d’une explication particulière : l’objectif est d’améliorer la qualité de l’enseignement en l’adaptant à chaque enfant.

Bonus d’applications

Voici quelques autres applications que j’ai trouvé intéressantes :

  • lors des élections présidentielles mexicaines de 2000, pour lutter contre la falsification d’identité (des gens votaient plusieurs fois pour leur candidat avec de fausses identités), le gouvernement a mis en place un système de reconnaissance faciale capable d’identifier quelqu’un qui a déjà voté (en le prenant en photo suite à son vote)
  • aux Etats-Unis, pour lutter cette fois contre les faux permis de conduire et de pièces d’identités, le gouvernement dispose d’une base de donnée de 117 millions d’américains. Lorsque l’un d’eux demande un permis, sa photo est recherchée dans toute la base pour voir s’il est éligible
  • reconnaissance faciale cochons
    Reconnaissance faciale des cochons dans une ferme en Chine (crédit : image modifiée de mali maederFree to use)

    en Chine, pour booster les fermes, de la reconnaissance faciale de cochon est en test afin de reconnaître rapidement les animaux avec leurs spécificités et de les analyser depuis les caméras de l’entrepôt en « automatique »

  • enfin, pour revenir en France, un système de reconnaissance faciale « dans la rue » a été testé lors du Carnaval de Nice les 19 et 20 février 2019. L’objectif ? Identifier des personnes cibles ou trouver les enfants perdus dans la foule

Et sur une note plus pessimiste, une base de données d’informations personnelles (cartes d’identité, nom de l’employeur, géolocalisation en temps quasi-réel, photographies permettant la reconnaissance faciale) a fuitée en Chine. Elle concernait une minorité Ouïghoures (mal-vue par le gouvernement) de la province du Xinjiang de… 2.5 millions de personnes ! Elle est restée en libre accès de l’été 2018 à février 2019… De quoi nous rapprocher de la vision de 2024 de Brad Smith ?

II. Les 4 IA de la reconnaissance faciale

Maintenant que nous avons fait le tour de la reconnaissance faciale, voyons plus en détail comment elle fonctionne.

Plan d’attaque et premier aperçu

Comme annoncé précédemment, la reconnaissance faciale est divisée entre quatre intelligences artificielles dont les rôles sont tous différents, et qui vont s’enchaîner dans un certain ordre pour parvenir au résultat. En très bref, voici ce qu’il va se passer :

  1. Si Woodrow Bledsoe avait besoin qu’un humain trouve le visage dans l’image et le découpe, nous, nous allons utiliser une IA pour ça
  2. Ensuite, puisque le visage doit être face à la caméra et bien centré, nous allons utiliser une image pour déformer l’image et la rendre « parfaite »
  3. Puis l’IA qui succède à l’algèbre linéaire (Mathématiques) se chargera d’extraire les informations pertinentes de l’image, celles qui font que « c’est une photo de nous et pas de quelqu’un d’autre »
  4. Enfin, une dernière IA partira à la recherche de la photo la plus ressemblante de notre base de données (car nous allons parler ici d’identification, la vérification étant immédiate quand on sait faire l’identification).

PS : je rappelle qu’une IA est simplement un algorithme plus ou moins perfectionné qui va apporter de la valeur à notre système.

résumé de la reconnaissance faciale
Voici les 4 grandes étapes, chacune contrôlée par une IA, de la reconnaissance faciale contemporaine (crédit : Lambert Rosique)

1) Détection du visage

Cette partie se découpe en deux phases distinctes.

Pour trouver un visage, il y a beaucoup d’informations superflues qui risquent d’avoir un impact négatif sur les prédictions de notre IA en « charge de trouver les visages ». Par conséquent, on commence par passer l’image d’origine en noir et blanc, puis on applique un algorithme très simple qui construit une nouvelle image appelée « l’histogramme de gradients orientés« .

Concrètement, on ne va retenir de l’image que la direction dans laquelle évolue la couleur pour chaque bloc de 16×16 pixels que l’on peut constituer. On se retrouve alors avec des vecteurs (les traits blancs) plus ou moins lumineux/long en fonction de si le bloc a la même structure. On remarque que sur cette nouvelle image, il est encore facile de trouver un visage et on a éliminé tout le bruit parasite !

Dans un second temps, on utilise l’intelligence artificielle de détection de visage qui repose sur l’algorithme Haar Cascade (donné dans la troisième image pour les plus courageux.ses). A l’image d’un torrent plein de récifs, notre embarcation (IA) va, à chaque nouvelle ligne de récifs, devoir répondre à une question : est-ce que dans la zone verte que j’ai retenue pour cette descente-ci, il y a un schéma de traits blancs ressemblant à des yeux ? Si oui, on continue la descente du torrent, et si non, on retourne au tout début avec une nouvelle zone verte différente. Lorsqu’il y a plusieurs récifs sur une même ligne, on va répondre à plusieurs questions dont les réponses seront pondérées, et si un certain seuil est atteint (déterminé par l’IA) alors on pourra continuer. Par exemple, est-ce qu’il y a un menton ou au moins une bouche dans la sélection, avec éventuellement des oreilles ?

L’IA Haar Cascade aura au préalable été entraînée à avoir trouvé quelles sont les questions pertinentes, dans quel ordre les organiser, comment les pondérer, etc… pour être en mesure d’identifier un (ou des) visage(s) dans n’importe quelle image !

Dans un dernier temps (opéré par Haar Cascade), on regardera quelles sont les sélections vertes retenues comme ayant un visage, et par intersections/réunions, on pourra réduire ces zones au vrai contour de chaque visage de l’image, sans avoir de répétition.

2) Découpage et déformation

Ensuite, on va déformer le visage pour le mettre face à la caméra. Pourquoi ?

La réponse est que dans notre base de données, on ne va garder que les photos où le visage de la personne est bien droit et bien centré, car on veut que toutes les photos soient « équivalentes » (on ne veut pas reconnaître quelqu’un parce qu’il est le seul à avoir une photo de profil et à se présenter devant la caméra de profil…).

A cause de ça, il va falloir déformer un petit peu toutes les parties du visage qui peut être de 3/4 et regarder vers le bas.

L’IA n°2 de notre reconnaissance faciale commence donc par placer 68 repères sur le visage. Elle a été entraînée à le faire peu importe l’orientation du visage : le nez, les yeux, la bouche, les sourcils et le contour du visage sont ainsi marqués.

Ensuite, grâce à des techniques usuelles de déformation de l’image (comme avec Adobe Photoshop par exemple), on déplace chacun de ces 68 points pour venir le superposer à la position finale voulue. Bien sûr, on déforme tous les pixels autour lorsqu’on déplace ce point. On obtient ainsi un visage qui regarde l’objectif de la caméra et se tient bien au centre et bien droit ! Même s’il est un peu déformé, globalement, il ressemblera toujours suffisamment à la personne pour être reconnaissable.

A noter que l’IA venant placer ces marqueurs repose sur l’algorithme Dlib Shape Predictor qui est très proche du Haar Cascade de la partie précédente, puisqu’il s’agit d’un ensemble d’arbres de régression (qui vont donc répondre à des questions sur l’image avant d’aboutir à une conclusion).

3) Analyse du visage

Voici l’étape la plus importante de notre IA de reconnaissance faciale : celle où l’on va remplacer la totalité de l’image par « seulement » 128 nombres. Ces nombres, en rapport avec l’image, seront déterminés de manière à ce qu’ils différencient des individus facilement. Par exemple, on pourrait imaginer que les nombres suivants sont les mêmes sur toutes mes photos et sont vraiment spécifiques à moi-même :

  • l’écart entre mes yeux
  • la hauteur de mon front
  • l’angle de ma mâchoire

C’est d’ailleurs sur cette idée que reposaient les premières IA de reconnaissance faciale. Depuis, on a (re)découvert le Deep Learning qui est capable de déterminer par lui-même (surtout en analysant des milliers d’exemples) quelles sont les 128 valeurs à retenir dans une photo qui sont différentes pour chaque visage différent et extrêmement proches pour chaque visage d’une même personne !

Comment cela fonctionne-t-il ? Si vous vous souvenez de notre focus sur les réseaux convolutifs, vous avez la solution : un réseau de neurones convolutifs, nommé VGG, a appris à générer un vecteur de 128 nombres à partir d’une image en entrée ! On lui donne donc la photo de nous recadrée et déformée, et il nous renvoie le vecteur qui est « spécifique à nous-même ».

4) La Reconnaissance Faciale

Pour finir, dans notre base de données, on n’a pas stocké les photos mais directement les vecteurs (à 128 dimensions) représentant chacune des photos. Ainsi, lorsque le vecteur de notre caméra arrive, il suffit de chercher dans notre base de données lequel de ces vecteurs est « le plus proche ».

Ce terme peut avoir plusieurs significations en fonction de l’algorithme de ressemblance choisi :

  • Par exemple, si on utilise la distance cosinus pour trouver le vecteur le plus proche, alors on mesurera en fait l’angle entre les deux vecteurs, qui seront dit proches si l’angle est petit
  • Si on calcule la distance habituelle (dite euclidienne) entre deux vecteurs, alors on mesurera « avec une règle » quelle longueur sépare la pointe de nos deux vecteurs
  • Enfin, on peut aussi utiliser des algorithmes de machine learning comme « Support Vector Machine » qui trouveront empiriquement (grâce à des exemples lors de la phase d’apprentissage OU de manière automatique par clustering) comment dire quelle est l’image la plus ressemblante de notre base de données.

Parallèle entre la reconnaissance faciale et les grandes problématiques de l’IA

slides conférence La Reconnaissance Faciale (2)
Résumé global de la reconnaissance faciale détaillée (crédit : Lambert Rosique)

En résumé, nous avons vu qu’il y avait bien 4 intelligences artificielles qui interviennent dans le processus de reconnaissance faciale d’un individu.

Qu’il s’agisse d’identification ou de vérification, les idées restent les mêmes (pour la vérification, seule l’étape 4 change à peine : on regarde la distance entre la photo et l’image de la base de données, et si elle dépasse un certain seuil on validera l’identité). Revenons à présent sur ce qui se cache derrière chaque IA en matière de problématique :

  • En intelligence artificielle, avoir des données d’apprentissage est critique pour le succès du projet. L’IA de détection Haar Cascade n’échappe pas à la règle, puisqu’elle a besoin de 19 000 images et de plus de 24h d’entraînement pour réussir à trouver des visages ! On notera également la présence d’images « sans visage », car il est important, dès l’entraînement, d’anticiper tous les cas possibles…
  • Avoir des données, c’est bien, avoir des données pertinentes et adaptées, c’est mieux ! Pour l’IA des repères, la seule manière d’avoir une IA qui trouve où est le nez, la bouche, les yeux, c’est de lui montrer. Pour ça, on engage souvent des étudiants qui vont jouer le rôle de Turc mécanique, en venant placer 68 repères « au pixel près » sur 2300 images ! Ainsi, de nombreuses sociétés s’orientent uniquement sur la vente de jeux de données bien constitués
  • Lorsqu’on entraîne son modèle, on doit également décider de si on le préfère performant et lourd (et plus long à entraîner) ou si on tolère un certain nombre d’erreurs. Pour l’IA de mesure des caractéristiques, qui est la plus importante de tout le système de reconnaissance faciale, on a opté pour un algorithme de Deep Learning (basé sur les réseaux de neurones convolutifs) pesant 1Go une fois entraîné. Si l’on renonce à l’embarqué (mobile surtout), les performances sont bien au rendez-vous. A noter qu’il a fallu être astucieux pour l’entraînement : on lui a donné systématiquement 2 images, et son rôle était de dire s’il s’agissait de la même personne ou non (en partant de photos de célébrités)
  • Enfin, on le sait mais on n’y pense pas toujours, parfois mieux vaut sélectionner une IA « simple et basique » de Machine Learning plutôt que de recourir directement au Deep Learning, plus puissant en théorie, mais beaucoup moins performant  lorsqu’on manque d’exemples ou que les statistiques suffisent à résoudre le problème ! C’est le cas pour cette quatrième étape où n’importe quel algorithme fonctionne assez bien, y compris une mesure de distances mathématiques
slides conférence La Reconnaissance Faciale (1)
(crédit : Lambert Rosique, avec l’utilisation d’icônes et d’images issues de jeux de données d’entraînement publics)

III. Qu’attendre de la reconnaissance faciale demain ?

Dans ce focus nous avons fait le tour de la reconnaissance faciale, à la fois d’un point de vue « business » avec sa compréhension générale, mais aussi d’un point de vue assez « technique« , en parlant de chaque algorithme qui vient la façonner.

Comme il l’a été dit, la reconnaissance faciale n’est pas considérée comme « fiable » pour tout ce qui nécessite un fort niveau de sécurité. Mais des techniques existent, comme par exemple passer à de la reconnaissance faciale 3D (qui utilise des caméras particulières et ajoute de l’information supplémentaire plus compliquée à falsifier) ou même de la reconnaissance faciale thermique (un sujet de plus en plus étudié et considéré comme viable) !

Crédit de l’image de couverture : LeeJeongSooPixabay License