多样化纹理合成
【多样化纹理合成】
文章图片
更多内容见:
https://github.com/jiauzhang/dlcv
CVPR 2017
文章图片
基于判别器和生成器建模方法的纹理合成具有很大的潜力,但是现有方法为了效率而采用的前向网络在泛化能力上并不行,即一个网络只能合成一种纹理,缺少多样性。本文着重解决该问题。训练一个多纹理合成网络存在的一些困难:不同类型纹理的统计特是完全不同,使用基于 Gram 矩阵的纹理损失[1, 2]只能部分的衡量其中的差异;纹理之间内在的不同导致收敛速率也不一样。所以训练一个多纹理合成网络的难度取决于纹理之间的差异和各个纹理本身的复杂性。另外,多纹理合成网络还会出现输入的噪声向量被边缘化的问题,这就导致一个给定的纹理无法生成多个不同样本,这通常意味着对特定纹理的过拟合。
文章图片
本文设计的网络结构有两个输入,一个噪声向量、一个 one-hot vector 表示不同纹理,网络分为 Generator 和 Selector 两路,Selector 的每层的特征图除了自用之外,还会和 Generator 的对应层特征拼接在一起作为 Generator 下一层的输入,最后一层的输出即为生成的纹理,再使用 VGG 提取特征。
基于 Gram 矩阵的纹理损失函数对于单一纹理合成很有用,但是用于多纹理时并不够理想,作者认为这是因为不同纹理的 Gram 矩阵在尺度上有较大的差异导致的,所以本文首先是改进了 Texture loss,由公式(1)变成公式(2):
文章图片
文章图片
改进前后的效果对比:
文章图片
第一行是原始纹理,第二行是公式(1)的效果,第三行是改进后的效果。
另一个需要解决的是缺乏多样性的问题,因为网络有把噪声向量边缘化的问题,所以作者提出了显式衡量同一纹理不同噪声下生成样本之间的损失函数,即多样性损失,强行把输入噪声和输出耦合在一起:
文章图片
其效果如下:
文章图片
第一列是原始纹理,第三~四列是没使用多样性损失的结果,很明显三个样本差不多,最后三个是使用了多样性损失的结果,样本之间有明显的差异。
具体训练时,作者发现每次都随机的选择一种纹理和有规律的增量训练效果差别挺大,增量训练的过程如下:
文章图片
随机训练和增量训练的结果对比:
文章图片
第一行为原始纹理,第二行是随机训练的结果,第三行是增量训练的结果,显然是增量训练的结果更接近原始纹理。
作者还将其扩展到了 multi-style transfer 上,这里就不具体介绍了,关键点都是以上的内容,展示点效果:
文章图片
第一行为 style,第二行为风格迁移效果。风格插值效果如下:
文章图片
最左边和最右边是两种不同的 style,中间为图片为插值效果。
参考文献
[1] L. A. Gatys, A. S. Ecker, and M. Bethge. Texture synthesis using convolutional neural networks. In NIPS, 2015.
[2] L. A. Gatys, A. S. Ecker, and M. Bethge. Image style transfer using convolutional neural networks. In CVPR, 2016.
[3] Li, Yijun, et al. Diversified texture synthesis with feed-forward networks. In CVPR, 2017.
推荐阅读
- 十一、理解纹理坐标
- 音视频开发|音视频开发 三(渲染图片纹理)
- 【见证贴21】恭喜逍遥玄在徽章合成期间人品爆发,获得1.2倍暴击
- 多视角三维模型纹理映射 01
- 自定义View_撸一个带纹理效果的进度条
- 将几万张图片合成一张图片,制作一个超赞的马赛克图!
- 将几万张图片合成一张图片,制作一个超赞的马赛克图
- 都说海南黄花梨纹理美,鬼脸为此功不可没
- React系列(三)--|React系列(三)-- Jsx, 合成事件与Refs
- Photoshop教程|合成篇|寂静的森林