用于自监督视觉预训练的屏蔽特征预测

Masked Feature Prediction for Self-Supervised Visual Pre-Training

一、摘要

        提出了用于视频模型自监督预训练的掩模特征预测(MaskFeat)。首先随机屏蔽输入序列的一部分,然后预测屏蔽区域的特征。研究了五种不同类型的特征,发现定向梯度直方图(HOG)(一种手工制作的特征描述符),在性能和效率方面效果特别好。此方法可以学习丰富的视觉知识并驱动基于 Transformer 的大规模模型。

        当人类将世界视为连续的时空信息流时,它具有预测世界如何出现和移动的非凡能力。考虑图 1 第一列中的示例,即使没有看到被掩盖的内容,也能够通过使用有关对象的视觉知识来理解对象结构并绘制想象信息的粗略轮廓或轮廓(一些细节),预测某些屏蔽特征(例如第二列中的梯度直方图)可以成为自监督视觉预训练的强大目标,特别是在包含丰富视觉信息的视频领域。

        提出了屏蔽特征预测(MaskFeat),这是一种直接回归屏蔽内容特征的预训练目标。研究了广泛的特征类型,从像素颜色和手工制作的特征描述符,到离散视觉标记、深度网络的激活以及网络预测的伪标签。

二、模型(屏蔽特征预测)

        蒙版视觉预测任务,其动机是人类将蒙版视觉内容修复到某些细节的能力。该任务首先随机屏蔽视频的一些时空立方体,然后根据剩余的时空立方体预测被屏蔽的立方体。通过对屏蔽样本进行建模,模型必须首先根据可见区域识别对象,并且还知道对象通常会出现什么以及它们通常如何移动以修复缺失区域。

        首先描述用于视频输入的 MaskFeat。视频被划分为时空立方体。然后将立方体投影(即卷积)为一系列标记。为了执行屏蔽,序列中的一些令牌被替换为 [MASK] 令牌而被随机屏蔽。为了进行预测,[MASK]令牌替换后的令牌序列(添加了位置嵌入)由 Transformer 进行处理。与屏蔽立方体相对应的输出标记通过线性层投影到预测。预测只是时间上以每个屏蔽立方体为中心的二维空间补丁的特征。输出通道的数量根据特定的目标特征进行调整(例如,如果预测 16×16 块中像素的 RGB 颜色,则为 3×16×16)。损失仅对遮罩立方体进行操作,如图所示。

        MaskFeat 预训练。用 [MASK] 标记随机替换视频的输入时空立方体,并直接回归屏蔽区域的特征(例如 HOG)。经过预训练后,Transformer 将针对最终任务进行微调。

        MaskFeat 可以在图像领域轻松实例化,可以将其解释为单帧视频。大多数操作都是共享的,除了没有时间维度,并且每个标记现在仅代表一个空间补丁而不是时空立方体。具体来说,我们的方法通过视觉 Transformer 主干提取屏蔽时空输入,并预测屏蔽内容的某些特征表示。

三、目标特征

考虑五种不同类型的目标特征。目标分为两组:

        1)可以直接获得的一阶段目标,包括像素颜色和定向梯度直方图 HOG;

        2)由经过训练的深度网络或教师提取的其他两阶段目标。

这五种特征类型是:

        像素颜色:视频像素的颜色。使用通过数据集的平均值和标准差标准化的 RGB 值。最小化模型预测与真实 RGB 值之间的 ℓ2 距离。虽然简单,但像素作为目标具有过度拟合局部统计数据(例如照明和对比度变化)和高频细节的潜在缺点,这对于视觉内容的解释来说可能是微不足道的。

        HOG:定向梯度直方图(HOG)是一种特征描述符,描述局部子区域内梯度方向或边缘方向的分布。HOG 描述符是通过简单的梯度过滤(即减去相邻像素)来计算每个像素处的梯度大小和方向来实现的。然后,每个小的局部子区域或单元内的梯度被累积成几个箱的方向直方图向量,并由梯度大小投票。直方图标准化为单位长度。在整个图像的密集网格上,这适合随机屏蔽补丁的预测目标。HOG 的特点是捕获局部形状和外观。此外,当图像梯度和局部对比度归一化吸收亮度(例如照明)和前景-背景对比度变化时,它提供了光度变化的不变性。研究表明 HOG 中的局部对比度标准化对于 MaskFeat 预训练至关重要。最后,HOG 可以实现为双通道卷积,以生成 x 和 y 轴上的梯度(或通过减去相邻的水平和垂直像素),然后进行直方图和归一化。首先在整个图像上获得 HOG 特征图,然后将该图分割成补丁。通过这种方式,减少了每个遮罩补丁边界上的填充。然后,将屏蔽补丁的直方图展平并连接成一维向量作为目标特征。损失:最小化预测和原始 HOG 特征之间的 ℓ2 距离。

        离散变分自动编码器(dVAE):为了解决视觉信号的连续高维性质,DALL-E [58] 提出使用 dVAE 码本压缩图像。特别是,每个补丁都被编码成一个令牌,该令牌可以使用预先训练的 dVAE 模型假设 8192 个可能的值。通过优化交叉熵损失来预测屏蔽标记的分类分布。然而,预训练 dVAE 和标记图像以及屏蔽特征预测会产生额外的计算成本。

        深层次的特征:与离散化标记相比,考虑直接使用连续的深度网络特征作为预测目标。使用预先训练的模型作为教师(CNN 或 ViT(Vision Transformer))来生成特征,并且损失最小化余弦距离(即 ℓ2 归一化特征的均方误差)。对于 CNN 教师,使用与屏蔽补丁相对应的最后一层的特征,对于 ViT,使用相应的输出补丁标记。主要比较自监督模型的特征,它们被认为比监督模型的特征包含更多样化的场景布局并保留更多的视觉细节。监督特征预计会更加语义化,因为它们是通过人工注释进行训练的。与 dVAE 类似,当使用额外的模型权重来生成屏蔽特征时,会涉及大量的额外计算。

        伪标签:为了探索更高级别的语义预测目标,考虑预测屏蔽补丁的类标签。利用令牌标签提供的标签,其中每个补丁都分配有一个单独的位置特定的 IN-1K 伪标签。该类标签图由预先训练的高性能监督深度网络教师生成。屏蔽特征预测阶段通过交叉熵损失进行优化。

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

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

相关文章

netfilter内核实现

Netfilter是Linux内核中的一个框架,用于实现数据包的过滤、NAT(Network Address Translation)、连接追踪以及其他网络功能。Netfilter框架的主要实现包括如下几个部分: 钩子函数(Hooks):Netfilter框架在Linux内核中通…

遥感、航拍、影像等用于深度学习的数据集集合

遥感图像的纹理特征异常繁杂,地貌类型多变,人工提取往往存在特征提取困难和特征提取不准确的问题,同时,在这个过程中还会耗费海量的人力物力。随着计算力的突破、数据洪流的暴发和算法的不断创新,在具有鲜明“大数据”…

我们的C++(基础)(中文翻译版)

什么是C? C是一种高级语言。它由 Bjarne Stroustrup 于 1979 年在贝尔实验室设计和开发。C 是一种面向对象的编程语言,它扩展和改进了 C 语言。C 可在各种平台上运行,例如 Windows、MAC 操作系统和 UNIX 版本。 C 是一种静态类型、编译、通…

ffmpeg的pcm、yuv小知识点

ffmpeg的pcm、yuv小知识点 pcm、yuv保存调用,写个通用工具方法,平时快速保存,和调用方便查看自己bug ffmpeg的AVFrame存储 yuv 调用方法 保存方法 void save_yuv420p_file(unsigned char *y_buf , unsigned char *u_buf,unsigned char *…

git commit 后,本地远端都没有记录,消失不见

今天git commit 之后发现远端没有记录,本地没有最新代码记录 git commit 后,提交记录会消失不见的原因可能是: git只git commit了,没有push到远程分支,切换到其他分支时丢失。而且看不到提交记录,和找不到…

美团2024届秋招笔试第一场编程真题——小美的字符串变换

小美拿到了一个长度为n的字符串,她希望将字符串从左到右平铺成一个矩阵(先平铺第一行,然后是第二行,以此类推,矩阵有x行y列,必须保证x∗yn,即每y个字符换行,共x行)。 该…

2024.2.21 模拟实现 RabbitMQ —— 实现转发规则

目录 需求分析 直接交换机(Direct ) 主题交换机(Topic ) 扇出交换机(Fanout ) Topic 交换机转发规则 routingKey 组成 bindingKey 组成 匹配规则 情况一 情况二 情况三 实现 Router 类 校验 b…

Spring Boot application.properties和application.yml文件的配置

在Spring Boot中,application.properties 和 application.yml 文件用于配置应用程序的各个方面,如服务器端口、数据库连接、日志级别等。这两个文件是Spring Boot的配置文件,位于 src/main/resources 目录下。 application.properties 示例 …

vue中动态表格中文校验,但是中文的参数无法获取

场景: 解决方案: 因为上述的正则表达式后,使用搜狗输入法没有问题,但采用微软自带输入法后,会存在输入数字及英文时为正常,切换为汉字后,会存在吞并当前光标前的字符。具体吞并个数和输入法中有…

Unity发布webgl获取浏览器的URL

Unity发布webgl获取浏览器的URL Unity发布webgl之后获取浏览器的url 在unity中创建文件夹Plugins,然后添加添加文件UnityGetBrowserURL.jslib var GetUrlFunc {//获取地址栏的URLStringReturnValueFunction: function () {var returnStr window.top.location.hre…

SpringBoot3整合Swagger3,访问出现404错误问题(未解决)

秉承着能用就用新的的理念,在JDK、SpringBoot、SpringCloud版本的兼容性下,选择了Java17、SpringBoot3.0.2整合Swagger3。 代码编译一切正常,Swagger的Bean也能加载,到了最后访问前端页面swagger-ui的时候出现404。 根据网上资料…

Oracle ADG相关介绍

文章目录 一、ADG原理1、ADG介绍2、ADG搭建流程 二、ADG相关参数三、增量修复 一、ADG原理 1、ADG介绍 Oracle ADG(Advanced Data Guard)是Oracle数据库的一项高可用和灾难恢复技术,它通过将数据保持在物理备库中来提供数据保护和容灾能力。…

关于前后端分离框架的一些疑问

1.既然前后端分离框架已经成为主流框架,那么前后端不分离框架存在的意义是什么? 简化开发: 对于一些简单的应用或者团队实力较弱的情况下,前后端不分离的框架可能更容易上手和开发,因为它将前端和后端的逻辑都集中在了一起,减少…

如何拆分express项目中app.js中的路由

由于项目越来越大,app.js中的路由会变多,导致app.js文件变大,需要提取出路由。 如何拆分 app.js文件 导入路由文件调用路由文件,调用的时候传入参数app const baseRouter require(./routes/router); baseRouter(app);routes/…

StringBuffer StringBuilder

String 为什么StringBuilder是线程不安全的?StringBuffer是线程安全的? - Jacian - 博客园 (cnblogs.com) StringBuilder 线程安全的可变字符学序列 速度快 StringBuffer 线程不安全的可变字符序列 创建StringBuilder对象 new StringBuilder&…

c++面试一

1.#include使用 在C/C中&#xff0c;#include 预处理指令用于包含头文件&#xff0c;这些头文件通常包含了函数声明、宏定义以及其他的声明和定义。#include 指令后面跟着的文件名可以使用双引号 "" 或尖括号 <> 来指定&#xff0c;它们之间有一些区别。 双引…

Qt QWiget 实现简约美观的加载动画 第三季

&#x1f603; 第三季来啦 &#x1f603; 这是最终效果: 只有三个文件,可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QVBoxLayout> #include <QGridLayout> int main(int argc, char *argv[]…

设计并实现一个并发安全的LRU(Least Recently Used,最近最少使用)缓存结构

文章目录 前言实战演示写在最后 前言 相信很多人都使用过LinkedHashMap&#xff0c;LinkedHashMap中的removeEldestEntry可以删除老旧的元素&#xff0c;我们可以以此来实现一个LRU缓存结构&#xff0c;并结合java中JUC包中的各种多线程锁机制来保证多线程安全。 以下是我遇见…

过滤器和拦截器的区别是什么

过滤器和拦截器都是Web应用程序中的常用组件&#xff0c;不过它们的功能和使用方式不同。 1.工作位置不同 过滤器在Servlet容器内部工作 拦截器在SpringMVC框架内部工作 2.触发时间不同 过滤器在客户端向服务器发送请求前触发&#xff0c;在请求到达Servlet容器之前进行处理…

突破编程_C++_面试(模板编程(2))

面试题 1 &#xff1a;什么是模板特化&#xff1f;为什么需要它&#xff1f; 模板特化是C编程语言中的一个概念&#xff0c;它允许我们为模板定义特定类型的版本。简单来说&#xff0c;模板特化是模板的具体化&#xff0c;它允许为特定的类型提供特定的实现。 模板特化主要有…