Skip to content

一键批量抠图!移除人物图片背景的工具!

Notifications You must be signed in to change notification settings

dingdangdog/doremovebg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

批量图片背景移除工具

这是一个基于 rembg 库的本地批量图片背景移除工具。该工具可以批量处理指定文件夹中的图片,自动移除背景并保存到指定的输出文件夹。

功能特点

  • 批量处理图片,自动移除背景
  • 保持原始文件名和目录结构
  • 支持多线程并行处理,提高效率
  • 支持多种图片格式(JPG, JPEG, PNG, BMP, WEBP)
  • 用户友好的命令行界面
  • 支持GPU加速处理(如果可用)
  • 支持多种背景移除模型
  • 智能回退:当GPU不可用时自动使用CPU处理

安装说明

  1. 确保已安装 Python 3.8 或更高版本
  2. 克隆或下载本项目到本地
  3. 在项目目录中创建虚拟环境并安装依赖:
# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
# source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

GPU支持(可选)

如果您想使用GPU加速处理,请确保您的系统满足以下要求:

  1. 安装了NVIDIA GPU驱动程序
  2. 安装了CUDA和cuDNN(与onnxruntime兼容的版本)

CUDA 安装步骤

  1. 访问 NVIDIA CUDA 下载页面 下载并安装适合您系统的 CUDA Toolkit
  2. 访问 NVIDIA cuDNN 下载页面 下载并安装与您 CUDA 版本兼容的 cuDNN

安装完成后,确保将 CUDA 和 cuDNN 的路径添加到系统环境变量中。

常见问题解决

如果遇到 NumPy 版本兼容性问题,请尝试降级 NumPy:

pip install numpy==1.24.3

如果遇到 CUDA 相关错误,请确保:

  • CUDA 和 cuDNN 已正确安装
  • 系统环境变量中包含 CUDA 路径
  • 使用的 GPU 支持所安装的 CUDA 版本

本项目的依赖已包含GPU支持所需的库,安装依赖后会自动检测是否有可用的GPU。如果没有检测到可用的GPU,程序会自动回退到CPU模式,无需担心。

使用方法

快速开始(推荐)

使用交互式界面:

python run.py

这将启动一个交互式界面,引导您输入必要的参数,包括是否使用GPU和选择模型。

命令行参数

您也可以使用命令行参数直接运行:

python run.py --input 输入文件夹路径 --output 输出文件夹路径 --workers 线程数 --gpu --model 模型名称

或者使用简写形式:

python run.py -i 输入文件夹路径 -o 输出文件夹路径 -w 线程数 -g -m u2net

直接使用核心模块

如果您更喜欢直接使用核心功能,可以这样使用:

python removebg.py 输入文件夹路径 输出文件夹路径 --gpu --model u2net

例如:

python removebg.py ./input_images ./output_images --gpu

高级选项:

python removebg.py ./input_images ./output_images --workers 8 --gpu --model isnet-general-use

Windows 用户快速启动

Windows 用户可以直接双击 setup_and_run.bat 文件,它会自动设置环境并启动程序。

Linux/Mac 用户快速启动

Linux/Mac 用户可以使用以下命令运行快速启动脚本:

chmod +x setup_and_run.sh  # 只需执行一次,使脚本可执行
./setup_and_run.sh

参数说明

  • input_dir/--input/-i:包含需要处理的图片的文件夹路径
  • output_dir/--output/-o:处理后的图片保存的文件夹路径
  • --workers/-w:可选参数,指定并行处理的线程数,默认为4
  • --gpu/-g:使用GPU加速处理(如果可用)
  • --model/-m:使用的模型,可选值包括:
    • u2net:通用模型(默认)
    • u2netp:轻量级通用模型
    • u2net_human_seg:人像分割模型
    • silueta:轻量级通用模型
    • isnet-general-use:高精度通用模型
    • isnet-anime:动漫角色分割模型
  • --interactive/-int:使用交互模式

注意事项

  • 所有依赖都会安装在当前项目文件夹中的虚拟环境内,不会影响系统环境
  • 处理大量图片可能需要较长时间,请耐心等待
  • 处理过程中会显示进度信息
  • 首次运行时,程序会自动下载所需的模型文件(约100MB),这可能需要一些时间
  • 使用GPU加速可以显著提高处理速度,但需要有兼容的NVIDIA GPU
  • 如果程序无法使用GPU,会自动回退到CPU模式,无需担心

故障排除

常见问题

  1. NumPy 版本兼容性问题:如果遇到 NumPy 相关错误,尝试降级 NumPy 到 1.24.3 版本

    pip install numpy==1.24.3
  2. CUDA 相关错误:确保已正确安装 CUDA 和 cuDNN,并且系统环境变量中包含 CUDA 路径。如果仍然有问题,程序会自动使用 CPU 模式,不影响正常使用。

  3. 模型下载失败:如果模型下载失败,可以手动下载模型文件并放置在用户主目录的 .u2net 文件夹中

  4. 内存不足:处理大图片时可能会遇到内存不足的问题,可以尝试减小并行处理的线程数

  5. 警告信息:程序运行时可能会显示一些 CUDA 相关的警告信息,这些通常不影响程序的正常运行,可以安全忽略

开发者信息

如果您想为项目做出贡献或进行测试,可以运行测试脚本:

python test.py

About

一键批量抠图!移除人物图片背景的工具!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published