开源最强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 imagedef 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_arraydevice = 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 scikit-learn进行简单回归分析

使用 scikit-learn&#xff08;简称 sklearn&#xff09;进行简单回归分析的教程。这里我们以波士顿房价数据集&#xff08;Boston House Prices dataset&#xff09;为例&#xff0c;介绍如何使用线性回归&#xff08;Linear Regression&#xff09;模型 环境准备 确保已经安…

疲劳驾驶智能识别摄像机

疲劳驾驶智能识别摄像机在道路安全管理中扮演着越来越重要的角色。这些先进的设备不仅仅是简单的监控工具&#xff0c;它们通过先进的技术和算法&#xff0c;有效地识别和预防司机疲劳驾驶&#xff0c;从而大大减少了交通事故的风险。 首先&#xff0c;这些智能识别摄像机采用高…

IP地址的数量限制

IP地址&#xff08;IPv4&#xff09;是一个4字节32位的正整数&#xff0c;因此一共有个IP地址&#xff0c;即将近43亿个IP地址。但TCP/IP协议规定&#xff0c;每个主机都要有一个IP地址 现在全世界人口已经有70多亿了&#xff0c;电脑、手机等都需要IP地址。随着科技的发展&am…

如何通过数据驱动的动态调度来优化pcdn的效率?

要通过数据驱动的动态调度来优化P2P内容分发网络&#xff08;PCDN&#xff09;的效率&#xff0c;可以采取以下几个关键步骤&#xff1a; 一&#xff0e;数据收集与分析 1.流量监控&#xff1a;收集PCDN网络中每个节点的流量数据&#xff0c;包括上传、下载、转发量等。 2.性…

Android ANR日志分析指南

Android ANR日志分析指南 定义ANR类型ANR出现的原因ANR案例分析过程一、 查看events_log二、 traces.txt 日志分析 ANR 案例整理参考 定义 ANR(Application Not Responding) 应用程序无响应。如果你应用程序在UI线程被阻塞太长时间&#xff0c;就会出现ANR&#xff0c;通常出现…

2024年希望杯数学竞赛各年级100道练习题及答案

链接里面有无答案版本链接&#xff1a;https://pan.baidu.com/s/1nTIVJrTEWUzb0LJNo4mI_Q 提取码&#xff1a;0548 –来自百度网盘超级会员V7的分享 一年级 二年级 三年级 四年级 五年级 六年级 七年级 八年级

【博士每天一篇文献-算法】Fearnet Brain-inspired model for incremental learning

阅读时间&#xff1a;2023-12-16 1 介绍 年份&#xff1a;2017 作者&#xff1a;Ronald Kemker&#xff0c;美国太空部队&#xff1b;Christopher Kanan&#xff0c;罗切斯特大学 期刊&#xff1a; arXiv preprint 引用量&#xff1a;520 Kemker R, Kanan C. Fearnet: Brain-…

基于Java中的SSM框架实现萌宠优购系统项目【项目源码】计算机毕业设计

基于Java中的SSM框架实现萌宠优购系统演示 研究背景 现在人们在生活中、工作中压力与日俱增&#xff0c;而宠物也在人们的生活扮演者越来越重要的角色。然而&#xff0c;对于一些宠物爱好者来说&#xff0c;宠物早已经是他们生活中不可或缺的一部分。因为宠物能与人有心灵的沟…

为element-ui 打个补丁修复el-form的label width问题

为element-ui 打个补丁修复el-form的label width问题 问题回顾 用 element-ui 遇到一个奇怪的问题,控制台老是抛错 [Vue warn]: Error in beforeDestroy hook: "Error: (ElementForm]unpected width 最终排查下来是 el-form 设置了 label-width"auto" 然后又处…

Python实践项目 - 猜数字

实践项目 为了巩固所学知识并培养实践能力&#xff0c;我们可以设计一些有趣的实践项目。以下是一个简单的实践项目示例&#xff1a; 猜数字游戏 项目描述&#xff1a;编写一个猜数字游戏&#xff0c;程序随机生成一个1到100之间的整数&#xff0c;让玩家输入猜测的数字。如…

计算机进入安全模式

最近老是蓝屏------显示是REGISTRY_ERROR&#xff08;注册表错误&#xff09; 重启之后选择进入安全模式 我重启之后&#xff0c;按F8进不了安全模式。通过另一种方式进入&#xff0c;按住Shift键再按重启 重启之后出现以下界面 选择疑难解答&#xff0c;再选择高级选项 在高…

pandas保存成CSV格式时数据换行:SQL的REPLACE函数过滤掉数据的回车符

在使用Pandas保存数据到CSV文件时&#xff0c;如果数据中包含换行符&#xff08;例如\n&#xff09;&#xff0c;这可能会导致数据在CSV文件中被分割成多行&#xff0c;影响数据的完整性和可读性。为了解决这个问题&#xff0c;你可以在保存CSV之前使用Pandas的replace函数来替…

【华为OD机试】日志限流(C++/Java/Python)

题目 题目描述 某软件系统会在运行过程中持续产生日志,系统每天运行N单位时间,运行期间每单位时间产生的日志条数保行在数组records中。records[i]表示第i单位时间内产生日志条数。 由于系统磁盘空间限制,每天可记录保存的日志总数上限为total条。 如果一天产生的日志总条数…

vue3 axios封装接口请求 useAxiosWithCancel hook

实际项目需求&#xff0c;类似机器人对话。生成对话过程中有个停止生成。点击停止生成中断请求。axios提供两种方法 1 .使用 AbortController2CancelToken 取消请求机制说明&#xff1a; 从 v0.22.0 开始&#xff0c;Axios 支持以 fetch API 方式—— AbortController 取消请求…

20240623日志:大模型压缩-sliceGPT

context 1. 剪枝方案图释2. 正交矩阵Q 1. 剪枝方案图释 Fig. 1.1 剪枝方案 图中的阴影是表示丢弃掉这部分数据。通过引入正交矩阵 Q Q Q使 Q ⊤ Q Q Q ⊤ I \mathrm{Q}^\top\mathrm{Q}\mathrm{Q}\mathrm{Q}^\top\mathrm{I} Q⊤QQQ⊤I&#xff0c;来大量缩减 X X X的列数和 W …

androidx.preference框架介绍

一,概要 Preference作为setting核心框架,笔者对此框架做一个简单的解析,androidx.preference本质是对设置领域提供了一层View封装,以android view本身的策略模式进行二次开发,将常用的一些设置样式封装到不同的Preference中,以达到快速开发设置相关功能。并且,此风格与…

将 MinIO 与 Keycloak OIDC 集成

Keycloak是一种单点登录解决方案。使用Keycloak&#xff0c;用户使用Keycloak而不是MinIO进行身份验证。如果没有Keycloak&#xff0c;您将不得不为每个用户创建一个单独的身份 - 从长远来看&#xff0c;这将很麻烦。您需要一个集中身份解决方案来管理 MinIO 的身份验证和授权。…

OpenHarmony 5.0 纯血鸿蒙系统

OpenHarmony-v5.0-Beta1 版本已于 2024-06-20 发布。 OpenHarmony 5.0 Beta1 版本标准系统能力持续完善&#xff0c;ArkUI 完善了组件通过 C API 调用的能力&#xff1b;应用框架细化了生命周期管理能力&#xff0c;完善了应用拉起、跳转的能力&#xff1b;分布式软总线连接能力…

每日一练 - IGMP Snooping工作机制详解

01 真题题目 关于 IGMP Snooping 工作机制的描述,正确的是? A.如果主机发出的 IGMP 离开报文时,交换机将该主机加入到相应的组播表中 B.如主机发出的 IGMP 主机撒告文时交换机将翻除与读主机对的组播表项 C.二层交换机通过不断听 IGMP 报文在二层建立和维护 MAC 广播地址表…

【面试题】漏洞复现的步骤

漏洞复现是信息安全工作中非常重要的一个环节&#xff0c;它通过对已发现的漏洞进行模拟攻击&#xff0c;来验证漏洞的存在性并深入理解其影响。以下是漏洞复现的主要步骤&#xff0c;并尽量以分点表示和归纳的形式呈现&#xff1a; 1. 收集漏洞信息 从漏洞公告、CVE&#xf…