Comment mettre OpenCV dans Raspberry Pi et collecter facilement des images des résultats de détection de visage avec Python

introduction

Il était assez difficile de collecter les images des visages des gens nécessaires à l'apprentissage automatique, j'ai donc créé un script pour réduire un peu la charge de travail.

Installation d'OpenCV

Installez avec la commande suivante. Au fait, c'est pour Python 2.7.

python


$ sudo apt install libopencv-dev python-opencv

une fonction

Si vous spécifiez l'URL de l'image de la photo de groupe, l'image sera téléchargée depuis Internet, la détection de visage sera effectuée et l'image du résultat de la détection sera enregistrée.

Charger la bibliothèque

Chargez la bibliothèque que vous souhaitez utiliser.

python


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

Créer un dossier pour les images

Créez des dossiers pour enregistrer les images pour la détection et les résultats.

python


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

Télécharger les données d'image

Enregistre l'image de l'URL spécifiée dans le dossier d'entrée. Il obtient également le nom du fichier image à partir de l'URL.

python


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

#Obtenir le nom du fichier
tmp = url.split("/")
imgname = tmp[len(tmp)-1]
imgpath = "input/" + imgname

#Télécharger les données d'image
response = urllib.urlopen(url)

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

Traitement des données d'image

S'il est en couleur, le traitement prend du temps, alors convertissez-le en échelle de gris.

python


#Lecture des données d'image
image = cv2.imread(imgpath)
#Conversion de l'échelle de gris
image_gray = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY)

Processus de détection de visage

Lit et détecte les données entraînées pour la détection des visages.

python


#Désignation du classificateur HAAR
cascade_path = "haarcascades/haarcascade_frontalface_alt.xml"

#Acquérir la quantité de caractéristiques du classificateur en cascade
cascade = cv2.CascadeClassifier(cascade_path)

#Processus de détection
faces = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=1, minSize=(1, 1))

print "Résultat de la détection",len(faces),"Homme"

Couper et enregistrer l'image du visage à partir du résultat de la détection

Coupez l'image du visage à partir des données d'image avant de la convertir en échelle de gris et enregistrez-la. À ce stade, redimensionnez la taille de l'image à 50 x 50 afin qu'elle soit facile à utiliser dans l'apprentissage automatique.

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)

l'a fait! !! Certaines choses autres que le visage sont détectées, mais généralement satisfaites (^ - ^)

en conclusion

Si vous demandez à Google Sensei une "photo de groupe", vous verrez un grand nombre de photos haute résolution. J'ai été un peu surpris.

Recommended Posts

Comment mettre OpenCV dans Raspberry Pi et collecter facilement des images des résultats de détection de visage avec Python
Comment collecter des images en Python
Comment collecter des images de visage relativement facilement
Hello World et détection de visage avec OpenCV 4.3 + Python
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Le mur pour mettre OpenCV 3.1.0 dans raspberry pi 3 et exécuter l'exemple en python3: ImportError: Aucun module nommé solution cv2
Détection de visage avec Python + OpenCV
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Comment se connecter à AtCoder avec Python et soumettre automatiquement
Comment traiter les images de caméra avec Teams et Zoom Volume de traitement dans le style d'animation
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
Pour utiliser python, mettez pyenv sur macOS avec PyCall
Dessinez une illusion d'aquarelle avec détection des contours en Python3 et openCV3
J'ai essayé de collecter automatiquement des images de Kanna Hashimoto avec Python! !!
[Python] Essayez de reconnaître les caractères des images avec OpenCV et pyocr
Détection de visage avec Python + OpenCV (rotation invariante)
[Itertools.permutations] Comment créer une séquence en Python
Capturer des images avec Pupil, python et OpenCV
Comment utiliser BigQuery en Python
Comment vérifier la version d'opencv avec python
[python, openCV] base64 Reconnaissance faciale dans les images
Comment utiliser is et == en Python
Comment dessiner une image OpenCV avec Pygame
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Comment obtenir la différence de date et d'heure en secondes avec Python
[Python] Comment mettre n'importe quel nombre d'entrées standard dans la liste
Comment mettre un espace demi-largeur avant les lettres et les chiffres en Python.
Application de notification de message Rabbit MQ avec Growl en Python ~ avec Raspeye et Julius ~
Lisez les données du lecteur NFC connecté à Raspberry Pi 3 avec Python et envoyez-les à openFrameworks avec OSC
Comment générer un code QR et un code à barres en Python et le lire normalement ou en temps réel avec OpenCV
[REAPER] Comment jouer à Reascript avec Python
Comment générer une séquence en Python et C ++
Convertissez des PDF en images en masse avec Python
Résumé de la façon d'importer des fichiers dans Python 3
Comment utiliser Raspeye Pie Camera Python
Comment recadrer une image avec Python + OpenCV
Résumé de l'utilisation de MNIST avec Python
Comment spécifier des attributs avec Mock of Python
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Comment utiliser tkinter avec python dans pyenv
(Journal 1) Comment créer, parcourir et enregistrer des données dans la base de données SQL du service Microsoft Azure avec python
Conversion en ondelettes d'images avec PyWavelets et OpenCV
Essayez de détecter un objet avec RaspberryPi ~ Partie 1: Comparaison de la vitesse de détection ~
[Python] Comment gérer les caractères japonais avec openCV
Connectez-vous à MySQL avec Python sur Raspberry Pi
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
Comment obtenir une liste de fichiers dans le même répertoire avec python
Mesurer la température du processeur de Raspeye avec Python
Comment obtenir l'accès par attribut et la conservation de l'ordre d'insertion dans Python dict
Comment stocker une fonction Python dans la valeur d'un dictionnaire (dict) et appeler la fonction en fonction de la clé
J'ai créé un programme pour convertir des images en art ASCII avec Python et OpenCV
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Extraire des images et des tableaux de pdf avec python pour réduire la charge de reporting
Comment compter le nombre d'occurrences de chaque élément de la liste en Python avec poids