So fügen Sie OpenCV in Raspberry Pi ein und sammeln mit Python ganz einfach Bilder von Gesichtserkennungsergebnissen

Einführung

Es war ziemlich schwierig, die Bilder von Gesichtern von Menschen zu sammeln, die für maschinelles Lernen notwendig sind, deshalb habe ich ein Skript erstellt, um die Arbeitsbelastung ein wenig zu reduzieren.

OpenCV-Installation

Installieren Sie mit dem folgenden Befehl. Übrigens ist es für Python 2.7.

python


$ sudo apt install libopencv-dev python-opencv

Funktion

Wenn Sie die Bild-URL des Gruppenfotos angeben, wird das Bild aus dem Internet heruntergeladen, die Gesichtserkennung wird durchgeführt und das Bild des Erkennungsergebnisses wird gespeichert.

Bibliothek laden

Laden Sie die Bibliothek, die Sie verwenden möchten.

python


import cv2
import sys
from PIL import Image
import urllib
import os

Erstellen eines Ordners für Bilder

Erstellen Sie Ordner, um die Bilder für die Erkennung und die Ergebnisse zu speichern.

python


if os.path.exists("input") == False:
    os.mkdir("input")
    
if os.path.exists("output") == False:
    os.mkdir("output")

Bilddaten herunterladen

Speichert das Bild von der angegebenen URL im Eingabeordner. Es erhält auch den Namen der Bilddatei von der URL.

python


url = "http://hoge.com/photo.jpg "

#Dateinamen abrufen
tmp = url.split("/")
imgname = tmp[len(tmp)-1]
imgpath = "input/" + imgname

#Bilddaten herunterladen
response = urllib.urlopen(url)

with open(imgpath, "wb") as fout:
    fout.write(response.read())

Bilddatenverarbeitung

Wenn es vollfarbig ist, dauert die Verarbeitung einige Zeit. Konvertieren Sie es daher in Graustufen.

python


#Lesen von Bilddaten
image = cv2.imread(imgpath)
#Graustufenumwandlung
image_gray = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY)

Gesichtserkennungsprozess

Liest und erkennt trainierte Daten zur Gesichtserkennung.

python


#Bezeichnung des HAAR-Klassifikators
cascade_path = "haarcascades/haarcascade_frontalface_alt.xml"

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

#Erkennungsprozess
faces = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=1, minSize=(1, 1))

print "Erkennungsergebnis",len(faces),"Mann"

Schneiden Sie das Gesichtsbild aus dem Erkennungsergebnis aus und speichern Sie es

Schneiden Sie das Gesichtsbild aus den Bilddaten aus, bevor Sie es in Graustufen konvertieren, und speichern Sie es. Ändern Sie zu diesem Zeitpunkt die Bildgröße auf 50 x 50, damit sie beim maschinellen Lernen einfach verwendet werden kann.

python


img = Image.open(imgpath)

for i in range(len(faces)):
    [x,y,w,h] = faces[i]
    imgCroped = img.crop((x,y,x+w,y+h)).resize((50, 50))
    filename = "output/%s_%02d.jpg " % (imgname.split(".")[0], i)
    imgCroped.save(filename)

erledigt! !! Einige andere Dinge als das Gesicht werden erkannt, sind aber im Allgemeinen zufrieden (^ - ^)

abschließend

Wenn Sie Google Sensei mit einem "Gruppenfoto" fragen, sehen Sie eine große Anzahl hochauflösender Fotos. Ich war ein wenig überrascht.

Recommended Posts

So fügen Sie OpenCV in Raspberry Pi ein und sammeln mit Python ganz einfach Bilder von Gesichtserkennungsergebnissen
So sammeln Sie Bilder in Python
Wie man relativ einfach Gesichtsbilder sammelt
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Ich habe eine Fehlermeldung erhalten, als ich opencv mit Raspeye in Python3 eingefügt habe [Remedy]
Ubuntu 20.04 auf Himbeer-Pi 4 mit OpenCV und mit Python verwenden
Das Hindernis, OpenCV 3.1.0 in Himbeer-Pi 3 zu setzen und das Beispiel in Python3 auszuführen: ImportError: Kein Modul mit dem Namen cv2-Lösung
Gesichtserkennung mit Python + OpenCV
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
So melden Sie sich mit Python bei AtCoder an und senden automatisch
So verarbeiten Sie Kamerabilder mit Teams und Zoom Verarbeitungsvolumen im Animationsstil
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
So verwenden Sie Python in Pyenv unter MacOS mit PyCall
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Bilder mit Pupil, Python und OpenCV aufnehmen
So arbeiten Sie mit BigQuery in Python
So überprüfen Sie die Version von opencv mit Python
[python, openCV] base64 Gesichtserkennung in Bildern
Verwendung ist und == in Python
So zeichnen Sie ein OpenCV-Bild mit Pygame
So schneiden Sie den unteren rechten Teil des Bildes mit Python OpenCV
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
[Python] So fügen Sie eine beliebige Anzahl von Standardeingaben in die Liste ein
So setzen Sie in Python ein Leerzeichen mit halber Breite vor Buchstaben und Zahlen.
Rabbit MQ Nachrichtenbenachrichtigungs-App mit Growl in Python ~ mit Raspeye und Julius ~
Lesen Sie die Daten des NFC-Lesegeräts, das mit Python an Raspberry Pi 3 angeschlossen ist, und senden Sie sie mit OSC an openFrameworks
So generieren Sie QR-Code und Barcode in Python und lesen ihn normal oder in Echtzeit mit OpenCV
[REAPER] Wie man Reascript mit Python spielt
So generieren Sie eine Sequenz in Python und C ++
Konvertieren Sie PDFs mit Python in Massenbilder
Zusammenfassung zum Importieren von Dateien in Python 3
Verwendung von Raspeye Pie Camera Python
So beschneiden Sie ein Bild mit Python + OpenCV
Zusammenfassung der Verwendung von MNIST mit Python
So legen Sie Attribute mit Mock of Python fest
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Wie man tkinter mit Python in Pyenv benutzt
(Tagebuch 1) Erstellen, Durchsuchen und Registrieren von Daten in der SQL-Datenbank des Microsoft Azure-Dienstes mit Python
Wavelet-Konvertierung von Bildern mit PyWavelets und OpenCV
Versuchen Sie, ein Objekt mit RaspberryPi zu erkennen ~ Teil 1: Vergleich der Erkennungsgeschwindigkeit ~
[Python] Umgang mit japanischen Zeichen mit openCV
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Messen Sie die CPU-Temperatur von Raspeye mit Python
So erreichen Sie den Zugriff durch Attribut und Beibehaltung der Einfügereihenfolge in Python dict
So speichern Sie eine Python-Funktion im Wert eines Wörterbuchs (dict) und rufen die Funktion gemäß dem Schlüssel auf
Ich habe ein Programm erstellt, um Bilder mit Python und OpenCV in ASCII-Grafik umzuwandeln
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
Extrahieren Sie Bilder und Tabellen mit Python aus PDF, um die Berichtslast zu verringern
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung