Gesichtserkennung mit Python + dlib

Gesichtserkennung mit Python + dlib

Installation

Vor der Installation von dlib sind CMAKE, Boost, Boost Python, G ++ und mehr erforderlich

Einführung von OpenCV und dlib unter Ubuntu

Selektive Suche mit dlib

Fügen Sie OpenCV / scikit-image in die Eingabe / Ausgabe der Bilddatei ein Diesmal benutze ich OpenCV

Code

Mit dlib können Sie eine Gesichtsbewertung erhalten Es fühlt sich so an, als würde es erkennen, selbst wenn es ein wenig geneigt ist. Selbst wenn Sie es beim Drehen erkennen, kann der Drehwinkel jeweils etwa 45 Grad betragen. Ich habe versucht, mit einer etwas niedrigen Punktzahl (CUT_OFF-Wert) zu screenen, und dachte, dass es möglich sein könnte, den Winkel so anzupassen, dass die Punktzahl hoch ist, während der verengte Bereich gedreht wird, aber es dauert zu lange Der Typ, der im Erkennungsergebnis angezeigt wird, scheint dem Detektortyp zu entsprechen (ob das Gesicht vorne oder seitlich ist?) Wenn Sie einen Kommentar abgeben, werden 68 Feature-Punkte aus dem erkannten Gesicht extrahiert Wenn Sie wissen, welche Punkte den Augen, der Nase und der Kontur entsprechen, können Sie sie etwas verbessern.

detect_face.py


# -*- coding: utf-8 -*-

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import os, sys, imghdr, shutil, dlib, cv2

CWD = os.getcwd()
DIR_ORIGIN = CWD + '/images/'
DIR_DESTINATION = CWD + '/faces/'
CUT_OFF = -0.1

detector = dlib.get_frontal_face_detector()
# predictor = dlib.shape_predictor('./shape_predictor_68_face_landmarks.dat')

def getFaces(path_full):
    results = []
    image = cv2.imread(path_full)
    height, width = image.shape[:2]
    rects, scores, types = detector.run(image, 1, CUT_OFF)
    for i, rect in enumerate(rects):
        top, bottom, left, right = rect.top(), rect.bottom(), rect.left(), rect.right()
        if min(top, height - bottom - 1, left, width - right - 1) < 0:
            continue
        results.append({
            'image'       : image[top : bottom, left : right],
            'score'       : scores[i],
            'orientation' : types[i]
        })
        # shape = predictor(image, rect)
        # for i in range(shape.num_parts):
        #     print(shape.part(i))
    return results

count = 1
for path, subdirs, files in os.walk(DIR_ORIGIN):
    for name in files:
            path_full = os.path.join(path, name)
            if imghdr.what(path_full) in ['jpeg']:
                faces = getFaces(path_full)
                for face in faces:
                    file_name = '{destination_dir}/{score}_{type}_{count}_dlib.jpg'.format(
                        destination_dir = DIR_DESTINATION,
                        score = face['score'],
                        type = int(face['orientation']),
                        count = count
                    )
                    cv2.imwrite(file_name, face['image'], [cv2.IMWRITE_JPEG_QUALITY, 100])
                    count += 1
                print(path_full)

Referenzseite

Veröffentlichen Sie das Know-how zum Erstellen eines ähnlichen Bildsuchdienstes für AV-Schauspielerinnen durch Deep Learning von Chainer

Gesichtserkennungsprogramm, das OpenCV und dlib verbindet

Bibliothek für maschinelles Lernen dlib

OpenFace 0.2.0: Higher accuracy and halved execution time

Zusammenfassung der Ergebnisse der Gesichtserkennung mit OpenCV, Dlib und OpenFace

Erstellen eines Gesichtsbilddatensatzes für maschinelles Lernen (3: Gesichtsbildgenerierung aus Kandidatenbildern 1)

Recommended Posts

Gesichtserkennung mit Python + dlib
Gesichtserkennung mit Python + OpenCV
Gesichtserkennung mit YOLO Face (Windows10, Python3.6)
Gesichtserkennung mit Lambda (Python) + Erkennung
Dlib-Gesichtserkennung und Blinkzähler von Python
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Zusammenfassung der Gesichtserkennung in Python
Erkennung von Blockchain-Manipulationen mit Python
Versuchen Sie die Gesichtserkennung mit Python
Gesichtserkennung mit Haar Cascades
Anime-Gesichtserkennung mit OpenCV
[Ubuntu] [Python] Vergleich der Gesichtserkennung zwischen dlib und OpenCV
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Ich habe versucht, das Gesicht mit MTCNN zu erkennen
Schneiden Sie das Gesicht mit Python + OpenCV aus
Gesichtserkennung mit Kamera mit opencv3 + python2.7
Hallo Welt- und Gesichtserkennung mit opencv-python 4.2
FizzBuzz in Python3
Scraping mit Python
[Python] Gesichtserkennung durch OpenCV (Haar Cascade)
Statistik mit Python
Scraping mit Python
Python mit Go
[Ubuntu] [Python] Gesichtsorganerkennung mit dlib
Twilio mit Python
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
[python, openCV] base64 Gesichtserkennung in Bildern
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Serverlose Gesichtserkennungs-API mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV
[Python3] [Ubuntu16] [Docker] Versuchen Sie die Gesichtserkennung mit OpenFace
Größenänderung, Mosaik, Gesichtserkennung mit OpenCV, manchmal Elefantenstempel
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Gesichtserkennung mit Edison
Python lernen mit ChemTHEATER 05-1