BEN2:一键快速抠图!自动移除图像和视频中的背景,支持在线使用

Written by 30115776@qq.com

今天和大家分享一款名为 BEN2 的工具,它能快速移除图像和视频中的背景,并提取前景,给需要图像处理的朋友们提供了极大的便利。

🚀 快速阅读

BEN2 是一款深度学习模型,专门用于从图像和视频中快速移除背景并提取前景,能够精准处理复杂背景,尤其是细节丰富的图像。

  • 核心功能:自动移除背景,生成高质量前景图像,适用于各种背景复杂的图像。
  • 技术原理:基于置信度引导抠图(CGM)管道,结合精细化网络优化边缘处理。

BEN2 是什么

BEN2

BEN2(Background Erase Network 2)是由 Prama LLC 开发的深度学习模型,旨在高效从图像和视频中移除背景,提取清晰的前景。通过创新的置信度引导抠图(CGM)技术,BEN2 精准处理复杂区域(如头发、透明物体的边缘),能生成高质量的前景图像。

BEN2 在大规模数据集上训练,能够处理高分辨率图像(如 4K 图像),支持 GPU 加速,确保在 1080p 图像上处理速度仅需 6 秒,4K 图像约 20 秒,适合高效图像处理需求。

BEN2 的主要功能

  • 背景移除与前景分割:自动移除图像和视频背景,生成精确的前景图像,特别适合复杂背景和细节丰富的图像。
  • 高分辨率支持:能够处理 4K 图像,确保图像分割效果清晰。
  • 精细化边缘处理:处理细节区域(如头发和物体边缘),提高图像分割的精度。
  • 视频分割:BEN2 支持视频帧的前景提取,适合视频编辑。
  • 简易 API 与易用性:提供简单易用的 API,方便集成到各种应用中。
  • 批量图像处理:适合需要同时处理多个图像的场景。

BEN2 的技术原理

  • 置信度引导抠图(CGM):模型先对图像进行初步分割,生成初步前景掩码,通过置信度图评估每个像素的分割信心度,低置信度像素通过精细化网络进一步优化。
  • 精细化网络:处理复杂边缘区域,像头发丝、透明物体的边缘等,结合多尺度特征提升边缘处理精度。
  • 深度学习架构:BEN2 在 DIS5k 和 Prama LLC 的 22K 专有数据集上训练,采用高效的编码器-解码器架构,确保在高分辨率图像处理中的高效性。
  • GPU 加速与 CUDA 支持:支持 GPU 加速,图像处理速度大幅提升,1080p 图像处理时间为 6 秒,4K 图像处理时间约 20 秒。

如何运行 BEN2

BEN2 是基于 Confidence Guided Matting (CGM) 技术的前景分割模型,能够通过精细化网络处理低置信度像素,生成更精确的抠图结果。下面我们将介绍如何安装和使用 BEN2,包括图像处理、批量处理以及视频分割的示例。

1. 安装 BEN2

1.1 克隆仓库并安装依赖:

首先,您需要克隆 BEN2 的 GitHub 仓库,并安装所需的依赖项。请按照以下步骤操作:

git clone https://github.com/PramaLLC/BEN2.git
cd BEN2
pip install -r requirements.txt

1.2 安装 BEN2 模型

您可以通过以下命令直接安装 BEN2 模型:

pip install git+https://github.com/PramaLLC/BEN2.git

2. 使用 BEN2 处理单张图像

2.1 导入必要库:

import torch
from ben2 import AutoModel
from PIL import Image

2.2 加载模型并进行推理

device = torch.device(\'cuda\' if torch.cuda.is_available() else \'cpu\')

# 打开图像
image = Image.open(\"image.jpg\")  # 替换为您的图像路径

# 加载预训练模型
model = AutoModel.from_pretrained(\"PramaLLC/BEN2\")
model.to(device).eval()

# 进行推理
foreground = model.inference(image)

# 保存前景图像
foreground.save(\"foreground.png\")

2.3 代码解释

  • torch.device('cuda' if torch.cuda.is_available() else 'cpu'):检查 GPU 是否可用,若可用则使用 GPU,否则使用 CPU。
  • Image.open("image.jpg"):打开图像文件。
  • AutoModel.from_pretrained("PramaLLC/BEN2"):加载预训练的 BEN2 模型。
  • model.inference(image):对图像进行推理,生成前景图像。

3. 批量图像处理

3.1 导入库:

import BEN2
from PIL import Image
import torch

3.2 初始化模型并加载权重

device = torch.device(\'cuda\' if torch.cuda.is_available() else \'cpu\')

# 初始化模型
model = BEN2.BEN_Base().to(device).eval()

# 加载模型权重
model.loadcheckpoints(\"./BEN2_Base.pth\")

3.3 批量处理多张图像

# 打开多张图像
file1 = \"./image1.png\"  # 输入图像1
file2 = \"./image2.png\"  # 输入图像2
image1 = Image.open(file1)
image2 = Image.open(file2)

# 批量推理
foregrounds = model.inference([image1, image2])

# 保存结果
foregrounds[0].save(\"./foreground1.png\")
foregrounds[1].save(\"./foreground2.png\")

4. 视频分割

4.1 安装 FFmpeg

在进行视频分割之前,您需要安装 FFmpeg。可以通过以下命令安装:

sudo apt update
sudo apt install ffmpeg

4.2 视频分割代码

import BEN2
from PIL import Image
import torch

device = torch.device(\'cuda\' if torch.cuda.is_available() else \'cpu\')

# 初始化模型
model = BEN2.BEN_Base().to(device).eval()

# 加载模型权重
model.loadcheckpoints(\"./BEN2_Base.pth\")

# 视频分割
model.segment_video(
    video_path=\"/path_to_your_video.mp4\",  # 输入视频路径
    output_path=\"./\",  # 输出路径,默认为当前目录
    fps=0,  # 如果设置为 0,CV2 将自动检测原始视频的帧率
    refine_foreground=False,  # 是否启用前景精炼,默认为 False
    batch=1,  # 批量大小,默认为 1
    print_frames_processed=True,  # 是否打印处理的帧数,默认为 True
    webm=False,  # 是否输出 WebM 格式的视频,默认为 False
    rgb_value=(0, 255, 0)  # 如果不使用 WebM,背景颜色将为绿色,默认为 (0, 255, 0)
)

4.3 代码解释

  • video_path=\"/path_to_your_video.mp4\": 指定输入视频的路径。
  • output_path=\"./\": 指定输出视频的保存路径,默认为当前目录。
  • fps=0: 如果设置为 0,CV2 将自动检测原始视频的帧率。
  • refine_foreground=False: 是否启用前景精炼,默认为 False。启用后可以提高边缘的准确性,但会增加推理时间。
  • batch=1: 批量大小,默认为 1。对于消费级 GPU,建议不超过 3。
  • print_frames_processed=True: 是否打印处理的帧数,默认为 True。
  • webm=False: 是否输出 WebM 格式的视频,默认为 False。如果不使用 WebM,背景颜色将为绿色。
  • rgb_value=(0, 255, 0): 如果不使用 WebM,背景颜色将为绿色,默认为 (0, 255, 0)。

资源

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

30115776@qq.com

Pretium lorem primis lectus donec tortor fusce morbi risus curae. Dignissim lacus massa mauris enim mattis magnis senectus montes mollis taciti accumsan semper nullam dapibus netus blandit nibh aliquam metus morbi cras magna vivamus per risus.

Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像

DeepSeek-V3 高效训练关键技术分析

发表评论