【多模态大模型】系列3:语义分割(LSeg、GroupViT)

devtools/2025/2/11 6:39:48/

目录

  • 1 LSeg
  • 2 Group ViT

1 LSeg

LANGUAGE-DRIVEN SEMANTIC SEGMENTATION

LSeg是第一篇将CLIP应用于语义分割的论文。它的分割的效果拔群,容错能力也很高:

效果

模型总览图跟CLIP很像:

模型结构

对于图像链路:输入一张图片,进入分割的模型,得到一个特征图,通过上采样放大,因为我们现在做的是密集任务,输出和原来图像的大小是一致的,所以需要做一些升维的操作,最后模型的输出和ground truth supervision去计算cross entropy loss即可。

图像的编码器是DPT的结构(前面有一个ViT,后面加了个Decoder),即拿ViT去做有监督的语义分割。Decoder的作用是把一个bottleneck feature慢慢地upscale上去。

对于文本链路:总共有N个label,这些标签通过文本编码器就能得到N个文本特征。这里对N是没有限制的,可以只检测狗,也可以检测狗和数,还能检测其他东西,N是随时可以改变的。文本通过编码器之后就会得到一个N×C的矩阵,C是特征的维度。

将图片特征和文本特征在C维度上相乘,就会得到一个H×W×N的tensor,到这一步,就和传统的分割没有区别了,因为传统的分割也是会得到一个H×W×N的特征。

该论文虽然说是用到了CLIP,并且是Zero-Shot,但是它的训练过程是有监督的训练,模型是在7个分割数据集上一起训练出来的,即最后是有ground truth mask的,目标函数就是跟ground truth mask去做的cross entropy loss,而不是像CLIP那样是对比学习的Loss,不是一个无监督训练的工作。

在训练的过程中,文本编码器直接用CLIP的,训练过程中完全冻住,不参与训练。

最后的spatial regularization blocks去掉也不影响我们对模型结构的理解。

2 Group ViT

GroupViT: Semantic Segmentation Emerges from Text Supervision

Group ViT的监督信号来自于文本,不依赖于segmentation mask的手工标注,可以像CLIP那样直接利用图像文本对进行的无监督训练。

Problem Overview

为什么叫Group ViT呢?因为在视觉领域,很早之前做无监督分类的,有一种常用的方法叫grouping,简单来说就是从一个聚类的中心点往外发散,把附近周围相似的点逐渐扩充成一个group,这个group相当于一个segmentation mask,是一种自下而上的方式。此处,作者相当于重新审视了这个grouping的方法,把它完美地用到当前这个框架中,他们提出了一个计算单元,如下图右侧框图,叫做grouping block,还有一些可以学习的group tokens,主要的目的是想让模型在初始学习的时候,能慢慢地把邻近的像素点都一点一点地group起来,变成一个又一个segmentation mask。下图中间画出了这些segmentation mask,在模型的浅层,学到的group token分割的效果还不是很好,能看到一些五颜六色的颜色块。经过模型的学习,深层的group token分割效果相当不错。

模型总览图

Group ViT的贡献是:在一个已有的ViT框架中,加入了grouping block,同时加入了这些可学习的group tokens。

Zero Shot推理过程如下图所示:

  • 给定一张图片,经过GroupViT的图像编码器,就会得到最后的8个Group Embedding;
  • 再把有可能的标签通过文本编码器,得到一系列的文本特征;
  • 接下来计算图像的Group Embedding和文本特征之间的相似度,就可以知道每个group Embedding对应那个Class。

这里有个明显的局限性:因为模型最后只有8个Group Embedding,也就意味着,一张图片的分割最多只能检测到8类。

推理过程


http://www.ppmy.cn/devtools/157851.html

相关文章

鸿蒙NEXT开发-鸿蒙三方库

基本介绍 三方库是开发者在系统能力的基础上进行了一层具体功能的封装,对其能力进行拓展,提供更加方便的接口,提升开发效率的工具。 我们在之前的课程中学习过如何安装三方库axios了,我们大家可以通过ohpm install ohos/axios进行…

变化检测论文阅读合集

1. ChangeCLIP: Remote sensing change detection with multimodal vision-language representation learning 作者:Sijun Dong a, Libo Wang b, Bo Du c, Xiaoliang Meng a,* 年份:2024 研究方法/模型: 重构原始CLIP:提取双时…

【前端】几种常见的跨域解决方案

在前端开发中,跨域问题是常见的挑战。以下是几种常见的跨域解决方案: 1. Nginx反向代理 使用 Nginx 进行反向代理是解决跨域问题的一种常见方式。Nginx 会充当一个中间代理服务器,接收来自前端的请求并将其转发到实际的后端 API 服务&#…

内蒙古蒙东某露天煤矿隆起自动化监测

1. 项目简介 该矿山是一家集煤炭生产、加工、销售于一体的国有大型露天煤矿,是国家重点建设的13个大型煤炭基地之一,是国家能源重点发展地区。该矿脉储量丰富、资源可靠、开采条件优越、市场条件良好,煤种属于老年褐煤,具有挥发分…

ES传输带宽优化方案

背景:目前日志从kafka中消费后转存ES,是通过批量发送的方式打入ES,但是如果数据量很大那么就会占用很多的带宽,而目前正在降本增效,无法增加带宽或者服务节点。 源码在最下方!! 限流牺牲磁盘作为代价 从…

【AI学习】LLM的发展方向

个人的思考,请大家批评。 这一轮AI浪潮,叙事的主要逻辑就是scaling law,模型越大,性能越好,投入越大,性能越好,回报越高,等等。当然,首先要有一个能够scaling的模型架构…

深入 JVM 虚拟机:字符串常量池演变与 intern() 方法工作原理解析

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 📝 如有错误敬请纠正! 前言 在 Java 开发中,字符串常量池(String Constant…

web前端布局--使用element中的Container布局容器

前端页面,跟Qt中一样,都是有布局设置的。 先布局,然后再在各布局中添加显示的内容。 Element网站布局容器:https://element.eleme.cn/#/zh-CN/componet/container 1.将element相应的布局容器代码layout,粘贴到vue项…