PixMIM论文笔记

论文名称:PixMIM: Rethinking Pixel Reconstruction in Masked Image Modeling
发表时间:2023 年 3 月 4 日
作者及组织:上海人工智能实验室、西蒙菲莎大学、香港中文大学
GitHub:https://github.com/open-mmlab/mmselfsup/tree/dev-1.x/configs/selfsup/pixmim

问题与贡献

在MIM(Maksed Image Modeling)任务中,随着Maked Autoencoders(MAE)和BEiT的提出,已经取得很大进步。但是,后续的工作研究要么通过添加新的辅助任务或者额外预训练模型,造成了框架的复杂性,并且引入了额外的计算成本。
本文从pixel重建的角度对MIM进行了详尽的分析,研究了输入图像patchs和重构目标,揭示了两个重要但是之前被忽视的难点bottlenecks。基于上述的分析,本文提出了一个简单且有效的方法,PixMIM,主要包含如下两个策略:

  • filtering the high-frequency components from the reconstruction target to de-emphasize the network’s focus on texture-rich details
  • 从重构目标中过滤高频分量,来弱化网络对纹理丰富细节的关注
  • adopting a conservative data transform strategy to alleviate the problem of missing foreground in MIM training.
  • 采用保守的数据转换策略来缓解MIM训练中前景丢失的问题

PixMIM可以简单嵌入到pixel-based MIM方法中,其增加的计算成本可以忽略不计。
本文通过对MAE算法进行详尽的分析,揭示两个重要问题:

  • 重建目标

现阶段,大多数MIM方法与MAE一样,将原始的像素值作为重建目标,这使得网络需要对masked patchs有优秀的重建能力,包括复杂的细节纹理。这种重建目标使得网络浪费建模能力来关注短期依赖和高频细节。而本文认为在 MIM 任务中,模型应该更关注浅层特征,即形状偏置。
image.png

  • 输入patchs

MAE中使用Random Resized Crop作为数据增强手段,但是,当结合RRC和高掩码率技巧时,MAE输入的patchs平均只占整体目标的17.1%。语义丰富的前景对于模型学习到好的特征是至关重要的。在训练过程中,较低的前景模型收敛会阻碍模型学习形状偏差。
image.png

前置概念和理论

MAE and most pixel-based MIM methods enforce the model to reconstruct intricate details of raw images. These complicated details contain textures with repeated patterns and belong to the high-frequency components in the frequency domain, which are usually independent of object shapes or scene structures.

vision models with stronger shape biases behave more like human visual perception, demonstrating better robustness and performing better when transferred to downstream tasks than those with stronger texture biases.

现在的MIM模型的重建目标,不可避免地会引入texture biases,偏离了之前工作地初衷,可能损害representation质量。与之对应的是,模型应该在重建目标中弱化high-frequency分量
如下图所示,作者为了评估MIM算法中输入patchs中包含目标的百分比,提出了以下的重叠面积计算公式。图中A1为原图中目标的区域,A2为裁剪后图像中目标的区域,A2和A1的比值可以得出占比。
image.png
作者发现,在MAE算法中,当使用RRC数据增强后,比值为68.3%,RRC结合掩码之后,占比只有17.1%,说明MAE的输入中缺乏有效的前景信息。如DeiT Ⅲ中提出的:前景相对于背景能编码更多语义信息,缺乏前景信息会导致在下游任务中优化欠佳。因此,需要一个简单的方法来保留更多的前景信息

模型、理论和方法

针对MAE,或者MIM系列算法中,存在的两个问题,提出了两个解决方案:

  • 生成low-frequency重建目标
  • 使用更加保守的数据增强方法替代RR

image.png

生成Low-frequency重建目标

为了削弱模型学习到texture为主导的high-frequency细节信息,提出了一个新的目标生成器decoder,生成的目标依旧是RGB像素值,但是过滤掉了high-frequency分量。
具体而言,生成low-frequency目标分为如下三步:

  1. domain conversion from spatial to frequency(空间域到频率域的转换);

对于输入的图像,使用2D的离散傅里叶变换,将内容从空间域转换到频域,公式如下:
F D F T ( I i ) ( u , v ) = ∑ h = 0 H − 1 ∑ w = 0 W − 1 I i ( h , w ) e − i 2 π ( u h H + v w W ) F_{DFT}(I_i)(u,v)=\sum_{h=0}^{H-1}\sum_{w=0}^{W-1}I_i(h, w)e^{-i2\pi(\frac{uh}{H}+\frac{vw}{W})} FDFT(Ii)(u,v)=h=0H1w=0W1Ii(h,w)ei2π(Huh+Wvw)

  1. low-frequency components extraction(低频成分提取);

为了只获取图像的低频信息,使用如下公式对图像的频域。

  1. reconstruction target generation from frequency domain(频域重建目标生成).

更加保守的数据增强方案

为了更好的保留输入前景信息,没有修改高掩码方式,而是提出了一个更加保守的数据增强方案。
image.png
Simple Resized Crop(SRC),最先在AlexNet中被使用,具体做法是先讲最短边resize到输入大小,然后在两侧应用 4 像素的反射填充,最后随机裁剪一个输入大小的区域。
CenterCrop(CC),就是从图像中间裁剪一个固定大小的区域。
最后可以看到SRC的前景占比为22.1%,非常接近25%(掩码率为75%)。

实验与结论

方法应用

将PixMIM应用到MAE、ConvMAE和LSMAE上,比较它们之间的结果。在linear probe、object detection和semantic segmentation上取得了极佳的效果。
image.png
此外,为了更好可视化地查看模型之间的差异,对不同epoch下模型的性能进行了绘图,可以看到PixMIM的曲线都在原方法之上。
image.png

鲁棒性评估

通过在ImageNet的变体:ImageNet-Corruption,ImageNet-Adversarial,ImageNet-Rendition和ImageNet-Sketch上的测试结果来评估预训练模型的鲁棒性,因为这些数据集相对于ImageNet都引入了domain shifts。
image.png

形状偏差分析

image.png

消融实验

过滤高频分量

低频带宽 r r r对于结果的影响,可以看到,当bandwidth为40时,PixMIM相对于baseline在linear probe和segmentic上分别提升了1.2%和1.7%。较小的bandwidth会抛弃到图像中比较重要的信息,而较大的bandwidth无法有效地移除不重要地texture。
image.png

使用SRC

下图比较了不同数据增强方式下模型的表现。在MAE上,SRC相对于RRC在linear probe和semantic上都取得较好的提升。然而,在DeiTⅢ上,用 SRC 替换 RRC 会降低性能,因为它会降低裁剪图像的多样性并削弱模型的泛化能力。
在MIM,RRC会导致前景的丢失,通过后续CC(centercrop)的实验可以进一步验证这个结论。
image.png
下图展示了PixMIM中两个组件一起之后的效果。
image.png

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

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

相关文章

数据结构上机实验——栈和队列的实现、栈和队列的应用、进制转换、约瑟夫环问题

文章目录 栈和队列上机实验1.要求2.栈的实现(以顺序栈为例)3.队列的实现(以顺序队列为例)4.利用栈实现进制转换5.利用队列解决约瑟夫环问题6.全部源码Stack.hQueue.htest.cpp 栈和队列上机实验 1.要求 1.利用栈的基本操作实现将任…

uniapp-vue3-微信小程序-标签选择器wo-tag

采用uniapp-vue3实现, 是一款支持高度自定义的标签选择器组件&#xff0c;支持H5、微信小程序&#xff08;其他小程序未测试过&#xff0c;可自行尝试&#xff09; 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id14960 使用示例 <template>&…

WPS、Excel表格增加一列,序列1到任意大小 / 填充某个范围的数字到列

Excel添加一列递增的数字方法有如下&#xff1a; 一、最常用的&#xff0c;使用鼠标放到右下角下拉增加 1、选中起始框的右下角&#xff0c;直到显示黑色实心十字 2、一直向下拖动 3、成功 这种填充方式是最常用的&#xff0c;100以内都可以轻松瞬间完成 1~100填充 但是如果…

Jmeter执行接口自动化测试-如何初始化清空旧数据

需求分析&#xff1a; 每次执行完自动化测试&#xff0c;我们不会执行删除接口把数据删除&#xff0c;而需要留着手工测试&#xff0c;此时会导致下次执行测试有旧数据我们手工可能也会新增数据&#xff0c;导致下次执行自动化测试有旧数据 下面介绍两种清空数据的方法 一、通过…

Spring framework Day19:Spring AOP xml配置示例二

一、开始学习 1、新建项目&#xff0c;结构如下 2、添加 spring 依赖 <!-- spring 的核心依赖 --><dependencies><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework&l…

将 vue2+ElementU 项目打包成安卓app

目标&#xff1a;将vue项目打包成安卓app 工具&#xff1a;HbuilderX 1.在HbuilderX中创建一个 5App 项目 创建好的app项目目录 2.将vue项目打包 2.1 在 vue.config.js 中添加公共路径&#xff08;解决打包后的app图片不显示问题&#xff09; module.exports defineConfig(…

软件测试(一)概念

软件测试 软件测试的生命周期&#xff1a; 需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估 需求分析&#xff1a;需求是非完整&#xff0c;需求是否正确测试计划&#xff1a;确定软件由谁测试&#xff0c;什么时候开始&#xff0c;什么时候结束&#xff0c;…

Java Kids-百倍提速【Mac IOS】

引言&#xff1a;当今社会&#xff0c;创新和提升效率已经成为了大家普遍的追求。无论是个人生活还是企业经营&#xff0c;我们都希望能够以更高的效率完成任务&#xff0c;节省时间和资源。因此&#xff0c;提速成为了一种时代的要求&#xff0c;而"Java Kids 百倍提速&q…

博客项目(前后端分离)(servlet实战演练)

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;实战项目 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;! 文章目录 前言…

Vue 网络处理 - axios 异步请求的使用,请求响应拦截器

目录 一、axiox 1.1、axios 简介 1.2、axios 基本使用 1.2.1、下载核心 js 文件. 1.2.2、发送 GET 异步请求 1.2.3、发送 POST 异步请求 1.2.4、发送 GET、POST 请求最佳实践 1.3、请求响应拦截器 1.3.1、拦截器解释 1.3.2、请求拦截器的使用 1.3.3、响应拦截器的使用…

Umi3实战教程

一、框架介绍 umi是蚂蚁金服的前端开发框架&#xff0c;它内置了路由、web/移动端UI库、数据流、权限控制、常用hooks库、构建、部署、测试、等等一些工具&#xff0c;几乎涵盖了正常前端开发要用到的所有工具。 二、环境准备 pnpm 相比npm、yarn&#xff0c;pnpm更小更快扁平…

虚幻引擎:如何实现骨骼重定向

前言&#xff1a; 为什么需要做骨骼重定向&#xff0c;因为当前角色素材没有对应的动画&#xff0c;这时候我们可以找个身高体型差不多的带有动画素材的另一个角色来做重定向&#xff0c;这样我们就可以得到我们需要的动画素材了。 1.首先创建两个骨骼的IK绑定 2.然后给两个骨骼…

【算法|前缀和系列No.2】牛客网 DP35 【模板】二维前缀和

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【牛客网刷题】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希…

发面试题:(四)synchronized和lock区别

synchronized 关键字 synchronized关键字解决的是多个线程之间访问资源的同步性&#xff0c;synchronized关键字可以保证被它 修饰的方法或者代码块在任意时刻只能有一个线程执行。 另外&#xff0c;在 Java 早期版本中&#xff0c; synchronized属于重量级锁&#xff0c;效率…

vue3学习源码笔记(小白入门系列)------KeepAlive 原理

目录 说明组件是如何被缓存的&#xff0c;什么时候被激活对于KeepAlive 中组件 如何完成激活的对于KeepAlive 中组件 如何完成休眠的 总结 说明 Vue 内置了 KeepAlive 组件&#xff0c;实现缓存多个组件实例切换时&#xff0c;完成对卸载组件实例的缓存&#xff0c;从而使得组…

竞赛 深度学习+python+opencv实现动物识别 - 图像识别

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 inception_v3网络5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

DHorse v1.4.2 发布,基于 k8s 的发布平台

版本说明 优化特性 在集群列表增加集群版本&#xff1b;修改Jvm的GC指标名&#xff1b; 解决问题 解决shell脚本换行符的问题&#xff1b;解决部署历史列表页&#xff0c;环境名展示错误的问题&#xff1b;解决指标收集功能的异常&#xff1b; 升级指南 升级指南 DHorse…

零宽空格引发的问题

有人跟我反馈说有bug。 我说&#xff1a;啥bug&#xff1f; 对方说&#xff1a;刚申请的内部用户的账号登录不上去。 我说&#xff1a;还有这种事&#xff0c;报啥错&#xff1f; 登录的时候报了这个错&#xff1a; 我一看还好还好&#xff0c;跟上一次不一样的错&#xff…

“探寻服务器的无限潜能:从创意项目到在线社区,你会做什么?”

文章目录 每日一句正能量前言什么是服务器&#xff1f;服务器能做什么&#xff1f;服务器怎么用&#xff1f;部署创意项目&#xff0c;还是在线社区亦或做其他的&#xff1f;后记 每日一句正能量 未知的下一秒&#xff0c;千万不要轻言放弃。 前言 在数字化时代&#xff0c;服…

SpringBoot面试题7:SpringBoot支持什么前端模板?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:SpringBoot支持什么前端模板? Spring Boot支持多种前端模板,其中包括以下几种常用的: Thymeleaf:Thymeleaf是一种服务器端Java模板引擎,能够…