【论文阅读笔记】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.hqwc.cn/news/503948.html

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

相关文章

软件设计师软考题目解析下午题01

想说的话:要准备软考了。0.0,其实我是不想考的,但是吧,由于本人已经学完所有知识了,只是被学校的课程给锁在那里了,不然早找工作去了。寻思着反正也无聊,就考个证玩玩。 本人github地址&#xf…

C++基于多设计模式下的同步异步日志系统day1

C基于多设计模式下的同步&异步日志系统day1 📟作者主页:慢热的陕西人 🌴专栏链接:C基于多设计模式下的同步&异步日志系统 📣欢迎各位大佬👍点赞🔥关注🚓收藏,&am…

sqlserver保存微信Emoji表情

首先将数据库字段,设置类型为 nvarchar(200)一个emoji表情,占4字节就可以了,web前端展示不用改任何东西,直接提交数据保存;回显也会没有问题,C#代码不用做任何处理; 不哭不闹要睡觉&#x1f31…

Python:运算符、内置函数和序列基本用法

一、学习目标 1.熟练使用Python运算符。 2.熟练使用Python内置函数。 3.掌握输入、输出函数的使用方法。 4.了解列表、元组、字典、集合的概念和基本用法。 二、相关练习 1.输入一个自然数250,输出其…

王腾飞出席整体系统智能节电设备在工矿企业中的应用

演讲嘉宾:王腾飞 中科兆和电力技术(山东)有限公司综合能源管理事业部--部长 演讲题目:整体系统智能节电设备在工矿企业中的应用 会议简介 “十四五”规划中提出,提高工业、能源领城智能化与信息化融合,明…

【IC前端虚拟项目】inst_buffer子模块DS与RTL编码

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 需要说明一下的是,在我所提供的文档体系里,并没有模块的DS文档哈,因为实际项目里我也不怎么写DS毕竟不是每个公司都和HISI一样对文档要求这么严格的。不过作为一个培训的虚拟项目,还是建议在时间充裕…

基于JAVA,SpringBoot,Vue,UniAPP智能停车场小程序管理系统设计

摘要 本设计旨在开发一款基于Java, SpringBoot, Vue和UniApp的智能停车场小程序,以实现现代化、智能化的停车管理解决方案。通过整合后端Java SpringBoot框架和前端Vue与UniApp技术,该小程序能够为用户提供一个简洁、高效且用户友好的交互界面&#xff…

docker配置数据默认存储路径graph已过时,新版本中是data-root

错误信息 我在修改/etc/docker/daemon.json文件中,添加存储路径graph字段。然后sudo systemctl restart docker包如下错误:使用journalctl -xeu docker.service错误信息,发现不能匹配graph字段。 原因 我的docker版本: 在doc…

【MySQL】MySQL复合查询--多表查询自连接子查询 - 副本

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询 4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询 4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下: mysql> select * from emp; ----------------------------…

mysql数据库学习笔记2——linux系统下安装,对库,表的基本操作语句

关于在linux系统下安装可以查看linux 安装mysql服务(超详细)_cannot write to-CSDN博客相关教程 对库的一些操作有 show databases查看有哪些数据库,create database “新建数据库名称” 创建新的数据库,use “数据库名称”切换…

Centos 7 用户密码忘记解决办法

Centos 7 修改用户密码 重置密码 1、开机进入GRUB界面,在引导程序菜单上进行选择开机后进入以下界面,然后按Esc或者E键编辑选项: 2.用上下箭头翻到最后,编辑修改两处:ro改为rw,在LANGen_US.UFT-8后面添加init/bin/sh…

javaScript 深浅拷贝

javaScript深浅拷贝 浅拷贝 自己创建一个新的对象,来接受你要重新复制或引用的对象值。如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象,但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个…