[Vision par ordinateur] Applications pour le visage: détection des visages, comparaison des visages, détection des traits du visage, détection des clignements, détection des corps vivants, détection de la fatigue

Les applications faciales représentent une grande partie du système de vision par ordinateur. Avant que l'apprentissage en profondeur ne devienne populaire, les applications faciales basées sur l'apprentissage automatique traditionnel étaient déjà très matures et il y avait de nombreux scénarios d'application commerciale. Cet article utilise une démo qui peut être exécutée pour illustrer les concepts techniques courants dans les applications pour le visage, notamment la `` détection de visage '', la `` comparaison de visage '', la `` détection de caractérisation du visage (positionnement des fonctionnalités) '', la `` détection des clignements '', le `` corps vivant Détection »et« Détection de fatigue ».

Code source: compte public 

 

Détection des visages

À strictement parler, la détection de visage comprend uniquement la localisation du visage sur la photo, et la détection de visage n'obtient que le cadre rectangulaire (gauche, haut, droit, bas) du visage sur la photo, et il n'y a pas d'autre contenu. De nos jours, la plupart des concepts de "détection des visages" sur Internet sont vagues et contiennent beaucoup de choses. Par exemple, en plus du positionnement qui vient d'être mentionné, il inclut également la comparaison des visages qui sera décrite plus loin.

 

Contraste du visage

Lorsque vous utilisez la technologie de détection des visages pour découvrir que l'image (image vidéo) contient un visage, comment déterminer qui est le visage? Il s'agit de notre application d'autorisation de visage commune. Comparez un visage avec d'autres visages dans la base de données pour voir lequel est le plus similaire au visage déjà dans la base de données. Dans le machine learning traditionnel, le processus de comparaison de visages doit d'abord extraire le code de fonction de visage, trouver un vecteur de fonction pour remplacer l'image RVB de visage d'origine, puis calculer la distance entre les deux vecteurs de fonction de visage pour déterminer si le visage est similaire (dans le machine learning traditionnel L'ingénierie des fonctionnalités peut faire référence à l'article précédent). Si la distance est inférieure à une certaine valeur, elle est considérée comme la même face, et inversement.

 

La figure ci-dessus montre le processus de comparaison des visages dans les méthodes traditionnelles d'apprentissage automatique. Le processus est relativement compliqué et il est nécessaire d'extraire un vecteur de caractéristiques approprié. Cette caractéristique est représentative de l'image de visage RVB d'origine. La comparaison des visages basée sur l'apprentissage en profondeur est relativement simple et peut être directement un processus de bout en bout:

Bien sûr, certaines méthodes consistent à extraire les traits du visage à travers des réseaux de neurones, puis à utiliser des méthodes traditionnelles d'apprentissage automatique pour former des modèles SVM similaires pour la classification.

 

Détection de représentation de visage (emplacement de détection faciale)

Il suffit que les applications générales pour le visage utilisent les deux technologies de `` détection de visage '' et de `` comparaison de visage '' mentionnées ci-dessus, telles que le poinçonnage du visage, la mosaïque automatique du visage, le déverrouillage du visage et d'autres applications. Cependant, dans certaines applications de visage plus complexes, seules la détection et la comparaison de visages ne suffisent pas, comme la détection en direct, la détection de fatigue et d'autres scènes qui seront décrites plus loin. À ces moments, non seulement pour déterminer la position du visage (boîte rectangulaire), mais aussi pour détecter la position des traits du visage, tels que la forme des sourcils, la zone des yeux, la position du nez, la position de la bouche, etc. Avec les données de position des traits du visage, nous pouvons Ces données ont été utilisées pour des applications plus complexes, comme pour juger en temps réel si la personne dans la vidéo clignote, ferme les yeux, parle et regarde vers le bas. La figure suivante montre les résultats de la détection de la caractérisation des visages:

La figure ci-dessus montre 68 points extraits par apprentissage automatique pour représenter un visage, qui sont:

(1) 5 points sur le sourcil gauche

(2) 5 points sur le sourcil droit

(3) 6 points sur l'œil gauche

(4) 6 points sur l'œil droit

(5) 4 points de pont de nez

(6) 5 points sur le bout du nez

(7) 20 points sur les lèvres supérieures / inférieures

(8) Menton 17 points

Nous pouvons obtenir rapidement les points de coordonnées correspondants via des indices (les tranches peuvent être utilisées en Python). Les points de coordonnées représentent la position réelle (unités de pixels) de la représentation du visage dans l'image d'entrée d'origine.

 

Détection des clignements

Après avoir effectué la détection de la caractérisation faciale sur chaque image de la vidéo et obtenu les données de position des traits du visage dans chaque image de la vidéo, nous pouvons déterminer si le clignotement se produit en analysant le degré de fermeture de la zone de l'œil humain (six points formant une ellipse fermée). Alors, comment mesurez-vous la proximité de chaque œil? Selon des recherches antérieures: http://vision.fe.uni-lj.si/cvww2016/proceedings/papers/05.pdf, nous pouvons savoir que le degré de fermeture des yeux peut être jugé par 6 points pour chaque œil:

Lorsque les yeux sont ouverts à fermés, la valeur de l'expression suivante s'approche rapidement de zéro:

La valeur de l'expression ci-dessus EAR (Eye Aspect Ratio) est égale à la somme des longueurs des deux segments de ligne dans la direction verticale divisées par la longueur des segments de ligne dans la direction horizontale * 2. Cette valeur peut approcher zéro au moment de fermer les yeux et revenir à La valeur d'origine. Le processus de modification d'EAR est illustré dans la figure ci-dessous:

Il suffit de surveiller si la valeur de l'EAR fluctue rapidement et s'approche de zéro pour déterminer si les yeux sont fermés et s'il faut récupérer rapidement pour déterminer si les yeux sont ouverts. Si l'intervalle de temps entre la fermeture et l'ouverture des yeux est très court (seulement quelques images vidéo, 25 images par seconde), alors il est considéré comme clignotant.

 

Biopsie

Dans l'application de visage, afin d'empêcher les gens d'utiliser des photos et d'autres faux visages par le biais d'une autorisation, il est généralement nécessaire d'effectuer un filtrage en direct sur les visages de l'image, c'est-à-dire de déterminer si le visage de l'image vidéo actuelle est une personne réelle, plutôt que d'autres substituts tels que des photos. . Grâce à la technologie de détection des clignements présentée précédemment, nous pouvons implémenter un algorithme très simple de «détection du corps vivant». L'algorithme requiert que toutes les autres périodes aléatoires (comme quelques secondes, le temps ne soit pas fixe, pour empêcher les gens d'enregistrer des vidéos pour les forger). La personne clignote. Si la personne sur l'image coopère activement avec les instructions émises par l'algorithme, elle peut être considérée comme une personne réelle sur l'image, sinon il peut s'agir d'un faux visage.

Il convient de noter que la détection en direct peut ne pas être suffisamment sûre uniquement par la méthode ci-dessus. En général, elle peut également être combinée avec d'autres technologies de détection en direct, telles que la détection de la profondeur de la caméra, la détection de la lumière du visage et la classification directe des visages humains à l'aide de la technologie d'apprentissage en profondeur. (Vivant / non vivant).

 

Détection de fatigue

Le scénario d'application de la détection de la fatigue est trop grand, par exemple, il peut être utilisé pour l'avertissement de surveillance de la fatigue du conducteur d'autobus longue distance, l'avertissement de surveillance de la fatigue du personnel de service, etc. Le principe principal est d'utiliser la technologie de détection des clignements présentée ci-dessus pour l'améliorer un peu, et nous pouvons détecter les yeux fermés. Si les yeux fermés sont fermés pendant plus d'une période de temps (comme 1 seconde), alors il est considéré que de la fatigue s'est produite et une alarme est déclenchée. Le jugement de clignement des yeux est très simple, et le jugement des yeux fermés est plus simple.Toutes ces logiques de jugement sont toutes basées sur les données extraites par représentation du visage:

 

Code source de démonstration: sur le compte public

Il doit être clair que la précision de tous les algorithmes de cet article dépend de la qualité de l'apprentissage du modèle, de la précision de la détection des visages, de l'extraction appropriée des caractéristiques des visages et de l'exactitude des résultats de la détection de la caractérisation des visages. C'est le cas du machine learning, la qualité du résultat dépend entièrement de la qualité de la formation du modèle (la qualité de l'extraction des fonctionnalités). Par exemple, dans la démo de cet article, il est facile de voir que la détection de la représentation des visages n'est pas très efficace sur les visages avec des lunettes, et plus de données d'entraînement sont nécessaires à cet égard. Si vous avez des questions, veuillez laisser un message. Si vous êtes intéressé, faites attention au compte public et partagez les articles originaux liés au CV / DL.

Je suppose que tu aimes

Origine www.cnblogs.com/xiaozhi_5638/p/12697035.html
conseillé
Classement