论文笔记|Context Encoders: Feature Learning by Inpainting

最近刚开始学习图像修复,这是本人在阅读论文时整理的大纲和笔记,如果有看到不对的地方希望能在评论区中指出,我也会及时改正。我还在努力学习中,请大家理解!

Abstract

上下文编码器(context encoders):

  1. 一种神经网络——它可以根据周围环境生成任意区域的图像
  2. 工作方式:既需要理解整个图像,也需要对缺失的部分提出合理的假设
  3. 训练过程中用到的两种损失函数:
    后者可以提供更加清晰的输出,因为它可以处理多模态的输出
  • a standard pixel-wise reconstruction loss
  • an adversarial loss
  1. 在学习特征的时候不仅需要捕捉外观,也需要捕捉视觉结构的语义(the semantics of visual structures)。
  2. 证明了其有效性和有用性:
  • 预训练:可用于分类、检测、分割任务的预处理
  • 语义修补
  • 非参数方法的初始化

1.Introduction

  • 问题:Although the center part of the image is missing, most of us can easily imagine its content from the surrounding pixels, without having ever seen that exact scene.
  • 原因:This ability comes from the fact that natural images, despite their diversity, are highly structured.
  1. humans: understand the structure and make visual predictions.
  2. context encoders:
  • encoder: capture the context of an image into a compact latent feature representation.(捕捉特征)
  • decoder: use that representation to produce the missing image content.(利用捕捉到的特征预测缺失的部分)
autoencodercontext encoderdenoising autoencoders
缺点this feature representation is likely to just compresses the image content without learning a semantically meaningful representation------this corruption process is typically very localized and low-level, and does not require much semantic information to undo
工作方式take an input image and try to reconstruct it after it passes through a low-dimensional “bottleneck” layer, with the aim of obtaining a compact feature representation of the scene.both understand the content of an image, as well as produce a plausible hypothesis for the missing parts.address this issue by corrupting the input image and requiring the network to undo the damage.

2.Related work

2.1 Unsupervised learning

深度学习的相关发展历程:

  • autoencoder
  • denoising autoencoders : reconstruct the image from local corruptions, to make encoding robust to such corruptions
  • context encoder : the corruption applied to the model’s input is spatially much larger, requiring more semantic information to undo.

2.2 Weakly-supervised and self-supervised learning

source of supervision

  • use the temporal information contained in videos
  • track patches in frames of video containing task-relevant attributes and use the coherence of tracked patches to guide the training
    本论文采用空间上下文作为监督信号。

2.3 Image generation

上下文编码器可以应用于任何未标记的图像数据库,并学会基于周围的上下文生成图像

2.4 Inpainting and hole-filling

因为缺失内容太大,不能用经典的图像补全和纹理合成来修复

  • computer graphics, filling in large holes is typically done via scene completion, involving a cut-paste formulation using nearest neighbors from a dataset of millions of images.
    (填充任意区域存在困难)
  • context encoder: We show that our method is often able to inpaint semantically meaningful content in a parametric fashion, as well as provide a better feature for nearest neighbor-based inpainting methods.

3. Context encoders for image generation

3.1 Encoder-decoder pipeline

context encoder
总体架构是一个简单的编码器-解码器管道
编码器获取一个缺失区域的输入图像,并产生该图像的潜在特征表示。
解码器采用此特征表示并生成缺失的图像内容。
通过通道上的全连接层连接编码器和解码器,解码器中的每个单元可以推理整个图像内容。

Encoder

编码器源自AlexNet架构:给定一个大小为227×227的输入图像,我们使用前5个卷积层和池化层(pool5)来计算一个抽象的6 × 6 × 256维特征表示。
与AlexNet相比,我们的模型没有经过ImageNet分类训练;相反,该网络被训练为“从头开始”使用随机初始化权重进行上下文预测。
然而,如果编码器架构只局限于卷积层,就没有办法将信息从特征映射的一个角落直接传播到另一个角落。这是因为卷积层将所有的特征映射连接在一起,但从不直接连接特定特征映射中的所有位置。
在目前的体系结构中,这种信息传播是由完全连接层或内部积层处理的,其中所有激活都直接相互连接。在我们的体系结构中,码器和解码器的潜在特征维数都是6 × 6 × 256 = 9216。
然而,完全连接编码器和解码器将导致参数数量的爆炸,在目前的gpu上进行有效训练将是困难的。为了缓解这个问题,使用通道全连接层将编码器功能连接到解码器

Channel-wise fully-connected layer

与全连通层不同的是,channel-wise fully-connected layer没有参数连接不同的特征映射,只传播特征映射内的信息。因此,与全连接层中的m2n4个参数(忽略偏差项)相比,这个通道全连接层中的参数数量为mn4

Decoder

在通道级全连接层之后是一系列的5个上卷积层(up-convolutional layers),这些层带有学习滤波器,每个层都有一个ReLU激活函数。上卷积是一种简单的卷积,它能产生更高分辨率的图像。它可以理解为上采样后的卷积,或分数步长卷积。一系列的上卷积和非线性,包含了编码器产生的特征的非线性加权上采样,直到我们大致达到原始目标大小。

3.2 Loss function

  • The reconstruction(L2) loss is responsible for capturing the overall structure of the missing region and coherence with regards to its context, but tends to average together the multiple modes in predictions.
  • The adversarial loss, tries to make prediction look real, and has the effect of picking a particular mode from the distribution.
Reconstruction Loss

重建损失函数
对L1和L2损失进行了实验,发现两者之间没有显著差异。虽然这种简单的损失促使解码器产生预测对象的粗略轮廓,但它常常无法捕获任何高频细节。这源于一个事实,即L2(或L1)损失通常更喜欢一个模糊的解决方案,而不是高度精确的纹理。

Adversarial Loss

对抗损失是基于生成对抗网络(GAN)。为了学习数据分布的生成模型G, GAN提出联合学习对抗判别模型D,为生成模型提供损失梯度。G和D是参数函数,其中G: Z→X将样本从噪声分布Z映射到数据分布X。学习过程是一个二人博弈,其中对抗性判别器D同时接受G的预测和真实样本,并试图区分它们,而G则试图通过产生尽可能“真实”的样本来迷惑D。
对抗损失函数1
将该框架通过上下文编码器的建模生成器来用于上下文预测。为了为此任务定制GANs,可以对给定的上下文信息设置条件。然而,条件GANs不容易训练上下文预测任务,因为对抗判别器D很容易利用生成区域和原始上下文中的感知不连续,轻松地将预测样本与真实样本进行分类。因此,使用了另一种表述:只根据上下文条件作用生成器(而不是鉴别器)。我们还发现,当发生器不以噪声矢量为条件时,结果有所改善。

对抗损失函数2

3.3 Region masks

Central region

最简单的形状是图像中心的正方形缺失。虽然这在修补中工作得很好,但是网络学习了锁定在中央掩模边界上的低层次图像特征。这些低层次的图像特征往往不能很好地泛化到没有掩模的图像,因此学习到的特征不是很普遍。

Random block

为了防止网络锁住在掩膜区域的固定边界上,我们对掩膜过程进行随机化。我们没有在固定的位置选择一个大的蒙版,而是删除了一些可能重叠的小蒙版,覆盖了图像的1/4的部分。然而,随机块掩蔽仍然有清晰的边界,卷积特征依然可以锁定。

Random region

为了完全消除这些边界,我们尝试从PASCAL VOC 2012数据集的随机掩码中获得的图像中删除任意形状。
通过变形这些形状,并粘贴在其他图像的任意位置,再次覆盖图像的1/4。注意,我们完全随机化了区域掩模过程,不期望或不希望源分割掩模与图像之间有任何相关性。我们只是使用这些区域来阻止网络学习与被删除的掩码相对应的底层特征。

4. Implementation details

  • 实验环境:Caffe and Torch
  • 优化器:随机梯度下降求解器ADAM
  • 在掩模输入图像中缺失的区域用恒定的均值填充
  • 超参数设置

Pool-free encoders

尝试用相同内核大小和步幅的卷积替换所有池化层。网络的整体步幅保持不变,但它的结果是更好的填充。没有理由将池用于基于重构的网络。
在分类中,池化提供了空间不变性,这可能不利于基于重建的训练。为了与之前的工作保持一致,仍然使用原始的AlexNet架构(带有池化层)来处理所有的特性学习结果。

5. Evaluation

  • semantic quality :present visualizations demonstrating the ability of the context encoder to fill in semantic details of images with missing regions.
  • transferability to other image understanding
    tasks :using context encoders as a pre-training step for image classification, object detection, and semantic segmentation.

5.1 Semantic Inpainting

没有调整对抗性损耗,也没有在编码器中添加噪声。并且使用上下文编码器的学习率(10倍)高于对抗性鉴别器。
为了进一步强调预测与上下文的一致性,我们预测了一个与上下文重叠的略大的补丁(7px)。在训练过程中,我们对这个重叠区域的重建损失使用了更高的权重(10×)。

5.2. Feature Learning

为了与之前的工作保持一致,编码器使用AlexNet架构。但是没有设法使对抗损失与AlexNet收敛,所以我们只使用重建损失。对于中心区域掩码,网络以恒定的学习率10−3进行训练。然而,对于随机区域破坏,我们发现学习率为10-4时表现更好。仅对通道全连接层应用了0.5的下降率,因为它比其他层有更多的参数,可能容易过拟合。

5.2.1 Classification pre-training

随机初始化的性能比imagenet训练的模型低25%左右;但是,它不使用任何标签。上下文编码器与并发的自监督特征学习方法具有竞争力,并且显著优于自动编码器。

5.2.2 Detection pre-training

用上下文编码器替换ImageNet预先训练的网络:将预先训练的编码器权重上传到pool5层,并重新初始化全连接层。
上下文编码器的预训练与现有的方法相比具有竞争力,可以在基线上实现显著的提高。最近,Krähenbühl等人提出了一种数据依赖的方法来缩放预训练的模型权重。这显著改善了特征,分类率达到65.3%,检测率达到51.1%。然而,这种缩放并不能改善其他方法的结果。

5.2.3 Semantic Segmentation pre-training

将FCN方法中使用的分类预训练网络替换为上下文编码器,在这种情况下,我们的性能优于随机初始化的网络和简单的自动编码器。

6. Conclusion

我们的上下文编码器经过训练,以生成基于上下文的图像,提高了语义修复技术的水平,同时学习了与其他辅助监督训练的模型相比具有竞争力的特征表示。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 上下文编码器(Context Encoders)是一种深度学习模型,它通过修复输入图像中的缺失部分来学习有用的特征。这种方法也被称为“修复学习”或“图像修复”。上下文编码器被广泛应用于计算机视觉领域,特别是在图像生成和图像修复任务中。模型可以根据图像的周围环境推断出缺失的部分,从而对图像进行恢复。这种方法可以用于去除图像中的噪声、修复损坏的图像、或者在生成图像时填补缺失的部分。上下文编码器可以学习到图像的高级特征,例如物体边界和纹理信息,并能够在许多计算机视觉任务中提高模型的性能。 ### 回答2: Context encoders: Feature Learning by Inpainting(上下文编码器:通过修复学习特征)是一种深度学习算法,它可以学习图像的特征,特别是在图像编码、填充、分割和修复等应用中有很大的用途。 通过输入一张有遮挡图案的图片,该算法可以自动地推断出遗漏的信息。它利用卷积神经网络对缺失区域进行修复,然后将修复后的图像作为输入重新训练模型。通过重复训练这个过程,模型可以不断地学习更高层次的图像特征,使得每次修复的区域都更加准确。 与传统的图像补全方法不同,Context encoders可以处理多种形式的缺失图像,而不仅仅是像素缺失。它可以处理物体缺失、区域缺失以及其他一些复杂的缺失情况。 该算法在图像分类、自然语言处理、音频信号处理等方面都有广泛的应用。在图像分类任务中,Context encoders可以学习更加鲁棒的特征表示,提高模型的分类准确度。在自然语言处理任务中,该算法可以处理缺失单词及语法错误等问题,提高自然语言处理的效果。 总之,Context encoders可以帮助我们更好地理解和处理缺失数据,在深度学习中有着广泛的应用前景。 ### 回答3: Context EncodersFeature Learning by Inpainting,是一种用于生成式模型的特征学习方法,它基于图像修复技术的思想,从部分图像中学习如何重构完整的图像。这个方法的主要思想是使用通道填补方法从部分图像中重建原始目标图像,并将填充像素视为上下文信息。因此,Context Encoders 通过学习如何重构部分图像来解决多个计算机视觉任务,例如图像重构、语音生成和自然语言处理等。 Context Encoders 基于深度神经网络,使用像素级损失函数和特征级损失函数对图像进行训练。像素级损失函数是指对原始目标图像与重构图像进行像素级别的比较,以评估其重建效果。而特征级损失函数是指对不同层的卷积网络的特征进行比较,以评估模型的特征学习效果。 Context Encoders 的应用非常广泛,例如可以使用它对缺失图像进行修复,也可以用来自动生成图像。此外,Context Encoders 还可以应用在自然语言处理任务中,例如对于单词或短语进行补全或自动翻译。 总之,Context EncodersFeature Learning by Inpainting 通过使用图像修复技术的思想,从部分图像中学习如何重构完整的图像,可以解决多个计算机视觉任务,并且具有很强的应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值