BackgroundRemover est un outil de ligne de commande permettant de supprimer l'arrière-plan d'une image et d'une vidéo à l'aide de l'IA, créé par Nadermx pour alimenter https://BackgroundRemoverAI.com. Si vous vous demandez pourquoi il a été créé, lisez ce court article de blog.
python >= 3.6
python3.6-dev #ou quelle que soit la version de python que vous utilisez
version stable de torch et torchvision (https://pytorch.org)
ffmpeg 4.4+
Pour clarifier, vous devez installer à la fois Python et la version de développement de Python que vous avez installée. IE ; python3.10-dev avec python3.10 ou python3.8-dev avec python3.8
Accédez à https://pytorch.org et faites défiler jusqu'à la section INSTALL PYTORCH
et suivez les instructions.
Par exemple:
PyTorch Build: Stable (1.7.1) Your OS: Windows Package: Pip Language: Python CUDA: None
Pour installer ffmpeg et python-dev
sudo apt install ffmpeg python3.6-dev
Pour installer backgroundremover, installez-le depuis pypi
pip install --upgrade pip pip installer backgroundremover
Veuillez noter que lorsque vous exécuterez le programme pour la première fois, il vérifiera si vous disposez des modèles u2net. Si ce n'est pas le cas, il les extraira de ce dépôt.
Il est également possible de l'exécuter sans l'installer via pip, clonez simplement le git en local, démarrez un environnement virtuel, installez les exigences et exécutez
python -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
et pour les fenêtres
python.exe -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
clone git https://github.com/nadermx/backgroundremover.gitcd backgroundremover docker build -t bgremover .alias backgroundremover='docker run -it --rm -v "$(pwd):/tmp" bgremover:latest'
Supprimer l'arrière-plan d'une image de fichier local
backgroundremover -i "/chemin/vers/image.jpeg" -o "output.png"
Parfois, il est possible d'obtenir de meilleurs résultats en activant le tapis alpha. Exemple:
backgroundremover -i "/chemin/vers/image.jpeg" -a -ae 15 -o "output.png"
changez le modèle pour différentes méthodes de suppression d'arrière-plan entre u2netp
, u2net
ou u2net_human_seg
backgroundremover -i "/path/to/image.jpeg" -m "u2net_human_seg" -o "output.png"
backgroundremover -i "/chemin/vers/video.mp4" -tv -o "output.mov"
backgroundremover -i "/chemin/vers/video.mp4" -tov "/chemin/vers/videtobeoverlayed.mp4" -o "sortie.mov"
backgroundremover -i "/chemin/vers/video.mp4" -toi "/chemin/vers/videtobeoverlayed.mp4" -o "output.mov"
backgroundremover -i "/chemin/vers/video.mp4" -tg -o "output.gif"
Créer un fichier mat pour Premiere
backgroundremover -i "/chemin/vers/video.mp4" -mk -o "output.matte.mp4"
Changer le framerate de la vidéo (la valeur par défaut est définie sur 30)
backgroundremover -i "/path/to/video.mp4" -fr 30 -tv -o "output.mov"
Définir le nombre total d'images de la vidéo (la valeur par défaut est définie sur -1, c'est-à-dire supprimer l'arrière-plan de la vidéo complète)
backgroundremover -i "/chemin/vers/video.mp4" -fl 150 -tv -o "output.mov"
Modifiez la taille du lot GPU de la vidéo (la valeur par défaut est définie sur 1)
backgroundremover -i "/chemin/vers/video.mp4" -gb 4 -tv -o "output.mov"
Modifier le nombre de travailleurs travaillant sur la vidéo (la valeur par défaut est 1)
backgroundremover -i "/chemin/vers/video.mp4" -wn 4 -tv -o "output.mov"
changez le modèle pour différentes méthodes de suppression d'arrière-plan entre u2netp
, u2net
ou u2net_human_seg
et limitez les images à 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()
convertir la logique de la vidéo en image pour utiliser davantage de GPU lors de la suppression d'image
nettoyer un peu plus la documentation
ajouter la possibilité d'ajuster et de donner des images ou des vidéos en retour aux ensembles de données
ajouter la possibilité de supprimer l'arrière-plan en temps réel pour les vidéos, pour le streaming
terminer l'API du serveur Flask
ajouter la possibilité d'utiliser d'autres modèles que u2net, c'est à dire le vôtre
autre
Accepté
Donnez un lien vers notre projet BackgroundRemoverAI.com ou ce git, en disant aux gens que vous l'aimez ou l'utilisez.
Nous en avons fait notre propre package après avoir fusionné des parties d'autres, en ajoutant quelques fonctionnalités qui nous sont propres en publiant des parties sous forme de questions de prime sur le superutilisateur, etc. En plus d'avoir demandé plus tôt sur hackernews d'ouvrir la partie image en source, nous avons donc décidé d'ajouter en vidéo, et un peu plus.
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-présent Johnathan Nader
Copyright (c) 2020-présent Lucas Nestler
Copyright (c) 2020-présent Dr Tim Scarfe
Copyright (c) 2020-présent Daniel Gatis
Code sous licence MIT Modèles sous licence Apache License 2.0