Perceptual Losses for Real-Time Style Transfer and Super-Resolution

Perceptual Losses for Real-Time Style Transfer and Super-Resolution

Paper:https://arxiv.org/pdf/1603.08155.pdf
Code:https://github.com/ChengBinJin/Real-time-style-transfer
Supplement:https://cs.stanford.edu/people/jcjohns/papers/eccv16/JohnsonECCV16Supplementary.pdf
Tips:ECCV2016的一篇paper。
(阅读笔记)

1. Main idea

  • 目标在于图像转换问题(image to image)。目前的大多数方法都是直接通过神经网络更新每个像素之间损失。Recent methods for such problems typically train feed-forward convolutional neural networks using a p e r per per- p i x e l pixel pixel loss between the output and ground-truth images.
  • 目前相关工作证明能够通过预训练的网络得到感知损失进行优化生成图像。Parallel work has shown that high-quality images can be generated by defining and optimizing p e r c e p t u a l perceptual perceptual loss functions based on high-level features extracted from pretrained networks.
  • 基于上述两点,提出了感知损失函数用于神经网络的图像转换任务。We combine the benefits of both approaches, and propose the use of perceptual loss functions for training feed-forward networks for image transformation tasks. 实验结果转换速度快,效果好。

2. Intro

  • image transformation tasks的应用非常广泛,诸如图像去噪;图像超分辨;图像上色均是图像转换任务之一。或者甚至是图像语义分割任务,输出也不过是具有语义信息编码的图像。
  • per-pixel losses的问题在于:并不能捕获出感知性的差异(perceptual differences)。如:尽管两张图像的感知性的差异很小,但是其每个像素都差一个单位,那么如果是per-pixel losses的结果仍然会是很大的。
  • 相对应地,最近已经有一些工作展示出了:通过预训练的神经网络提取的图像特征来得到感知损失,并且用于高质量图像生成已经有所成果。但是优化推断的过程太慢。
  • 于是乎提出perceptual losses。其更能鲁棒性地估计图像的相似度,而不是仅仅利用直白地像素信息。

其实已经可以感觉到全文的意思,即通过一个预训练的神经网络 ϕ ( x ) \phi(x) ϕ(x)来提取像素信息 x x x,而得到的高维的感知特征 ϕ ( x ) \phi(x) ϕ(x)再被用于损失函数。

3. Method

  • 正如下图所示,整个网络包含两个部分:其一是图像转换本身的网络 f W f_{W} fW(深度残差网络);其二是感知损失函数 ϕ \phi ϕ,包含多个具体损失函数 ℓ 1 , . . . , ℓ k \ell_1,...,\ell_k 1,...,k(如下图也就是神经网络的不同层的输出得到的是不同的损失函数 ℓ i \ell_i i)。
    x x x是原始图像,通过转移网络神经网络transformation得到 y ^ = f W ( x ) \hat{y}=f_W(x) y^=fW(x)。而 ℓ i ( y ^ , y i ) \ell_i(\hat{y},y_i) i(y^,yi)即是用来衡量转移网络的输出与目标图像的差距的损失函数。
    于是有更新过程:
    W ∗ = arg min ⁡ W E x , { y i } [ ∑ i = 1 λ i ℓ i ( f W ( x ) , y i ) ] W^* = \argmin _{W} \mathbf{E}_{x,\{y_i\}} \left[ \sum_{i=1} \lambda_i \ell_i(f_W(x),y_i) \right] W=WargminEx,{yi}[i=1λii(fW(x),yi)]

总体可以理解为神经网络其实就是拟合的任意函数,此前大多数的均方差,绝对值差的损失函数都是直接对像素结果操作,并没有充分利用其像素内在的一些信息,为何不用一个神经网络来实现损失函数?

Tips:一般图像去模糊,超分辨的任务都不改变网络过程中图像尺寸;而语义分割的相关任务会在卷积过程中改变图像的特征尺寸。
在这里插入图片描述

  • 但是如何得到损失函数的 ϕ \phi ϕ
    The key insight of these methods is that convolutional neural networks pretrained for image classification have already learned to encode the perceptual and semantic information we would like to measure in our loss functions.
    即是直接通过一个预训练的图像分类的网络(已经能够很好的提取出图像的语义信息)作为 ϕ \phi ϕ。于是损失函数就变成了转换网络输出 y ^ \hat{y} y^与目标图像 y i y_i yi再经过一个VGG-16,得到了高维的特征图像向量后,再做对比。
  • 更具体地,损失函数包含两类,分别是 ℓ s t y l e ϕ \ell^\phi_{style} styleϕ ℓ f e a t ϕ \ell^\phi_{feat} featϕ用于衡量图像的风格差异和内容差异。因为title写出了该paper的目的是用于风格迁移和超分辨,每一张图像都有其风格的目标图像和内容的目标图像,所以有:
    • 当风格迁移时, y c y_c yc即是输入 x x x,而输出 y ^ \hat{y} y^应当同时结合content的 y c = x y_c=x yc=x(保证图像的主体内容应该是一致的)以及style的 y s y_s ys(保证图像具有风格图像 y s y_s ys的特质)。
    • 当超分辨时, x x x即是一张低分辨率的输入图像,而输出 y ^ \hat{y} y^就是输出的超分辨图像, y c y_c yc是超分辨的目标标签图像,风格图像 y s y_s ys没有用。

4. Transformation networks

  • 主要用DCGAN的架构来实现网络,用到了残差层;BN;ReLu。具体可直接参考代码或者补充内容(Supplement)。
  • 而感知损失函数衡量差异具体的可以表述如下:
    • Feature Reconstruction Loss(保证图像信息内容相似的损失函数部分 ℓ f e a t ϕ \ell^\phi_{feat} featϕ):
      ℓ f e a t ϕ , j ( y ^ , y ) = ∥ ϕ j ( y ^ ) − ϕ j ( y ) ∥ 2 2 \ell^{\phi,j}_{feat}(\hat{y},y)=\|\phi_j(\hat{y}) - \phi_j({y}) \|_2^2 featϕ,j(y^,y)=ϕj(y^)ϕj(y)22
      即就是通过神经网络提取特征后的均方差。
    • Style Reconstruction Loss(保证图像风格迁移的部分 ℓ s t y l e ϕ \ell^\phi_{style} styleϕ):
      一般图像风格迁移都会用到格拉姆矩阵(Gram matrices),即矩阵内积操作。格拉姆矩阵作用其实很简单,就是通过神经网络 ϕ \phi ϕ的结果后,同一个向量自内积,能够反映出自己向量元素之间的关系或联系。比如说:若两个向量正交的结果就是0,反应了某种性质。而同一张图像(经过 ϕ \phi ϕ后)内积即反应了其图像的内在信息。
      G j ϕ ( x ) c , c ′ = ϕ j ( x c ) ⋅ ϕ j ( x c ′ ) G^{\phi}_{j}(x)_{c,c'}=\phi_j(x_c) \cdot \phi_j(x_{c'}) Gjϕ(x)c,c=ϕj(xc)ϕj(xc)
      分别求得 ϕ ( y ^ ) \phi(\hat{y}) ϕ(y^) ϕ ( y ) \phi(y) ϕ(y)自内积的格拉姆矩阵后,然后就是F-norm,矩阵差值元素的平方和开方再平方,对每个矩阵元素进行操作最小化损失。
      ℓ s t y l e ϕ , j ( y ^ , y ) = ∥ G j ϕ ( y ^ ) − G j ϕ ( y ) ∥ F 2 \ell^{\phi,j}_{style}(\hat{y},y)=\|G^{\phi}_{j}(\hat{y}) - G^{\phi}_{j}({y}) \|_F^2 styleϕ,j(y^,y)=Gjϕ(y^)Gjϕ(y)F2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值