APC论文总结

embedded/2024/10/7 13:34:16/

论文详情

论文标题:APC: Adaptive Patch Contrast for Weakly Supervised Semantic Segmentation

论文作者:Wangyu Wu,Tianhong Dai,Zhenhong Chen,Xiaowei Huang,Fei Ma,Jimin Xiao

发表时间:2024

链接:https://arxiv.org/abs/2407.10649

摘要

弱监督语义分割(Weakly Supervised Semantic Segmentation, WSSS)仅使用图像级标签,因其成本效益高而备受关注。典型框架是使用图像级标签作为训练数据生成像素级伪标签,并对其进行精炼。最近,基于视觉Transformer(Vision Transformer, ViT)的方法在生成可靠的伪标签方面展现出优越的能力,尤其是在识别完整的目标区域时,相较于卷积神经网络(CNN)方法表现更佳。然而,目前的ViT方法在使用patch embedding时存在一些局限性,容易受到某些异常patch的主导影响,此外,许多多阶段方法训练时间长且耗时,因此缺乏效率。因此,本文提出了一种名为自适应Patch对比(Adaptive Patch Contrast, APC)的新型ViT弱监督语义分割方法,该方法显著增强了patch embedding的学习能力,从而提高了分割效果。APC通过自适应-K池化(Adaptive-K Pooling, AKP)层解决了之前最大池化选择方法的局限性。此外,我们提出了Patch对比学习(Patch Contrastive Learning, PCL),以增强patch embedding,从而进一步提升最终的分割结果。我们还改进了现有的无需类激活映射(CAM)的多阶段训练框架,将其转化为端到端的单阶段训练方法,从而提高了训练效率。实验结果表明,我们的方法在较短的训练时间内,在PASCAL VOC 2012和MS COCO 2014数据集上优于其他最新的弱监督语义分割方法,表现出更高的效果和效率。

背景

目前在弱监督语义分割领域常用的方法就是利用图片和类标签通过CAM产生伪标签,但是CAMs本身具有的在准确估计对象的形状和定位方面不准确的特点具有局限性。尽管在最近的工作中人们通过对CAM产生的伪标签优化、设计各种优化策略来增加最后生成的final pseudo的准确度,但是仍然无法摆脱CAM的这种限制。在这种情况下,一些研究者转向使用基于ViT-based的架构运用到弱监督语义分割任务中,例如:ViT-PCM、AFA等等。然而,目前基于全局最大池化来预测分数最高的Patch进而预测的方法可能会由于错误的分类而影响最终的结果,缺乏鲁棒性。所以在本文作者利用了一些方法解决这些问题。

动机

1.  现存的基于ViT的没有使用CAM的架构利用最大池化层将image embedding 与 softmax连接起来,产生不同类的分数,这样的方法缺乏鲁棒性。

2. 现存的基于ViT的没有使用CAM的架构通常包含多阶段的训练,这种方法使得训练过程的效率大大降低。

3. 随着模型中网络层数的增加可能会导致。

改进

1. 通过incorporating adaptive-k pooling,解决个别被错误分类的Patct对最后结果造成影响的问题。

2. 提出了一个对比学习的方法(Patch Contrastive Learning)的方法通过增加不同类别的patch之间的距离,减少同一类patch的距离,从而提高patch embedding的类内精致性和类间差异性,进一步提高伪标签的质量。

3. 提出了一个端对端的但阶段训练框架,解决了对阶段框架效率低下的问题,并且在分割任务下准确率优于其他方法。

方法

首先输入的图片被分割成s个Patch小块,具体如下:

Input image 

Input patch

其中

这里的d是预先设定的值,与选用的backbone有关,如果选用ViT-B/16那么d一般就为16。

然后这些patch会被送入ViT,输出是patch向量(patch embedding)F_{in}大小为s×e。

F_{in}接着被送入BiSLTM网络,被进一步优化,简要来说BiSLTM的作用是提升特征表示,使得能够捕捉水平和垂直方向的信息,输出的结果为F_{out}(与F_{in}大小相同)。

紧接着F_{out}作为三个分支的输入:

 1. 

Fout被输入到seg decoder中,seg decoder 的工作原理主要是将高层特征映射转换为更细致的分割图像。这个模块通常在语义分割任务中使用,旨在对每个像素进行分类。

主要通过上采样的方式增加特征图的分辨率,然后经过全连接层,使得对每个像素点可以做分类的预测,每个像素点都包含了所有类的分数,然后通过这些分数生成掩码。

2. 

Patch Contrastive Learning

这个公式表示两个patch向量之间的距离,而且结果在1到-1之间,越接近-1说明这两个向量相距远。

这个公式的作用是归一化,作用是可以使得上面计算的结果可以控制在0-1之间。

同时,正如上面所说F_{out}其实就是每个patch对于每个类c的分数,所以作者设定了一个阈值\varepsilon来讲patch分为high confidence和low confidence,具体如下:

最后作者设置了一个loss函数实现对比学习:

 是high confidence patch的个数

是low confidence patch的个数

3. 

FW经过softmax函数归一化生成Z,Z表示每个patch对于所有类的预测分数,Z的大小为s×|C| 。

然后Z被分别输入到Patch To Pixel模块和Adaptive-k pooling模块中

Patch To Pixel模块的作用就是通过得到的Z细化产生分割掩码

Adaptive-k pooling的作用就是优化Patch To Pixel的过程

Patch To Pixel

已知输入Z的大小为s×e然后同样经过上采样增加特征图的分辨率

最后细化的结果就作为掩码

然后这个掩码的结果与之前seg decoder生成的掩码有一个二元交叉熵损失。

Adaptive-k pooling

Adaptive-k pooling通过选取每个类别下的k个patch的平均值,最为该图像的预测分数。

算法如下:

模型的输出Z替代了传统的 max pooling 层,将每个类别多个 patch 的预测分数映射为图像级别的类别预测。

并且这里的K是自适应变化的,具有灵活性,并且更具鲁棒性。

总结

在这项工作中,我们提出了一种APC(Adaptive Patch Contrastive)方法,用于弱监督语义分割,而不依赖于类激活图(CAM)。与之前的方法不同,APC 通过自适应 K 池化来选择 k 个 patch,将 patch 级别的分类映射到图像级别分类,从而缓解了潜在误分类的 patch 问题。此外,我们还提出了patch 对比学习(PCL),以进一步增强 patch 的特征表示。在同一类别中,PCL 的目标是减少高置信度 patch 之间的距离,并增加高置信度 patch 与低置信度 patch 之间的距离。通过将这两部分结合,我们的方法在仅使用图像级标签的弱监督语义分割任务中实现了最先进的结果。


http://www.ppmy.cn/embedded/124104.html

相关文章

PasteForm最佳CRUD实践,实际案例PasteTemplate详解之3000问(三)

作为“贴代码”力推的一个CRUD实践项目PasteTemplate,在对现有的3个项目进行实战后效果非常舒服!下面就针对PasteForm为啥我愿称为最佳CRUD做一些回答: 哪里可以下载这个PasteForm的项目案例 目前“贴代码”对外使用PasteForm的项目有"贴Builder(PasteSpide…

SSH(安全外壳协议)可以基于多种加密算法

SSH(安全外壳协议)可以基于多种加密算法,确保数据的机密性和完整性。以下是 SSH 中常见的加密类型: 1. 对称加密 对称加密算法用于加密会话中的数据,常见的算法包括: AES(高级加密标准&#…

Spring Boot 3.x 集成 Feign

在Spring Boot 3.x中集成Feign,可以大大简化微服务之间的HTTP调用。以下是关于Spring Boot 3.x集成Feign的详细步骤和说明: 一、Feign简介 Feign是一个声明式的HTTP客户端,它使得编写Web服务客户端变得更加简单。使用Feign,可以通…

Python开发环境配置(mac M2)

1. 前言 作为一名程序员,工作中需要使用Python进行编程,甚至因为项目需要还得是不同版本的Python如何手动管理多个版本的Python,如何给Pycharm(IDE)配置对应的interpreter等,都成为一个 “不熟练工” 的难…

鼓组编写:SsdSample鼓映射 GM Map 自动保存 互换midi位置 风格模板 逻辑编辑器

SsdSample音源的键位映射 方便编写鼓的技巧 可以这样去设置键位关系的面板和钢琴卷帘窗的面板,方便去写鼓。 可以先按GM的midi标准去写鼓,然后比对下鼓的键位映射的关系,去调整鼓。 可以边看自己发b站等处的图文笔记,然后边用电…

ELK日志收集之ES的DSL查询语句

一、简介 在Elasticsearch中,我们可以使用Elasticsearch-DSL(Elasticsearch Domain Specific Language)来构建和执行复杂的搜索查询。官方Query DSL指导文档。 叶查询:在特定字段中寻找特定值,例如 match ,term 或 range。 复合查询:具有查询…

js采用覆盖键、覆盖鼠标滑动事件实现禁止网页通过 ctrl + +/- 和 ctrl + 滚轮 对页面进行缩放

一、兼容电脑端的禁止通过 ctrl /- 和 ctrl 滚轮 对页面进行缩放 const keyCodeMap {// 91: true, // command61: true,107: true, // 数字键盘 109: true, // 数字键盘 -173: true, // 火狐 - 号187: true, // 189: true, // -};二、覆盖ctrl||command ‘’/‘-’ // 覆…

汇编内存寻址

处理字符问题 汇编程序中,用单引号(‘’)的方式指明数据是以字符的形式给出,编译器将把字符转换为相对应的ASCLL码。 大写字母ASCLL值 20H 转换为小写字母 (或运算or) 0010 0000 小写字母ASCLL值 - 20H 转换为大写字母 (与运算and) 1101 1111 示例: 大小写转换 assume c…