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

简介: BEN2 是由 Prama LLC 开发的深度学习模型,专注于从图像和视频中快速移除背景并提取前景,支持高分辨率处理和GPU加速。

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

🥦 微信公众号|搜一搜:蚝油菜花 🥦


大家好,我是蚝油菜花,今天跟大家分享一下 BEN2 这个专门用于从图像和视频中快速移除背景并提取前景的深度学习模型。

🚀 快速阅读

BEN2 是一款专注于从图像和视频中快速移除背景并提取前景的深度学习模型。

  1. 核心功能:自动从图像和视频中移除背景,生成高质量的前景图像,特别适用于复杂背景和细节丰富的图像。
  2. 技术原理:基于置信度引导抠图(CGM)管道,结合精细化网络处理复杂区域,如头发和边缘。

BEN2 是什么

BEN2

BEN2(Background Erase Network 2)是由 Prama LLC 开发的深度学习模型,专为从图像和视频中快速移除背景并提取前景而设计。它基于创新的置信度引导抠图(CGM)管道,通过精细化网络处理复杂区域,如头发和边缘,实现高精度的前景分割。

BEN2 在大规模数据集上训练,擅长处理高分辨率图像(如4K),并且支持 GPU 加速,确保处理速度极快。1080p 图像仅需 6 秒,4K 图像约 20 秒,适用于需要高效处理多个图像的场景。

BEN2 的主要功能

  • 背景移除与前景分割:BEN2 能自动从图像和视频中移除背景,生成高质量的前景图像。通过创新的置信度引导抠图(CGM)管道,对复杂背景和细节丰富的图像(如头发、边缘等)进行高精度分割。
  • 高分辨率处理:支持 4K 图像处理,确保高分辨率图像的分割效果,适用于需要高精度和高质量图像处理的应用场景。
  • 边缘精细化:通过精细化网络处理边缘,提升分割精度,适用于需要精细边缘处理的图像,如产品照片、肖像等。
  • 视频分割:BEN2 可以对视频中的每一帧进行前景提取,适用于动态视频编辑。
  • 简单 API 与易用性:提供简洁的 API,方便集成到各种应用中。
  • 批量图像处理:适合需要高效处理多个图像的场景。

BEN2 的技术原理

  • 置信度引导抠图(CGM):基础模型首先对图像进行初步分割,生成一个初步的前景掩码。置信度映射(confidence map)用于评估每个像素的分割置信度。对于置信度较低的像素,精细化网络会进一步处理,以提高分割精度。
  • 精细化网络:精细化网络专注于处理复杂的边缘区域,例如头发丝和透明物体的边缘。通过多尺度特征融合和上下文信息,精细化网络能生成更自然、更精确的边缘。
  • 深度学习架构:BEN2 在 DIS5k 和 Prama LLC 的 22K 专有分割数据集上进行了训练,能适应多种复杂的背景和光照条件。模型采用高效的编码器-解码器架构,结合多尺度特征提取,确保在高分辨率图像(如 4K)上的高效处理。
  • GPU 加速与 CUDA 支持:BEN2 支持 CUDA 和 GPU 加速,能提升处理速度。部署的实例可以在 6 秒内完成 1080p 图像的抠图,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"): 从 Hugging Face 加载预训练的 BEN2 模型。
  • model.inference(image): 对输入图像进行推理,生成前景图像。
  • foreground.save("foreground.png"): 将生成的前景图像保存为 PNG 文件。

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")

3.4 代码解释

  • model.inference([image1, image2]): 对多张图像进行批量推理,返回多个前景图像。
  • foregrounds[0].save("./foreground1.png"): 保存第 1 张图像的前景结果。
  • foregrounds[1].save("./foreground2.png"): 保存第 2 张图像的前景结果。

  • 提示: 对于消费级 GPU,建议批量大小不超过 3,因为更大的批量并不会显著提高推理速度。

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技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
人工智能 测试技术 开发者
最强开源背景去除模型​RMBG v1.4
RMBG v1.4是briaai公司最先进的背景去除模型,它可以将一系列类别和图像类型中有效地将前景与背景切分
1617 0
最强开源背景去除模型​RMBG v1.4
|
3月前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
2868 153
|
4月前
|
编解码 人工智能 自然语言处理
牛B, 我去,新手小白也能使用InfiniteTalk搭建属于自己的数字人啦 ,真的太简单啦!!!
小华同学带你解锁AI高效工具!InfiniteTalk创新“稀疏帧配音”技术,实现口型、表情、身态协同演进,支持I2V/V2V双模式,确保长视频ID/背景稳定,流畅跨片段衔接,助力课程、宣传、电商等多场景降本增效。
1051 6
|
9月前
|
前端开发 API 开发者
一键抠图有多强?19Kstar 的 Rembg 开源神器,5 大实用场景颠覆想象!
Rembg是一款基于Python的开源抠图工具,利用深度学习模型(U-Net/U-2-Net)实现高质量背景移除。它支持命令行、Python API、服务端API及插件等多种形式,适用于电商商品图、社交头像优化、设计项目图像等场景。凭借高精准度、即插即用特性和全面生态,Rembg在GitHub上已获19.1K星,成为开发者社区中的热门工具。其本地部署特性确保数据隐私,适合专业与商业环境使用。项目地址:https://github.com/danielgatis/rembg。
2591 24
|
6月前
|
机器学习/深度学习 传感器 编解码
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
DINOv3是Meta推出的自监督视觉模型,支持冻结主干、仅训练轻量任务头即可在分割、深度估计等任务上达到SOTA,极大降低训练成本。其密集特征质量优异,适用于遥感、工业检测等多领域,真正实现“一个模型走天下”。
4758 2
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
|
机器学习/深度学习 人工智能 Linux
SAM 2.1:Meta 开源的图像和视频分割,支持实时视频处理
SAM 2.1是由Meta(Facebook的母公司)推出的先进视觉分割模型,专为图像和视频处理设计。该模型基于Transformer架构和流式记忆设计,实现了实时视频处理,并引入了数据增强技术,提升了对视觉相似物体和小物体的识别能力。SAM 2.1的主要功能包括图像和视频分割、实时视频处理、用户交互式分割、多对象跟踪以及改进的遮挡处理能力。
1398 6
SAM 2.1:Meta 开源的图像和视频分割,支持实时视频处理
|
机器学习/深度学习 编解码 算法
了解与对比主流背景去除工具
本文对比了几款主流的背景去除工具,包括Remove.bg、Removal.ai、RMBG 2.0、Imagga和Wondershare Pixcut,重点介绍了RMBG 2.0这款开源工具的性能、优势及挑战,适用于不同需求的用户选择。
|
机器学习/深度学习 人工智能 自然语言处理
DeepRant:一款专为国际游戏玩家设计的翻译工具,一键翻译聊天对话,无需切出游戏
专为游戏玩家设计的多语言快捷翻译工具,支持多种翻译模式和主流语言,基于Tauri和React开发。
1092 12
DeepRant:一款专为国际游戏玩家设计的翻译工具,一键翻译聊天对话,无需切出游戏
|
人工智能 自然语言处理 PyTorch
Sa2VA:别再用PS抠图了!字节跳动开源Sa2VA:一句话自动分割视频,连头发丝都精准
Sa2VA 是由字节跳动等机构联合推出的多模态大语言模型,结合 SAM2 和 LLaVA 实现对图像和视频的精确分割和对话功能。
1088 15
Sa2VA:别再用PS抠图了!字节跳动开源Sa2VA:一句话自动分割视频,连头发丝都精准
|
11月前
|
机器学习/深度学习 人工智能 编解码
重定义数字人交互!OmniTalker:阿里推出实时多模态说话头像生成框架,音视频实现唇语级同步
阿里巴巴推出的OmniTalker框架通过Thinker-Talker架构实现文本驱动的实时说话头像生成,创新性采用TMRoPE技术确保音视频同步,支持流式多模态输入处理。
3123 2
重定义数字人交互!OmniTalker:阿里推出实时多模态说话头像生成框架,音视频实现唇语级同步

热门文章

最新文章