【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

​​​​​​​

目录

一、引言 

二、蒙版生成(mask-generation)

2.1 概述

2.2 facebook/sam-vit-base

2.3 pipeline参数

2.3.1 pipeline对象实例化参数

2.3.2 pipeline对象使用参数 

2.3.3 pipeline对象返回参数

2.4 pipeline实战

2.5 模型排名

三、总结


一、引言 

pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型

今天介绍多模态的第五篇:蒙版生成(mask-generation),在huggingface库内可以使用的蒙版生成(mask-generation)模型有160个。

二、蒙版生成(mask-generation)

2.1 概述

蒙版生成(mask-generation)是生成用于识别给定图像中的特定对象或感兴趣区域的蒙版的任务。蒙版通常用于分割任务,它们提供了一种精确的方法来隔离感兴趣的对象,以便进一步处理或分析。

2.2 facebook/sam-vit-base

facebook推出了Segment Anything (SA) 项目:一种用于图像分割的新任务、模型和数据集。在数据收集循环中使用facebook的高效模型,facebook构建了迄今为止最大的分割数据集,在 1100 万张获得许可且尊重隐私的图像上包含超过 10 亿个掩码。该模型经过设计和训练,可立即使用,因此它可以将零样本转移到新的图像分布和任务中。facebook在众多任务上评估了它的能力,发现它的零样本性能令人印象深刻——通常可以与之前的完全监督结果相媲美甚至更胜一筹。facebook在https://segment-anything.com上发布了Segment Anything 模型 (SAM) 和相应的数据集 (SA-1B),其中包含 1B 个掩码和 1100 万张图像,以促进对计算机视觉基础模型的研究。 

SAM 模型由 3 个模块组成:

  • VisionEncoder基于 VIT 的图像编码器。它使用对图像块的注意力来计算图像嵌入。使用相对位置嵌入。
  • PromptEncoder生成点和边界框的嵌入。
  • MaskDecoder双向转换器,在图像嵌入和点嵌入(->)之间以及点嵌入和图像嵌入之间执行交叉注意力机制。

2.3 pipeline参数

2.3.1 pipeline对象实例化参数

  • model(PreTrainedModel或TFPreTrainedModel)— 管道将使用其进行预测的模型。 对于 PyTorch,这需要从PreTrainedModel继承;对于 TensorFlow,这需要从TFPreTrainedModel继承。
  • image_processor ( BaseImageProcessor ) — 管道将使用的图像处理器来为模型编码数据。此对象继承自 BaseImageProcessor。
  • modelcardstrModelCard可选) — 属于此管道模型的模型卡。
  • frameworkstr可选)— 要使用的框架,"pt"适用于 PyTorch 或"tf"TensorFlow。必须安装指定的框架。
  • taskstr,默认为"")— 管道的任务标识符。
  • num_workersint可选,默认为 8)— 当管道将使用DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上)时,要使用的工作者数量。
  • batch_sizeint可选,默认为 1)— 当管道将使用DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上)时,要使用的批次的大小,对于推理来说,这并不总是有益的,请阅读使用管道进行批处理。
  • args_parser(ArgumentHandler,可选) - 引用负责解析提供的管道参数的对象。
  • deviceint可选,默认为 -1)— CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,设置为正数将在关联的 CUDA 设备 ID 上运行模型。您可以传递本机torch.devicestr
  • torch_dtypestrtorch.dtype可选) - 直接发送model_kwargs(只是一种更简单的快捷方式)以使用此模型的可用精度(torch.float16,,torch.bfloat16...或"auto"
  • binary_outputbool可选,默认为False)——标志指示管道的输出是否应以序列化格式(即 pickle)或原始输出数据(例如文本)进行。
  • points_per_batch可选,整数,默认为 64)— 设置模型同时运行的点数。数字越大,速度越快,但会占用更多 GPU 内存。
  • output_bboxes_maskbool可选,默认为False)— 是否输出边界框预测。
  • output_rle_masks ( bool可选,默认为False) — 是否以RLE格式输出掩码

2.3.2 pipeline对象使用参数 

  • inputsnp.ndarraybytesstrdict)——图像或图像列表。
  • mask_thresholdfloat可选,默认为 0.0)— 将预测掩码转换为二进制值时使用的阈值。
  • pred_iou_threshfloat可选[0,1],默认为 0.88)—应用于模型预测的掩模质量的过滤阈值。
  • stable_score_thresh ( float可选,默认为 0.95) — 中的过滤阈值[0,1],使用在用于二值化模型的掩模预测的截止值变化下的掩模稳定性。
  • stable_score_offsetint可选,默认为 1)— 计算稳定性分数时偏移截止值的量。
  • crops_nms_threshfloat可选,默认为 0.7)— 非最大抑制用于过滤重复蒙版的框 IoU 截止值。
  • crops_n_layersint可选,默认为 0)— 如果是crops_n_layers>0,则将再次对图像的裁剪部分运行掩码预测。设置要运行的层数,其中每层有 2**i_layer 个图像裁剪部分。
  • crop_overlap_ratio ( float可选,默认为512 / 1500) — 设置裁剪重叠的程度。在第一个裁剪层中,裁剪将重叠图像长度的这一部分。后续裁剪较多的层将缩小重叠部分。
  • crop_n_points_downscale_factorint可选,默认为1)— 在第 n 层中采样的每侧点数按 crop_n_points_downscale_factor**n 缩小。
  • timeout可选float,默认为 None)— 等待从网络获取图像的最长时间(以秒为单位)。如果为 None,则不设置超时,并且调用可能会永远阻塞。

2.3.3 pipeline对象返回参数

  • mask ( PIL.Image) — 检测到的对象的二进制掩码,作为(width, height)原始图像形状的 PIL 图像。如果未找到任何对象,则返回用零填充的掩码。
  • score可选 float)——可选,当模型能够估计标签和掩码描述的“对象”的置信度时。 

2.4 pipeline实战

基于pipeline的蒙版生成(mask-generation)任务,采用facebook/sam-vit-base进行图片分割并提取蒙版,代码如下:

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"from transformers import pipelinegenerator = pipeline(model="facebook/sam-vit-base", task="mask-generation")
outputs = generator("./parrots.png",
)
print(outputs)

执行后,自动下载模型文件并进行蒙版生成:

2.5 模型排名

在huggingface上,我们将蒙版生成(mask-generation)模型按下载量从高到低排序,共计168个模型中,文中facebook的sam模型以不同尺寸的形式,霸榜。

​​​​​​​

三、总结

本文对transformers之pipeline的蒙版生成(mask-generation)从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍,读者可以基于pipeline使用文中的2行代码极简的使用多模态中的蒙版生成(mask-generation)模型。

期待您的3连+关注,如何还有时间,欢迎阅读我的其他文章:

《Transformers-Pipeline概述》

【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用

《Transformers-Pipeline 第一章:音频(Audio)篇》

【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)

【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)

【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)

【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)

《Transformers-Pipeline 第二章:计算机视觉(CV)篇》

【人工智能】Transformers之Pipeline(五):深度估计(depth-estimation)

【人工智能】Transformers之Pipeline(六):图像分类(image-classification)

【人工智能】Transformers之Pipeline(七):图像分割(image-segmentation)

【人工智能】Transformers之Pipeline(八):图生图(image-to-image)

【人工智能】Transformers之Pipeline(九):物体检测(object-detection)

【人工智能】Transformers之Pipeline(十):视频分类(video-classification)

【人工智能】Transformers之Pipeline(十一):零样本图片分类(zero-shot-image-classification)

【人工智能】Transformers之Pipeline(十二):零样本物体检测(zero-shot-object-detection)​​​​​​​

《Transformers-Pipeline 第三章:自然语言处理(NLP)篇》

【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)​​​​​​​

【人工智能】Transformers之Pipeline(十四):问答(question-answering)

【人工智能】Transformers之Pipeline(十五):总结(summarization)

【人工智能】Transformers之Pipeline(十六):表格问答(table-question-answering)

【人工智能】Transformers之Pipeline(十七):文本分类(text-classification)

【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)​​​​​​​

【人工智能】Transformers之Pipeline(十九):文生文(text2text-generation)

【人工智能】Transformers之Pipeline(二十):令牌分类(token-classification)

【人工智能】Transformers之Pipeline(二十一):翻译(translation)

【人工智能】Transformers之Pipeline(二十二):零样本文本分类(zero-shot-classification)

《Transformers-Pipeline 第四章:多模态(Multimodal)篇》

【人工智能】Transformers之Pipeline(二十三):文档问答(document-question-answering)​​​​​​​

【人工智能】Transformers之Pipeline(二十四):特征抽取(feature-extraction)​​​​​​​

【人工智能】Transformers之Pipeline(二十五):图片特征抽取(image-feature-extraction)​​​​​​​

【人工智能】Transformers之Pipeline(二十六):图片转文本(image-to-text)

【人工智能】Transformers之Pipeline(二十七):掩码生成(mask-generation)

【人工智能】Transformers之Pipeline(二十八):视觉问答(visual-question-answering)

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

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

相关文章

蓝牙设备驱动开发

文章目录 一、蓝牙协议架构二、蓝牙协议的HCI传输层三、编程框架 一、蓝牙协议架构 蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。它的传输距离为10cm~10m&#…

【Linux】开启你的Linux之旅:初学者指令指南

Linux相关知识点可以通过点击以下链接进行学习一起加油! 在 Linux 开发中,GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题,Git 则提供高效的版本管理与协作支持。本指南将简明介绍两者的核心功能与使用技巧&…

你还没有将 Siri 接入GPT对话功能吗?

由于各种原因,国内ios用户目前无缘自带 AI 功能,但是这并不代表国内 ios 无法接入 AI 功能,接下来手把手带你为iPhone siri 接入 gpt 对话功能。 siri 接入 chatGPT 暂时还无法下载 ChatGPT app,或者没有账号的读者可以直接跳到…

bash命令缓存导致命令执行失败的问题

1、问题背景 为了修复老版本 vsftpd 的安全漏洞,需要把生产环境上 vsftpd 版本升级到 vsftpd-3.0.5,因为直接使用 rpm 包的方式进行升级还涉及到下层依赖包的升级(生产环境上的依赖包版本不能随意变更,可能会影响其他上层应用),所…

import.meta.glob动态加载图片

import.meta.glob 基于Vite(Vue 3 默认构建工具),用于动态导入模块,特别是当你需要批量导入文件或模块时. const modules import.meta.glob(/path/to/files/**/*.js);注意:import.meta.glob 是针对 源代码&#xff…

困扰解决:mfc140u.dll丢失的解决方法,多种有效解决方法全解析

当电脑提示“mfc140u.dll丢失”时,这可能会导致某些程序无法正常运行,给用户带来不便。不过,有多种方法可以尝试解决这个问题。这篇文章将以“mfc140u.dll丢失的解决方法”为主题,教大家有效解决mfc140u.dll丢失。 判断是否是“mf…

状态模式S

状态模式(State Pattern)是行为设计模式的一种,它允许一个对象在其内部状态发生改变时改变其行为。这个对象被视为类型的有限状态机(Finite State Machine)。 在状态模式中,我们创建表示各种状态的对象和一…

Webman中实现定时任务

文章目录 Webman中实现定时任务一、引言二、安装与配置1、安装Crontab组件2、创建进程文件3、配置进程文件随Webman启动4、重启Webman5、Cron表达式(补充)例子 三、使用示例四、总结 Webman中实现定时任务 一、引言 在现代的后端开发中,定时…

瀚高创库建表pgsql

1.瀚高下载地址: 下载 (highgo.com)https://www.highgo.com/down_main.html 2.瀚高linux安装 上传deb文件到ubuntu系统中 执行 dpkg -i hgdb-see-4.5.8-fe4791c.x86_64.deb 命令安装数据库 安装完成后,会在/opt 目录下生成安装目录 数据库安装完毕后…

5.11【机器学习】

先是对图像进行划分 划分完后, 顺序读取文件夹,在文件夹里顺序读取图片, 卷积层又称为滤波器,通道是说滤波器的个数,黑白通道数为1,RGB通道个数为3 在输入层,对于输入层而言,滤波…

Ajax基础总结(思维导图+二维表)

一些话 刚开始学习Ajax的时候,感觉很模糊,但是好像学什么都是这样的,很正常,但是当你学习的时候要持续性敲代码,边敲代码其实就可以理解很多了。然后在最后的总结,其实做二维表之后,就可以区分…

Python 自动化办公的 10 大脚本

大家好,我是你们的 Python 讲师!今天我们将讨论 10 个实用的 Python 自动化办公脚本。这些脚本可以帮助你简化日常工作,提高效率。无论是处理 Excel 文件、发送邮件,还是自动化网页操作,Python 都能派上用场。 1. 批量…

【北京迅为】iTOP-4412全能版使用手册-第二十章 搭建和测试NFS服务器

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、…

[Linux] 信号(singal)详解(一)

标题:[Linux] 信号(singal)详解 水墨不写bug (图片来源于网络) 目录 一、认识信号 1、认识信号 2、信号特点 3、基本概念 二、信号的产生(5种方式) 三、信号的保存 正文开始: 一、认识信号 1、认识信…

简单介绍下 VitePress 中的 vp-doc 和 vp-raw

VitePress 是一个轻量级的静态网站生成器,专为快速构建文档网站而设计。它是基于 Vite 和 Vue 3 构建的,旨在提供快速的开发体验和高效的构建过程。 存在两个需要注意的点:vp-doc 和 vp-raw,它们代表了不同的 CSS 样式类和用途&a…

服务器数据恢复—服务器raid0阵列硬盘指示灯显示黄颜色的数据恢复案例

服务器数据恢复环境&故障情况: 某品牌服务器上有一组由两块SAS硬盘组建的raid0阵列,上层是windows server操作系统ntfs文件系统。服务器上一个硬盘指示灯显示黄颜色,该指示灯对应的硬盘离线,raid不可用。 服务器数据恢复过程…

普及组集训--图论最短路径

定义:表示顶点u到顶点v的一条边的权值(边权) 最短路径算法有常见的四种:floyd,dijkstra,Bellman-Ford,SPFA 不过Bellman-Ford并不常用,所以本文不提; 重点在于dijkstr…

Linux内核ftrace的使用

文章目录 ftrace使用一、ftrace的功能与用途二、ftrace的实现原理三、ftrace的使用步骤1. 查看tracer:通过查看available\_tracers文件,了解当前内核中可用的插件追踪器2. 选择tracer3. 设置参数和过滤器4.开启追踪5. 读取追踪结果 四、ftrace的常用trac…

【笔记总结】华为云:应用上云后的安全规划及设计

一、背景和问题 数字化时代,随着信息技术的飞速发展,企业和各类组织纷纷将自身的应用程序迁移至云端。云计算凭借其诸多优势,如成本效益、可扩展性、灵活性以及便捷的资源共享等,已然成为了现代业务运营的重要支撑。 今年&#xf…

LeetCode-430. 扁平化多级双向链表-题解

题目链接 430. 扁平化多级双向链表 - 力扣(LeetCode) 题目介绍 你将得到一个双链表,节点包含一个“下一个”指针、一个“前一个”指针和一个额外的“子指针”。这个子指针可能指向一个单独的双向链表,并且这些链表也包含类似的特殊…