Versuchen Sie die Gesichtserkennung mit Python + OpenCV

Ich wurde gefragt "Kannst du Gesichtserkennung nicht schnell machen?", Also habe ich es versucht. Ich kann keine Feinabstimmung vornehmen.

Installation

Auf einem Mac ist das ziemlich einfach. Installieren Sie OpenCV mit Brew. Python verwendet, was ich in Gebräu gesetzt habe. Es scheint, dass numpy auch benötigt wird, aber es wird weggelassen, weil es bereits installiert wurde. Anscheinend wird bei der Installation von OpenCV das Paket cv2 für Python in das Site-Paket kopiert, sodass die Installationsreihenfolge Python → numpy → OpenCV lautet.

bash


brew tap homebrew/science
brew install opencv

Auf Python ausführen

Stellen Sie vorerst zuerst den Code zur Verfügung. Ich beschloss, die Kommentare zu hinterlassen, als ich sie für Versuch und Irrtum verwendete, obwohl sie schmutzig waren. Ich habe die Erklärung für die Parametereinstellung hinterlassen, aber www

recognize.py


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

import cv2

#Funktionen zur Gesichtserkennung des HAAR-Klassifikators
#cascade_path = "/usr/local/opt/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml"
cascade_path = "/usr/local/opt/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml"
#cascade_path = "/usr/local/opt/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml"
#cascade_path = "/usr/local/opt/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_alt_tree.xml"


image_path = "lena.jpg "

color = (255, 255, 255) #Weiß
#color = (0, 0, 0) #schwarz

#Datei lesen
image = cv2.imread(image_path)
#Graustufenumwandlung
image_gray = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY)

#Ermitteln Sie die Merkmalsmenge des Kaskadenklassifikators
cascade = cv2.CascadeClassifier(cascade_path)

#Ausführung der Objekterkennung (Gesichtserkennung)
#image – CV_Matrix vom Typ 8U. In den hier gespeicherten Bildern werden Objekte erkannt
#Objekte - Ein Vektor, dessen Elemente Rechtecke sind. Jedes Rechteck enthält das erkannte Objekt
#scaleFactor - Stellt den Grad der Reduzierung bei jeder Bildskala dar
#minNeighbors - Kandidatenrechtecke müssen mindestens diese Anzahl von Nachbarn enthalten
#flags - Dieser Parameter wird in der neuen Kaskade nicht verwendet. Für ältere Kaskaden hat es dieselbe Bedeutung wie für die Funktion cvHaarDetectObjects.
#minSize - Die Mindestgröße, die ein Objekt annehmen kann. Objekte, die kleiner als diese sind, werden ignoriert
facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=1, minSize=(1, 1))
#facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=3, minSize=(10, 10), flags = cv2.cv.CV_HAAR_SCALE_IMAGE)

print "face rectangle"
print facerect

if len(facerect) > 0:
	#Erstellen Sie ein Rechteck, das das erkannte Gesicht umgibt
	for rect in facerect:
		cv2.rectangle(image, tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]), color, thickness=2)
	
	#Erkennungsergebnisse speichern
	cv2.imwrite("detected.jpg ", image)

Da wir dieses Mal kein Bild zum Lernen vorbereitet haben, verwenden wir die Funktionen des HAAR-Klassifikators, der mit OpenCV geliefert wird. Siehe hier für den HAAR-Klassifikator ([10. CV-Studiengruppe OpenCV Festival - Gründliche Erklärung der Objekterkennung!](Http://www.slideshare.net/takmin/opecv-object-detectiontakmin opencv)). Ich konnte jede Feature-Menge im Bild der berühmten Lena erkennen, aber als ich es mit anderen Bildern versuchte, konnte haarcascade_frontalface_default.xml nicht sehr gut erkannt werden, daher ist es besser, verschiedene Dinge auszuprobieren.

Original Bild lena.jpg

Bild nach Erkennung detected.jpg

Recommended Posts

Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Versuchen Sie die Gesichtserkennung mit Python
Gesichtserkennung mit Kamera mit opencv3 + python2.7
[python, openCV] base64 Gesichtserkennung in Bildern
Gesichtserkennung mit OpenCV von Python
Gesichtserkennung mit Python + OpenCV
Gesichtserkennung / Schneiden mit OpenCV
[Python3] [Ubuntu16] [Docker] Versuchen Sie die Gesichtserkennung mit OpenFace
Schneiden Sie das Gesicht mit Python + OpenCV aus
Ich habe versucht, das Gesicht mit OpenCV zu erkennen
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
Serverlose Gesichtserkennungs-API mit Python
Versuchen Sie es mit Python.
Gesichtserkennung mit Edison
Binarisierung mit OpenCV / Python
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
"Apple-Verarbeitung" mit OpenCV3 + Python3
Versuchen Sie die Kantenerkennung mit OpenCV
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Gesichtserkennung durch Amazon Rekognition
[Python] Verwenden von OpenCV mit Python (Basic)
Gesichtserkennung mit Python + dlib
Versuchen Sie, Python mit Try Jupyter auszuführen
Probieren Sie OpenCV mit Google Colaboratory aus
Verwenden von OpenCV mit Python @Mac
Bilderkennung mit Keras + OpenCV
Anime-Gesichtserkennung mit OpenCV
Versuchen Sie, die Bildkonvertierung mit OpenCV mit Python zu projizieren
Versuchen wir nun die Gesichtserkennung mit Chainer (Vorhersagephase).
Einfacher Gesichtserkennungsversuch mit Jetson Nano und Webkamera
Versuchen wir nun die Gesichtserkennung mit Chainer (Lernphase)
Zahlenerkennung in Bildern mit Python
Leuchtendes Leben mit Python und OpenCV
Versuchen Sie es mit Python + Beautiful Soup
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)
Versuchen Sie, Facebook mit Python zu betreiben
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Versuchen Sie die Singularwertzerlegung mit Python
Versuchen Sie Python
Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
Einfache Python + OpenCV-Programmierung mit Canopy
Ich habe versucht, das Gesicht aus dem Video zu erkennen (OpenCV: Python-Version)
[OpenCV] Persönliche Identifikation mit Gesichtsfoto
Python x Tensoflow x Gesichtserkennung
Erste Anime-Gesichtserkennung mit Chainer
Laden Sie das GIF-Bild mit Python + OpenCV
Versuchen Sie die Frequenzsteuerungssimulation mit Python
Finden Sie Bildähnlichkeit mit Python + OpenCV
Versuchen Sie, das Bild mit opencv2 zu verwischen
Verwenden Sie OpenCV mit Python 3 in Window
Zeichnen Sie eine Illustration mit Python + OpenCV
Verfolgen Sie Baseballbälle mit Python + OpenCV