开源最强AI一键抠图一键去背景模型RMBG-1.4

前言

RMBG v1.4 是BRIA AI最先进的背景去除模型,旨在有效地将各种类别和图像类型的前景与背景分开。该模型已在精心选择的数据集上进行训练,其中包括:一般库存图片、电子商务、游戏和广告内容,使其适用于大规模企业内容创建的商业用例。其准确性、效率和多功能性目前可与领先的源可用模型相媲美。它是内容安全、合法许可的数据集和偏见缓解至关重要的理想选择。
在这里插入图片描述

训练数据

Bria-RMBG 模型经过了 12,000 多张高质量、高分辨率、手动标记(像素级准确度)、完全授权的图像的训练。我们的基准包括均衡的性别、均衡的种族以及不同类型的残疾人。为清晰起见,我们根据不同的类别提供了数据分布,以展示我们模型的多功能性。

图像分布

类别分配
仅限对象45.11%
携带物品/动物的人25.24%
仅限人员17.35%
带有文字的人/物体/动物8.52%
纯文本2.52%
仅限动物1.89%
类别分配
真实感87.70%
非真实感12.30%
类别分配
非纯色背景52.05%
纯色背景47.95%
类别分配
单个主要前景对象51.42%
前景中有多个物体48.58%

定性评估

在这里插入图片描述

应用场景

以下是一些主要的应用场景:

  1. 电子商务
    • 产品展示:在线商店需要高质量的产品图片来吸引顾客。去背景技术可以快速创建专业的产品照片,使产品在白色或自定义背景上显得更加突出。
    • 广告和促销:用于创建广告素材,去除杂乱背景,突出产品或服务。

  2. 社交媒体和内容创作
    • 个人和品牌形象:内容创作者和网红可以使用去背景技术创建更专业的图像,用于社交媒体平台的个人资料照片、封面图片和帖子。
    • 视频制作:用于虚拟背景的更换,使视频看起来更专业。

  3. 平面设计
    • 海报和传单:设计师可以快速去除图片背景,以便将主体融入到各种设计项目中,如海报、传单和横幅。
    • 图标和标志设计:创建透明背景的图标和标志,便于在不同背景上使用。

  4. 虚拟试衣间
    • 服装和配饰:在线时尚零售商可以利用去背景技术展示服装和配饰,帮助顾客更好地进行虚拟试穿和搭配。

  5. 教育和培训
    • 教学资料:制作教学幻灯片和其他教育材料时,去除背景可以帮助突出重要的图像内容。
    • 在线课程:讲师可以使用去背景技术创建更专业的视频课程内容。

  6. 市场营销和广告
    • 品牌推广:用于创建清晰、吸引人的广告素材,帮助品牌更好地进行推广。
    • 内容个性化:根据不同的营销活动,快速更换背景以适应不同的主题和场景。

  7. 人力资源
    • 员工证件照:公司可以快速制作员工的专业证件照,用于员工卡、内网个人资料等。

  8. 游戏和娱乐
    • 角色和场景制作:游戏开发者可以更容易地创建角色和场景,去除多余背景以便更好地整合到游戏环境中。
    • 虚拟现实和增强现实:去背景技术在AR和VR中应用广泛,可以实现更逼真的交互体验。

  9. 摄影和视频编辑
    • 照片修图:摄影师可以使用去背景技术快速去除照片中的杂乱背景,使主体更突出。
    • 视频特效:视频编辑可以利用去背景技术添加特效或更换背景。

这些应用场景展示了AI扣图去背景技术的多功能性和重要性,帮助各行各业提高效率,提升视觉效果。

安装

pip install -qr https://huggingface.co/briaai/RMBG-1.4/resolve/main/requirements.txt

用法

加载管道

from transformers import pipeline
image_path = "https://farm5.staticflickr.com/4007/4322154488_997e69e4cf_z.jpg"
pipe = pipeline("image-segmentation", model="briaai/RMBG-1.4", trust_remote_code=True)
pillow_mask = pipe(image_path, return_mask = True) # outputs a pillow mask
pillow_image = pipe(image_path) # applies mask on input and returns a pillow image

或者加载模型

from transformers import AutoModelForImageSegmentation
from torchvision.transforms.functional import normalize
model = AutoModelForImageSegmentation.from_pretrained("briaai/RMBG-1.4",trust_remote_code=True)
def preprocess_image(im: np.ndarray, model_input_size: list) -> torch.Tensor:
    if len(im.shape) < 3:
        im = im[:, :, np.newaxis]
    # orig_im_size=im.shape[0:2]
    im_tensor = torch.tensor(im, dtype=torch.float32).permute(2,0,1)
    im_tensor = F.interpolate(torch.unsqueeze(im_tensor,0), size=model_input_size, mode='bilinear')
    image = torch.divide(im_tensor,255.0)
    image = normalize(image,[0.5,0.5,0.5],[1.0,1.0,1.0])
    return image

def postprocess_image(result: torch.Tensor, im_size: list)-> np.ndarray:
    result = torch.squeeze(F.interpolate(result, size=im_size, mode='bilinear') ,0)
    ma = torch.max(result)
    mi = torch.min(result)
    result = (result-mi)/(ma-mi)
    im_array = (result*255).permute(1,2,0).cpu().data.numpy().astype(np.uint8)
    im_array = np.squeeze(im_array)
    return im_array

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)

# prepare input
image_path = "https://farm5.staticflickr.com/4007/4322154488_997e69e4cf_z.jpg"
orig_im = io.imread(image_path)
orig_im_size = orig_im.shape[0:2]
image = preprocess_image(orig_im, model_input_size).to(device)

# inference 
result=model(image)

# post process
result_image = postprocess_image(result[0][0], orig_im_size)

# save result
pil_im = Image.fromarray(result_image)
no_bg_image = Image.new("RGBA", pil_im.size, (0,0,0,0))
orig_image = Image.open(image_path)
no_bg_image.paste(orig_image, mask=pil_im)
  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大恩子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值