Non-Stationary Texture Synthesis by Adversarial Expansion

Non-Stationary Texture Synthesis by Adversarial Expansion

1.主要创新点:

利用Patch Gan,结合风格损失,L1损失,生成非固定纹理。

2.对应损失的贡献:

  1. 对抗损失作为纹理的主要生成
  2. L1损失减少噪声和非自然的内容,但是太过平滑
  3. 风格损失使得图像最终加入更多细节,但是也加入了颜色的扭曲

3.网络训练流程:

-------------------------------------------------------------------------------------------------------------------------

  1. 参数初始化,取原图的1/2 A作为生成器的输入,取原图B作为比较图
  2. 前向传播,输入图A,产生和B一样大小的假图fakeA
  3. 反向传播:
    1. 判别器:
      1. 输入假图fakeA给判定器计算判定器的损失
      2. 输入真图B 给判定器,计算判定器的损失
      3. 将两者的损失取平均
      4. 更新参数(更新的是判别器的参数,而生成器不更新)
    2. 生成器:
      1. 风格损失:
        1. 拿真图B在vgg网络前向传播一下,拿出前层的特征
        2. 拿假图A在vgg网络前向传播一下,拿出前层的特征
        3. 计算风格损失
      2. gan损失:
        1. 再用假图给判定器计算一下,计算损失,生成器的损失
      3. L1损失:
        1. 直接将假图和真图进行计算L1损失
      4. 将三个损失进行结合,分配不同权重进行
      5. 跟新参数(这里的参数全是生成器的参数跟新,对应的vgg和判别器参数不更新)
  4. 重复以上迭代流程

 --------------------------------------------------------------------华丽的分割线--------------------------------------------------------------

训练的过程可以通过这个流程图来理解,其中 gan损失,中还有一项生成器的损失,还需要计算一下。也就是迭代了判别器之后,生成器也要相应的方向传播,就是patchgan的内容。 

 

 4.存在问题:

1.部分边缘还存在一些不自然的现象

2.还是有部分不能很好的将大的全局结构学好

猜你喜欢

转载自blog.csdn.net/Willen_/article/details/84586026