论文《Shift-Net: Image Inpainting via Deep Feature Rearrangement 》ECCV2018

pytorch代码:https://github.com/Zhaoyi-Yan/Shift-Net_pytorch

1.简介

传统的examplar-based(eg.. PatchMatch)通过在已知区域搜索相似patches来填补丢失区域的内容,这些方法虽然能够填充高频纹理细节,却无法捕获图像的全局结构。

基于CNN的Image Inpainting方法通过一个全连接层来传播周围的卷积特征,从而完成缺失的部分;但会使得修复结果模糊并且缺乏精细的纹理细节。

所以作者考虑examplar-based的方法和基于CNN的图像合成方法的优点,提出了一种新的基于CNN的方法-ShiftNet。ShiftNet是一种GAN网络;生成网络以UNet为主干网络,并在U-Net中添加了shift-connection layer;判别器网络是一个5层的卷积网络(卷积核4x4);网络整体损失是guidance,reconstruction, and adversarial losses等三种损失的加权和。

2.Shift-connection layer

为模型第L-l层的特征图的缺失区域的每一个点y(1*1*C)寻找其与第l层特征图中已知区域像素点中最相似的点x∗(y),并计算shift向量Shift-Net论文阅读笔记,然后计算 Shift-Net论文阅读笔记  。以前的方法都是在同一层的已知区域中寻找点填充未知区域,而作者是从l层中的已知区域提取点来填充L-l层的未知区域。     

Shift-Net论文阅读笔记

最后将 Shift-Net论文阅读笔记Shift-Net论文阅读笔记Shift-Net论文阅读笔记三个concatenated(通道拼接)并且作为第(L-l+1)层的输入

Shift-Net论文阅读笔记

3.损失

网络有三种损失:guidance losses(Lg),reconstruction losses(L1), and adversarial losses(Ladv)

Shift-Net论文阅读笔记

3.1 Guidance loss

对于已知区域,l层的特征图、L-l层的特征图和GT的特征图是接近的(也就是约等于的状态);所以这部分损失可以忽略不计。

而对于未知区域,则差别很大,应当重点关注这部分的损失。

所以

Shift-Net论文阅读笔记y属于未知区域

3.2 l1 loss

Shift-Net论文阅读笔记

3.3 adversarial loss

Shift-Net通过最小化对抗损失来更新,判别器D通过最大化对抗损失来更新。Shift-Net论文阅读笔记表示GT图像的分布,Shift-Net论文阅读笔记表示输入图像的分布,D(.)表示判别器预测输入图像来自GT图像的概率(输入图像为真的概率)。

Shift-Net论文阅读笔记

4.网络结构

Shift-Net论文阅读笔记

4.1.生成器网络结构

Shift-Net论文阅读笔记

4.2.判别器网络结构

判别器网络D是一个5层的卷积网络,卷积核4x4,sigmoid activation

Shift-Net论文阅读笔记

5.其他

5.1.数据集

Paris StreetView 包含14900张训练图片和100张测试图片
Places365-Standard 中的6类场景,包括butte、canyon、field、synagogue
等六个类,每类包括5000张训练图片、900张测试图片和100张验证图片。
调整训练图片使得最小的长或宽为350,随机裁剪一个256x256的子图像作为模型的输入。

Adam优化算法  学习率2x10-4   

5.2实验结果对比

Shift-Net论文阅读笔记            

5.3 不同的guidance loss参数

Shift-Net论文阅读笔记

5.4Effect of shift operation at different layers

Shift-Net论文阅读笔记

 

相关文章: