Gesichtserkennung mit Python + OpenCV

Gesichtserkennung mit Python + OpenCV

Installation

Es ist ein wenig mühsam, beziehen Sie sich also auf das Folgende

Install OpenCV 3.0 and Python 2.7+ on Ubuntu

Install OpenCV 3.0 and Python 2.7+ on OSX

Verwenden von OpenCV und Python auf dem Mac

Python-Umgebung installieren

Code

Die Position des Klassifikators wird je nach Umgebung geändert which python Und which python3 Als ich den Speicherort von Python nachgeschlagen habe, dachte ich, wenn es installiert ist, könnte es sich in der Nähe befinden.

detect_face.py


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

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

import cv2, os, sys, imghdr, shutil

CLASSIFIERS = (
    'haarcascade_frontalcatface_extended.xml',
    'haarcascade_frontalcatface.xml',
    'haarcascade_frontalface_alt_tree.xml',
    'haarcascade_frontalface_alt.xml',
    'haarcascade_frontalface_alt2.xml',
    'haarcascade_frontalface_default.xml',
)
PATH_CLASSIFIER = '{python_dir}/{classifier_dir}/{classifier}'.format(
    python_dir = os.path.split(sys.executable)[0],
    classifier_dir = '../share/OpenCV/haarcascades',
    classifier = CLASSIFIERS[4]
)
CWD = os.getcwd()
DIR_ORIGIN = CWD + '/images/'
DIR_DONE = CWD + '/done/'
DIR_NONE = CWD + '/none/'
DIR_DESTINATION = CWD + '/faces/'

classifier = cv2.CascadeClassifier(PATH_CLASSIFIER)

def mkdir(path):
    dirs = path.split('/')
    current = ''
    for d in dirs:
        current += d + '/'
        if not os.path.exists(current):
            os.mkdir(current)

def moveFile(origin_path, dest_dir):
    mkdir(dest_dir)
    shutil.move(origin_path, dest_dir)

def getFaces(path_full):
    image = cv2.imread(path_full)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    faces = classifier.detectMultiScale(gray)
    path, name = os.path.split(path_full)
    path_destination = path.replace(DIR_ORIGIN, DIR_DESTINATION)
    dir_done = path.replace(DIR_ORIGIN, DIR_DONE)
    dir_none = path.replace(DIR_ORIGIN, DIR_NONE)
    base_name = os.path.join(path_destination, name[:name.rfind('.')])
    count = len(faces)
    for i in range(count):
        x, y , w, h = faces[i]
        crop = image[y : y + h, x : x + w]
        file_name = base_name
        file_name += ('_' + str(i + 1)) if count > 1 else ''
        file_name += '.jpg'
        mkdir(path_destination)
        cv2.imwrite(file_name, crop, [cv2.IMWRITE_JPEG_QUALITY, 100])
    if count:
        moveFile(path_full, dir_done)
    else:
        moveFile(path_full, dir_none)
    return count

def isEmpty(dir_):
    return True if not os.listdir(dir_) else False

count = 0
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']:
            count = getFaces(path_full)
    if count:
        if isEmpty(path):
            os.rmdir(path)
        count = 0

Recommended Posts

Gesichtserkennung mit Python + OpenCV
Anime-Gesichtserkennung mit OpenCV
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Gesichtserkennung mit YOLO Face (Windows10, Python3.6)
Gesichtserkennung mit Lambda (Python) + Erkennung
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Schneiden Sie das Gesicht mit Python + OpenCV aus
Gesichtserkennung mit Kamera mit opencv3 + python2.7
[Python] Gesichtserkennung durch OpenCV (Haar Cascade)
Binarisierung mit OpenCV / Python
[python, openCV] base64 Gesichtserkennung in Bildern
Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV
Größenänderung, Mosaik, Gesichtserkennung mit OpenCV, manchmal Elefantenstempel
Gesichtserkennung mit OpenCV von Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
Versuchen Sie die Kantenerkennung mit OpenCV
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
[Python] Verwenden von OpenCV mit Python (Basic)
Zusammenfassung der Gesichtserkennung in Python
Gesichtserkennung / Schneiden mit OpenCV
Erkennung von Blockchain-Manipulationen mit Python
Versuchen Sie die Gesichtserkennung mit Python
Gesichtserkennung mit Haar Cascades
Verwenden von OpenCV mit Python @Mac
[Ubuntu] [Python] Vergleich der Gesichtserkennung zwischen dlib und OpenCV
Leuchtendes Leben mit Python und OpenCV
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Neuronales Netzwerk mit OpenCV 3 und Python 3
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Einfache Python + OpenCV-Programmierung mit Canopy
[OpenCV] Persönliche Identifikation mit Gesichtsfoto
OpenCV-Funktionserkennung mit Google Colaboratory
Laden Sie das GIF-Bild mit Python + OpenCV
Katzenerkennung mit OpenCV (Modellverteilung)
Finden Sie Bildähnlichkeit mit Python + OpenCV
Verwenden Sie OpenCV mit Python 3 in Window
Zeichnen Sie eine Illustration mit Python + OpenCV
Verfolgen Sie Baseballbälle mit Python + OpenCV
Graphbasierte Segmentierung mit Python + OpenCV
Ich habe versucht, das Gesicht mit OpenCV zu erkennen
Zeichnen Sie einen Pfeil (Vektor) mit opencv / python
Grundlegendes Studium von OpenCV mit Python
Verbessern Sie schnell die Erkennungsgenauigkeit, indem Sie Parameter mit openCV-Gesichtserkennung angeben
Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
Hallo Welt- und Gesichtserkennung mit opencv-python 4.2
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Python2.7 + CentOS7 + OpenCV3
Scraping mit Python
Speichern Sie Videos Frame für Frame mit Python OpenCV
Python mit Go
Dlib-Gesichtserkennung und Blinkzähler von Python
Bilder mit Pupil, Python und OpenCV aufnehmen
Twilio mit Python
Spielen Sie mit 2016-Python
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Getestet mit Python
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3