BackgroundRemover ist ein Befehlszeilentool zum Entfernen des Hintergrunds aus Bildern und Videos mithilfe von KI, erstellt von nadermx für https://BackgroundRemoverAI.com. Wenn Sie sich fragen, warum es gemacht wurde, lesen Sie diesen kurzen Blogbeitrag.
Python >= 3.6
python3.6-dev #oder welche Python-Version auch immer Sie verwenden
Stabile Version von Torch und Torchvision (https://pytorch.org)
ffmpeg 4.4+
Zur Verdeutlichung: Sie müssen sowohl Python als auch die von Ihnen installierte Entwicklungsversion von Python installieren. IE; python3.10-dev mit python3.10 oder python3.8-dev mit python3.8
Gehen Sie zu https://pytorch.org, scrollen Sie nach unten zum Abschnitt INSTALL PYTORCH
und befolgen Sie die Anweisungen.
Zum Beispiel:
PyTorch Build: Stable (1.7.1) Your OS: Windows Package: Pip Language: Python CUDA: None
So installieren Sie ffmpeg und python-dev
sudo apt install ffmpeg python3.6-dev
Um den Hintergrundentferner zu installieren, installieren Sie ihn von Pypi
pip install --upgrade pip pip installiere den Hintergrundentferner
Bitte beachten Sie, dass beim ersten Ausführen des Programms geprüft wird, ob Sie über die U2net-Modelle verfügen. Andernfalls werden diese aus diesem Repo abgerufen
Es ist auch möglich, dies auszuführen, ohne es über PIP zu installieren. Klonen Sie einfach den Git auf lokal, starten Sie eine virtuelle Umgebung, installieren Sie die Anforderungen und führen Sie ihn aus
python -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
und für Fenster
python.exe -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
Git-Klon https://github.com/nadermx/backgroundremover.gitcd Backgroundremover docker build -t bgremover .alias backgroundremover='docker run -it --rm -v "$(pwd):/tmp" bgremover:latest'
Entfernen Sie den Hintergrund aus einem lokalen Dateibild
backgroundremover -i "/path/to/image.jpeg" -o "output.png"
Manchmal ist es möglich, durch die Aktivierung der Alpha-Mattierung bessere Ergebnisse zu erzielen. Beispiel:
backgroundremover -i "/path/to/image.jpeg" -a -ae 15 -o "output.png"
Ändern Sie das Modell für verschiedene Hintergrundentfernungsmethoden zwischen u2netp
, u2net
oder u2net_human_seg
backgroundremover -i "/path/to/image.jpeg" -m "u2net_human_seg" -o "output.png"
backgroundremover -i "/path/to/video.mp4" -tv -o "output.mov"
backgroundremover -i "/path/to/video.mp4" -tov "/path/to/videtobeoverlayed.mp4" -o "output.mov"
backgroundremover -i "/path/to/video.mp4" -toi "/path/to/videtobeoverlayed.mp4" -o "output.mov"
backgroundremover -i "/path/to/video.mp4" -tg -o "output.gif"
Erstellen Sie eine Matte-Datei für Premiere
backgroundremover -i "/path/to/video.mp4" -mk -o "output.matte.mp4"
Ändern Sie die Bildrate des Videos (Standard ist 30).
backgroundremover -i "/path/to/video.mp4" -fr 30 -tv -o "output.mov"
Legen Sie die Gesamtzahl der Frames des Videos fest (Standardeinstellung ist -1, d. h. der Hintergrund wird aus dem gesamten Video entfernt)
backgroundremover -i "/path/to/video.mp4" -fl 150 -tv -o "output.mov"
Ändern Sie die GPU-Stapelgröße des Videos (Standard ist 1).
backgroundremover -i "/path/to/video.mp4" -gb 4 -tv -o "output.mov"
Ändern Sie die Anzahl der Mitarbeiter, die am Video arbeiten (Standard ist 1).
backgroundremover -i "/path/to/video.mp4" -wn 4 -tv -o "output.mov"
Ändern Sie das Modell für verschiedene Hintergrundentfernungsmethoden zwischen u2netp
, u2net
oder u2net_human_seg
und begrenzen Sie die Frames auf 150
backgroundremover -i "/path/to/video.mp4" -m "u2net_human_seg" -fl 150 -tv -o "output.mov"
from backgroundremover.bg import remove def remove_bg(src_img_path, out_img_path): model_choices = ["u2net", "u2net_human_seg", "u2netp"] f = open(src_img_path, "rb") data = f.read() img = remove(data, model_name=model_choices[0], alpha_matting=True, alpha_matting_foreground_threshold=240, alpha_matting_background_threshold=10, alpha_matting_erode_structure_size=10, alpha_matting_base_size=1000) f.close() f = open(out_img_path, "wb") f.write(img) f.close()
Konvertieren Sie die Logik von Video in Bild, um beim Entfernen von Bildern mehr GPU zu nutzen
Bereinigen Sie die Dokumentation noch etwas
Fügen Sie die Möglichkeit hinzu, Datensätze anzupassen und Feedback-Bilder oder -Videos zu geben
Fügen Sie die Möglichkeit hinzu, den Hintergrund für Videos und Streaming in Echtzeit zu entfernen
Beenden Sie die Flask-Server-API
Fügen Sie die Möglichkeit hinzu, andere Modelle als U2net zu verwenden, z. B. Ihr eigenes
andere
Akzeptiert
Geben Sie einen Link zu unserem Projekt BackgroundRemoverAI.com oder diesem Git und sagen Sie den Leuten, dass es Ihnen gefällt oder Sie es verwenden.
Wir haben es zu unserem eigenen Paket gemacht, nachdem wir Teile anderer zusammengeführt und einige eigene Funktionen hinzugefügt haben, indem wir Teile als Kopfgeldfragen auf Superuser usw. gepostet haben. Außerdem wurden wir zuvor auf Hackernews gebeten, den Bildteil als Open Source zu veröffentlichen, also beschlossen wir, ihn hinzuzufügen im Video und noch ein bisschen mehr.
https://arxiv.org/pdf/2005.09007.pdf
https://github.com/NathanUA/U-2-Net
https://github.com/pymatting/pymatting
https://github.com/danielgatis/rembg
https://github.com/ecsplendid/rembg-greenscreen
https://superuser.com/questions/1647590/have-ffmpeg-merge-a-matte-key-file-over-the-normal-video-file-removing-the-backg
https://superuser.com/questions/1648680/ffmpeg-alphamerge-two-videos-into-a-gif-with-transparent-background/1649339?noredirect=1#comment2522687_1649339
https://superuser.com/questions/1649817/ffmpeg-overlay-a-video-after-alphamerging-two-others/1649856#1649856
Copyright (c) 2021-heute Johnathan Nader
Copyright (c) 2020-heute Lucas Nestler
Copyright (c) 2020-heute Dr. Tim Scarfe
Copyright (c) 2020-heute Daniel Gatis
Code lizenziert unter MIT-Lizenz. Modelle lizenziert unter Apache-Lizenz 2.0