图像分割模型为完成不同维度的任务提供了方法。开源空间已经监督了不同的计算机视觉任务及其应用。去除背景是模型多年来不断探索的另一项图像分割任务。
Bria 的 RMGB v2.0 是一种最先进的模型,能以极高的精度和准确性进行背景去除。该模型是对旧版本 RMGB 1.4 的改进。该开源模型在不同的基准测试中都具有准确性、高效性和多功能性。
该模型可应用于从游戏到图片素材生成等多个领域。它的功能还与其训练数据和架构有关,使其能够在各种环境下运行。
- 了解 BraiAI 的 RMGB v2.0 模型的功能和先进性。
- 探索模型架构以及 BiRefNet 如何增强背景去除效果。
- 了解如何为图像分割任务设置和运行 RMGB v2.0。
- 了解 RMGB v2.0 在游戏、电子商务和广告领域的实际应用。
- 分析 RMGB v1.4 在边缘检测和准确性方面的性能改进。
RGMB如何工作?
该模型的工作原理很简单。它将图像作为输入(各种格式,如 Jpeg、PNG 等)。处理图像后,模型会输出一个分割后的图像区域,去除背景或前景。
RGMB 还能提供掩码,以便进一步处理图像或添加新的背景。
RGMB v2.0的性能基准
RGMB v2.0 在性能和准确性方面都优于其前身 RGMB v1.4。几张图像的测试结果突出显示了 RGMB v2.0 如何呈现更干净的背景。
虽然早期版本的性能不错,但 RGMB v2.0 在理解复杂场景和边缘细节方面树立了新的标准,同时全面改进了背景去除效果。
请点击以下链接,测试早期版本与最新版本。
RGMB v2.0的模型架构
RMGB 由 BRAI AI 开发,基于 BiRefNet 机制。该框架是一种可执行涉及图像-背景分离的高分辨率任务的架构。
这种方法在高分辨率还原模型中结合了两个来源的互补表征。这种方法将对场景的整体理解(一般定位)与详细的边缘信息(局部)相结合,从而实现清晰、精确的边界检测。
RGMB v2.0 采用两阶段模型来利用 BiRefNet 架构:定位模块和复原模块。
定位模块生成代表图像主要区域的一般语义图。该组件可确保模型准确表达图像的结构。有了这个框架,模型就能在考虑背景的情况下确定图像中物体的位置。
另一方面,还原模块有助于还原图像中物体的边界。与第一阶段在较低分辨率下生成语义图相比,该模块在高分辨率下执行这一过程。
还原模块分为两个阶段:第一阶段是原始参考,即原始图像的像素图,提供背景情况。第二个阶段是梯度参考,提供细微边缘的细节。梯度参考还能为边界清晰、颜色复杂的图像提供背景信息,从而帮助提高准确性。
这种方法在物体分离方面效果极佳,尤其是在高分辨率图像中。BriRefNet 架构和模型训练数据集可在各种基准测试中提供最佳结果。
如何运行该模型
即使在低资源环境下,您也可以运行该模型的推理。只需使用一张简单的背景图片,就能完全实现精确分离。
让我们深入了解如何运行 RGMB v2.0 模型;
第 1 步:准备环境
pip install kornia
安装 Konia 与这项任务息息相关,因为它是各种计算机视觉模型必不可少的 Python 库。Konia 是基于 PyTorch 构建的可微分计算机视觉任务,可为图像处理、几何变换、过滤和深度学习应用提供功能。
第 2 步:导入必要的库
from PIL import Image import matplotlib.pyplot as plt import torch from torchvision import transforms from transformers import AutoModelForImageSegmentation
这些库都是运行该模型所必需的。PIL 在加载和打开图像等图像处理任务中总能派上用场,而 matpotlib 则是显示图像和绘制图表的好帮手。
torch 能将图像转换成与深度学习模型兼容的格式。最后,我们使用 AutoModelForIMageSegmentation,它允许我们使用预训练模型进行图像分割。
第 3 步:加载预训练模型
model = AutoModelForImageSegmentation.from_pretrained('briaai/RMBG-2.0', trust_remote_code=True) torch.set_float32_matmul_precision(['high', 'highest'][0]) model.to('cuda') model.eval()
这段代码加载了预先训练好的后台移除模型,然后应用了 trust_remote_code=True
,因为它允许执行自定义的 Python 代码。下一行使用矩阵乘法优化性能。
最后,我们将模型移动到可用的 GPU 上,为推理做好准备。
第 4 步:图像预处理
这段代码定义了图像处理阶段,将图像大小调整为 1024 x 1024,并转换为张量。这样,我们就有了平均值和标准偏差的像素值。
transform.compose
函数以链式转换的方式帮助处理输入的图像操作,以确保图像得到统一处理。这一步骤还能将像素值保持在一致的范围内。
image_size = (1024, 1024) transform_image = transforms.Compose([ transforms.Resize(image_size), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])
第 5 步:加载图像
image = Image.open("/content/Boy using a computer.jpeg") input_images = transform_image(image).unsqueeze(0).to('cuda')
在这里,我们加载图像并为模型做好准备。首先,使用“PIL”打开图像,然后调整图像大小并将其转换为张量。在将图像移动到 GPU 的“cuda”之前,还会为图像添加额外的批次维度,以加快推理速度并确保与模型的兼容性。
第 6 步:去除背景
这段代码会根据模型预测生成分割掩码,并将其应用于原始图像,从而去除背景。
with torch.no_grad(): preds = model(input_images)[-1].sigmoid().cpu() pred = preds[0].squeeze() pred_pil = transforms.ToPILImage()(pred) mask = pred_pil.resize(image.size) image.putalpha(mask)
这段代码通过从模型中获取透明度掩码来移除背景。它在不进行梯度跟踪的情况下运行模型,应用 sigmoid() 获得像素概率,并将结果移动到 CPU。遮罩的大小会调整到与原始图像相匹配,并设置为其 alpha 通道,从而使背景透明。
输入图像的结果如下,背景已去除,并与主要对象(男孩)分离。
下面是代码文件。
使用RMGB v2.0移除图像背景的应用
该模型在不同领域有多种应用案例。一些常见的应用包括
- 电商:该模型可用于完成电子商务产品摄影,因为您可以移除和替换图像中的前景。
- 游戏:移除背景在创建游戏资产中发挥着巨大作用。该模型可用于将选定的图像与其他对象分离。
- 广告:您可以利用 RMGB 的背景移除和替换功能生成广告设计和内容。这些可以是图像,甚至是图形。
小结
RMGB 广泛应用于各行各业。从早期的 v1.2 到最新的 v2.0,该模型的功能也得到了改进。它的架构和对 BiRefNet 的利用在其性能和推理时间方面发挥了巨大作用。您可以使用各种图像类型来探索该模型的输出和性能质量。
- 与前代产品相比,该模型的改进是 RMGB 工作原理的一个显著方面。对上下文的理解是凸显其性能改进的另一个方面。
- 该模型的突出之处在于它在广告、游戏和电子商务等各个领域的广泛应用。
- 该模型的显著特点是易于执行和集成。这得益于其独特的架构,该架构允许其在低资源环境中运行,推理时间短。
评论留言