J'ai remarqué l'une des bibliothèques d'apprentissage automatique C ++ Python dlib. Python a une puissante bibliothèque appelée Scikit-learn, Pensez-y comme l'une de vos options.
Guide de sélection d'algorithmes pour la bibliothèque d'apprentissage automatique dlib C'était dans la figure.
Ceci est un guide pour scicit-learn ![Choosing the right estimator] (http://scikit-learn.org/stable/_static/ml_map.png)
--SlideShare Détection d'organes faciaux par 20160417dlib
YouTube [dlib vs OpenCV face detection] (https://www.youtube.com/watch?v=LsK0hzcEyHI)
YouTube Facial Landmark Detection
C++
Le blog officiel décrit la nouvelle API Deep Learning en version 19.0
Python
[Ubuntu] [Python] Comparaison de la détection de visage entre dlib et OpenCV Détection de visage Python
Reconnaissance faciale à l'aide de dlib pour la vidéo acquise à partir de la caméra. Détection de visage Python
Détection de visage avec Python + dlib Détection de visage Python
Résumé de la détection de visage et des résultats avec OpenCV, dlib et OpenFace Détection de visage Python
recherche sélective en utilisant dlib Python [Ubuntu] [Python] Suivi d'objets à l'aide de dlib
C#
Dlib FaceLandmark Detector #Asset Adcare qui reconnaît les visages de chat avec HoloLens
[https://enoxsoftware.com/dlibfacelandmarkdetector/] --Il semble qu'il existe une détection de point d'organe facial humain et une détection de point d'organe facial de chat.
SlideShare Détection d'organes faciaux par 20160417dlib
La détection d'organes faciaux permet de connaître les expressions faciales, les clignements, les mouvements de la bouche, etc. en obtenant les positions des yeux, du nez, de la bouche, etc. Il est connu comme une fonction indispensable lors de la reconnaissance faciale d'une personne. Nous sommes à une époque où les bibliothèques open source sont si enrichissantes.
Sous Linux, vous pouvez l'installer en suivant les étapes du site suivant. https://github.com/davisking/dlib
Cependant, je pense qu'il y a des gens qui veulent l'utiliser sous Windows, je vais donc décrire la procédure suivante.
environnement: Windows7
procédure:
Invite Python > > > import dlib Si l'erreur ne se produit pas, l'installation est réussie.
Téléchargez des exemples de programmes standard depuis github avec [Download Zip] https://github.com/davisking/dlib Extrayez le fichier zip téléchargé
Quatre. Exécution du script de python_example Invite de commande > cd python_example Invite de commande > python face_detector.py Nom du fichier image avec face
Invite de commandes > python face_landmark_detection.py shape_predictor_68_face_landmarks.dat .. \ examples \ faces
shape_predictor_68_face_landmarks.dat Étant donné que la taille du fichier de est très grande, vous devrez attendre un moment immédiatement après avoir exécuté la commande.
face_landmark_detection.py https://github.com/mit-nlp/MITIE/blob/master/dlib/python_examples/face_landmark_detection.py Si vous regardez, le traitement pour chaque visage trouvé dans chaque image (affichage du résultat de la détection d'organes faciaux haute performance) Vous pouvez voir que le programme n'est pas trop facile à comprendre.
https://github.com/davisking/dlib/tree/master/python_examples
Premièrement, si vous incluez la commande suivante, dans la plupart des cas, elle vous montrera l'utilisation correcte.
$ python face_alignment.py
Call this program like this:
./face_alignment.py shape_predictor_5_face_landmarks.dat ../examples/faces/bald_guys.jpg
You can download a trained facial shape predictor from:
http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
$
Il dit d'obtenir le fichier de données, alors obtenez-le avec wget. Puis décompressez.
$ wget http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
--2017-11-08 00:19:30-- http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
Resolving dlib.net (dlib.net)... 107.180.26.78
Connecting to dlib.net (dlib.net)|107.180.26.78|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5706710 (5.4M)
Saving to: ‘shape_predictor_5_face_landmarks.dat.bz2’
shape_predictor_5_f 100%[===================>] 5.44M 164KB/s in 38s
2017-11-08 00:20:09 (145 KB/s) - ‘shape_predictor_5_face_landmarks.dat.bz2’ saved [5706710/5706710]
$
Après cela, il est bon d'exécuter le script python avec l'argument de l'exemple.
./face_alignment.py shape_predictor_5_face_landmarks.dat ../examples/faces/bald_guys.jpg
Après cela, l'image d'entrée peut être remplacée.
En faisant cela, vous pouvez vous sentir libre d'essayer python_example. https://github.com/davisking/dlib/blob/master/python_examples/face_alignment.py
Vous trouverez ci-dessous un affichage de l'utilisation d'un tel script sur la ligne de commande.
$ ./cnn_face_detector.py
Call this program like this:
./cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/*.jpg
You can get the mmod_human_face_detector.dat file from:
http://dlib.net/files/mmod_human_face_detector.dat.bz2
$ ./face_alignment.py
Call this program like this:
./face_alignment.py shape_predictor_5_face_landmarks.dat ../examples/faces/bald_guys.jpg
You can download a trained facial shape predictor from:
http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
$ ./face_clustering.py
Call this program like this:
./face_clustering.py shape_predictor_5_face_landmarks.dat dlib_face_recognition_resnet_model_v1.dat ../examples/faces output_folder
You can download a trained facial shape predictor and recognition model from:
http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
$ ./face_landmark_detection.py
Give the path to the trained shape predictor model as the first argument and then the directory containing the facial images.
For example, if you are in the python_examples folder then execute this program by running:
./face_landmark_detection.py shape_predictor_68_face_landmarks.dat ../examples/faces
You can download a trained facial shape predictor from:
http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
face_alignment.py est Détecter le visage Mettre les points des organes du visage Normaliser la position de l'image et l'afficher dans la fenêtre. Lorsque la clé de retour est émise, l'image du visage suivant s'affiche.
$ ./face_alignment.py shape_predictor_5_face_landmarks.dat ../examples/faces/bald_guys.jpg
face_clustering.py Détectez le visage dans l'image dans le dossier de l'image d'entrée et calculez la quantité de fonction pour chaque Clustering basé sur ses fonctionnalités Enregistrez les images du plus grand cluster dans le dossier de sortie.
$ ./face_clustering.py shape_predictor_5_face_landmarks.dat dlib_face_recognition_resnet_model_v1.dat ../examples/faces output_folder
Processing file: ../examples/faces/bald_guys.jpg
Number of faces detected: 24
Processing file: ../examples/faces/2009_004587.jpg
Number of faces detected: 2
Processing file: ../examples/faces/2008_002506.jpg
Number of faces detected: 3
Processing file: ../examples/faces/2008_002079.jpg
Number of faces detected: 6
Processing file: ../examples/faces/2008_004176.jpg
Number of faces detected: 7
Processing file: ../examples/faces/dogs.jpg
Number of faces detected: 0
Processing file: ../examples/faces/2008_007676.jpg
Number of faces detected: 7
Processing file: ../examples/faces/2008_002470.jpg
Number of faces detected: 6
Processing file: ../examples/faces/2008_001009.jpg
Number of faces detected: 2
Processing file: ../examples/faces/2007_007763.jpg
Number of faces detected: 7
Processing file: ../examples/faces/2008_001322.jpg
Number of faces detected: 3
Number of clusters: 45
Biggest cluster id number: 0
Number of faces in biggest cluster: 6
Indices of images in the biggest cluster: [0, 1, 5, 11, 21, 22]
Saving faces in largest cluster to output folder...
$
dlib documentation http://dlib.net/python/index.html http://dlib.net/ La documentation dlib semble de mieux en mieux.
Il existe deux façons d'utiliser le détecteur de visage.
detector = dlib.get_frontal_face_detector()
dets = detector(img, 1)
detector = dlib.get_frontal_face_detector()
#Conversion RVB(Convertir du format opencv au format skimage)
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# frontal_face_la classe du détecteur est rectangulaire,But,Renvoie le résultat du sous-détecteur
dets, scores, idx = detector.run(img_rgb, 0)
for det in dets:
cv2.rectangle(img, (det.left(), det.top()), (det.right(), det.bottom()), (0, 0, 255))
Cela dets Les deux cv :: Rect () sont (x, y, w, h) pour cv2 Notez qu'il est différent de.
dlib.rectangle(left, top, right, bottom))
Il semble se convertir à ce type de données comme ceci.
Selon la description ci-dessous, detector.run (img_rgb, numUpSampling) La taille de détection minimale à numUpSampling = 0 semble être de 80x80 pixels. http://dlib.net/face_detection_ex.cpp.html
Si vous souhaitez détecter avec 40x40 pixels, définissez numUpSampling sur 1. Si vous souhaitez détecter avec 20x20 pixels, définissez numUpSampling sur 2. Il semble que vous en ayez besoin. Chaque fois que vous augmentez numUpSampling, la zone de l'image est quadruplée et le temps de traitement est quadruplé.
https://github.com/davisking/dlib/blob/master/python_examples/face_recognition.py Il semble donc que vous calculiez le montant de la fonctionnalité pour la correspondance de visage, Je ne trouve pas le calcul de l'appariement de visage lui-même.
Pour cette raison, une bibliothèque pour l'appariement des visages a été développée séparément sur le site suivant. Veuillez noter que les noms de fichier de script peuvent être identiques. https://github.com/ageitgey/face_recognition
Si vous n'avez pas de blog de commentaires japonais sur l'implémentation Python de dlib, n'ayez pas peur. Démarrez le menu Démarrer [Python (x, y)] [Documentation] [Serveur de documentation Python]. [open browser] Lorsque vous exécutez Sur le navigateur (Destination de l'installation Python) \ site-packages Si vous y trouvez dlib, vous pouvez voir toutes les fonctionnalités fournies par l'interface Python.
Si vous utilisez Linux au lieu de Python (x, y) $ /usr/lib/python2.7/pydoc.py -p numéro de port &
Démarrez le serveur en tant que Vous pouvez l'ouvrir dans votre navigateur.
dlib fournit des outils pour créer des détecteurs d'objets (Note). http://dlib.net/train_object_detector.py.html Voir la description dans. ./train_object_detector.py ../examples/faces
Il existe un fichier nommé training.xml dans le répertoire ../examples/faces On suppose qu'il est placé dans le format de fichier suivant. Lorsque vous affichez ce fichier xml avec un navigateur, le cadre du visage sera affiché à quelle position dans l'image. https://github.com/davisking/dlib/blob/master/examples/faces/training.xml
Les images se trouvent également dans le répertoire ../examples/faces.
dlib.train_simple_object_detector(training_xml_path, "detector.svm", options)
De cette manière, le fichier de résultats d'apprentissage sera créé en tant que fichier detecteur.svm.
detector = dlib.simple_object_detector("detector.svm")
dets = detector(img)
Vous pouvez obtenir une liste de rectangles détectés comme celui-ci.
L'article suivant explique la série de tâches d'apprentissage.
Étant donné que la détection d'objets de dlib échantillonne également en interne, il est seulement nécessaire de collecter des images et des rectangles qui sont des données positives, et la précision est bonne, donc c'est assez bon. Je pense qu'il a peu de paramètres et peut détecter des objets. La mémoire et le processeur sont stupides mais charmants.
De plus, vous souhaitez créer un détecteur d'objet avec vos propres données d'image. La procédure est décrite dans l'article suivant.
Les fichiers de modèle formés se trouvent aux emplacements suivants.
[dlib-models] (https://github.com/davisking/dlib-models#dlib-models)
mmod_front_and_rear_end_vehicle_detector.dat.bz2 mmod_rear_end_vehicle_detector.dat.bz2 mmod_dog_hipsterizer.dat.bz2
La façon dont se fait l'apprentissage des organes faciaux de Dlib est décrite dans les commentaires du script lui-même. http://dlib.net/face_landmark_detection.py.html
# The face detector we use is made using the classic Histogram of Oriented
# Gradients (HOG) feature combined with a linear classifier, an image pyramid,
# and sliding window detection scheme. The pose estimator was created by
# using dlib's implementation of the paper:
# One Millisecond Face Alignment with an Ensemble of Regression Trees by
# Vahid Kazemi and Josephine Sullivan, CVPR 2014
# and was trained on the iBUG 300-W face landmark dataset (see
# https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/):
# C. Sagonas, E. Antonakos, G, Tzimiropoulos, S. Zafeiriou, M. Pantic.
# 300 faces In-the-wild challenge: Database and results.
# Image and Vision Computing (IMAVIS), Special Issue on Facial Landmark Localisation "In-The-Wild". 2016.
# You can get the trained model file from:
# http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2.
# Note that the license for the iBUG 300-W dataset excludes commercial use.
# So you should contact Imperial College London to find out if it's OK for
# you to use this model file in a commercial product.
[One Millisecond Face Alignment with an Ensemble of Regression Trees] (https://pdfs.semanticscholar.org/d78b/6a5b0dcaa81b1faea5fb0000045a62513567.pdf)
Github How to train shape_predictor to obtain shape_predictor_68_face_landmarks.dat
I used the training data here: http://dlib.net/files/data/ibug_300W_large_face_landmark_dataset.tar.gz. It's just 300-W, but with mirrored images added in.
--Il existe une détection de visage de chat et une détection de point d'organe.
--Le profil n'est pas détecté ――Où se trouve le détecteur de profil? Quelqu'un le fait-il?
A Clean C++11 Deep Learning API --qiita détection d'objet basée sur dlib CNN
Essayez la détection de visage DNN de Dlib 19.2 avec une webcam (sous Windows)
Extrait du script suivant. https://github.com/davisking/dlib/blob/master/python_examples/face_recognition.py
L'instance suivante win et ses méthodes peuvent être remplacées par cv2.imshow (), cv2.rectangle (), etc. Il y a une partie de dlib que vous n'avez pas besoin d'utiliser OpenCV.
win = dlib.image_window()
img = io.imread(f)
win.clear_overlay()
win.set_image(img)
dets = detector(img, 1)
for k, d in enumerate(dets):
shape = sp(img, d)
win.clear_overlay()
win.add_overlay(d)
win.add_overlay(shape)
dlib.hit_enter_to_continue()
http://dlib.net/python/index.html#dlib.correlation_tracker
https://github.com/gdiepen/face-recognition/blob/master/track%20multiple%20faces/demo%20-%20track%20multiple%20faces.py
Article d'introduction programme de reconnaissance de visage basé sur dlib face_recognition
Comme vous pouvez le voir dans la source ci-dessous, boost :: python est utilisé. https://github.com/davisking/dlib/blob/master/tools/python/src/object_detection.cpp
#include <boost/python/args.hpp>
using namespace boost::python;
--OpenCV a une bibliothèque qui demande des repères faciaux, mais elle n'est pas encore répandue. - https://docs.opencv.org/3.4/dc/d63/classcv_1_1face_1_1FacemarkLBF.html - Tutorials for face module Face landmark detection in an image - Facemark : Facial Landmark Detection using OpenCV
Il existe un site de blog dlib. Ici, l'explication est écrite sur la fonction implémentée.
http://blog.dlib.net/
J'ai changé le mémo de correspondance de visage d'OpenCV lui-même écrit ici en un élément indépendant.
Article supplémentaire à "OpenCV 3.3.0 Face Recognition with OpenCV"
Enquête sur l'estimation de l'orientation du visage Enquête sur la mise en œuvre de la correspondance de visage open source
Traduction japonaise de Dlib README.md
Création et installation de Dlib 19.15 sur Ubuntu
Au moment de la rédaction de ce post-scriptum, il y avait des options plus pratiques pour la détection des visages et la correspondance des visages. Au moment de la rédaction de cet article pour la première fois, les fonctionnalités liées à la correspondance des visages d'OpenCV faisaient défaut en termes de niveau supérieur de l'open source. En effet, la bibliothèque d'OpenCV elle-même, qui affiche les repères des visages et effectue la correspondance des visages, ne reflète pas pleinement les résultats de l'apprentissage en profondeur. Cependant, à partir de 2020, la bibliothèque de visages d'OpenVino est substantielle et divers modèles Model ZOO qui ont été convertis par l'OpenVino's Model Optimizer peuvent être utilisés dans le cadre d'OpenCV. Par conséquent, à un moment donné, OpenVino devient une situation qui ne peut être ignorée de la situation proche du choix de dlib. Veuillez regarder les tendances à chaque fois pour voir ce qui se passera dans le futur. L'augmentation de la capacité d'appariement du visage de la personne orientale dépendra de l'utilisation du visage de la personne orientale pour l'apprentissage dans chaque modèle. L'amélioration des performances des implémentations open source peut être une contre-mesure contre l'impact social excessif des développeurs de bibliothèques commerciales.
Recommended Posts