A Neural Algorithm of Artistic Style
本系列文章由 @yhl_leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/53931536
1. 资源
- Paper: A Neural Algorithm of Artistic Style
- TensorFlow version in GitHub: anishathalye/neural-style
- Caffe version in GitHub: fzliu/style-transfer
- Torch version in GitHub: jcjohnson/neural-style
- DeepPy version in GitHub: andersbll/neural_artistic_style
2. 论文概述
图 1
这是2015年的一篇论文,作者首次提出使用卷积神经网络生成具有人工艺术风格的作品。作者认为,卷积神经网络中的卷积层可以理解为收集图像特定特征的滤波器集(filters),即生成了输入图像各种版本滤波结果,把普通影像重构成具有艺术风格的作品,既需要保持普通图像内容布局上保持不变,又要使其具有与参考艺术作品具有相同的风格,此分别为文中所述的content reconstructions 和 style reconstructions.
作者发现,较深层的卷积特征能获取图像高级(high-level)的、目标级的内容信息以及在原图像上的位置信息,但是却不能约束准确的像素重构,也就是详细的像素信息丢失(如图 1,content reconstructions 的 d,e);相反地,浅层的卷积特征却能很容易的生成准确的像素值(如图 1,content reconstructions 的 a,b,c),因此,作者使用较深层的卷积进行内容重构,实验中是在relu4_2上进行content representation.
在风格化的问题上,为了表示参考艺术作品的风格,作者使用特征空间获取纹理信息。这一特征空间基于卷积神经网络的各个卷积阶段得到的特征,它由不同卷积特征图之间的相关性构成。通过引入卷积层之间的相关性,作者获得了对原图稳定的,多尺度的表示,能够得到参考艺术作品的纹理信息(不包含全局的排布信息)。
因此,作者的思路非常简单,通过输入原图,在较深层的卷积层中得到的特征进行图像内容约束,使用参考艺术作品,在卷积不同阶段的卷积特征学习得到图像纹理,进行纹理约束,从而优化得到最终结果。
3. 论文细节
图 2
图 2展示了算法的约束简图,其中包含两个主要约束:content constrain 和 style constrain。
作者使用的是VGG-19 network, 包含16个卷积层(分为5个卷积阶段),每个阶段末尾都有 pooling 层,全连接层被抛弃掉,另外Pooling阶段使用average pooling。
content loss:
Fl,Pl 分别是 xx,pp图像在卷积层l上对应的卷积特征响应, Fl∈RNl×Ml, Flij是卷积层l的第i个卷积在j位置上激活值,Plij。则,在该层上的梯度为:
style loss:
计算不同滤波响应之间的相关性,表示在 Gram 矩阵中:
Al,Gl分别为 aa,xx 图像在卷积层l上对应的卷积特征响应,通过使得两者的差方和最小,作为约束调整图像风格:
因此,风格的损失代价为:
即,使用多层的卷积特征,进行整体约束,(其中conv1_1,conv2_1,conv3_1,conv4_1和conv5_1中 wl = 1/5, 其余层wl = 0)。梯度很容易求导为:

total loss:
其中 α/β 被设置为1e−3或1e−4.
4. 实验结果
论文以及开源代码中具有实验结果,可自行查看或测试,这里不贴出。
A Neural Algorithm of Artistic Style的更多相关文章
- A Neural Algorithm of Artistic Style 图像风格转换 - keras简化版实现
前言 深度学习是最近比较热的词语.说到深度学习的应用,第一个想到的就是Prisma App的图像风格转换.既然感兴趣就直接开始干,读了论文,一知半解:看了别人的源码,才算大概了解的具体的实现,也惊叹别 ...
- 【每一个人都是梵高】A Neural Algorithm of Artistic Style
文章地址:A Neural Algorithm of Artistic Style 代码:https://github.com/jcjohnson/neural-style 这篇文章我认为可以起个浪漫 ...
- 《A Neural Algorithm of Artistic Style》理解
在美术中,特别是绘画,人类掌握了通过在图像的内容和风格间建立复杂的相互作用从而创造独特的视觉体验的技巧.到目前为止,这个过程的算法基础是未知的,也没有现存的人工系统拥有这样的能力.然而在视觉感知的其他 ...
- Artistic Style 3.1 A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, Objective‑C, C#, and Java Source Code
Artistic Style - Index http://astyle.sourceforge.net/ Artistic Style 3.1 A Free, Fast, and Small Aut ...
- 在QtCreater中配置Artistic Style格式化Qt程序源代码!!
Qt很吸引人,可能是我对Qt开发工具QtCreater不熟悉,只发现里面提供了一个快捷键:"ctrl+i",很多人说这就是格式化代码快捷键,我发现这仅仅是代码缩进,并不是真正意义上 ...
- Dev-C++添加代码格式化(format source code)工具Artistic Style
Dev-C++是一个轻便的C++ IDE开发环境,比起VS2010来轻巧得多.最新的版本是5.4.0是2013年2月14日发布的,下载地址如下: Dev-C++5.4.0 download 它是开源项 ...
- Artistic Style 3.1
Artistic Style 3.1 Tab 选项 下面的示例显示空白字符.一个空格(space)用一个 . 表示,一个制表符(tab)用 > (大于号) 表示. ** 默认缩进 ** 如果没有 ...
- Artistic Style在windows下的使用(C/C++)
ArtisticStyle是一个开源的源码格式化工具.主页地址为:http://astyle.sourceforge.net/,它能够应用在C.C++.Objective-C.C#.Java等程序语言 ...
- AStyle 2.02版本 AStyle(全称Artistic Style)是一个C、C++、C#和Java源代码缩进、格式化和美化工具
http://download.csdn.net/detail/akof1314/3323725
随机推荐
- Scrivener 中文语言包
Scrivener 中文语言包 随着OS X EI Capitan的发布,Scrivener 也升级到了2.7,程序没有大的变化,主要是为了兼容10.11并更新了图标. 原来的2.6的中文语言包无法在 ...
- rabbitmq安装使用
使用 http://www.open-open.com/lib/view/open1325131828249.html ubuntu:apt-get install erlang-noxsudo ap ...
- 使用免费公开的api接口示例(iOS)
做项目难免需要测试,要测试就需要一些接口,现在网上的很多接口都是需要收费的. 以下是目前找到的免费 JSON API免费接口 云聚数据 网吧数据 其中选取了一个百度百科的接口 百度接口 百度百科接口: ...
- avalon ms-repeat avalon1
工作原因要用到avalon二次开发, 但是看了下以前的avalon版本是1,现在大多数都是2版本了吧,,所以很多文档不好找,但是大多数还是好用的 ms-repeat 循环当前赋值的, ms-repea ...
- 使用Jmeter性能测试,读取csv文件时的乱码问题
读取csv参数乱码问题 发送请求时参数通过CSV文件读取,发送请求后显示错误,把获取的参数通过在线urlencode转码器转码后发现是乱码.打开csv设值,编码格式选择的是UTF-8,打开参数文件后发 ...
- Linux nohup 关闭终端的时候,程序依然能在后台运行( linux重定向及nohup不输出的方法)
先说一下linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出.在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标号 ...
- Java OOP——第五章 异常
1. 尝试通过if-else来解决异常问题: Eg: public class Test2 { public static void main(String[] args) { ...
- float 浮动详解
浮动(float):浮动原先设定时主要是用于文本环绕图像设定的,后来发现其在css布局中有很大的帮助,故渐渐使用浮动. 浮动后的元素脱离了文档的普通流,使得浮动的元素不占据文档的位置,其他元素可以覆盖 ...
- 使用cookie登陆知乎
只是想说明一个问题,Cookie可以维持登录状态,有些网页当中,访问之后的cookie里面带有登陆账号,和登陆密码,这样可以使用cookie直接访问网页,如知乎,首先登录知乎,将Headers中的Co ...
- laravel-多条件查询并指定key输出
$room = DB::table('room') ->where(function($query) use($contList){ foreach ($contList as $k=>$ ...