一篇CLIP应用在语义分割上的论文

论文标题:

Extract Free Dense Labels from CLIP

作者信息:

代码地址:

https://github.com/chongzhou96/MaskCLIP

Abstract:

许多论文研究了CLIP在图像分类的表现,作者提出了采用CLIP去处理像素型密集任务,如图像分割,作者提出了MaskCLIP和MaskCLIP+均取得了很好的效果。

Introduction

(作者认为CLIP模型有处理密集型预测任务的潜力,具有以下优势:)
1.能够学习一些局部的语义特征(从NLP中)。
2.能够学习一些开放的词汇的概念。
3.能够捕获丰富的上下文本信息。

(作者的尝试和经验)
1.不要打破CLIP中固有的visual-language association。作者早期将CLIP中的img encode单独拿出用于初始化如deeplab的backbone并Fine tune。使CLIP的泛化能力降低。
2.不要对CLIP中的text encode做太多改变,会使CLIP丢失对unseen物体的分割能力。

(作者的贡献和模型的效果)
1.作者提出了MaskCLIP模型:从CLIP中的 Img encode获得patch-level图像特征,从text encode直接获得像素预测的权重,而没有采用有意的映射。
(另一篇论文有些类似:也取消了采用GAP生成CAM,而是改用1×1的卷积直出)
2.提出两种refine技术:key smoothing 和prompt denoising。
2.提出了MaskCLIP+,利用MaskCLIP对unseen的物体生成伪标签,然后进行训练。

Methodology

下图为模型的整体概略图

3.1 Preliminary on CLIP

(作者简单介绍了下CLIP模型)

3.2 Conventional Fine-Tuning Hinders Zero-Shot Ability

(对于分割问题的范式)1.初始化在Image net上预训练的backbone,2.添加专用于分割模块(随机初始化权重)3.fine tune backbone,增添新的模块。
(作者仿照这样的思路)首先,用image encoder of CLIP替换ImageNet预训练的backbone(deeplab)。然后,使用映射器将CLIP中的text decoder权重的映射给模型(deeplab)分类层权重,用公式表达如下:

这样效果不好,尤其是对unseen物体的zero-shot分割上面无法取得满意的分割性能。作者认为可能出了这些问题:
1.CLIP中的img encode和常规网络的backbone应该有区别。
2.img encoder的权重在训练以及fine tune中被重新更新。
3.text encoder的映射器仅仅只在新的数据上进行训练,因此泛化性不够。

3.3 MaskCLIP


(上图是MaskCLIP种的核心做法,把CLIP 中以Transfomer为基的encoder给换成的右侧的1×1卷积)
原本CLIP中的方法用公式表示如下:

作者认为这里Transformer的输出可以作为整体文本的一个较好的representation。是由于这些计算的F(vi)F(v_i)F(vi​)已经捕获了丰富的局部语义响应,这些响应与CLIP的文本嵌入中的标记很好地对应。(不太能理解,参考:https://zhuanlan.zhihu.com/p/562819258)
基于这样的假设,作者进行了一些改进:
(1)丢弃了qqq和kkk,仅保留嵌入的vvv
(2)将vvv和最后一层线性层直接输入到1×1卷积中
同时不改变text encode,直接和目标prompt后,作为输入,每个类的结果文本嵌入被用作分类器。

(这里估计不太好理解,作者做了进一步的讨论,总的来说就是扔掉了q‾\overline{q}q​使用了vvv)
1.原CLIP中用的是q‾\overline{q}q​作为分类型任务,叫global query,它是由一个特殊的[CLS]产生的。
而这里作者采用的是每个patch下的token的[CLS],即vvv作为密集型任务预测。
1.或者从另一个角度看:q,k,v中的v和attention层的输出是差不多的,只是多了一个q和k相互dot后的系数,所以这里用attention的输出或者v进一步往下做都是可以的(作者代码中也给了接口)

(作者的原文是这么说的)
讨论了 ViT中Transformer层和 global attention pooling的不同:
(1) the global query is generated by a special [CLS] token instead of the average among all spatial locations;
(2)Transformer layer has a residual connection.

Key Smoothing and Prompt Denoising.

(两种refine手段,文章里面说得很简略,都没看懂)
Key Smoothing:

Prompt Denoising:
如果目标类在所有空间位置的类置信度都小于阈值t = 0.5,则删除具有目标类的Prompt。

3.4 MaskCLIP+

将相同的预处理图像输入提供给MaskCLIP,并使用MaskCLIP的预测作为伪地真标签来训练目标网络。
也可以用于zero-shot分割任务,使用MaskCLIP生成unseen的物体的伪标签,然后进行训练。

Self-Training:

训练到一部分发现MaskCLIP得为标签已经无法达到进一步提升性能得要求,于是用MaskCLIP+得训练结果进一步训练自己。
(知识蒸馏)

Experiments


【论文阅读】Extract Free Dense Labels from CLIP相关推荐

  1. extract free dense labels from CLIP

    ECCV2022 | MaskCLIP [前面] 对比语言图像预训练(CLIP)在开放词汇零样本图像识别方面取得了显着突破.许多最近的研究利用预训练的 CLIP 模型进行图像级分类和操作.在本文中,作 ...

  2. 《论文阅读》BA-NET: DENSE BUNDLE ADJUSTMENT NETWORKS

    留个笔记自用 BA-NET: DENSE BUNDLE ADJUSTMENT NETWORKS 做什么 首先是最基础的,Structure-from-Motion(SFM),SFM可以简单翻译成运动估 ...

  3. CLIP论文阅读、zero-shot实验、linear prob实验记录

    记录 CLIP 论文阅读.zero-shot实验(直接推理).linear probe实验(冻结CLIP抽特征只训练分类层). 一.论文阅读 Paper:Learning Transferable V ...

  4. 论文阅读笔记:SCAN: Learning to Classify Images without Labels

    论文阅读笔记:SCAN: Learning to Classify Images without Labels 摘要 简介和相关工作 方法 表征学习 语义聚类损失 2.3 通过自标记进行微调 3 实验 ...

  5. 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](2)

    [论文阅读]Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale Transportation ...

  6. 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》

    深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...

  7. 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》

    深度学习论文阅读目标检测篇(三):Faster R-CNN< Towards Real-Time Object Detection with Region Proposal Networks&g ...

  8. FCGF论文阅读笔记

    FCGF论文阅读笔记 0. Abstract 从三维点云或者扫描帧中提取出几何特征是许多任务例如配准,场景重建等的第一步.现有的领先的方法都是将low-level的特征作为输入,或者在有限的感受野上提 ...

  9. 深度学习论文阅读图像分类篇(三):VGGNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》

    深度学习论文阅读图像分类篇(三):VGGNet<Very Deep Convolutional Networks for Large-Scale Image Recognition> Ab ...

  10. [论文阅读] (12)英文论文引言introduction如何撰写及精句摘抄——以入侵检测系统(IDS)为例

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

最新文章

  1. C什么k什么_G、D、C、Z、T、K、L、Y,这些字母和火车级别有什么关系
  2. 我的一个学生在运维工作中写的自动日志清理脚本程序
  3. [Leetcode]-- Valid Number
  4. altium 网口差分走线长度_差分信号的优缺点及布线要求
  5. Python代码调试之异常回溯
  6. AjaxPro 未定义错误
  7. mysql引擎机制_MySQL引擎特性:InnoDB同步机制
  8. 分享我的Linux开发环境
  9. android 调用百度地图api
  10. 微分比例控制与测速反馈控制
  11. php网站系统说明,国外CMS系统介绍(总结)
  12. 在开发IE插件时,遇到的各种问题记录
  13. RTSP数据的无插件播放与超图三维iClient3D的视频投射
  14. WIN10中文乱码修复合集
  15. 我对OpenFlow的理解
  16. adb命令之pm hide 与 disable
  17. 一文读懂高速互联的阻抗及反射(中)
  18. 如何删除EISA隐藏分区
  19. Nginx的alias和root
  20. proteus中仿真D触发器CD4013

热门文章

  1. re之ida和OllyDbg的使用与代码分析
  2. 我用Python分析了1500家电商的销售数据,竟发现了进口车厘子的秘密
  3. win7下笔记本电脑给手机开热点
  4. V社线下沙龙·深圳站——12.05(周六)
  5. first season tenth episode,Joey kissed Chandler!!!
  6. php+html文本域,html的文本域和表单域
  7. C++程序调用第三方exe进程(例如Go语言开发的程序)
  8. R语言使用lmPerm包应用于线性模型的置换方法(置换检验、permutation tests)、使用lm模型构建多项式回归模型、使用lmp函数生成置换检验多项式回归模型
  9. Java多线程篇--原子包、阻塞队列和并行流
  10. 函数的连续性与间断点