BackgroundRemover es una herramienta de línea de comandos para eliminar el fondo de imágenes y videos usando IA, creada por nadermx para impulsar https://BackgroundRemoverAI.com. Si se pregunta por qué se hizo, lea esta breve publicación de blog.
pitón >= 3.6
python3.6-dev #o cualquier versión de Python que uses
Versión estable de torch y torchvision (https://pytorch.org)
ffmpeg 4.4+
Para aclarar, debe instalar Python y cualquier versión de desarrollo de Python que haya instalado. ES DECIR; python3.10-dev con python3.10 o python3.8-dev con python3.8
Vaya a https://pytorch.org, desplácese hacia abajo hasta la sección INSTALL PYTORCH
y siga las instrucciones.
Por ejemplo:
PyTorch Build: Stable (1.7.1) Your OS: Windows Package: Pip Language: Python CUDA: None
Para instalar ffmpeg y python-dev
sudo apt install ffmpeg python3.6-dev
Para instalar backgroundremover, instálelo desde pypi
instalación de pip --actualizar pip instalación de pip removedor de fondo
Tenga en cuenta que cuando ejecute el programa por primera vez, comprobará si tiene los modelos u2net; si no los tiene, los extraerá de este repositorio.
También es posible ejecutar esto sin instalarlo a través de pip, simplemente clone el git para iniciar localmente un entorno virtual e instale los requisitos y ejecute
python -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "salida.mov"
y para ventanas
python.exe -m backgroundremover.cmd.cli -i "video.mp4" -mk -o "output.mov"
clon de git https://github.com/nadermx/backgroundremover.gitcd backgroundremover docker build -t bgremover .alias backgroundremover='docker run -it --rm -v "$(pwd):/tmp" bgremover:latest'
Eliminar el fondo de una imagen de archivo local
backgroundremover -i "/ruta/a/imagen.jpeg" -o "salida.png"
A veces es posible lograr mejores resultados activando la estera alfa. Ejemplo:
backgroundremover -i "/ruta/a/imagen.jpeg" -a -ae 15 -o "salida.png"
cambie el modelo para diferentes métodos de eliminación de fondo entre u2netp
, u2net
o u2net_human_seg
backgroundremover -i "/ruta/a/image.jpeg" -m "u2net_human_seg" -o "salida.png"
removedor de fondo -i "/ruta/a/video.mp4" -tv -o "salida.mov"
backgroundremover -i "/ruta/a/video.mp4" -tov "/ruta/a/videtobeoverlayed.mp4" -o "salida.mov"
backgroundremover -i "/ruta/a/video.mp4" -toi "/ruta/a/videtobeoverlayed.mp4" -o "salida.mov"
removedor de fondo -i "/ruta/a/video.mp4" -tg -o "salida.gif"
Haz un archivo mate para el estreno.
removedor de fondo -i "/ruta/a/video.mp4" -mk -o "salida.matte.mp4"
Cambiar la velocidad de fotogramas del vídeo (el valor predeterminado está configurado en 30)
backgroundremover -i "/ruta/a/video.mp4" -fr 30 -tv -o "salida.mov"
Establecer el número total de fotogramas del vídeo (el valor predeterminado es -1, es decir, eliminar el fondo del vídeo completo)
removedor de fondo -i "/ruta/a/video.mp4" -fl 150 -tv -o "salida.mov"
Cambie el tamaño del lote de GPU del video (el valor predeterminado está configurado en 1)
removedor de fondo -i "/ruta/a/video.mp4" -gb 4 -tv -o "salida.mov"
Cambiar la cantidad de trabajadores que trabajan en video (el valor predeterminado es 1)
removedor de fondo -i "/ruta/a/video.mp4" -wn 4 -tv -o "salida.mov"
cambie el modelo para diferentes métodos de eliminación de fondo entre u2netp
, u2net
o u2net_human_seg
y limite los fotogramas a 150
backgroundremover -i "/ruta/a/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()
convierta la lógica de video a imagen para utilizar más GPU en la eliminación de imágenes
Limpiar la documentación un poco más.
agregar capacidad para ajustar y dar retroalimentación con imágenes o videos a conjuntos de datos
agregue la capacidad de eliminar el fondo en tiempo real para videos y transmisiones
finalizar la api del servidor flask
agregue la capacidad de usar otros modelos además de u2net, es decir, el suyo propio
otro
Aceptado
Proporcione un enlace a nuestro proyecto BackgroundRemoverAI.com o este git, diciéndole a la gente que le gusta o lo usa.
Lo convertimos en nuestro propio paquete después de fusionar partes de otros, agregando algunas características propias mediante la publicación de partes como preguntas de recompensa en el superusuario, etc. Además, anteriormente solicitamos en hackernews abrir el código fuente de la parte de la imagen, por lo que decidimos agregar en vídeo y un poco más.
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-presente Johnathan Nader
Copyright (c) 2020-presente Lucas Nestler
Copyright (c) 2020-presente Dr. Tim Scare
Copyright (c) 2020-presente Daniel Gatis
Código Licenciado bajo Licencia MIT Modelos Licenciado bajo Licencia Apache 2.0