Système de présence par reconnaissance faciale avec Tensorflow.js

DEV - 21/07
Introduction Cet article est dans mes brouillons depuis si longtemps que j'ai décidé de simplement...

Introduction

Cet article est dans mes brouillons depuis si longtemps que j'ai décidé de simplement l'écrire. Vers 2020, un ami m'a chargé de créer un système de présence par empreintes digitales où les étudiants pourraient prendre note des présences en scannant leurs doigts sur un système. Pour faire court, le COVID est arrivé et tout le monde s’est méfié de toucher les surfaces partagées. Par conséquent, l’idée s’est tournée vers un système de reconnaissance faciale au lieu de la numérisation d’empreintes digitales. Le seul problème avec tout ce projet était que je n’avais aucune idée de ce que je faisais. Je n’avais jamais construit de système de présence et je n’avais jamais travaillé avec un scanner d’empreintes digitales ou un système de reconnaissance faciale auparavant.

Énoncé du problème

Généralement, la façon dont j'aborde les problèmes dans la vie ou en programmation consiste à les décomposer en morceaux. Je commence par me poser les questions suivantes : Quel est le problème ? Quelle est la solution? Quelles sont les étapes nécessaires pour parvenir à la solution proposée ? Y a-t-il des bloqueurs ? Existe-t-il des solutions alternatives ?

Après avoir analysé le système de reconnaissance faciale, j’ai découvert qu’à la base, nous en avions simplement besoin pour faire trois choses. Premièrement, il devrait être capable de reconnaître les visages. Deuxièmement, il doit sauvegarder ces visages et leur attribuer un identifiant unique. Enfin, il doit comparer ces visages stockés pour garder une trace des visages enregistrés et les marquer comme absents ou présents.

La capacité de reconnaître les visages

Ce projet a été entrepris avant que ChatGPT ne soit populaire, donc lorsque j'avais besoin d'une réponse à un problème particulier, je me tournais vers mes vieux amis fidèles, Google et Stack Overflow. C'est en parcourant ces plateformes que je suis tombé sur une bibliothèque appelée « TensorFlow.js ». C'était la réponse à mes prières, facilitant ainsi le travail avec des modèles d'apprentissage automatique à l'aide de JavaScript. Mais après avoir joué avec pendant un moment et réalisé que cela n'était peut-être pas aussi simple que du gâteau après tout, je suis retourné sur Internet pour trouver une solution plus simple. C'est à ce moment-là que je l'ai trouvé, me regardant droit dans les yeux, attendant que je vienne le chercher. Il m'a chuchoté à l'oreille : "Anthony, je sais que tu me cherchais." Son nom était face-api.js et il a été construit sur TensorFlow.js. Comme son nom l'indique, il était spécialisé dans la détection et la reconnaissance faciales, et c'était tout ce dont j'avais besoin pour faire de ce système de présence faciale une réalité.

Enregistrement des visages

En regardant le code maintenant, j'ai l'impression que je dois modifier certaines choses parce que ce truc est tellement moche, mais en fait je n'ai pas le temps. Donc, si vous regardez le code ci-dessous et que vous avez l’impression que j’ai écrit des bêtises, vous avez raison, mais cela fonctionne.

Passer en mode plein écran Quitter le mode plein écran

Voyons donc ce que fait le code ci-dessus :

  • Tout d’abord, nous « montons la Webcam ». Cela initialise l'appareil photo de l'appareil et garantit qu'il est prêt à capturer vos beaux visages. lien vers le fichier
  • Ensuite, nous « chargeons des modèles ». Pour que face-api.js fonctionne, nous avons besoin d'abord de certains modèles relativement volumineux charg...
    [Courte citation de 8% de l'article original]
Loading...