Automatisez la suppression de l'arrière-plan pour les derniers portraits dans un répertoire avec Python et API

Chose que tu veux faire

  1. Suppression de l'arrière-plan de l'image du portrait
  2. Spécifiez en détail la destination d'entrée de l'image à supprimer en arrière-plan et la destination de sortie de l'image à supprimer en arrière-plan.
  3. Parcourez les dernières images du dossier
  4. Ces automatisations

Parfois, vous souhaiterez peut-être utiliser OpenCV ou facenet pour effectuer une reconnaissance faciale à partir d'une image et effectuer un traitement. Bien sûr, ces outils reconnaissent le visage, mais j'ai trouvé que des éléments inutiles tels que l'arrière-plan de l'image "peuvent réduire considérablement la précision de la reconnaissance faciale". Maintenant, supprimons l'arrière-plan à l'avance pour stabiliser la précision de la reconnaissance faciale! Nous allons donc supprimer l'arrière-plan. Eh bien, tout motif est bien.

remove.bg La suppression de l'arrière-plan elle-même utilise une application Web appelée remove.bg. C'est plus rapide de voir à quoi ça ressemble. before Lenna.jpg after Lenna-removebg-preview.png remove.bg permet de supprimer facilement les arrière-plans avec une telle précision sur le Web.

Automatisation de la suppression de l'arrière-plan

Dans le cadre du système que j'implémente, je vais automatiser la structure de la recherche des "dernières" images dans le répertoire où les images sont stockées, en supprimant l'arrière-plan et en renvoyant les résultats dans un autre répertoire. ..

remove.bg expose une API que vous pouvez utiliser pour automatiser la suppression de l'arrière-plan. Vous pouvez vous inscrire en tant que membre et appeler l'API gratuitement jusqu'à 50 fois par mois avec un compte régulier.

# Requires "requests" to be installed (see python-requests.org)
import requests

response = requests.post(
    'https://api.remove.bg/v1.0/removebg',
    files={'image_file': open('/path/to/file.jpg', 'rb')},
    data={'size': 'auto'},
    headers={'X-Api-Key': 'INSERT_YOUR_API_KEY_HERE'},
)
if response.status_code == requests.codes.ok:
    with open('no-bg.png', 'wb') as out:
        out.write(response.content)
else:
    print("Error:", response.status_code, response.text)

Insérez la clé API obtenue par remove.bg dans la partie "INSERT_YOUR_API_KEY_HERE". Vous pouvez facilement automatiser l'entrée et la sortie des images en spécifiant le chemin. Spécifiez le chemin de l'image dont vous souhaitez supprimer l'arrière-plan dans la partie de '/ chemin / vers / fichier.jpg'. Vous pouvez spécifier le chemin du répertoire en décidant du nom de fichier de l'image que vous souhaitez afficher dans la partie "no-bg.png ".

Reportez-vous à la dernière image

Cette fois, je veux entrer la "dernière" image prise avec l'application de caméra standard Mac Photo Booth, donc je vais concevoir une petite spécification de chemin.

i_path = '/Users/username/Pictures/Photothèque Photo Booth/Pictures/*'
list_of_files = glob.glob(i_path) 
latest_file = max(list_of_files, key=os.path.getctime)

Le répertoire dans lequel l'image que vous souhaitez obtenir avec i_path est stockée est spécifié. Je reçois une liste d'images dans le répertoire avec la fonction glob. Vous pouvez obtenir la date et l'heure maximales du fichier, c'est-à-dire la dernière image en spécifiant la fonction max et les options.

Code entier

import glob
import os
import requests

i_path = '/Users/username/Pictures/Photothèque Photo Booth/Pictures/*'
list_of_files = glob.glob(i_path) 
latest_file = max(list_of_files, key=os.path.getctime)

# RemoveBgAPI
response = requests.post(
    'https://api.remove.bg/v1.0/removebg',
    files={'image_file': open(latest_file, 'rb')},
    data={'size': 'auto'},
    headers={'X-Api-Key': 'INSERT_YOUR_API_KEY_HERE'},
)
if response.status_code == requests.codes.ok:
    with open('/Users/username/output/no-bg.png', 'wb') as out:
        out.write(response.content)
    print('Success!')
else:
    print("Error:", response.status_code, response.text)

Résumé

Grâce à l'API remove.bg, l'automatisation de la suppression d'arrière-plan était très facile à mettre en œuvre. De plus, l'astuce consistant à spécifier le dernier fichier image pouvait être mise en œuvre immédiatement et l'objectif a été atteint. C'est bien de lancer manuellement le travail gênant dans le programme.

Recommended Posts

Automatisez la suppression de l'arrière-plan pour les derniers portraits dans un répertoire avec Python et API
Analysez l'API Researchmap avec Python et créez automatiquement un fichier Word pour la liste des succès
Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.
[Python] Récupérez les fichiers dans le dossier avec Python
Création d'un wrapper Python pour l'API Qiita
Conseils pour accéder à l'API ATND avec Python
Archivez et compressez tout le répertoire avec python
[Python] A créé une classe pour jouer des vagues de péché en arrière-plan avec pyaudio
Transformez plusieurs listes avec l'instruction for en même temps en Python
Comment obtenir une liste de fichiers dans le même répertoire avec python
Créez une base de données propre pour les tests avec FastAPI et effectuez le test Unittest de l'API avec pytest
Jouer avec l'API d'intelligence artificielle locale de l'utilisateur en Python
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
Remplissez l'arrière-plan d'une seule couleur avec OpenCV2 + Python
Installez la dernière version stable de Python avec pyenv (à la fois 2 et 3)
Construisez un serveur API pour vérifier le fonctionnement de l'implémentation frontale avec python3 et Flask
[Python] Changer la couleur du texte et la couleur d'arrière-plan d'un mot clé spécifique dans la sortie d'impression
Appelez l'API avec python3.
Créer un répertoire avec python
Essayez d'utiliser l'API Twitter rapidement et facilement avec Python
Une note sur l'utilisation de l'API Facebook avec le SDK Python
Créer un compte enfant de connect with Stripe en Python
Procédure d'installation pour Python et Ansible avec une version spécifique
[Note] Importation de fichiers dans le répertoire parent en Python
Créez un Twitter BOT avec le SDK GoogleAppEngine pour Python
Bibliothèque pour spécifier un serveur de noms en python et dig
Mélangez les images dans n'importe quel répertoire avec Python et enregistrez-les dans un autre dossier avec des numéros de série.
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
Obtenir l'API arXiv en Python
Frappez l'API Sesami en Python
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
Créez un sélecteur de couleurs pour la roue chromatique avec Python + Qt (PySide)
L'histoire de la création d'un pilote standard pour db avec python.
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Accédez à l'API Etherpad-lite avec Python
Dessinez une illusion d'aquarelle avec détection des contours en Python3 et openCV3
Comprendre les probabilités et les statistiques qui peuvent être utilisées pour la gestion des progrès avec un programme python
Accédez à l'API Web en Python
Lisez le fichier en Python avec un chemin relatif depuis le programme
[Python3] Enregistrez la matrice de moyenne et de covariance dans json avec les pandas
Dockerfile avec les bibliothèques nécessaires pour le traitement du langage naturel avec python
Résolvez le problème du sac à dos Python avec la méthode de branche et liée
Émission de jetons d'authentification Firebase en Python et validation de jetons avec Fast API
Accéder à l'API Twitter avec Python
Résolvez les problèmes de somme partielle avec une recherche complète en Python
Comment envoyer une requête à l'API DMM (FANZA) avec python
Commande pour le répertoire courant Python
Quand j'ai coupé le répertoire pour UNIX Socket sous / var / run avec systemd, je suis resté coincé dans un piège et que faire
Remplissez la chaîne avec des zéros en python et comptez certains caractères de la chaîne
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Un mémo organisé en renommant les noms de fichiers dans le dossier avec python
[Introduction à Udemy Python3 + Application] 47. Traitez le dictionnaire avec une instruction for
Comment obtenir la différence de date et d'heure en secondes avec Python
python> array> Déterminer le nombre et initialiser> mylist = [idx pour idx dans la plage (10)] / mylist = [0 pour idx dans la plage (10)] >> mylist = [0] * 10
Lire le fichier Python # .txt pour Python super débutant super débutant avec travail .py
J'ai défini des variables d'environnement dans Docker et je les ai affichées en Python.
Exemple de code pour obtenir oauth_token et oauth_token_secret de l'API Twitter en Python 2.7
Hit une méthode d'une instance de classe avec l'API Web Python Bottle
Obtenez et convertissez l'heure actuelle dans le fuseau horaire local du système avec python