Automatisieren Sie das Entfernen des Hintergrunds für die neuesten Porträts in einem Verzeichnis mit Python und API

Was du machen willst

  1. Entfernen des Hintergrunds des Porträtbildes
  2. Geben Sie das Eingabeziel des zu entfernenden Bildhintergrunds und das Ausgabeziel des zu entfernenden Bildhintergrunds genau an
  3. Durchsuchen Sie die neuesten Bilder im Ordner
  4. Diese Automatisierung

Gelegentlich möchten Sie möglicherweise OpenCV oder Facenet verwenden, um die Gesichtserkennung eines Bildes durchzuführen und eine Verarbeitung durchzuführen. Natürlich erkennen diese Werkzeuge das Gesicht, aber ich habe festgestellt, dass unnötige Dinge wie der Hintergrund im Bild "die Genauigkeit der Gesichtserkennung drastisch verringern können". Entfernen wir jetzt den Hintergrund im Voraus, um die Genauigkeit der Gesichtserkennung zu stabilisieren! Also werden wir den Hintergrund entfernen. Nun, jedes Motiv ist in Ordnung.

remove.bg Die Hintergrundentfernung selbst verwendet eine Webanwendung namens remove.bg. Es ist schneller zu sehen, wie es ist. before Lenna.jpg after Lenna-removebg-preview.png remove.bg erleichtert das Entfernen von Hintergründen mit so hoher Genauigkeit im Web.

Automatisierung der Hintergrundentfernung

Als Teil des Systems, das ich implementiere, automatisiere ich die Struktur des Betrachtens der "neuesten" Bilder in dem Verzeichnis, in dem die Bilder gespeichert sind, Entfernen des Hintergrunds und Zurückgeben der Ergebnisse in ein anderes Verzeichnis. ..

remove.bg stellt eine API bereit, mit der Sie das Entfernen des Hintergrunds automatisieren können. Sie können sich als Mitglied registrieren und die API bis zu 50 Mal im Monat mit einem regulären Konto kostenlos aufrufen.

# 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)

Fügen Sie den von remove.bg erhaltenen API-Schlüssel in den Teil von 'INSERT_YOUR_API_KEY_HERE' ein. Sie können die Eingabe und Ausgabe von Bildern einfach automatisieren, indem Sie den Pfad angeben. Geben Sie den Pfad des Bildes, dessen Hintergrund Sie entfernen möchten, im Teil von '/ path / to / file.jpg' an. Sie können den Verzeichnispfad angeben, indem Sie den Dateinamen des Bildes festlegen, das Sie im Teil 'no-bg.png' ausgeben möchten.

Beziehen Sie sich auf das neueste Bild

Dieses Mal möchte ich das "neueste" Bild eingeben, das mit der Mac-Standard-Photo Booth-Kamera-App aufgenommen wurde, daher werde ich eine kleine Pfadspezifikation erstellen.

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

Das Verzeichnis, in dem das Bild gespeichert wird, das Sie mit i_path erhalten möchten, wird angegeben. Ich erhalte eine Liste der Bilder im Verzeichnis mit der Glob-Funktion. Sie können das maximale Datum und die maximale Uhrzeit der Datei, dh das neueste Bild, ermitteln, indem Sie die maximale Funktion und die maximalen Optionen angeben.

Ganzer Code

import glob
import os
import requests

i_path = '/Users/username/Pictures/Photo Booth Bibliothek/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)

Zusammenfassung

Dank der remove.bg-API war die Automatisierung der Hintergrundentfernung sehr einfach zu implementieren. Darüber hinaus konnte der Trick, die neueste Bilddatei anzugeben, sofort implementiert werden, und der Zweck wurde erreicht. Es ist schön, die mühsame Arbeit manuell in das Programm zu werfen.

Recommended Posts

Automatisieren Sie das Entfernen des Hintergrunds für die neuesten Porträts in einem Verzeichnis mit Python und API
Analysieren Sie die Researchmap-API mit Python und erstellen Sie automatisch eine Word-Datei für die Leistungsliste
Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Erstellt einen Python-Wrapper für die Qiita-API
Tipps zum Erreichen der ATND-API mit Python
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
[Python] Erstellt eine Klasse, um mit pyaudio Sinuswellen im Hintergrund zu spielen
Drehen Sie in Python mehrere Listen mit for-Anweisung gleichzeitig
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Erstellen Sie eine saubere Datenbank zum Testen mit FastAPI und führen Sie Unittest of API mit pytest aus
Spielen mit der benutzerlokalen API für künstliche Intelligenz in Python
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
Füllen Sie den Hintergrund mit einer einzigen Farbe mit OpenCV2 + Python
Installieren Sie die neueste stabile Version von Python mit pyenv (sowohl 2 als auch 3).
Erstellen Sie einen API-Server, um den Betrieb der Front-Implementierung mit Python3 und Flask zu überprüfen
[Python] Ändern Sie die Textfarbe und Hintergrundfarbe eines bestimmten Schlüsselworts in der Druckausgabe
Rufen Sie die API mit python3 auf.
Erstellen Sie ein Verzeichnis mit Python
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Ein Hinweis zum Aufrufen der Facebook-API mit dem Python SDK
Erstellen Sie ein untergeordnetes Konto für die Verbindung mit Stripe in Python
Installationsverfahren für Python und Ansible mit einer bestimmten Version
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Bibliothek zur Angabe eines Nameservers in Python und Dig
Mische die Bilder in einem beliebigen Verzeichnis mit Python und speichere sie in einem anderen Ordner mit Seriennummern.
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Abrufen der arXiv-API in Python
Klicken Sie in Python auf die Sesami-API
Erstellen Sie eine gestreifte Illusion mit Gammakorrektur für Python3 und openCV3
Erstellen Sie mit Python + Qt (PySide) einen Farbwähler für das Farbrad.
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Klicken Sie mit Python auf die Etherpad-Lite-API
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
Klicken Sie auf die Web-API in Python
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
Lösen Sie das Python-Rucksackproblem mit der Branch-and-Bound-Methode
Ausgabe von Firebase-Authentifizierungstoken in Python und Token-Validierung mit Fast API
Greifen Sie mit Python auf die Twitter-API zu
Lösen Sie Teilsummenprobleme mit der vollständigen Suche in Python
So senden Sie eine Anfrage mit Python an die DMM (FANZA) -API
Befehl für das aktuelle Verzeichnis Python
Als ich das Verzeichnis für UNIX Socket unter / var / run mit systemd geschnitten habe, steckte ich in einer Falle und was zu tun ist
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
Ein Memo, das durch Umbenennen der Dateinamen im Ordner mit Python organisiert wird
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
python> array> Bestimmen Sie die Nummer und initialisieren Sie> mylist = [idx für idx im Bereich (10)] / mylist = [0 für idx im Bereich (10)] >> mylist = [0] * 10
Lesen Sie die Python # .txt-Datei für Super-Anfänger in Python mit .py
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Abrufen und Konvertieren der aktuellen Zeit in der lokalen Systemzeitzone mit Python