lartpang / blog

A simple blog based on issues.
https://lartpang.github.io/blog/
5 stars 0 forks source link

ICLR 2024 - FeatUp - A Model-Agnostic Framework for Features at Any Resolution #6

Open lartpang opened 3 months ago

lartpang commented 3 months ago

ICLR 2024 | FeatUp: A Model-Agnostic Framework for Features at Any Resolution

image.png

image.png

背景动机

深层特征是计算机视觉研究的基石,捕获图像语义并使社区即使在零或少样本情况下也能解决下游任务。然而,这些特征通常缺乏空间分辨率来直接执行分割和深度预测等密集预测任务,因为模型会积极地池化大区域的信息。在这项工作中引入了 FeatUp,这是一个与任务和模型无关的框架,用于恢复深层特征中丢失的空间信息。

相关工作

Image-adaptive Filtering

自适应滤镜通常用于增强图像,同时保留其底层结构和内容。

例如,双边滤波器(bilateral filters)【Bilateral filtering for gray and color images,The Guided Bilateral Filter: When the Joint/Cross Bilateral Filter Becomes Robust,Fast image dehazing using guided joint bilateral filter】 将空间滤波器应用于低分辨率信号,将图像亮度滤波器应用于高分辨率引导,以混合来自二者的信息。而其重要的扩展形式,联合双边上采样(Joint Bilateral Upsampling,JBU)【Joint bilateral upsampling】,可以在高分辨率引导下对低分辨率信号进行上采样。已成功用于高效图像增强和其他应用。

最近一些工作嵌入了双边滤波方法【Guided Upsampling Network for Real-Time Semantic Segmentation】和非局部均值(Nonlocal Means)【A Non-Local Algorithm for Image Denoising】方法到卷积网络【Superpixel Convolutional Networks using Bilateral Inceptions,Non-local neural networks】和视觉 transformer【Blending Anti-Aliasing into Vision Transformer,Transformer for Single Image Super-Resolution】中。

这类方法在各种应用中都有效,直接将空间信息合并到任务中,同时仍然允许学习网络的灵活性。

Image Super-resolution

尽管有大量关于图像超分辨率的文献,但这些方法并不适合处理超低分辨率但高维的深层特征。

General-purpose feature upsampling

Image-adaptive feature upsampling

具体方法

FeatUp 背后的核心直觉是,人们可以通过观察低分辨率特征的多个不同“视角”来计算高分辨率特征。

与 NeRF 通过在场景的许多 2D 照片之间强制一致性来构建 3D 场景的隐式表示一样,FeatUp 通过在许多低分辨率特征图之间强制一致性来构建上采样器,即认为低分辨率信号的多视图一致性可以监督高分辨率信号的构建。更具体地说,通过聚合多个“抖动”(例如翻转、填充、裁剪)图像的模型输出的低分辨率视图来学习高分辨率信息。通过学习具有多视图一致性损失的上采样网络来聚合这些信息。这一基本思想可以产生多种方法。

  1. 基于联合双边上采样的轻量级前向上采样器:该前馈上采样器是联合双边上采样 (JBU) 滤波器的参数化概括,通过自定义 CUDA 核函数从而比现有实现速度快了几个数量级且占用内存更少。该上采样器可以与几个卷积相当的计算成本产生与对象边缘对齐的高质量特征。
  2. 基于隐式网络的上采样器:将隐式模型拟合到单个图像以在任何分辨率下重建特征。通过用深度隐式网络过拟合信号,针对目标图像独立学习,允许任意分辨率特征生成,同时具有较低的存储成本。

在这两种上采样架构的特征可以在下游应用中直接替换使用,因为所提方法不会转换底层特征的语义,即使无需重新训练也能获得分辨率和性能提升。

文中的实验表明,FeatUp 在类激活图生成、分割和深度预测的迁移学习以及语义分割的端到端训练方面显着优于其他特征上采样和图像超分辨率方法。

image.png

整体的多视角重建损失可以表示如下:(低分辨率特征层面上的一致性)

image.png

下采样器设计

image.png

这里引入两个选项,即快速且简单的学到的模糊核,更灵活的基于注意力的下采样器。两个提出的模块都不会通过特殊变换来改变特征的 " 空间 " 或 " 语义 ",而只是在一个小邻域内插入特征。图 3 中绘制了这两种选择。

两个下采样器的主要超参数是核大小,对于具有较大感受野的模型(例如卷积网络),内核大小应该更大。

简单的下采样器

通过学到的模糊核来模糊特征,可以实现为独立应用于每个通道的卷积。学习到的核被归一化为非负且总和为 1,以确保特征保持在同一空间中。尽管这种基于模糊的下采样器非常高效,但它无法捕获动态感受野、对象显着性或其他非线性效应。

更灵活的注意力下采样器

可以在空间上调整下采样核。该组件使用 1x1 卷积根据高分辨率特征预测显着性图。它将显着性图与学到的空间不变权重和偏置核相结合,并对归一化结果以创建插入特征的空间变化模糊核:

image.png

上采样器设计

image.png

图中展示了本文设计的两种方法,二者都使用相同的更广泛的架构和损失进行训练。

基于堆叠的联合双边上采样器的引导上采样器

该架构学习了一种跨图像语料泛化的上采样策略。

image.png

$\circ$ 是函数组合。$f(x)$ 是低分辨率特征图。$x$ 是原始图像。

该架构速度快,直接将输入图像中的高频细节合并到上采样过程中,并且独立于 $f$ 的架构。

公式将原始 JBU 的实现推广到高维信号,并使该操作可学习。在联合双边上采样中,使用高分辨率信号 $G$ 作为低分辨率特征 $F_{lr}$ 的引导。$\Omega$ 是每个像素在引导图像中的邻域。

在实践中,我们使用以每个像素为中心的 3×3 正方形。令 $k(\cdot,\cdot)$ 为相似核,用于衡量两个向量的 " 接近 " 程度。然后我们可以形成联合双边过滤器:

image.png

原始的 JBU 形式:

image.png

其中的 $Z$ 是归一化因子,确保核参数加和为 1。spatial 核是向量坐标之间欧氏距离上宽度为 $\sigma_{spatial}$ 的可学习的高斯核:

image.png

此外,range 核是对引导信号 $G$ 进行操作的多层感知器 (MLP) 输出内积施加温度 $\sigma_{range}^2$ 的 softmax 的形式:

image.png

原始 JBU 在引导信号 G 上使用固定的高斯核。而这里设计的泛化性能要好得多,因为可以从数据中学习 MLP 以创建更好的上采样器。在实验中使用具有 30 维隐藏向量和输出向量的两层 GeLU MLP。为了评估 $F_{lr}[a, b]$,如果引导像素不直接与低分辨率特征对齐,则遵循原始 JBU 公式使用双线性插值特征。为了与分辨率无关,这里在空间核中使用归一化到 [−1, 1] 的坐标距离。

这一形式的挑战之一是现有 JBU 实现的速度和内存性能较差。这可以解释为什么这种简单的方法没有得到更广泛的使用。为此,本文为 JBU 中使用的空间自适应内核提供了高效的 CUDA 实现。与使用 torch.nn.Unfold 运算符的简单实现相比,改进操作使用的内存减少了两个数量级,并且推理速度提高了 10 倍。

image.png

基于隐式神经网络的图像特定的上采样器

这在过度拟合单个图像时可以产生非常清晰的特征。通过使用隐式函数 $F_{hr}=MLP(z)$ 参数化单个图像的高分辨率特征。一些现有的上采样解决方案也采用这种推理时训练方法,包括 DIP 和 LIIF。这里使用小型 MLP 将图像坐标和强度映射到给定位置的高维特征。遵循先前工作【Implicit Neural Representations with Periodic Activation Functions】的指导,并使用傅里叶特征来提高隐式表示的空间分辨率。除了标准傅里叶位置特征之外,本文也表明添加傅里叶颜色特征允许网络使用原始图像中的高频颜色信息。这显着加快了收敛速度,并能够优雅地使用高分辨率图像信息,而无需使用条件随机场 (CRF) 等技术。

image.png

$h(z,\hat{\omega})$ 表示输入信号 $z$ 的各个成分的离散傅立叶变换,其中频率向量为 $\hat{\omega}$。$e_i$ 和 $e_j$ 表示范围在区间 [−1, 1] 内的二维像素坐标场。$:$ 表示沿通道维度的拼接。

这里的 MLP 是一个小型 3 层 ReLU 网络,具有 dropout($p = 0.1$)和层归一化。

这一设定可以使得测试时可以查询像素坐标场以产生任何分辨率下的特征。而隐式表示中的参数数量比一个 224×224 的显式表征小两个数量级以上,同时更具表现力,显着减少收敛时间和存储大小。

其他细节

使用特征压缩加速训练

总变分先验

为了避免高分辨率特征中的杂散噪声,在隐式特征量值上添加一个小的 ( $\lambda_{tv}=0.05$) 总变分平滑先验:

image.png

这比正则化完整特征更快,并且避免过度规定各个组件的组织方式。注意不在 JBU 上采样器中使用它,因为此时不会受到过度拟合的影响。

image.png

实验结果

image.png

image.png

image.png

image.png