【论文阅读笔记】Explicit Visual Prompting for Low-Level Structure Segmentations

1.介绍

Explicit Visual Prompting for Low-Level Structure Segmentations
低级结构分割的显式视觉提示
2023年发表在IEEE CVPR
Paper Code

2.摘要

检测图像中低级结构(低层特征)一般包括分割操纵部分、识别失焦像素、分离阴影区域和检测隐藏对象。虽然每个此类主题通常都是通过特定领域的解决方案来解决的,但统一的方法在所有这些主题中都表现良好。从 NLP 中广泛使用的预训练和提示调整协议中汲取灵感,本文提出了一种新的视觉提示模型,称为显式视觉提示(EVP)。与之前的视觉提示(通常是数据集级隐式嵌入)不同,本文强调的是强制调整参数,重点关注每个单独图像的显式视觉内容,即来自冻结补丁嵌入的特征和输入的高频成分。在相同数量的可调参数下(每个任务有 5.7% 的额外可训练参数),所提出的 EVP 显着优于其他参数高效的调整协议。

就是不同于直接把输入给到网络模型让它自己学习,学习内容不可知的隐式视觉提示,本文提出了显示视觉提示,调整参数重点关注频域的高频输入部分(即低层特征)。

Keywords:显式视觉提示,频域高频部分

3. Introduction

图像编辑和操作算法的进步使得创建逼真但虚假的图片变得容易。由于其与监视和犯罪相关的潜在负面影响,检测此类被操纵区域成为一个重要问题。众所周知,低级结构(低级特征)有利于篡改区域检测,比如调整大小和复制粘贴将破坏原始图像与被纂改图像之间的 JPEG 压缩级别,被纂改图像的噪声水平并且背景也不同。要分割模糊像素、阴影区域和隐藏物体,低级线索也很重要。虽然所有这些任务都属于低级结构分割,但它们是通常由具有精心设计的网络架构的特定领域解决方案来解决。此外,缺乏大规模数据集通常被认为是限制性能的主要因素。

本文基本思想是使用最少的额外可训练参数,有效地将冻结的大型基础模型适应许多下游任务。由于基础模型已经在大规模数据集上进行了训练,因此提示通常会导致下游任务上更好的模型泛化,特别是在注释数据有限的情况下。提示还显着节省了模型的存储,因为它只需要保存共享的基本模型和任务感知提示。

视觉提示调整。即使在GPT3中手动选择提示的少量或零次设置中,也可以对下游迁移学习任务进行强大的泛化。最近,提示已经适应视觉任务。有任务提出了记忆令牌,这是一组可学习的嵌入向量的每个Transformer层。VPT 提出了类似的想法,并通过跨多个领域和骨干架构的多种识别任务的广泛实验来研究视觉提示的通用性和可行性。不像VPT重点是识别任务,本文的工作旨在探索低层次结构分割的最佳视觉内容。

伪造检测的目标是检测手动操作的像素,例如被删除、替换或编辑的像素。早期的方法通过局部噪声水平的不一致来检测区域拼接,基于不同来源的图像可能包含由传感器或后处理步骤引入的不同噪声特性的事实。其他线索也很有帮助,例如SIFT,JPEG压缩伪影和重新采样伪影。最近,有人通过在标记的训练数据上训练一个完全卷积的网络来学习检测剪接。还有结合生成对抗网络(GAN)来检测复制移动攻击。Huh等人提出将摄影元数据作为一种自由而丰富的监督信号,用于学习自我一致性,并应用训练后的模型来检测拼接。最近,TransForensic利用视觉Transformer来解决这个问题。高频元件在这一领域仍然是有用的优先级。RGB-N设计了一个额外的噪声流。ObjectFormer提取高频特征作为视觉内容的补充信号。但与ObjectFormer不同的是,本文的主要重点是利用高频组件作为一种激励设计,以有效地适应不同的低级分割任务。

4.网络结构详解

显式视觉分割(EVP),基于在ImageNet 上预训练的视觉变换器(SegFormer),用以低级结构分割。EVP冻结backbone的参数,只包含少量的可调参数,从冻结补丁嵌入和高频分量的特征中学习特定于任务的知识。模型总体结构图如下:
在这里插入图片描述
如右边所示,图像输入,经过补丁嵌入层获取到的特征入Embedding Tune层,获取补丁分量,图像经过HFC Extraction 提取层提取到高频分量,首先将两者相加入适配器Adaptor得到自适应后的输出;将补丁分量与自适应后的结果相加,入Transformer层,输出结果再与自适应的分量相加入下一Transformer层,循环几次;最后的输出进入第二阶段。

需要注意的是,backbone比如SegFormer是预训练好的,它的参数无需再调整,只需调整Embedding Tune,HFC Extraction ,和Adaptor的参数。

SegFormer
SegFormer是一个基于transformer的分层结构,具有更简单的语义分割解码器。与传统的CNN主干类似,SegFormer通过几个阶段捕获多个陈旧特征。因此,每个阶段都是通过特征嵌入层1和视觉Transformer块构建的。至于解码器,它利用来自编码器和MLP层的多尺度特征来解码特定的类。注意,所提出的提示策略不限于SegFormer,并且可以容易地适应于其他网络结构。

高频分量
对于维数为H ×W的图像I,可以将其分解为低频分量Il(LFC)和高频分量Ih(HFC),即 I = { I l , I h } I = {\{Il,Ih\}} I={IlIh}。将fft和ifft分别表示为快速傅立叶变换及其逆变换,使用z来表示I的频率分量。因此有 z = f f t ( I ) z = fft(I) z=fft(I) I = i f f t ( z ) I = ifft(z) I=ifft(z)。将低频系数移到中心(H/2,W/2)。为了获得HFC,生成二进制掩码 M h ∈ { 0 , 1 } H × W M_h ∈ {\{0,1\}}^{H×W} Mh{01}H×W,并根据掩码比τ将其应用于z:
在这里插入图片描述
τ表示掩蔽区域的表面比。HFC可以计算:在这里插入图片描述
类似地,可以适当地定义二进制掩码 M l ∈ { 0 , 1 } H × W M_l ∈ {\{0,1\}}^{H×W} Ml{01}H×W以计算LFC:

在这里插入图片描述
LFC可以表示为:在这里插入图片描述
请注意,对于RGB图像,独立地在每个像素通道上计算上述过程。

显式视觉提示
显式视觉识别(EVP):从补丁嵌入和高频分量中学习明确的提示。学习前者来将分布从预训练数据集转移到目标数据集。而学习后者的主要动机是通过数据增强来学习预训练模型对这些特征保持不变。与学习隐式提示的VPT不同,它由三个基本模块组成:补丁嵌入调谐,高频分量调谐以及适配器。

从补丁嵌入中学习明确的提示:这指的是利用补丁嵌入(通常是从预训练模型中获得的)来将数据分布从预训练数据集转移到目标数据集。补丁嵌入是将图像的小块或局部区域映射到低维向量空间的过程,而这些向量可以被视为对图像特征的编码。通过学习从预训练模型中得到的这些特征嵌入,可以帮助将模型在预训练数据集上学到的知识转移到目标数据集上,从而提高模型在目标任务上的性能。

学习高频分量的主要动机是通过数据增强来学习预训练模型对这些特征保持不变:
这指的是利用数据增强技术来学习模型对图像的高频分量(即图像中变化较快的部分)的不变性。数据增强是一种通过对训练数据进行一系列随机变换来增加数据样本数量和多样性的技术。通过在训练过程中对高频分量进行数据增强,可以帮助模型学习到对这些变化保持不变的特征表示,从而提高模型的鲁棒性和泛化能力。高频分量的不变性指的是对图像中高频部分的特征保持不变的性质。在图像处理中,高频分量通常指的是图像中变化快速的部分,如边缘、纹理等。这些特征对于图像的识别和理解非常重要,因为它们包含了图像中的细节信息。

为什么要保持高频分量的不变性呢?
鲁棒性: 高频分量往往包含了图像中的重要细节和结构信息。如果模型能够在不同的输入图像中保持对这些细节的感知不变,那么它在面对各种变化,如旋转、缩放、光照变化等时会更加稳健。
泛化能力: 如果模型在训练过程中学习到了对高频特征的不变性,那么它在处理未见过的数据时也会表现更好。这是因为模型已经学习到了对图像中普遍存在的模式和结构的抽象表示,而不仅仅是对训练数据的记忆。
抑制噪声: 高频分量往往受到噪声的影响,保持对高频特征的不变性可以帮助模型抑制噪声的影响,从而提高对干净数据的处理能力。

补丁嵌入调整。本模块旨在调整预训练的补丁嵌入。在预训练的SegFormer中,补丁 I p I^p Ip被投影到 C s e g − d i m e n s i o n C_{seg}-dimension Csegdimension特征。冻结这个投影,并添加一个可调线性层 L p e L_{pe} Lpe,以将原始嵌入投影到c维特征 F p e ∈ R c F_{pe} ∈ R^c FpeRc中:
在这里插入图片描述比例因子r控制可调参数。
高频分量调谐。对于高频分量 I h f c I_{hfc} Ihfc,学习了类似于SegFormer的重叠补丁嵌入。形式上, I h f c I_{hfc} Ihfc被分成与SegFormer具有相同补丁大小的小补丁。表示补丁 I h f c P ∈ R C I^P_{hfc} ∈ R^C IhfcPRC,C = h×w×3,学习一个线性层 L h f c L_{hfc} Lhfc将补丁投影到c维特征 F h f c ∈ R c F_{hfc} ∈ R^c FhfcRc

适配器。Adaptor的目标是通过考虑来自图像嵌入和高频分量的特征,在所有层中高效地执行自适应。对于第i个适配器,将 F p e F_{pe} Fpe F h f c F_{hfc} Fhfc作为输入并获得提示 P i P^i Pi
P i = M L P u p ( G E L U ( M L P t u n e i ( F p e + F h f c ) ) ) P^i = MLP_{up}({GELU({MLP^i_{tune}}(F_{pe}+F_{hfc}) ))} Pi=MLPup(GELU(MLPtunei(Fpe+Fhfc)))
其中GELU是GELU激活。 M L P t u n e i MLP^i_{tune} MLPtunei是一个线性层,用于在每个适配器中产生不同的提示。 M L P u p MLP_{up} MLPup是所有适配器共享的上投影层,用于匹配Transformer特征的尺寸。Pi是附加到每个Transformer层的输出提示。

5.实验与结果

隐藏物体检测的结果如下:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

人造太阳光热模拟能量密度太阳模拟器

人造太阳模拟器其他名称:能量密度太阳能光热模拟能量密度太阳模拟器、能流密度太阳光模拟器、高通量太阳模拟器 高通量能留密度太阳能炉和太阳光模拟器产生高度集中的太阳能和人造光,用于新技术和材料的研究和测试。这使研究人员能够进行制氢实验、太阳…

备战蓝桥杯---线段树基础1

引入:RMQ问题: 什么是RMQ? 显然,我们无法用前缀维护,因此,我们需要用到线段树的知识: 什么是线段树? 线段树是用一种树状结构存储一个连续区间信息的数据结构 下面我们用图解释用…

【数据结构】队列OJ题《用队列实现栈》(题库+解析+代码)

1.前言 通过前面队列的实现和详解大家对队列应该有一定熟悉了,现在上强度开始做题吧 队列详解:http://t.csdnimg.cn/dvTsW 2.OJ题目训练225. 用队列实现栈 题目分析 请你仅使用两个队列实现一个后入先出(LIFO)的栈&#xff0…

【GPU驱动开发】- AST简介

前言 不必害怕未知,无需恐惧犯错,做一个Creator! AST,抽象语法树,是一种包含丰富语义信息的格式,其中包括类型、表达式树和符号等。 TranslationUnitDecl:该类表示一个输入源文件 ASTContext&…

Qt注册类对象单例与单类型区别

1.实现类型SingletonTypeExample #ifndef SINGLETONTYPEEXAMPLE_H #define SINGLETONTYPEEXAMPLE_H#include <QObject>class SingletonTypeExample : public QObject {Q_OBJECT public://只能显示构造类对象explicit SingletonTypeExample(QObject *parent nullptr);//…

【学习笔记】深度学习实战 | LeNet

简要声明 学习相关网址 [双语字幕]吴恩达深度学习deeplearning.aiPapers With CodeDatasets 深度学习网络基于PyTorch学习架构&#xff0c;代码测试可跑。本学习笔记单纯是为了能对学到的内容有更深入的理解&#xff0c;如果有错误的地方&#xff0c;恳请包容和指正。 参考文献…

KubeEdge 边缘计算

文章目录 1.KubeEdge2.KubeEdge 特点3.KubeEdge 组成4.KubeEdge 架构 KubeEdge # KubeEdgehttps://iothub.org.cn/docs/kubeedge/ https://iothub.org.cn/docs/kubeedge/kubeedge-summary/1.KubeEdge KubeEdge 是一个开源的系统&#xff0c;可将本机容器化应用编排和管理扩展…

蓝牙耳机和笔记本电脑配对连接上了,播放设备里没有显示蓝牙耳机这个设备,选不了输出设备

环境&#xff1a; WIN10 杂牌蓝牙耳机6s 问题描述&#xff1a; 蓝牙耳机和笔记本电脑配对连接上了&#xff0c;播放设备里没有显示蓝牙耳机这个设备&#xff0c;选不了输出设备 解决方案&#xff1a; 1.打开设备和打印机&#xff0c;找到这个设备 2.选中这个设备&#…

Linux下gcc编译常用命令详解

在Linux环境下&#xff0c;使用gcc编译器进行源代码的编译是程序员日常工作的一部分。本篇将介绍一些常用的gcc编译命令&#xff0c;帮助开发者更好地理解和使用这些命令。 1. 基本编译命令 gcc工作流程&#xff1a; 编译单个源文件 gcc source.c -o output这个命令将sour…

调试工具vue,react,redux

React Developer Tools Redux DevTools Vue devtools 使用浏览器官方组件扩展搜索安装

枚举和联合(共用体)

目录 枚举枚举类型的定义枚举的优点 联合&#xff08;共用体&#xff09;联合类型的定义联合的特点联合大小的计算 枚举 枚举顾名思义就是一一列举&#xff0c;把可能的取值一一列举 枚举类型的定义 enum Day &#xff0c; enum Sex &#xff0c;enum Color 都是枚举类型{}中…

曾桂华:车载座舱音频体验探究与思考| 演讲嘉宾公布

智能车载音频 I 分论坛将于3月27日同期举办&#xff01; 我们正站在一个前所未有的科技革新的交汇点上&#xff0c;重塑我们出行体验的变革正在悄然发生。当人工智能的磅礴力量与车载音频相交融&#xff0c;智慧、便捷与未来的探索之旅正式扬帆起航。 在驾驶的旅途中&#xff0…

通过css修改video标签的原生样式

通过css修改video标签的原生样式 描述实现结果 描述 修改video标签的原生样式 实现 在控制台中打开设置&#xff0c;勾选显示用户代理 shadow DOM&#xff0c;就可以审查video标签的内部样式了 箭头处标出来的就是shodow DOM的内容&#xff0c;这些内容正常不可见的&#x…

MySQL 用了哪种默认隔离级别,实现原理是什么?

MySQL 的默认隔离级别是 RR - 可重复读&#xff0c;可以通过命令来查看 MySQL 中的默认隔离级别。 RR - 可重复读是基于多版本并发控制&#xff08;Multi-Version Concurrency Control&#xff0c;MVCC &#xff09;实现的。MVCC&#xff0c;在读取数据时通过一种类似快照的方…

视觉三维重建colmap框架的现状与未来

注&#xff1a;该文章首发3D视觉工坊&#xff0c;链接如下3D视觉工坊 前言 众所周知&#xff0c;三维重建的发展已经进入了稳定期&#xff0c;尤其是离线方案的发展几乎处于停滞期&#xff0c;在各大论刊上也很少见到传统sfmmvs亮眼的文章。这也不难理解&#xff0c;传统的多视…

MYSQL 解释器小记

解释器的结果通常通过上述表格展示&#xff1a; 1. select_type 表示查询的类型 simple: 表示简单的选择查询&#xff0c;没有子查询或连接操作 primary:表示主查询&#xff0c;通常是最外层的查询 subquery :表示子查询&#xff0c;在主查询中嵌套的查询 derived: 表示派…

【王道数据结构】【chapter8排序】【P360t2】

试编写一个算法&#xff0c;使之能够在数组L[1……n]中找出第k小的元素&#xff08;即从小到大排序后处于第k个位置的元素&#xff09;&#xff08;可以直接采用排序&#xff0c;但下面的排序的代码只是为了方便核对是不是第k小的元素&#xff0c;k从0开始计算&#xff09; #in…

出海手游收入一路高歌,营销上如何成功?

出海手游收入一路高歌&#xff0c;营销上如何成功&#xff1f; 以RPG和SLG为代表的中重度游戏一直是国内厂商在海外市场的传统优势品类&#xff0c;因为它们具有较高的投资回报率&#xff0c;是国内厂商在国际市场上取得成功的“吸金”利器。 据伽马数据发布的《2023全球移动游…

SpringCloud搭建微服务之Consul服务配置

1. 概述 前面有介绍过Consul既可以用于服务注册和发现&#xff0c;也可以用于服务配置&#xff0c;本文主要介绍如何使用Consul实现微服务的配置中心&#xff0c;有需要了解如何安装Consul的小伙伴&#xff0c;请查阅SpringCloud搭建微服务之Consul服务注册与发现 &#xff0c…

steam怎么付款

信用卡支付 登录Steam账户&#xff0c;选择需要购买的游戏或其他物品&#xff0c;点击“加入购物车”。在购物车页面点击“去结账”按钮&#xff0c;进入付款页面。在付款页面选择信用卡付款方式&#xff0c;填写信用卡信息&#xff0c;输入验证码&#xff0c;点击确认付款。 …