当前位置: 首页 > news >正文

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

相关文章:

PixMIM论文笔记

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

设计师首选:最佳的5款网页设计软件

对于UI设计师来说,网页设计是一项必要的技能。如何做好网页设计?除了设计理念,网页设计和制作软件的应用也是不可或缺的。目前市场上有很多这样的软件,工人要想做好,就必须先磨利工具。如果他们想做网页设计&#xff0…...

ES6箭头函数

1.箭头函数的写法 如果函数内有返回值 var fn v > v 1 返回值如果不是表达式(是对象),用()括号返回 var fn v > ({ obj: v }) 返回值如果不是表达式(也不是对象)方法体内按正常写 var fu () > {var a 1;var b a1;return b; } 2.箭头函数和普通…...

毫米波雷达在环境监测中的关键作用

随着环境问题的日益凸显,精确、实时的环境监测成为了保护地球的关键一环。在这个背景下,毫米波雷达技术逐渐崭露头角,以其在环境监测中的独特优势成为不可或缺的工具。本文将探讨毫米波雷达在环境监测中的关键作用,以及它是如何应…...

print() 函数

二、print() 函数 这里先说一下 print() 函数,如果你是新手,可能对函数不太了解,没关系,在这里你只要了解它的组成部分和作用就可以了,后面函数这一块会详细说明的。 print() 函数由两部分构成 : 指令&a…...

PyQt 小程序

设备管理程序 v0.0.1.0, 终于出了一个基础版本,… … 两个字典的键值判断 辛亏用的是Python 这个编码时间大大缩短了...

大模型技术实践(五)|支持千亿参数模型训练的分布式并行框架

在上一期的大模型技术实践中,我们介绍了增加式方法、选择式方法和重新参数化式方法三种主流的参数高效微调技术(PEFT)。微调模型可以让模型更适合于我们当前的下游任务,但当模型过大或数据集规模很大时,单个加速器&…...

[正式学习java②]——数组的基本使用,java内存图与内存分配

一、数组的两种初始化方式 1.完整格式(静态初始化) 数据类型[] 数组名 new 数据类型[]{元素1,元素2…}; //范例 int[] arr new int[]{1,2,3,4}; 简化书写 一般我们会省略后面的 new 数据类型[] int[] arr {1,2,3,4}; 2.动态初始化 当不知道数组里面的初始值的时候&#xf…...

ESP32网络开发实例-TCP服务器数据传输

TCP服务器数据传输 文章目录 TCP服务器数据传输1、IP/TCP简单介绍2、软件准备3、硬件准备4、TCP服务器实现本文将详细介绍在Arduino开发环境中,实现一个ESP32 TCP服务器,从而达到与TCP客户端数据交换的目标。 1、IP/TCP简单介绍 Internet 协议(IP)是 Internet 的地址系统,…...

四川天蝶电子商务有限公司抖音电商服务引领行业标杆

随着电子商务的飞速发展,四川天蝶电子商务有限公司作为一家领先的抖音电商服务提供商,已经脱颖而出。本文将详细解析四川天蝶电子商务有限公司的抖音电商服务,让您一探究竟。 一、卓越的服务理念 四川天蝶电子商务有限公司始终坚持以客户为中…...

复制活动工作表和计数未保存工作簿进行

我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率,而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想,积木编程最重要的是积木如何搭建…...

ORA-12541:TNS:no listener 无监听程序

问题截图 解决方法 1、删除Listener 新建一个新的 2、主机为服务器ip 3、设置数据库环境 只需要设置实例名不需要设置路径 4、服务命名 一样设置为ip 服务名与监听名一直 eg:orcl...

UE 多线程

详细参考:《Exploring in UE4》多线程机制详解[原理分析] - 知乎 (zhihu.com) UE4 C基础 - 多线程 - 知乎 (zhihu.com) 多线程的好处 通过为每种事件类型的处理分配单独的线程,能够简化处理异步事件的代码。每个线程在进行事件处理时可以采用同步编程…...

BootStrap5基础入门

BootStrap5 项目搭建 1、引入依赖 从官网 getbootstrap.com 下载 Bootstrap 5。 或者Bootstrap 5 CDN <!-- 新 Bootstrap5 核心 CSS 文件 --> <link rel"stylesheet" href"https://cdn.staticfile.org/twitter-bootstrap/5.1.1/css/bootstrap.min.c…...

企业文件防泄密软件!好用的文件加密系统推荐

由于众多企业内部都有大量的机密数据以电子文档的形式存储着&#xff0c;且传播手段多样&#xff0c;很容易造成文件泄密的问题发生。若是员工通过网络泄密重要文件&#xff0c;或是有黑客入侵窃取机密数据等&#xff0c;造成重要文件被非法查看盗取&#xff0c;都会给企业业务…...

【LLM微调范式1】Prefix-Tuning: Optimizing Continuous Prompts for Generation

论文标题&#xff1a;Prefix-Tuning: Optimizing Continuous Prompts for Generation 论文作者&#xff1a;Xiang Lisa Li, Percy Liang 论文原文&#xff1a;https://arxiv.org/abs/2101.00190 论文出处&#xff1a;ACL 2021 论文被引&#xff1a;1588&#xff08;2023/10/14&…...

实验2.1.3 交换机的远程配置

实验2.1.3 交换机的远程配置 一、任务描述二、任务分析三、实验拓扑四、具体要求五、任务实施&#xff08;一&#xff09; password认证1. 进入系统视图重命名交换机的名称为SWA2. 关闭干扰信息3. 设置vty为0-44. 设置认证方式为password5. 设置登录密码为&#xff1a;huawei6.…...

基于边缘网关构建水污染监测治理方案

绿水青山就是金山银山&#xff0c;生态环境才是人类最宝贵的财富。但是在日常生活生产中&#xff0c;总是免不了各种污水的生产、排放。针对生产生活与环境保护的均衡&#xff0c;可以借助边缘网关打造环境污水监测治理体系&#xff0c;保障生活与环境的可持续性均衡发展。 水污…...

Spring事件ApplicationEvent源码浅读

文章目录 demo应用实现基于注解事件过滤异步事件监听 源码解读总结 ApplicationContext 中的事件处理是通过 ApplicationEvent 类和 ApplicationListener 接口提供的。如果将实现了 ApplicationListener 接口的 bean 部署到容器中&#xff0c;则每次将 ApplicationEvent 发布到…...

51单片机点阵

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、点阵是什么&#xff1f;1.点阵的原理2. 3*3 点阵显示原理3. 8*8点阵实物图4. 8*8点阵内部原理图5. 16*16点阵实物图&#xff0c;显示原理 二、使用步骤1.先…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...