zoukankan      html  css  js  c++  java
  • Perceptual Losses for Real-Time Style Transfer and Super-Resolution 论文理解

     1、我们的系统由两部分组成:一个图片转换网络fw 和一个损失网络 φ(用来定义一系列损失函数l1, l2, l3),
    图片转换网络是一个深度残差网络,参数是权重W,它把输入的图片x通过映射 y=fw(x)转换成输出图片y,
    每一个损失函数计算一个标量值li(y,yi), 衡量输出的y和目标图像yi之间的差距。
    图片转换网络是用SGD训练,使得一系列损失函数的加权和保持下降。

    2、Images Transform Net 的具体细节如下:

     3、

     

     4、

    本文首先阐述了Style Transfer 和 Super Resolution 现阶段的发展。 提出了一个重要的概念--"Perceptual Loss". 指出其他的paper用Pixel loss 来计算相似度, 也就是 [公式] 这个方法把Super -Resolution 的问题理解成了一个普通的MSE 回归问题。这篇文章指出了Pixel Loss 存在的缺点,其中一个缺点为 Pixel Loss 不能判断两张图像认知上的异同。
    举个例子:两张一样的图像, 只不过图像A 的所有像素都比图像B往左偏移了一个像素。 这两张图像的Pixle loss 会非常大,但这两张图像应该被判定为相同。

    然而用Perceptual loss 就能很好的克服这一问题。
    Perceptual loss 借用了已经训练好的VGG-16这一网络。 把VGG-16网络的中间层activations作为目标,计算两个图像经过VGG-16中间层的两个activations 的欧氏距离。 可以用如下数学公式表达:

    [公式]

    其中:

      • j 是 VGG-16 的中间层代号,比如 [公式]或者 [公式]
    • [公式]指的是输入图像是y , VGG-16 网络的j 中间层的输出。比如[公式]指的是HR 作为输入,relu3_3层的输出。
    • [公式]是 [公式]的长宽高。


    那么Perceptual loss 这数学公式就可以理解为两个图像在VGG-16中间层j的欧氏距离。 越小,说明VGG-16网络认为,这两张图越接近。

    5、用了优化的方式去找到一张图y,最小化从VGG16的某几层取出来的风格损失。图像y只保存风格特征不保存空间结构。

    6、训练细节:我们的风格转换网络是用COCO数据集训练的,我们调整每一个图像到256x256,共8万张训练图,batch-size=4,迭代40000次,大约跑了两轮。用Adam优化,初始学习速率0.001.输出图被用了全变量正则化(strength 在1e-6到1e-4之间),通过交叉验证集选择。不用权重衰减或者dropout,因为模型在这两轮中没有过拟合。对所有的风格转换实验我们取relu2_2层做内容,relu1_2,relu2_2,relu3_3和relu4_3作为风格。VGG-16网络,我们的实验用了Torch和cuDNN,训练用了大约4个小时,在一个GTX Titan X GPU上。
  • 相关阅读:
    在C#中使用正则表达式
    C++流操纵算子(格式控制)
    linux(Fedora) doxygen 的安装和使用
    UTF8
    java cookie全解析
    Fedora16 安装Adobe Flash Player方法
    工程素养
    感悟数据封装
    谷歌如何保护隐私
    openCV画的词法分析图
  • 原文地址:https://www.cnblogs.com/h694879357/p/13347510.html
Copyright © 2011-2022 走看看