Progressive Reconstruction of Visual Structure for Image Inpainting 论文笔记

会议与时间 IEEE Conference Proceedings international conference on computer vision Jan 2019 CCF-A
在这里插入图片描述

主要贡献/创新点

在partial convolution地基础上作改进,通过逐步地交错地生成edge map和inpainting image,共享参数以提升两者地效果。

过去方法存在的问题

  1. 利用对抗损失评估生成的结构,将每个结构图视为一个整体,很难恢复到合格的局部结构。
  2. 局部卷积等方法缺乏结构性的知识,限制恢复了连续的masked区域。

结构structure就是edge、前景等“中间介质”。

创新点

  1. 提出PRVS(Progressive Reconstruction of Visual Structure)网络,逐步重建结构和相关的视觉特征。
  2. 设计了一种新的Visual Structure Reconstruction(VSR)层,将重建的视觉结构(visual structure)和视觉特征(visual feature)纠缠在一起,通过共享参数提高彼此的性能。
  3. 分析了所提出方法的泛化能力,给出了 O ( 1 N ) O(\frac{1}{\sqrt N}) O(N 1)的泛化界。

模型搭建

模型主要结构

在这里插入图片描述
也是生成器+判别器结构

  1. 生成器由使用了VSR层P-UNet结构组成。
  2. 判别器由预训练的权重固定的VGG-16和由5层卷积层构成的Patch Discriminator组成。

Visual Structure Reconstruction Layer

VSR层由结构生成器(Visual Structure Generator)和特征生成器组成。

  1. 先使用结构生成器更新input edge,收缩确实区域的大小。
  2. 然后使用更新的edge map引导新feature的生成。

Visual Structure Generator

在这里插入图片描述

1. 先使用局部卷积获得更新的feature map X p c 1 X_{pc1} Xpc1和其对应的mask M p c 1 M_{pc1} Mpc1

X p c 1 , M p c 1 = P c o n v ( < X i n , E i n > , < M i n I m g , M i n E d g e > ) X_{pc1},M_{pc1} = Pconv(<X_{in},E_{in}>,<M_{in}^{Img},M_{in}^{Edge}>) Xpc1,Mpc1=Pconv(<Xin,Ein>,<MinImg,MinEdge>)
Pconv是局部卷积操作,<>是concatenate, X i n X_{in} Xin是image feature,3通道, E i n E_{in} Ein
是structure map,单通道,M分别代表它们的mask。
X p c 1 X_{pc1} Xpc1 M p c 1 M_{pc1} Mpc1分别是更新后的feature map和它的mask。

2. X p c 1 X_{pc1} Xpc1输入到bottleneck residual block和一个单通道输出卷积核中产生结构图 E c o n v E_{conv} Econv
3. 新生成的 M p c 1 M_{pc1} Mpc1 M i n E d g e M_{in}^{Edge} MinEdge做减法,再和 E c o n v E_conv Econv做逐元素乘积,获得新生成的Edge map。
4. 原始的 E i n E_in Ein E p a r t E_{part} Epart相加,得到迭代后的 E E G E_{EG} EEG
5. 该步输出的结果是 E E G E_{EG} EEG M p c 1 M_{pc1} Mpc1

VSR层的整体结构

VSR层的主要目的是将结构信息整合到重构的特征映射中。
获得迭代的边缘图和其mask,按照下面的公式更新特征图及对应的mask X o u t X_{out} Xout M p c 2 M_{pc2} Mpc2。保证了edge map和feature map的同步更新。
X o u t , M p c 2 = M p c 1 ⊙ ( Pconv ⁡ ( ⟨ X i n , E E G ⟩ , ⟨ M i n , M p c 1 ⟩ ) ) \mathbf{X}_{o u t}, \mathbf{M}_{p c 2}=\mathbf{M}_{p c 1} \odot\left(\operatorname{Pconv}\left(\left\langle\mathbf{X}_{i n}, \mathbf{E}_{E G}\right\rangle,\left\langle\mathbf{M}_{i n}, \mathbf{M}_{p c 1}\right\rangle\right)\right) Xout,Mpc2=Mpc1(Pconv(Xin,EEG,Min,Mpc1))

除了VSR,上采样层中还使用了结合了部分卷积和转置卷积的部分反卷积层。

本文通过使用局部卷积层使得mask在不同通道中的大小保持一致,然后转置卷积进行上采样特征映射,解决之前P-Unet跳接引起的难以使用反卷积的问题。

左边是P-Unet中原始的上采样层,右边是本文的,本文在局部卷积层后面加入了反卷积层。 Nearest up-sampling用于在PRVS网络解码器阶段放大mask。

在这里插入图片描述

判别器

1. Patch-GAN:structure generation learning

用于学习结构,也就是本文的Edge map。

2. pre-trained and fixed VGG-16 network: image generation learning

使用来自预训练的值固定的VGG-16的 perceptual loss and style loss.(VGG-16仅仅是特征提取器而已)

  1. perceptual loss:
    L preceptual  = ∑ i = 1 N 1 H i W i C i ∣ ϕ pool  i g t − ϕ pool  i pred  ∣ 1 L_{\text {preceptual }}=\sum_{i=1}^{N} \frac{1}{H_{i} W_{i} C_{i}}\left|\phi_{\text {pool }_{i}}^{g t}-\phi_{\text {pool }_{i}}^{\text {pred }}\right|_{1} Lpreceptual =i=1NHiWiCi1 ϕpool igtϕpool ipred  1

ϕ p o o l i \phi_{pool_i} ϕpooli表示固定VGG-16中一i个池化层的特征映射。

  1. style loss:
    ϕ pool  i s t y l e = ϕ pool  i ϕ pool  i T \phi_{\text {pool }_{i}}^{s t y l e}=\phi_{\text {pool }_{i}} \phi_{\text {pool }_{i}}^{T} ϕpool istyle=ϕpool iϕpool iT
    L style  = ∑ i = 1 N 1 C i ∗ C i ∣ 1 H i W i C i ( ϕ pool  i style  g t − ϕ pool  i style   pred  ) ∣ 1 L_{\text {style }}=\sum_{i=1}^{N} \frac{1}{C_{i} * C_{i}} \mid\left.\frac{1}{H_{i} W_{i} C_{i}}\left(\phi_{\text {pool }_{i}}^{\text {style }_{g t}}-\phi_{\text {pool }_{i}}^{\text {style }} \text { pred }\right)\right|_{1} Lstyle =i=1NCiCi1HiWiCi1(ϕpool istyle gtϕpool istyle  pred ) 1
  2. L v a l i d L_{valid} Lvalid L h o l e L_{hole} Lhole分别是unmasked area和masked area的L1 distance.
  3. total loss:
    L total  = λ hole  L hole  + λ valid  L valid  + λ tv  L tv  + λ style  L style  + λ perceptual  L perceptual  + λ adv  ( L adv  1 + L adv  2 ) \begin{aligned} L_{\text {total }} &=\lambda_{\text {hole }} L_{\text {hole }}+\lambda_{\text {valid }} L_{\text {valid }}+\lambda_{\text {tv }} L_{\text {tv }}+\lambda_{\text {style }} L_{\text {style }} \\ &+\lambda_{\text {perceptual }} L_{\text {perceptual }}+\lambda_{\text {adv }}\left(L_{\text {adv }}^{1}+L_{\text {adv }}^{2}\right) \end{aligned} Ltotal =λhole Lhole +λvalid Lvalid +λtv Ltv +λstyle Lstyle +λperceptual Lperceptual +λadv (Ladv 1+Ladv 2)

分析与结论

泛化能力分析

  1. 泛化界表明,泛化能力与判别器的复杂度呈负相关,泛化界为 O ( 1 N ) O(\frac{1}{\sqrt N}) O(N 1)
    log ⁡ N ( F ∣ S , ε , ∥ ⋅ ∥ 2 ) ≤ log ⁡ ( 2 W 2 ) ∥ X ∥ 2 2 ε 2 ( ρ ∏ i = 1 5 s i ) 2 ( ∑ i = 1 5 b i 2 / 3 s i 2 / 3 ) 3 \begin{aligned} & \log \mathcal{N}\left(\left.\mathcal{F}\right|_{S}, \varepsilon,\|\cdot\|_{2}\right) \\ \leq & \frac{\log \left(2 W^{2}\right)\|X\|_{2}^{2}}{\varepsilon^{2}}\left(\rho \prod_{i=1}^{5} s_{i}\right)^{2}\left(\sum_{i=1}^{5} \frac{b_{i}^{2 / 3}}{s_{i}^{2 / 3}}\right)^{3} \end{aligned} logN(FS,ε,2)ε2log(2W2)X22(ρi=15si)2(i=15si2/3bi2/3)3
  2. 权重矩阵的谱规范之间存在负相关关系,这就需要对谱规范进行归一化来控制谱规范。

与其他方法对比

比P-UNet和Edge-Connect定性和定量上都要好。
在这里插入图片描述
在这里插入图片描述

消融实验

在这里插入图片描述

  1. Baseline是原始的P-Unet。
  2. PD是在第一个的基础上,用partial deconvolution layer替代 nearest up-sampling。
  3. 第三个是引入了VSR层。
  4. 除“Full”外,像素注意模块被移除。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值