快来加入 TensorFlowers 大家庭!
您需要 登录 才可以下载或查看,没有帐号?加入社区
x
本帖最后由 Tensorflower_攸岚 于 2018-4-21 08:43 编辑
“
艺术是活的科学。
”
——科克托
相信不少人都用过Prisma,而其背后的原理,就是通过神经网络学习某个图像的风格,然后再将这种风格应用到目标图像上。
下面介绍此论文
文章大纲 这里是整个paper在neural style的工作流,理解这幅图对理解整篇paper的逻辑很关键,主要分为两部分:
论文关键概念
卷积神经网络(CNN) 一张输入的图片,会在卷积神经网的各层以一系列过滤后的图像表示。随着层级的一层一层处理,过滤后的图片会通过向下取样的方式不断减小(比如通过池化层)。这使得每层神经网的神经元数量会原来越小。(也就是层越深,因为经过了池化层,单个feature map会越来越小,于是每层中的神经元数量也会越来越少)。
内容重塑 在只知道该层的输出结果,通过重塑输入图像,可以看到CNN不同阶段的图像信息。在原始的VGG-Network上的5个层级:conv1_1,conv1_2,conv1_3,conv1_4,conv1_5上重塑了输入的图像。 输入的图像是上图中的一排房子,5个层级分别是a,b,c,d,e。在较低层的图像重构(abc)非常完美;在较高层(de),详细的像素信息丢失了。也就是说,这样做提取出了图片的内容,但是抛弃了像素。
风格重塑 在原始的CNN表征之上(feature map),建立了一个新的特征空间(feature space),这个特征空间捕获了输入图像的风格。风格的表征计算了在CNN的不同层级间不用特征之间的相似性。通过在CNN隐层的不同的子集上建立起来的风格的表征,我们重构输入图像的风格。如此,便创造了与输入图像一致的风格而丢弃了全局的内容。 这篇论文的关键是对于内容和风格的表征在CNN中是可以分开的。可以独立地操作两个表征来产生新的,可感知意义的图像。论文中生成一个图片,混合了来自两个不同图片的内容和风格表征。 一张图片,它同时符合照片的内容表征,和艺术画的风格表征。原始照片的整体布局被保留了,而颜色和局部的结构却由艺术画提供。 风格表征是一个多尺度的表征,包括了神经网络的多层。在图2中看到的图像,风格的表征包含了整个神经网络的层级。而风格也可以只包含一小部分较低的层级。(见下面的图,第一行是卷基层1,第5行是卷基层5的输出)。若符合了较高层级中的风格表征,局部的图像结构会大规模地增加,从而使得图像在视觉上更平滑与连贯。 简言之,作者直接把局部特征看做近似的图片内容,这样就得到了一个把图片内容和图片风格(说白了就是纹理)分开的系统,剩下的就是把一个图片的内容和另一个图片的风格合起来。 图像的内容和风格并不能被完全地分解开。当风格与内容来自不同的两个图像时,这个被合成的新图像并不存在在同一时刻完美地符合了两个约束。但是,在图像合成中最小化的损失函数分别包括了内容与风格两者,它们被很好地分开了。所以,我们可以平滑地将重点既放在内容上又放在风格上。

实现原理
Experiments
效果那是相当的好
Github下载地址
感谢各位的阅读
诸多不足,还请见谅
另外,本萌新建了一个QQ群,欢迎各位大神加入
参考:https://www.jianshu.com/p/9f03b61fdeac
https://blog.csdn.net/elaine_bao/article/details/50502929
https://blog.csdn.net/qq_30611601/article/details/79007202
|