zoukankan      html  css  js  c++  java
  • 【每一个人都是梵高】A Neural Algorithm of Artistic Style

    文章地址:A Neural Algorithm of Artistic Style
    代码:https://github.com/jcjohnson/neural-style

    这篇文章我认为可以起个浪漫的名字——每一个人都是梵高。
    主要做的一件事情非常有意思。就是例如以下图的等式,通过将a图的style和p图的content进行融合。得到第三幅图x。style+content=styled content
    这里写图片描写叙述
    怎么做呢?首先他定义了两个loss。分别表示终于生成的图x和style图a的样式上的loss,以及x和content图p的内容上的loss。α,β是调节两者比例的參数。终于的loss function是两者的加和。

    通过optimize总的loss求得终于的x。


    这里写图片描写叙述

    Details

    所用的CNN网络是VGG-16,利用了它16个卷积层和5个pooling层来生成feature。
    如果某一层得到的响应是FlRNlMl,当中Nl为l层filter的个数,Ml为filter的大小。Flij表示的是第l层第i个filter在位置j的输出。

    content loss

    如果p和x在CNN中的响应分别为Pl和Fl。将他们内容上的loss表示成每一个pixel的二范数:
    这里写图片描写叙述
    则用梯度下降法,content loss对F求导为:
    这里写图片描写叙述

    Style Loss

    图x的style表示为GlRNlNl,当中Glij=kFlikFljk,即CNN同一层不同filter响应的互相关,至于为什么互相关可以表示style,well。I don’t know….
    那么每一层style loss为
    这里写图片描写叙述
    当中style图a的在CNN中的响应为A。


    则总的style loss为每一层的加权和:
    这里写图片描写叙述

    Total Loss

    在定义好了两个loss的形式以后,又回到了最初的问题,就是最小化总的loss:
    这里写图片描写叙述
    要注意的是。不同于一般的CNN优化,这里优化的參数不再是网络的w和b。而是初始输入的一张噪声图片x
    这里写图片描写叙述
    终于我们想让他变成右图这样styled content。

    Experiments

    1. 对同一张content图片运用不同style的结果例如以下图所看到的,fantastic!!
      这里写图片描写叙述

    2. total loss中αβ的比例:
      从上到下表示的是运用不同conv层的feature进行style,conv1->conv5是一个从总体到局部的过程;
      从左到右表示的是不同的α/β的比例,105->102是指更注重style还是更强调content。
      这里写图片描写叙述

  • 相关阅读:
    DML和DQL语句
    MYSQL创建用户和授权方法(测试mysql5.7)
    安卓ViewPager中Button点击事件弹出Dialog
    安卓从popupwindow跳转到Activity页面
    Collect preferences failed, class java/lang/AutoCloseable not found in D:Program Files (x86)Androidandroid-sdkplatformsandroid-19android.jar
    安卓横屏布局设置
    C#控制台程序自动重启(检测是否连接网络)
    C++指针学习
    C++共享数据的保护
    C++结构体再学心得
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7295468.html
Copyright © 2011-2022 走看看