基于文本提示和语义分割的快速抠图
基于文本提示和语义分割的快速抠图
- 1. 介绍
- 2. 效果展示
- 3. 安装模型
- 4. 命令行调用
- 5. 代码调用
- 5.1 模型加载
- 5.2 可视化函数定义
- 5.3 图像语义分割
- 6. 参考资料
- 7. 结语
- 服务
1. 介绍
传统的图像语义分割模型通常固定类别进行分割,而基于文本提示的语义分割模型则具有更高的灵活性。本文介绍的模型允许用户通过输入文本标签来手动控制分割的类别信息,从而实现快速抠图的需求。
2. 效果展示
通过控制文本标签,模型能够快速、精准地抠出特定物体,以下是部分抠图效果展示:

3. 安装模型
使用 PaddleHub 可以便捷地安装该语义分割模型:
!pip install --upgrade paddlenlp
!hub install lseg
4. 命令行调用
通过简单的命令行指令即可快速调用模型进行抠图:
!hub run lseg \--input_path "images/cat.jpeg" \--labels 'cat' 'other' \--output_dir "lseg_output"
文本标签支持中英文,模型会自动翻译至英文输入。
5. 代码调用
5.1 模型加载
import paddlehub as hubmodule = hub.Module(name="lseg")
5.2 可视化函数定义
import cv2
import numpy as np
from PIL import Imagedef vis(results):result = np.concatenate([results['color'], results['mix']], 1)return Image.fromarray(result[:, :, ::-1])
5.3 图像语义分割
# 定义图像路径 / 类别 / 保存路径
image_path = 'images/cat.jpeg'
labels = ['plant', 'grass', 'cat', 'stone', 'other']
output_dir = 'lseg_output'# 图像分割
results = module.segment(image=image_path,labels=labels,visualization=True,output_dir=output_dir
)# 可视化
vis(results)
或者直接使用 numpy.ndarray BGR 格式的图像:
# 定义图像路径 / 类别 / 保存路径
image_path = 'images/cat.jpeg'
labels = ['plant', 'grass', 'cat', 'stone', 'other']
output_dir = 'lseg_output'# 图像分割
results = module.segment(image=cv2.imread(image_path),labels=labels,visualization=True,output_dir=output_dir
)# 可视化
vis(results)
6. 参考资料
- 论文:Language-driven Semantic Segmentation
- 官方实现:isl-org/lang-seg
- AIStudio 介绍:Lang-Seg:文本驱动的图像语义分割
7. 结语
以上是基于文本提示的语义分割快速抠图模型的介绍与实践。希望本文能够对您有所帮助,若有任何疑问或建议,欢迎留言交流!
服务
🛠 博主提供一站式解决方案,让您的工作变得更加轻松、高效!以下是我们提供的服务:
-
代部署
🚀 为您提供快速、稳定的部署方案。无论是您的应用程序、网站还是其他软件项目,我们都可以帮助您将其部署到适当的平台上。
-
课程设计选题
📚 为您量身定制符合课程要求和学生需求的选题方案。无论是基础课程还是高级课程,我们都能够为您提供专业的建议和支持。
-
线上辅导
💻 提供线上辅导服务,为您提供个性化的指导和支持,帮助您解决在学习、工作或研究中遇到的各种问题和困难。
如有需求,请随时私信
相关文章:
基于文本提示和语义分割的快速抠图
基于文本提示和语义分割的快速抠图 1. 介绍2. 效果展示3. 安装模型4. 命令行调用5. 代码调用5.1 模型加载5.2 可视化函数定义5.3 图像语义分割 6. 参考资料7. 结语服务 1. 介绍 传统的图像语义分割模型通常固定类别进行分割,而基于文本提示的语义分割模型则具有更高…...
什么是媒体发稿?发稿媒体分类及发稿流程
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体发稿是一种企业推广和宣传的手段,通过媒体渠道传递企业信息和形象。 媒体发稿的含义在于,当企业有新闻、事件或其他消息需要对外公布时,可以选择…...
安全测试自学手册之软件安全测试基础
安全测试的概念 定义:指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。】 应用软件的安全性测试:软件自身设计中存在的安全隐患,并检查软件对非法入侵的防御能力。系统级别的安全性测试:确保只有具备系统平台访问权限…...
【LeetCode】升级打怪之路 Day 04:链表 part 2
今日题目: 24. 两两交换链表中的节点19. 删除链表的倒数第 N 个结点160. 相交链表142. 环形链表 II 目录 LeetCode 24. 两两交换链表中的节点 【易错】LeetCode 19. 删除链表的倒数第 N 个结点 【还行】LeetCode 160. 相交链表(两个链表是否相交…...
JAVA编程题系列——涵盖几乎所有java内容
自己定义一个类,有static属性和构造方法,有构造方法重载,有其他方法(方法有对String类型操作) public class MyClass {// 静态属性public static String staticProperty "Static Property";// 成员变量priv…...
【Android12】Monkey压力测试源码执行流程分析
Monkey压力测试源码执行流程分析 Monkey是Android提供的用于应用程序自动化测试、压力测试的测试工具。 其源码路径(Android12)位于 /development/cmds/monkey/部署形式为Java Binary # development/cmds/monkey/Android.bp // Copyright 2008 The Android Open Source Proj…...
Java架构师之路八、安全技术:Web安全、网络安全、系统安全、数据安全等
目录 Web安全: 网络安全: 系统安全: 数据安全: Java架构师之路七、大数据:Hadoop、Spark、Hive、HBase、Kafka等-CSDN博客Java架构师之路九、设计模式:常见的设计模式,如单例模式、工厂模式…...
Codeforces Round 240 (Div. 1) C. Mashmokh and Reverse Operation(分治+逆序对)
原题链接:C. Mashmokh and Reverse Operation 题目大意: 给出一个长度为 2 n 2^{n} 2n 的正整数数组 a a a ,再给出 m m m 次操作。 每次操作给出一个数字 q q q ,把数组分为 2 n − q 2^{n-q} 2n−q 个长度为 2 q 2^{q} 2…...
SpringBoot源码解读与原理分析(三十二)SpringBoot整合JDBC(一)JDBC组件的自动装配
文章目录 前言第10章 SpringBoot整合JDBC10.1 SpringBoot整合JDBC的项目搭建10.1.1 初始化数据库10.1.2 整合项目10.1.2.1 导入JDBC和MySQL驱动依赖10.1.2.2 配置数据源 10.1.3 编写业务代码10.1.3.1 编写与t_user表对应的实体类User10.1.3.2 编写Dao层代码10.1.3.3 编写Servic…...
petalinux_zynq7 驱动DAC以及ADC模块之五:nodejs+vue3实现web网页波形显示
前文: petalinux_zynq7 C语言驱动DAC以及ADC模块之一:建立IPhttps://blog.csdn.net/qq_27158179/article/details/136234296petalinux_zynq7 C语言驱动DAC以及ADC模块之二:petalinuxhttps://blog.csdn.net/qq_27158179/article/details/1362…...
Android java中内部类的使用
一.成员内部类 实验1:成员内部类 class Outer {private int a 10;class Inner {public void printInfo(){System.out.println("a "a);}}}public class InnerDemo {public static void main(String args[]) {Outer o new Outer();Outer.Inner i o.new…...
llm的inference(二)
文章目录 Tokenizer分词1.单词分词法2.单字符分词法3.子词分词法BPE(字节对编码,Byte Pair Encoding)WordPieceUnigram Language Model(ULM) embedding的本质推理时的一些指标参考链接 Tokenizer 在使用模型前,都需要将sequence过一遍Tokenizer…...
pytorch -- torch.nn.Module
基础 torch.nn 是 PyTorch 中用于构建神经网络的模块。nn.Module包含网络各层的定义及forward方法。 在用户自定义神经网络时,需要继承自nn.Module类。通过继承 nn.Module 类,您可以创建自己的神经网络模型,并定义模型的结构和操作。 torch.n…...
Microsoft Edge 越用越慢、超级卡顿?网页B站播放卡顿?
记录10个小妙招 Microsoft Edge 启动缓慢、菜单导航卡顿、浏览响应沉闷?这些情况可能是由于系统资源不足或浏览器没及时更新引起的。接下来,我们将介绍 10 种简单的方法,让 Edge 浏览器的速度重新起飞。 基础检查与问题解决 如果 Microsoft…...
XGB-9: 分类数据
从1.5版本开始,XGBoost Python包为公共测试提供了对分类数据的实验性支持。对于数值数据,切分条件被定义为 v a l u e < t h r e s h o l d value < threshold value<threshold ,而对于分类数据,切分的定义取决于是否使用…...
FreeRTOS学习第8篇--同步和互斥操作引子
目录 FreeRTOS学习第8篇--同步和互斥操作引子同步和互斥概念实现同步和互斥的机制PrintTask_Task任务相关代码片段CalcTask_Task任务相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第8篇–同步和互斥操作引子 本文目标:学习与使用FreeRTOS中的同步和互斥操…...
c++STL容器的使用(vector, list, map, set等),c++STL算法的理解与使用(sort, find, binary_search等)
cSTL容器的使用(vector, list, map, set等) 在C的STL(Standard Template Library)中,容器是重要的一部分,它们提供了各种数据结构来存储和管理数据。以下是一些常见的STL容器及其使用方法的简要说明&#x…...
选择VR全景行业,需要了解哪些内容?
近年来,随着虚拟现实、增强现实等技术的持续发展,VR全景消费市场得以稳步扩张。其次,元宇宙行业的高速发展,也在进一步拉动VR全景技术的持续进步,带动VR产业的高质量发展。作为一种战略性的新兴产业,国家和…...
830. 单调栈
Problem: 830. 单调栈 文章目录 思路解题方法复杂度Code 思路 这是一个单调栈的问题。单调栈是一种特殊的栈结构,它的特点是栈中的元素保持单调性。在这个问题中,我们需要找到每个元素左边第一个比它小的元素,这就需要使用到单调递增栈。 我们…...
H5 个人引导页官网型源码
H5 个人引导页官网型源码 源码介绍:源码无后台、无数据库,H5自检测适应、无加密,直接修改可用。 源码含有多选项,多功能。可展示自己站点、团队站点。手机电脑双端。 下载地址: https://www.changyouzuhao.cn/1434.…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
