- Conditions préalables
- Comment fonctionne la reconnaissance faciale avec OpenCV
- Détection de visage à l'aide de classificateurs en cascade dans OpenCV
La reconnaissance faciale est de plus en plus populaire et la plupart d'entre nous l'utilisons déjà sans même s'en rendre compte. Que ce soit une simple suggestion de tag Facebook, un filtre Snapchat ou une surveillance avancée de la sécurité des aéroports, la reconnaissance faciale a déjà travaillé sa magie. La Chine a commencé à utiliser la reconnaissance faciale dans les écoles pour surveiller l'assiduité et les comportements des élèves. Les détaillants ont commencé à utiliser la reconnaissance faciale pour catégoriser leurs clients et isoler les personnes ayant des antécédents de fraude. Avec beaucoup plus de changements en cours, il ne fait aucun doute que cette technologie serait vue partout dans un proche avenir.
Dans ce didacticiel, nous allons apprendre comment créer notre propre système de reconnaissance faciale à l'aide de la bibliothèque OpenCV sur Raspberry Pi. L'avantage d'installer ce système sur un Raspberry Pi portable est que vous pouvez l'installer n'importe où pour le faire fonctionner comme système de surveillance. Comme tous les systèmes de reconnaissance faciale, le tutoriel impliquera deux scripts python, l'un est un programme Trainer qui analysera un ensemble de photos d'une personne en particulier et créera un ensemble de données (fichier YML). Le deuxième programme est le programme de reconnaissancequi détecte un visage et utilise ensuite ce fichier YML pour reconnaître le visage et mentionner le nom de la personne. Les deux programmes dont nous parlerons ici sont pour Raspberry Pi (Linux), mais fonctionneront également sur les ordinateurs Windows avec de très légers changements. Nous avons déjà une série de tutoriels pour les débutants pour démarrer avec OpenCV, vous pouvez consulter tous les tutoriels OpenCV ici.
Conditions préalables
Comme indiqué précédemment, nous utiliserons la bibliothèque OpenCV pour détecter et reconnaître les visages. Assurez-vous donc d'installer OpenCV Library sur Pi avant de poursuivre ce didacticiel. Alimentez également votre Pi avec un adaptateur 2A et connectez-le à un moniteur d'affichage via un câble HDMI car nous ne pourrons pas obtenir la sortie vidéo via SSH.
De plus, je ne vais pas expliquer comment fonctionne exactement OpenCV, si vous êtes intéressé par l'apprentissage du traitement d'image, consultez ces bases d'OpenCV et les didacticiels avancés de traitement d'image. Vous pouvez également en apprendre davantage sur les contours, la détection des taches, etc. dans ce didacticiel de segmentation d'image.
Comment fonctionne la reconnaissance faciale avec OpenCV
Avant de commencer, il est important de comprendre que la détection de visage et la reconnaissance de visage sont deux choses différentes. Dans la détection de visage, seul le visage d'une personne est détecté, le logiciel n'aura aucune idée de qui est cette personne. Dans la reconnaissance faciale, le logiciel détecte non seulement le visage, mais reconnaît également la personne. Maintenant, il devrait être clair que nous devons effectuer la détection des visages avant d'effectuer la reconnaissance des visages. Il ne serait pas possible pour moi d'expliquer comment exactement OpenCV détecte un visage ou tout autre objet d'ailleurs. Donc, si vous êtes curieux de savoir que vous pouvez suivre ce didacticiel de détection d'objets.
Un flux vidéo d'une webcam n'est rien de plus qu'une longue séquence d'images fixes mises à jour les unes après les autres. Et chacune de ces images n'est qu'une collection de pixels de valeurs différentes mis ensemble dans sa position respective. Alors, comment un programme peut-il détecter un visage à partir de ces pixels et reconnaître davantage la personne qui s'y trouve? Il y a beaucoup d'algorithmes derrière cela et essayer de les expliquer dépasse le cadre de cet article, mais comme nous utilisons la bibliothèque OpenCV, il est très simple d'effectuer une reconnaissance faciale sans approfondir les concepts.
Détection de visage à l'aide de classificateurs en cascade dans OpenCV
Ce n'est que si nous sommes capables de détecter un visage que nous pourrons le reconnaître ou s'en souvenir. Pour détecter un objet tel qu'un visage, OpenCV utilise quelque chose appelé classificateurs. Ces classificateurs sont des ensembles de données pré-entraînés (fichier XML) qui peuvent être utilisés pour détecter un objet particulier dans notre cas un visage. Vous pouvez en savoir plus sur les classificateurs de détection de visage ici. Outre la détection du visage, les classificateurs peuvent détecter d'autres objets comme le nez, les yeux, la plaque d'immatriculation du véhicule, le sourire, etc. La liste des classificateurs de cas peut être téléchargée à partir du fichier ZIP ci-dessous
Classificateurs pour la détection d'objets en Python
Ou bien OpenCV vous permet également de créer votre propre classificateur qui peut être utilisé pour détecter tout autre objet dans une image en entraînant votre classificateur en cascade. Dans ce tutoriel, nous utiliserons un classificateur appelé «haarcascade_frontalface_default.xml» qui détectera le visage depuis la position avant. Nous verrons