目录
(1)不使用pooling层,使用strided和fractionally strided卷积来做downsampling 和 upsampling
(3)输出层使用scaled tanh保证输出值在[0, 255]
1. 卷积神经网络的应用
图像风格转换
图像修复
换脸
图像超清化
图像翻译
文字生成图像
2. 卷积神经网络学到了什么
卷积神经网络的每一层激活值都可以看作是图像的抽象表示。(卷积神经网络中某层的每个激活值都可以看作是一个分类器,众多的分类结果组成了抽象表示。层级越高,特征抽象程度越高。)
3. 图像风格转换-V1
3.1 内容特征&风格特征
内容特征:图像输入到CNN得到的某一层的激活值。
使用内容特征生成图像:
保持卷积神经网络的参数不变
调整图像X的像素值,使之与y图像在CNN中的内容特征距离变小。(图像输入到卷积神经网络中,某一层的激活值F,和对应位置上和待生成的图像提取出来的特征P去相减求和,得到损失函数。)
风格特征:图像输入到CNN得到的某一层的激活值之间的关联。(是所有内容特征的共性,一般在越高层,就越能得到风格特征的结果。)
风格特征的计算——Gram矩阵
3.2 优劣
慢:每张图都要逐步求导
逐步调整:能够产生多张效果
能否只用一次计算就能得到结果?
4. 图像风格转换-V2
同样的网络还可以实现图像超清化
训练:
X是要转换的图像
Ys是风格图像
Yc是内容图像
X=Yc
预测:
输入新图像
经过transformer
得到转换结果
4.1 图像风格转换 V1和V2的异同
(1)V1和V2的不同
V1中是随机的。
V2中是由X经过Image Transform Net得到的。
(2)V1和V2的相同
基于Gram矩阵来计算风格损失——>风格损失无法明确定义
4.2 图像风格转换V2的网络细节
(1)不使用pooling层,使用strided和fractionally strided卷积来做downsampling 和 upsampling
strided卷积步长=1时,输入和输出的size一致。当strided>1时,比如当strided = 2时,图像size的长宽各降低一半。在卷积层上做strided会比做pooling能保存更多的信息(why)。故一般在图像生成网络中,会用strided=2的卷积层来代替pooling层,以保持更多的信息。
图像变小之后,还需要将其放大。fractionally strided相当于strided的逆操作。当strided=2时,图像会变为原来的1/2;当strided=1/2时,图像会变为原来的2倍。downsampling降采样,图像变小;upsampling升采样,图像变大。
为什么先做down-sampling,再做up-sampling?
减小了feature_map的大小,提高性能
提高结果图像中的视野域——风格转换会导致物体变形,因而,结果图像中每个图像对应着初始结果中的视野域越大越好
(2)使用五个residual blocks
在生成网络中,使用残差连接(residual blocks)的好处:残差连接为恒等连接,y = x + f(x), 能够尽可能的保留输入图像中更多的信息。f(x)可专注于学习需要变换的部分。
(3)输出层使用scaled tanh保证输出值在[0, 255]
(4)第一个和最后一个卷积核使用9*9的核,其它使用3*3
5. 图像风格转换-V3
1. 摆脱gram矩阵