Ich bemerkte eine der maschinell lernenden C ++ Python-Bibliotheken dlib. Python hat eine leistungsstarke Bibliothek namens Scikit-learn. Betrachten Sie es als eine Ihrer Optionen.
Auswahlhilfe für den dlib-Algorithmus der Bibliothek für maschinelles Lernen Es war in der Figur.
Dies ist eine Anleitung zum Scicit-Learn ![Choosing the right estimator] (http://scikit-learn.org/stable/_static/ml_map.png)
--SlideShare Erkennung von Gesichtsorganen bis 20160417dlib
YouTube [dlib vs OpenCV face detection] (https://www.youtube.com/watch?v=LsK0hzcEyHI)
YouTube Facial Landmark Detection
C++
Der offizielle Blog beschreibt die neue Deep Learning API in Version 19.0
Python
[Ubuntu] [Python] Gesichtserkennungsvergleich zwischen dlib und OpenCV Gesichtserkennungs-Python
Gesichtserkennung mit dlib für das von der Kamera aufgenommene Video. Gesichtserkennung Python
Gesichtserkennung mit Python + dlib Gesichtserkennung Python
Zusammenfassung der Gesichtserkennung und der Ergebnisse mit OpenCV, dlib und OpenFace Gesichtserkennung Python
Selektive Suche mit dlib Python [Ubuntu] [Python] Objektverfolgung mit dlib
Zeigen Sie das Ergebnis der Gesichtsmarkierungserkennung von dlib in Echtzeit mit matplotlib an
C#
Starten der App zur Erkennung von Gesichtsorganen mit DlibFaceLandmarkDetector in Unity
Dlib FaceLandmark Detector #Asset Adcare, der Katzengesichter mit HoloLens erkennt
[https://enoxsoftware.com/dlibfacelandmarkdetector/]
Es scheint, dass es eine Erkennung menschlicher Organpunkte und eine Erkennung von Katzenorganen gibt.
SlideShare Erkennung von Gesichtsorganen bis 20160417dlib
Die Gesichtsorganerkennung wird verwendet, um Gesichtsausdrücke, Blinzeln, Mundbewegungen usw. zu erkennen, indem die Positionen der Augen, der Nase, des Mundes usw. ermittelt werden. Es ist als unverzichtbare Funktion bei der Gesichtserkennung einer Person bekannt. Wir befinden uns in einer Zeit, in der Open Source-Bibliotheken so erfüllend sind.
Unter Linux können Sie es installieren, indem Sie die Schritte auf der folgenden Site ausführen. https://github.com/davisking/dlib
Ich denke jedoch, dass es Leute gibt, die es unter Windows verwenden möchten, daher werde ich das folgende Verfahren beschreiben.
Umgebung: Windows7
Verfahren:
Python-Eingabeaufforderung > > > dlib importieren Wenn der Fehler nicht auftritt, ist die Installation erfolgreich.
Laden Sie Standard-Beispielprogramme von github mit [Download Zip] herunter https://github.com/davisking/dlib Extrahieren Sie die heruntergeladene Zip-Datei
Vier. Ausführen des Skripts von python_example Eingabeaufforderung > cd python_example Eingabeaufforderung > python face_detector.py Name der Bilddatei mit Gesicht
Eingabeaufforderung > python face_landmark_detection.py shape_predictor_68_face_landmarks.dat .. \ examples \ Gesichter
shape_predictor_68_face_landmarks.dat Da die Dateigröße von sehr groß ist, müssen Sie unmittelbar nach der Ausführung des Befehls eine Weile warten.
face_landmark_detection.py https://github.com/mit-nlp/MITIE/blob/master/dlib/python_examples/face_landmark_detection.py Wenn Sie sich die Verarbeitung für jedes Gesicht in jedem Bild ansehen (Anzeige des Ergebnisses der Hochleistungserkennung von Gesichtsorganen) Sie können sehen, dass das Programm nicht zu einfach zu verstehen ist.
https://github.com/davisking/dlib/tree/master/python_examples
Wenn Sie den folgenden Befehl einfügen, wird in den meisten Fällen die korrekte Verwendung angezeigt.
$ 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
$
Es heißt, die Datendatei abzurufen, also mit wget abrufen. Dann entpacken.
$ 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]
$
Danach ist es gut, das Python-Skript mit dem Argument des Beispiels auszuführen.
./face_alignment.py shape_predictor_5_face_landmarks.dat ../examples/faces/bald_guys.jpg
Danach kann das Eingabebild ersetzt werden.
Auf diese Weise können Sie python_example ausprobieren. https://github.com/davisking/dlib/blob/master/python_examples/face_alignment.py
Unten sehen Sie, wie Sie ein solches Skript in der Befehlszeile verwenden.
$ ./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 ist Gesicht erkennen Löschen Sie die Organpunkte im Gesicht Normalisieren Sie die Position des Bildes und zeigen Sie es im Fenster an. Wenn Sie die Eingabetaste eingeben, wird das nächste Gesichtsbild angezeigt.
$ ./face_alignment.py shape_predictor_5_face_landmarks.dat ../examples/faces/bald_guys.jpg
face_clustering.py Erkennen Sie das Gesicht im Bild im Eingabebildordner und berechnen Sie den jeweiligen Feature-Betrag Clustering basierend auf seinen Funktionen Speichern Sie die Bilder im größten Cluster im Ausgabeordner.
$ ./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/ Die dlib-Dokumentation scheint immer besser zu werden.
Es gibt zwei Möglichkeiten, den Gesichtsdetektor zu verwenden.
detector = dlib.get_frontal_face_detector()
dets = detector(img, 1)
detector = dlib.get_frontal_face_detector()
#RGB-Konvertierung(Konvertieren Sie vom OpenCV-Format in das Skimage-Format)
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# frontal_face_Die Detektorklasse ist rechteckig,Ergebnis,Gibt das Ergebnis des Subdetektors zurück
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))
Das geht verloren Beide cv :: Rect () sind (x, y, w, h) für cv2 Beachten Sie, dass es sich von unterscheidet.
dlib.rectangle(left, top, right, bottom))
Es scheint so in diesen Datentyp zu konvertieren.
Entsprechend der folgenden Beschreibung detector.run (img_rgb, numUpSampling) Die minimale Erkennungsgröße bei numUpSampling = 0 scheint 80 x 80 Pixel zu betragen. http://dlib.net/face_detection_ex.cpp.html
Wenn Sie mit 40 x 40 Pixel erkennen möchten, setzen Sie numUpSampling auf 1. Wenn Sie mit 20 x 20 Pixel erkennen möchten, setzen Sie numUpSampling auf 2. Es scheint, dass Sie müssen. Jedes Mal, wenn Sie numUpSampling erhöhen, wird der Bildbereich vervierfacht und die Verarbeitungszeit vervierfacht.
https://github.com/davisking/dlib/blob/master/python_examples/face_recognition.py Es scheint also, dass Sie den Funktionsbetrag für die Gesichtsanpassung berechnen. Ich kann die Berechnung der Gesichtsübereinstimmung selbst nicht finden.
Aus diesem Grund wurde an der folgenden Stelle eine Bibliothek für die Gesichtserkennung separat entwickelt. Bitte beachten Sie, dass die Skriptdateinamen möglicherweise identisch sind. https://github.com/ageitgey/face_recognition
Wenn Sie keinen japanischen Kommentar-Blog über die Python-Implementierung von dlib haben, haben Sie keine Angst. Starten Sie das Startmenü [Python (x, y)] [Dokumentation] [Python-Dokumentationsserver]. [open browser] Wenn Sie ausführen Im Browser (Python-Installationsziel) \ Site-Pakete Wenn Sie dlib darin finden, können Sie alle Funktionen der Python-Oberfläche anzeigen.
Wenn Sie Linux anstelle von Python verwenden (x, y) $ /usr/lib/python2.7/pydoc.py -p Portnummer &
Starten Sie den Server als Sie können es in Ihrem Browser öffnen.
dlib bietet Tools zum Erstellen von Detektoren für Objekte (Hinweis). http://dlib.net/train_object_detector.py.html Siehe die Beschreibung in. ./train_object_detector.py ../examples/faces
Im Verzeichnis ../examples/faces befindet sich eine Datei mit dem Namen training.xml Es wird davon ausgegangen, dass es im folgenden Dateiformat abgelegt ist. Wenn diese XML-Datei in einem Browser angezeigt wird, wird der Gesichtsrahmen an welcher Position im Bild angezeigt. https://github.com/davisking/dlib/blob/master/examples/faces/training.xml
Bilder befinden sich auch im Verzeichnis ../examples/faces.
dlib.train_simple_object_detector(training_xml_path, "detector.svm", options)
Auf diese Weise wird die Lernergebnisdatei als detector.svm-Datei erstellt.
detector = dlib.simple_object_detector("detector.svm")
dets = detector(img)
Sie können eine Liste der erkannten Rechtecke wie folgt erhalten.
Der folgende Artikel erläutert die Reihe der Lernaufgaben.
Da die Objekterkennung von dlib auch intern abtastet, müssen nur Bilder und Rechtecke erfasst werden, bei denen es sich um positive Daten handelt. Die Genauigkeit ist gut, daher ist sie recht gut. Ich denke, er hat nur wenige Parameter und kann Objekte erkennen. Speicher und CPU sind dumm, aber charmant.
Darüber hinaus möchten Sie tatsächlich einen Objektdetektor mit Ihren eigenen Bilddaten erstellen. Die Vorgehensweise wird im nächsten Artikel beschrieben.
Die trainierten Modelldateien befinden sich an den folgenden Speicherorten.
[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
Wie Dlibs eigenes Lernen der Gesichtsorgane durchgeführt wird, wird in den Kommentaren des Skripts selbst beschrieben. 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.
Es gibt Katzengesichtserkennung und Organpunkterkennung.
--Profil wird nicht erkannt ――Wo befindet sich der Profildetektor? Schafft es jemand?
A Clean C++11 Deep Learning API --qiita dlib CNN-basierte Objekterkennung
Versuchen Sie die DNN-Gesichtserkennung von Dlib 19.2 mit einer Webcam (unter Windows)
Auszug aus dem folgenden Skript. https://github.com/davisking/dlib/blob/master/python_examples/face_recognition.py
Die folgende Instanz win und ihre Methoden können durch cv2.imshow (), cv2.rectangle () usw. ersetzt werden. Es gibt einen Teil von dlib, für den Sie OpenCV nicht verwenden müssen.
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
Einführungsartikel dlib-basiertes Gesichtsanpassungsprogramm face_recognition
Wie Sie der folgenden Quelle entnehmen können, wird boost :: python verwendet. https://github.com/davisking/dlib/blob/master/tools/python/src/object_detection.cpp
#include <boost/python/args.hpp>
using namespace boost::python;
--OpenCV verfügt über eine Bibliothek, in der nach Gesichtspunkten gefragt wird, die jedoch noch nicht weit verbreitet ist. - 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
Es gibt eine dlib-Blog-Site. Hier wird die Erklärung über die implementierte Funktion geschrieben.
http://blog.dlib.net/
Ich habe das hier geschriebene Memo of Face Matching von OpenCV selbst in ein unabhängiges Element geändert.
Ergänzender Artikel zu "OpenCV 3.3.0 Gesichtserkennung mit OpenCV"
Untersuchung der Schätzung der Gesichtsorientierung In Untersuchung der Open-Source-Implementierung von Face Matching
Japanische Übersetzung von Dlib README.md
Erstellen und Installieren von Dlib 19.15 unter Ubuntu
Zum Zeitpunkt des Schreibens dieses Postskripts gab es praktischere Optionen für die Gesichtserkennung und den Gesichtsabgleich. Zum Zeitpunkt des ersten Schreibens dieses Artikels fehlten OpenCVs eigene Funktionen zur Gesichtsanpassung, um die oberste Ebene von Open Source zu sein. Dies liegt daran, dass die Bibliothek von OpenCV selbst, die Gesichtsmarkierungen anzeigt und Gesichtsanpassungen durchführt, die Ergebnisse des Deep Learning nicht vollständig widerspiegelte. Ab 2020 ist die OpenVino-Gesichtsbibliothek jedoch umfangreich, und verschiedene Model ZOO-Modelle, die vom OpenVino Model Optimizer konvertiert wurden, können im Rahmen von OpenCV verwendet werden. Daher wird OpenVino irgendwann zu einer Situation, die aus der Situation nahe der Wahl von dlib nicht ignoriert werden kann. Bitte schauen Sie sich jedes Mal die Trends an, um zu sehen, was in Zukunft passieren wird. Wie stark sich die Gesichtsanpassungsfähigkeit der orientalischen Person erhöht, hängt davon ab, wie oft das Gesicht der orientalischen Person in jedem Modell zum Lernen verwendet wird. Die Verbesserung der Leistung von Open Source-Implementierungen kann eine Gegenmaßnahme gegen die übermäßigen sozialen Auswirkungen kommerzieller Bibliotheksentwickler sein.
Recommended Posts