Application MATLAB en reconnaissance faciale : code, description et syntaxe

Publié: 2020-06-23

Chaque fois que vous déverrouillez votre téléphone mobile avec votre visage ou que vous passez par votre système de surveillance de bureau de haute technologie, une technologie élaborée de reconnaissance faciale fonctionne en arrière-plan. Alors, qu'est-ce que la reconnaissance faciale et comment pouvez-vous effectuer une reconnaissance faciale avec MATLAB ?

La reconnaissance faciale est le processus d'identification des visages humains grâce à la technologie. Le système de reconnaissance faciale utilise des techniques de vision par ordinateur et d'apprentissage automatique pour modéliser et classer les traits du visage extraits d'images et de vidéos. Les algorithmes d'identification des visages extraient et cartographient les traits du visage et les comparent à une base de données de visages connus pour trouver la meilleure correspondance.

La source

Table des matières

MATLAB dans la reconnaissance faciale

Il est possible d'obtenir une reconnaissance faciale à l'aide du code MATLAB. La classe et la fonction intégrées dans MATLAB peuvent être utilisées pour détecter le visage, les yeux, le nez et la bouche. Le système object vision.CascadeObjectDetector de la boîte à outils du système de vision par ordinateur reconnaît les objets sur la base de l'algorithme de détection de visage Viola-Jones.

Description du détecteur d'objets MATLAB

Le vision.CascadeObjectDetector utilise l'algorithme Viola-Jones pour l'identification des visages, des yeux, de la bouche, du nez ou du haut du corps. Un classificateur personnalisé peut être formé à l'aide de Image Labeler de MATLAB et utilisé avec l'objet System. Alors, comment les traits du visage ou le haut du corps sont-ils détectés dans une image ? Voici les étapes :

  1. La première étape consiste à créer l'objet vision.CascadeObjectDetector et à définir ses propriétés.
  2. Dans cette étape, l'objet est appelé avec des arguments (comme s'il se comportait comme une fonction).

Lis : 15 idées et sujets de projet MATLAB intéressants pour les débutants

Syntaxe pour la création du détecteur d'objet

La syntaxe utilisée pour la création du détecteur d'objets est la suivante :

  • détecteur = vision.CascadeObjectDetector
  • détecteur = vision.CascadeObjectDetector(mode1)
  • Détecteur = vision.CascadeObjectDetector(Nom,Valeur)
  • détecteur = vision.CascadeObjectDetector(XMLFILE)

Description de la syntaxe

  • detecteur = vision.CascadeObjectDetector : cette syntaxe est utilisée pour la création d'un détecteur qui détecte les objets à l'aide de l'algorithme Viola-Jones.
  • detecteur = vision.CascadeObjectDetector(mode1) : Cette syntaxe est utilisée pour la création d'un détecteur configuré pour détecter les objets définis par le vecteur d'entrée – mode1.
  • détecteur = vision.CascadeObjectDetector(Name,Value) : cette syntaxe est utilisée pour définir des propriétés en utilisant une ou plusieurs paires nom-valeur, où chaque nom de propriété est entouré de guillemets. Par exemple : détecteur = vision.CascadeObjectDetector('ClassificationModel','UpperBody')

Découvrez : Idées de projets d'apprentissage automatique

Propriétés

Sauf indication contraire, les fonctionnalités du détecteur d'objets en cascade ne sont pas réglables, ce qui signifie qu'après avoir appelé l'objet, leurs valeurs ne peuvent pas être modifiées. Les objets sont verrouillés lorsqu'ils sont invoqués, et leur déverrouillage est effectué par la fonction 'release'.

D'autre part, une propriété ajustable signifierait que sa valeur peut être modifiée à tout moment. Examinons donc certaines des fonctionnalités avant de comprendre la reconnaissance faciale à l'aide des codes MATLAB .

  • ClassificationModel : définie comme un vecteur de caractères, cette propriété est responsable du contrôle du type d'objet à détecter. La configuration par défaut du détecteur détecte les visages.
  • MinSize : la taille du plus petit objet reconnaissable est désignée par un vecteur à deux éléments [hauteur largeur]. À moins qu'une valeur de propriété ne soit spécifiée, le détecteur la définit sur la taille d'image utilisée pour l'apprentissage du modèle de classification.
  • MaxSize : la taille du plus petit objet reconnaissable est désignée par un vecteur à deux éléments [hauteur largeur] . À moins qu'une valeur de propriété ne soit spécifiée, le détecteur la définit sur la taille (I).
  • ScaleFactor : Il a une valeur spécifiée supérieure à 1,0001. Cette propriété est destinée à la mise à l'échelle incrémentielle de la résolution de détection entre MinSize et MaxSize.
  • MergeThreshold : Il a une valeur entière spécifiée égale à 4. En cas de détections multiples autour d'un objet cible, le seuil définit les critères de détection finaux.
  • UseROI : spécifié comme faux, cette propriété peut être définie sur vrai pour la détection d'objets dans une région rectangulaire d'intérêt dans l'image d'entrée.

Syntaxe d'utilisation du détecteur d'objet

  • bbox = détecteur(I)
  • bbox = détecteur(I,roi)

Description de la syntaxe

  • bbox = detector(I) renvoie bbox, une matrice M -par-4, qui définit ' M ' boîtes englobantes qui contiennent les objets détectés.
  • bbox = detector(I,roi) est utilisé pour détecter des objets dans la région rectangulaire d'intérêt, spécifiée par roi.

Arguments d'entrée

  • I — Image d'entrée : elle est spécifiée en couleurs vraies ou en niveaux de gris (RVB).
  • model — Modèle de classification : il est spécifié sous la forme d'un vecteur de caractères et décrit le type d'objet à détecter.
  • XMLFILE — Modèle de classification personnalisé : spécifié sous la forme d'un fichier XML, il peut être créé à l'aide de la fonctionnalité de formation OpenCV ou de la fonction trainCascadeObjectDetector.
  • roi — Région d'intérêt rectangulaire : un vecteur à quatre éléments [ x y largeur hauteur ] est utilisé pour spécifier cet argument d'entrée.

Arguments de sortie

bbox — Détections : les détections sont renvoyées sous la forme d'une matrice de M -par-4 éléments, dont chaque ligne contient le vecteur à quatre éléments [ x y largeur hauteur ].

Fonctions d'objet communes à tous les objets système

  • étape : Pour exécuter l'algorithme de l'objet système
  • release : pour libérer les ressources système
  • reset : pour réinitialiser les états internes de l'objet système.

Code MATLAB pour la reconnaissance faciale

Dans cette section, nous verrons un exemple de reconnaissance faciale utilisant le code MATLAB.

Détection facial

La source

La source

L'étape (Détecteur,I) renverra la valeur de la Boîte englobante contenant [x,y,Hauteur,Largeur] des objets sous détection :

La source

Détection du nez

La source

La source

La description:

  • Le passage de l'argument "Nez" indique que l'objet d'intérêt est le nez.
  • La syntaxe de détection de nez par défaut est vision.CascadeObjectDetector('Nose')
  • Les valeurs de paramètre par défaut transmises à vision.CascadeObjectDetector peuvent être modifiées en fonction de l'image d'entrée.
  • La valeur 'MergeThreshold' peut être remplacée pour éviter plusieurs détections autour de l'objet cible (comme dans l'image ci-dessus).

Détection des yeux

La source

La source

Détection de la bouche

La source

La source

Lisez aussi : Boucle While dans MATLAB : tout ce que vous devez savoir

Emballer

Bien que la technologie de reconnaissance faciale soit bénéfique pour la vérification de l'identité personnelle, elle soulève des problèmes de confidentialité. Étant donné que la technologie utilise l'empreinte faciale d'un individu, elle est souvent considérée comme une violation de la vie privée, de la sûreté et de la sécurité. La reconnaissance faciale à l'aide de MATLAB peut être utilisée dans plusieurs cas où la sécurité est une préoccupation majeure. Des aéroports et des bureaux aux smartphones, la reconnaissance faciale est devenue une partie intégrante de nombreux systèmes et organisations.

Si vous souhaitez en savoir plus sur l'apprentissage automatique, consultez le diplôme PG en apprentissage automatique et IA de IIIT-B & upGrad, conçu pour les professionnels en activité et offrant plus de 450 heures de formation rigoureuse, plus de 30 études de cas et missions, IIIT- Statut B Alumni, plus de 5 projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Qu'est-ce que la reconnaissance faciale ?

La reconnaissance faciale peut être utilisée pour se protéger contre le vol d'identité, ainsi que pour identifier les individus par leur nom. Cependant, étant donné que la reconnaissance faciale est relativement nouvelle et en constante évolution, il est important de comprendre les bases de la reconnaissance faciale afin de l'utiliser efficacement. La reconnaissance faciale fait référence au processus consistant à déterminer si une image de visage appartient à une personne connue. Le problème de la reconnaissance faciale peut être divisé en deux tâches : 1) Détection de visage - localiser le visage dans l'image, 2) Reconnaissance faciale - identification de la personne dont il s'agit.

Qu'est-ce que Matlab ?

Matlab est un langage de programmation pour le calcul numérique. Fondamentalement, c'est un langage de programmation matriciel. Il est beaucoup utilisé dans les calculs scientifiques et techniques. Contrairement aux autres langages de programmation, MATLAB a été conçu pour être un langage matriciel, adapté au calcul sur matrices. Les matrices sont utilisées dans de nombreuses équations différentes, en particulier dans les calculs scientifiques et techniques. Matlab est un langage de programmation de haut niveau doté d'un grand nombre de fonctions. Il est utilisé pour résoudre des problèmes mathématiques, analyser des données et créer des graphiques.

Qu'est-ce que Viola Jones dans Matlab ?

L'algorithme Viola Jones est utilisé pour la détection des visages et la reconnaissance des expressions faciales. L'algorithme Viola Jones est basé sur les histogrammes de gradients orientés (HOG) qui ont été introduits pour la première fois par Paul Viola et Michael Jones en 2001. Il est utilisé dans la vision par ordinateur, l'apprentissage automatique et le traitement d'images. L'algorithme Viola Jones fournit un système complet de détection d'objets et peut être utilisé dans la détection de piétons, la détection d'objets ou la détection humaine. L'algorithme de Viola Jones consiste en une étape d'extraction de caractéristiques, une étape de regroupement et une étape de classification d'objets.