Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Les fondamentaux de la reconnaissance faciale

Depuis des temps immémoriaux, le visage humain a servi de norme d'identification la plus simple. Ainsi, il n'est pas surprenant de voir qu'elle s'avère être la technique d'identification biométrique la plus pratique. Contrairement à d'autres méthodes biométriques comme la parole, les empreintes digitales, la géométrie de la main, l'empreinte de la paume, l'analyse d'un visage ne nécessite pas la coopération active de l'objet en question. La reconnaissance faciale peut être effectuée à partir d'une photo, d'une vidéo ou d'une capture en direct.

La reconnaissance faciale est un terme général donné au processus d'identification ou de vérification des personnes dans les photographies et les vidéos. La méthode comprend la détection, l'alignement, l'extraction de caractéristiques et la reconnaissance.

Malgré plusieurs défis pratiques, la reconnaissance faciale trouve une large utilisation dans divers domaines tels que les soins de santé, l'application de la loi, la réservation de chemin de fer, la sécurité, la domotique et les bureaux.

Dans cet article, vous découvrirez les éléments suivants :

Qu'est-ce que la reconnaissance faciale ?

La reconnaissance faciale est une technique d'identification biométrique dans laquelle le logiciel utilise des algorithmes d'apprentissage en profondeur pour analyser les traits du visage d'un individu et stocker les données. Le logiciel compare ensuite différents visages à partir de photos, de vidéos ou de captures en direct aux visages stockés dans les bases de données et vérifie les identités. Habituellement, le logiciel identifie environ 80 points nodaux distincts sur le visage d'un individu. Les points nodaux servent de points de terminaison pour définir les variables du visage d'un individu. Les variables incluent la forme des lèvres, les yeux, la longueur et la largeur du nez et la profondeur des orbites.

La popularité de la reconnaissance faciale par rapport aux autres techniques biométriques provient du fait qu'elle a généralement tendance à être plus précise et moins intrusive.

Classification de l'algorithme de reconnaissance faciale La reconnaissance faciale est la technique de reconnaissance d'un visage déjà enregistré dans la base de données. Un système de reconnaissance faciale est largement impliqué dans deux tâches :la vérification et Identification .

La vérification vise à répondre à la question :« Est-il la personne qu'il prétend être ? » Lorsqu'un individu prétend être une personne spécifique, le système de vérification trouve son profil dans la base de données. Il compare le visage de la personne à celui du profil présent dans la base de données pour vérifier s'ils correspondent. Il s'agit d'un système de correspondance 1 pour 1, car le système doit faire correspondre le visage de l'individu à un visage spécifique déjà présent dans le profil lié. Ainsi, la vérification est plus rapide que l'identification et plus précise.

En identification de visage, le système essaie de comparer le visage saisi à tous les visages présents dans sa base de données. Il s'agit d'un système de correspondance 1 à n.

Les différentes étapes d'un système de reconnaissance faciale

Parlons des deux étapes d'un système de reconnaissance faciale :enregistrement et reconnaissance .

Dans la première étape ou l'étape d'enregistrement, un ensemble de visages connus est enregistré. L'extracteur de caractéristiques génère ensuite un vecteur de caractéristiques unique pour chacun des visages enregistrés. Le vecteur caractéristique est généré sur la base des caractéristiques faciales uniques de chacun des visages. Le vecteur de caractéristiques extrait, qui est unique pour chaque visage, devient une partie de la base de données enregistrée et peut être utilisé pour référence future.

Dans l'étape de reconnaissance, une image d'entrée est fournie à l'extracteur de caractéristiques pour effectuer une reconnaissance faciale. Ici aussi, l'extracteur de caractéristiques génère un vecteur de caractéristiques unique à l'image de visage d'entrée. Ce vecteur de caractéristiques est ensuite comparé aux vecteurs de caractéristiques déjà disponibles dans la base de données. Le bloc « classification basée sur les caractéristiques » compare la distance entre les caractéristiques faciales du visage d'entrée et les visages enregistrés dans la base de données. Lorsqu'un visage enregistré répond aux critères de correspondance, la classification basée sur les caractéristiques renvoie l'ID de visage correspondant trouvé dans la base de données.

Les éléments constitutifs d'un système de reconnaissance faciale

Les principaux composants d'un système de reconnaissance faciale sont :la détection de visage, la détection de point de repère, la détection de vivacité, le module de reconnaissance faciale (reconnaissance faciale, identification faciale/vérification faciale).

Au début, une image ou une trame d'un flux vidéo est envoyée au module de détection de visage où les visages sont détectés à partir de l'image d'entrée. En sortie, il envoie les coordonnées du cadre de délimitation des visages détectés. Le problème ici est que même si le détecteur de visage localise les visages de l'image et crée la boîte englobante pour chaque visage, il ne garantit pas le bon alignement des visages et les boîtes liées au visage sont sujettes à la gigue. Ainsi, une étape de pré-traitement du visage est nécessaire pour obtenir un vecteur de visage efficace. Cette étape contribue à améliorer la capacité de détection des visages du système.

Le pré-traitement du visage est effectué dans le bloc de détection de point de repère, qui identifie l'emplacement des points de référence (également appelés points de repère de référence) sur le visage comme les yeux, le nez, les lèvres, le menton, la mâchoire. Ces repères de visage détectés sont ensuite compensés pour les changements spatiaux du visage. Cela se fait en identifiant la structure géométrique du visage et en obtenant un alignement canonique basé sur diverses transformations comme la rotation d'échelle de translation. Cela génère une boîte englobante étroite du visage avec des coordonnées canoniques normalisées.

Avant d'envoyer le visage aligné au module de reconnaissance faciale, il est essentiel de vérifier l'usurpation de visage pour s'assurer que le visage provient d'une image ou d'une vidéo en direct et qu'il n'est pas falsifié pour obtenir un accès non autorisé. Le détecteur de vivacité effectue ce contrôle.

L'image est ensuite envoyée au bloc suivant, qui est le bloc de reconnaissance faciale. Ce bloc effectue une série de tâches de traitement avant que la reconnaissance faciale ne soit terminée avec succès. La première étape est le traitement des faces, qui est nécessaire pour gérer les variations intra-classes de la face d'entrée. Il s'agit d'une étape essentielle car nous ne voulons pas que le module de reconnaissance de visage soit distrait par des variations telles que différentes poses, expressions, changements d'éclairage et occlusions présentes dans l'image du visage d'entrée. Une fois que les variations intraclasses de la face d'entrée ont été résolues, la prochaine étape de traitement importante est l'extraction des caractéristiques. La fonction d'un extracteur de caractéristiques a déjà été discutée ci-dessus.

L'étape finale d'un module de reconnaissance faciale est l'étape d'appariement des visages, où une comparaison est effectuée entre les vecteurs de caractéristiques obtenus à la dernière étape et les vecteurs de visage enregistrés dans la base de données. Dans cette étape, la similitude est calculée et un score de similitude est généré qui est ensuite utilisé pour l'identification du visage ou la vérification du visage selon les exigences.

Un exemple de SDK de reconnaissance faciale

Nous utiliserons la solution logicielle de reconnaissance faciale sous licence de PathPartner pour montrer comment mettre en œuvre un système de détection et de reconnaissance faciale précis. Composé d'algorithmes d'apprentissage automatique et de vision par ordinateur, le SDK vous permet d'effectuer six tâches critiques de reconnaissance faciale.

Le SDK se décline en deux variantes :

  1. Variante à faible complexité avec une taille de modèle aussi faible que 10 Mo, adaptée aux terminaux avec une mémoire et une puissance de traitement faibles.
  2. Variante à haute complexité avec une taille de modèle de 90 Mo adaptée aux appareils de périphérie à service complet.

L'algorithme est optimisé sur une gamme de plates-formes embarquées de Texas Instruments, Qualcomm, Intel, Arm, NXP et peut également fonctionner sur les plates-formes de serveur cloud.

Développement d'un système de reconnaissance faciale basé sur CNN

L'approche basée sur CNN est préférée à l'approche non basée sur CNN afin de réduire l'effort de lutte contre les défis tels que l'occlusion et les différentes conditions d'éclairage. Le processus de reconnaissance comprend les étapes suivantes :

Collecte de données

Les ensembles de données accessibles au public ne couvrent pas tous les paramètres d'évaluation qui sont essentiels pour la reconnaissance faciale. Cela nécessite donc une analyse comparative détaillée sur un certain nombre d'ensembles de données standard et internes couvrant un large éventail de variations qui peuvent être utilisées pour l'analyse du visage. Les variantes suivantes sont prises en charge dans ce SDK :pose, illumination, expression, occlusion, sexe, origine, origine ethnique, âge, œil, apparence.

Conception de modèles d'apprentissage en profondeur

La complexité du modèle dépend de l'application de l'utilisateur final. Ce SDK est implémenté dans les systèmes de surveillance des conducteurs (DMS) et les systèmes de présence intelligents.

Système de surveillance du conducteur :afin d'évaluer la vigilance et la concentration du conducteur en temps réel, l'informatique de pointe est nécessaire. Ainsi, un système robuste et de faible complexité est requis. Ici, un modèle d'apprentissage automatique est utilisé pour la détection des visages et la régression des points de repère et un modèle CNN peu profond et profond pour les estimations et les classifications.

Formation et optimisation

Les modules sont pré-formés sur l'ensemble de données qui a été préparé initialement. La solution est testée sur divers ensembles de données open source tels que FDDB, LFW et un ensemble de données personnalisé développé en interne.

Surmonter les différents défis

  1. Variation d'éclairage – afin de surmonter le problème posé par la variation des conditions d'éclairement, deux approches sont adoptées. L'une est la conversion d'images RVB en images de type NIR à l'aide d'approches basées sur le Gantt. Une autre consiste à entraîner le modèle avec des données RVB et à l'affiner avec des images NIR à l'entrée.
  2. Variations de pose et d'expression – si des images de visage sont disponibles à partir d'une vue non frontale, la vue canonique de l'image de visage doit être dérivée d'une ou plusieurs des images disponibles. Ceci est réalisé en estimant le changement de pose par rapport aux angles de la tête sur la base des points de repère, puis en utilisant l'inclinaison, l'étirement, la mise en miroir et d'autres opérations pour obtenir la trajectoire frontale. Cela permet au système de reconnaissance faciale de produire des représentations invariantes de pose et améliore considérablement la précision de la reconnaissance faciale. Afin de lutter contre les effets dus à la variation dans l'expression, l'alignement du visage est effectué dans l'étape de pré-traitement.
  3. Occlusion – actuellement, le SDK est formé pour détecter les visages masqués. Dans ce cas, le modèle est entraîné pour ne fonctionner qu'avec les données du contour des yeux et du front ; Cependant, cette approche donne les meilleurs résultats dans un environnement non contrôlé comme les bureaux lorsqu'un nombre limité de personnes sont enregistrées dans le système.
  4. Variation d'apparence – les différences de coiffures, le vieillissement et l'utilisation de produits cosmétiques peuvent entraîner des différences majeures dans l'apparence des individus. Ainsi, dégradant dans une large mesure la précision de la reconnaissance faciale. Afin de résoudre ce problème, le SDK utilise un schéma de représentation et de correspondance qui résiste aux changements d'apparence.

Conclusion

Aujourd'hui, la reconnaissance faciale est considérée comme la plus naturelle de toutes les mesures biométriques. L'apprentissage en profondeur est devenu le composant central de la plupart des algorithmes de reconnaissance faciale en cours de développement. Les algorithmes de reconnaissance faciale connaissent des progrès exponentiels. Selon un récent rapport du NIST, des gains considérables en termes de précision de la reconnaissance ont été réalisés au cours des cinq dernières années (2013-2018) et dépassent les améliorations obtenues au cours de la période 2010-2013.

Malgré plusieurs défis pratiques, la technologie de reconnaissance faciale est largement utilisée dans divers secteurs tels que la vente au détail, l'automobile, la banque, la santé, le marketing et bien plus encore. En plus d'améliorer la précision de la reconnaissance d'une personne, les algorithmes de reconnaissance faciale étendent leur portée dans la détection des émotions et des comportements des visages.


Embarqué

  1. Le 555 IC
  2. La formule quadratique
  3. Windows IoT :porte de reconnaissance faciale
  4. Les fondamentaux de la fabrication de circuits imprimés
  5. Les bases de l'application de vannes électrohydrauliques
  6. Perturber ou mourir ? Commencez par les fondamentaux
  7. Les fondamentaux d'un centre d'usinage vertical (VMC)
  8. Principes de base des lames de cisaillement :les effets de la qualité de la lame sur les performances de cisaillement
  9. Les principes fondamentaux du zingage et ses avantages associés