BackgroundRemover é uma ferramenta de linha de comando para remover o fundo de imagens e vídeos usando IA, feita por nadermx para alimentar https://BackgroundRemoverAI.com. Se você está se perguntando por que isso foi feito, leia esta breve postagem no blog.
píton >= 3.6
python3.6-dev #ou qualquer versão do python que você usa
versão estável do torch e torchvision (https://pytorch.org)
ffmpeg 4.4+
Para esclarecer, você deve instalar o python e qualquer versão de desenvolvimento do python que você instalou. Ou seja; python3.10-dev com python3.10 ou python3.8-dev com python3.8
Vá para https://pytorch.org e role para baixo até a seção INSTALL PYTORCH
e siga as instruções.
Por exemplo:
PyTorch Build: Stable (1.7.1) Your OS: Windows Package: Pip Language: Python CUDA: None
Para instalar ffmpeg e python-dev
sudo apt install ffmpeg python3.6-dev
Para instalar o backgroundremover, instale-o a partir do pypi
pip instalar --atualizar pip pip instalar removedor de fundo
Observe que quando você executar o programa pela primeira vez, ele verificará se você possui os modelos u2net; caso contrário, ele os extrairá deste repositório
Também é possível executar isso sem instalá-lo via pip, basta clonar o git para iniciar localmente um ambiente virtual e instalar os requisitos e executar
python -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
e para janelas
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'
Remover o plano de fundo de uma imagem de arquivo local
backgroundremover -i "/caminho/para/image.jpeg" -o "output.png"
Às vezes é possível obter melhores resultados ativando o fosqueamento alfa. Exemplo:
backgroundremover -i "/caminho/para/image.jpeg" -a -ae 15 -o "output.png"
altere o modelo para diferentes métodos de remoção de plano de fundo entre u2netp
, u2net
ou u2net_human_seg
backgroundremover -i "/caminho/para/image.jpeg" -m "u2net_human_seg" -o "output.png"
backgroundremover -i "/caminho/para/video.mp4" -tv -o "output.mov"
backgroundremover -i "/caminho/para/video.mp4" -tov "/caminho/para/videtobeoverlayed.mp4" -o "output.mov"
backgroundremover -i "/caminho/para/video.mp4" -toi "/caminho/para/videtobeoverlayed.mp4" -o "output.mov"
backgroundremover -i "/caminho/para/video.mp4" -tg -o "output.gif"
Faça um arquivo fosco para estreia
backgroundremover -i "/caminho/para/video.mp4" -mk -o "output.matte.mp4"
Altere a taxa de quadros do vídeo (o padrão é 30)
backgroundremover -i "/caminho/para/video.mp4" -fr 30 -tv -o "output.mov"
Defina o número total de quadros do vídeo (o padrão é definido como -1, ou seja, remove o fundo do vídeo completo)
backgroundremover -i "/caminho/para/video.mp4" -fl 150 -tv -o "output.mov"
Altere o tamanho do lote GPU do vídeo (o padrão é definido como 1)
backgroundremover -i "/caminho/para/video.mp4" -gb 4 -tv -o "output.mov"
Alterar o número de trabalhadores trabalhando no vídeo (o padrão é definido como 1)
backgroundremover -i "/caminho/para/video.mp4" -wn 4 -tv -o "output.mov"
altere o modelo para diferentes métodos de remoção de fundo entre u2netp
, u2net
ou u2net_human_seg
e limite os frames a 150
backgroundremover -i "/caminho/para/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()
converta a lógica de vídeo em imagem para utilizar mais GPU na remoção de imagens
limpe a documentação um pouco mais
adicionar capacidade de ajustar e fornecer imagens ou vídeos de feedback aos conjuntos de dados
adicionar capacidade de remoção de fundo em tempo real para vídeos, para streaming
terminar api do servidor flask
adicione a capacidade de usar outros modelos além do u2net, ou seja, o seu próprio
outro
Aceito
Forneça um link para nosso projeto BackgroundRemoverAI.com ou este git, dizendo às pessoas que você gosta ou usa.
Fizemos nosso próprio pacote depois de mesclar partes de outros, adicionando alguns recursos próprios por meio da postagem de partes como perguntas generosas sobre superusuário, etc. Assim como solicitado no hackernews anteriormente para abrir o código-fonte da parte da imagem, então decidimos adicionar em vídeo e um pouco mais.
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) Johnathan Nader, presente em 2021
Copyright (c) Lucas Nestler, presente em 2020
Copyright (c) Dr. Tim Scarfe, presente em 2020
Copyright (c) Daniel Gatis, presente em 2020
Código licenciado sob modelos de licença MIT licenciado sob licença Apache 2.0