La traductrice Elena Bornovolokova spécialement pour Netology a adapté un article de Fayzan Shaykh sur la façon de créer un modèle de reconnaissance faciale et dans quels domaines il peut être appliqué.Présentation
Ces dernières années, la vision par ordinateur a gagné en popularité et s'est démarquée dans une direction distincte. Les développeurs créent de nouvelles applications utilisées dans le monde entier.
Dans ce sens, je suis attiré par le concept d'open source. Même les géants de la technologie sont prêts à partager de nouvelles découvertes et innovations avec tout le monde, afin que la technologie ne reste pas le privilège des riches.
L'une de ces technologies est la reconnaissance faciale. Lorsqu'elle est utilisée correctement et de manière éthique, cette technologie peut être appliquée dans de nombreux domaines de la vie.
Dans cet article, je vais vous montrer comment créer un algorithme de reconnaissance faciale efficace à l'aide d'outils open source. Avant de passer à ces informations, je veux que vous vous prépariez et que vous vous inspiriez en regardant cette vidéo:
Reconnaissance faciale: applications potentielles
Voici quelques domaines d'application potentiels de la technologie de reconnaissance faciale.
Reconnaissance faciale dans les réseaux sociaux . Facebook a remplacé le balisage manuel des images par des suggestions de balises générées automatiquement pour chaque image téléchargée sur la plateforme. Facebook utilise un algorithme de reconnaissance faciale simple pour analyser les pixels de l'image et la comparer avec leurs utilisateurs respectifs.
Reconnaissance faciale en sécurité . Un exemple simple d'utilisation de la technologie de reconnaissance faciale pour protéger les données personnelles est le déverrouillage de votre smartphone «en face». Cette technologie peut également être implémentée dans le système d'accès: une personne regarde la caméra et détermine si elle doit y entrer ou non.
Reconnaissance faciale pour compter le nombre de personnes . La technologie de reconnaissance faciale peut être utilisée pour compter le nombre de personnes assistant à un événement (comme une conférence ou un concert). Au lieu de compter manuellement les participants, nous installons une caméra qui peut capturer des images des visages des participants et donner le nombre total de visiteurs. Cela vous aidera à automatiser le processus et à gagner du temps.

Configuration du système: configuration matérielle et logicielle requise
Considérez comment nous pouvons utiliser la technologie de reconnaissance faciale en contactant les outils open source à notre disposition.
J'ai utilisé les outils suivants que je vous recommande:
- Webcam (Logitech C920) pour la création d'un modèle de reconnaissance faciale en temps réel sur un ordinateur portable Lenovo E470 ThinkPad (Core i5 7e génération). Vous pouvez également utiliser l'appareil photo ou le caméscope intégré de votre ordinateur portable avec tout système approprié pour l'analyse vidéo en temps réel au lieu de ceux que j'ai utilisés.
- Il est préférable d'utiliser un processeur graphique pour un traitement vidéo plus rapide.
- Nous avons utilisé le système d'exploitation Ubuntu 18.04 avec tous les logiciels nécessaires.
Avant de poursuivre la construction de notre modèle de reconnaissance faciale, nous analyserons ces points plus en détail.
Étape 1: configuration matérielle
Vérifiez si la caméra est correctement configurée. Avec Ubuntu, c'est simple: voyez si l'appareil est reconnu par le système d'exploitation. Pour ce faire, procédez comme suit:
- Avant de connecter la webcam à l'ordinateur portable, vérifiez tous les périphériques vidéo connectés en tapant
ls /dev/video*
à l'invite de commande. Par conséquent, une liste de tous les périphériques vidéo connectés au système apparaît. 
- Connectez la webcam et relancez la commande. Si la webcam est connectée correctement, le nouveau périphérique sera reflété à la suite de la commande.

- Vous pouvez également utiliser le logiciel de webcam pour vérifier son bon fonctionnement. Ubuntu peut utiliser le programme Cheese pour cela.

Étape 2: configuration du logiciel
Étape 2.1: installer PythonLe code de cet article a été écrit en utilisant Python (version 3.5). Pour installer Python, je recommande d'utiliser
Anaconda , une distribution Python populaire pour le traitement et l'analyse des données.
Étape 2.2: Installez OpenCVOpenCV est une bibliothèque open source conçue pour créer des applications de vision par ordinateur. L'installation d'OpenCV se fait à l'aide de
pip
:
pip3 install opencv-python
Étape 2.3: définir l'API face_recognitionNous utiliserons l'
face_recognition API
, qui est considérée comme l'API de reconnaissance de visage Python la plus simple au monde. Pour installer, utilisez:
pip install dlib pip install face_recognition
Implémentation
Après avoir configuré le système, nous procédons à la mise en œuvre. Pour commencer, nous allons créer un programme puis expliquer ce que nous avons fait.
Procédure pas à pas
Créez un fichier
face_detector.py
, puis copiez le code ci-dessous:
Exécutez ensuite ce fichier Python en tapant:
python face_detector.py
Si tout fonctionne correctement, une nouvelle fenêtre s'ouvrira avec le mode de reconnaissance des visages lancé en temps réel.
Pour résumer et expliquer ce que notre code a fait:
- Tout d'abord, nous avons indiqué le matériel sur lequel la vidéo sera analysée.
- Nous avons ensuite réalisé une capture vidéo en temps réel image par image.
- Ensuite, chaque image a été traitée et l' emplacement de tous les visages dans l'image a été extrait .
- En conséquence, ces images ont été reproduites sous forme de vidéo avec une indication de l'emplacement des visages.
Exemple d'application de reconnaissance faciale
Ce n'est pas tout le plaisir qui se termine. Nous ferons encore une chose sympa: nous allons créer un exemple d'application à part entière basé sur le code ci-dessus. Nous apporterons de petites modifications au code et tout sera prêt.
Supposons que vous souhaitiez créer un système automatisé à l'aide d'un caméscope pour suivre où se trouve actuellement l'enceinte. Selon sa position, le système fait pivoter la caméra de sorte que le haut-parleur reste toujours au centre du cadre.
La première étape consiste à créer un système qui identifie la ou les personnes dans la vidéo et se concentre sur l'emplacement du locuteur.

Voyons comment procéder. À titre d'exemple, j'ai sélectionné une vidéo sur YouTube avec un discours des intervenants de la conférence DataHack Summit 2017.
Tout d'abord, importez les bibliothèques nécessaires:
import cv2 import face_recognition
Ensuite, nous lisons la vidéo et définissons la durée:
input_movie = cv2.VideoCapture("sample_video.mp4") length = int(input_movie.get(cv2.CAP_PROP_FRAME_COUNT))
Après cela, nous créons un fichier de sortie avec la résolution et la fréquence d'images nécessaires similaires à celles du fichier d'entrée.
Nous chargeons l'image du haut-parleur comme échantillon pour la reconnaître sur la vidéo:
image = face_recognition.load_image_file("sample_image.jpeg") face_encoding = face_recognition.face_encodings(image)[0] known_faces = [ face_encoding, ]
Une fois terminé, nous entamons le cycle qui sera:
- Extraire l'image de la vidéo.
- Trouvez tous les visages et identifiez-les.
- Créez une nouvelle vidéo qui combinera le cadre d'origine avec l'emplacement du visage de l'orateur avec une signature.
Regardons le code qui exécutera ceci:
Le code vous donnera ce résultat:
Des éditeurs
Cours de netologie sur le sujet: