Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV

Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV

Ich habe versucht, es für einen einfachen Vergleich auszugeben, um herauszufinden, welches für den Zweck am besten geeignet ist

Code

face_detector.py


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

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

import cv2, os, sys, imghdr

CLASSIFIER_DIR = '/usr/local/share/OpenCV/haarcascades'
CLASSIFIER_LIST = [
    'haarcascade_eye_tree_eyeglasses',
    'haarcascade_eye',
    'haarcascade_frontalface_alt_tree',
    'haarcascade_frontalface_alt',
    'haarcascade_frontalface_alt2',
    'haarcascade_frontalface_default',
    'haarcascade_lefteye_2splits',
    'haarcascade_profileface',
    'haarcascade_righteye_2splits',
    'haarcascade_smile'
]
CLASSIFIERS = {}
for name in CLASSIFIER_LIST:
    CLASSIFIERS[name] = cv2.CascadeClassifier('{classifier_dir}/{classifier}.xml'.format(
        classifier_dir = CLASSIFIER_DIR,
        classifier = name
    ))
CWD = os.getcwd()
DIR_ORIGIN = CWD + '/images/'
DIR_DESTINATION = CWD + '/faces/'

def getFaces(path_full):
    results = {}
    original_image = cv2.imread(path_full)
    gray = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY)
    for label, classifier in CLASSIFIERS.items():
        image = original_image.copy()
        faces = classifier.detectMultiScale(gray)
        for i in range(len(faces)):
            x, y , w, h = faces[i]
            image = cv2.rectangle(image, (x, y), (x + w, y + h), (255, 255, 255), 2)
        results[label] = image
    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 classifier, face in faces.items():
                file_name = '{destination_dir}/{count}_OpenCV_{classifier}.jpg'.format(
                    destination_dir = DIR_DESTINATION,
                    count = count,
                    classifier = classifier
                )
                cv2.imwrite(file_name, face, [cv2.IMWRITE_JPEG_QUALITY, 100])
            print(path_full)
            count += 1

Referenzseite

Typen und Auswirkungen von Cascade-Klassifizierern, die mit OpenCV verwendet werden können

Versuchen Sie die Gesichtserkennung mit Python + OpenCV

A face-detection script in Python

Recommended Posts

Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV
Gesichtserkennung mit Python + OpenCV
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Schneiden Sie das Gesicht mit Python + OpenCV aus
Gesichtserkennung mit Kamera mit opencv3 + python2.7
Grundlegendes Studium von OpenCV mit Python
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
[python, openCV] base64 Gesichtserkennung in Bildern
Vergleich der Matrixtranspositionsgeschwindigkeit durch Python
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Binarisierung mit OpenCV / Python
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Versuchen Sie, die Bildkonvertierung mit OpenCV mit Python zu projizieren
[Ubuntu] [Python] Vergleich der Gesichtserkennung zwischen dlib und OpenCV
[Windows] [Python] Kamerakalibrierung des Fischaugenobjektivs mit OpenCV
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Ich habe versucht, das Bild mit Python + OpenCV "morphologisch zu konvertieren"
Gesichtserkennung mit OpenCV von Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
[Python] Verwenden von OpenCV mit Python (Basic)
Gesichtserkennung mit Python + dlib
Vergleich von 4 Arten von Python-Webframeworks
Gesichtserkennung / Schneiden mit OpenCV
Versuchen Sie die Gesichtserkennung mit Python
Verwenden von OpenCV mit Python @Mac
Anime-Gesichtserkennung mit OpenCV
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
Schätzen Sie die Haltung des AR-Markers mit Python + OpenCV + Drohne
[Python] Mit OpenCV können Sie problemlos Bilddateien mit Seriennummern lesen
Umgebungskonstruktion von Python und OpenCV
Gesichtserkennung mit YOLO Face (Windows10, Python3.6)
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Neuronales Netzwerk mit OpenCV 3 und Python 3
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Gesichtserkennung mit Lambda (Python) + Erkennung
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Überwachen Sie die Leistung von Python-Anwendungen mit Dynatrace ♪
Erste Schritte mit Python Grundlagen von Python
Einfache Python + OpenCV-Programmierung mit Canopy
[OpenCV] Persönliche Identifikation mit Gesichtsfoto
Lebensspiel mit Python! (Conways Spiel des Lebens)
10 Funktionen von "Sprache mit Batterie" Python
Laden Sie das GIF-Bild mit Python + OpenCV
Implementierung der Dyxtra-Methode durch Python
Geschwindigkeitsvergleich der Python-XML-Perspektive
Finden Sie Bildähnlichkeit mit Python + OpenCV
Verwenden Sie OpenCV mit Python 3 in Window
Zeichnen Sie eine Illustration mit Python + OpenCV
Koexistenz von Python2 und 3 mit CircleCI (1.0)
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
[OpenCV; Python] Zusammenfassung der Funktion findcontours
Geschwindigkeitsvergleich der Volltextverarbeitung von Wiktionary mit F # und Python
Die Farbextraktion mit Python + OpenCV löste das Rätsel des grünen Hintergrunds
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!