SPG-Net: Segmentation Prediction and Guidance Network for Image Inpainting
SPG-Net: Segmentation Prediction and Guidance Network for Image Inpainting
pytorch
引言
利用语义分割获取空洞的边缘信息,进而指导修复其一
(挖个坑)deeplab系列
存在的问题:现有的基于生成模型的方法并没有利用分割信息来约束目标形状,导致边界模糊。
解决方法:提出引入语义分割信息,以消除类间的差异和类内的差异。将修复过程将图像修复过程分为分割预测segmentation prediction (SP-Net)和分割指导segmentation guidance (SG-Net)两步,首先预测待修复区域的分割标签,然后根据分割指导生成修复结果。
语义分割部分:两个公共数据集上进行了广泛的比较:Cityscapes数据集和Helen Face数据集
Cityscapes dataset有2,975张街景图像用于训练,我们使用验证集进行测试,其中包含500张图像。
Helen Face数据集有2000张脸图像训练和100张图像测试。并对两个数据集的分割标签进行了精细标注,用于训练。Cityscapes和Helen Face dataset分别注释了35和11个类别。为了更好地捕捉街景的全球结构,我们将35个类别划分为8个类别,分别是道路、建筑、标志、植被、天空、人、车辆和未标记的其他类别。
为了与现有的方法进行比较,我们训练大小为256x256的图像。对于每一张图像,我们在随机位置应用一个带有单个孔的掩模。洞的大小在图像大小的1/8到1/2之间。为了对整个网络进行训练,我们首先使用了目前最先进的语义分割方法Deeplabv3+,并确定了其模型参数。然后分别对SP-Net和SG-Net进行200个epoch的训练,最后100个epoch的学习速率呈线性衰减。
网络结构
整个框架包含三个步骤,首先,我们使用Deeplabv3+从I_0估计S_0。然后利用分割预测网络(SP-Net)对I_0和S_0进行分割预测得到S_R。最后将S_R传递到分割引导网络(SG-Net)作为输入,对最终结果进行预测。

3.1 Segmentation Prediction Network (SP-Net)
网络架构:
SP-Net的目标是在缺失的洞中预测分割标签映射。SP-Net的生成器基于FCN,但用残块代替了膨胀卷积层。用渐进式扩张因子来增加接受野,提供更广阔的输入视野,以捕获图像的全局结构。具体来说,我们的生成器由4个下采样卷积层、9个残块和4个上采样卷积层组成。内核大小在第一层和最后一层为7,在其他层为3。9个残块前3个残块的膨胀系数为2,后3个残块的膨胀系数为4,后3个残块的膨胀系数为8。下采样层和上采样层的输出通道分别为64、128、256、512和512、256、128、64,残差块的输出通道均为512。除最后一层产生最终结果外,在每个卷积层之间使用ReLU和批处理归一层。最后一层使用softmax函数生成一个概率图,预测每个像素的分割标签的概率。
损失函数:
使用多尺度判别器做高分辨率判别器,即3个相同网络架构但处理图像尺寸不同的判别器。每个鉴别器都是一个完全卷积的PatchGAN三个尺寸分别是原尺寸,二分之一,四分之一。

感知损失

联合损失

3.2 Segmentation Guidance Network (SG-Net)
网络架构:它以一个256x256x3的不完整图像i_0和SP-Net预测的分割标签映射S作为输入。SG-Net与SP-Net共享类似的架构,有4个向下采样卷积层、9个剩余块和4个向上采样层。与SP-Net不同的是,最后一个卷积层使用tanh函数生成像素值范围为[−1,1]的图像,然后将像素值重新调至正常图像值。
损失函数:增加了一个感知损失,基于AlexNet的感知网络来测量两个图像补丁之间的感知差异。

联合损失:

实验结果
定性比较:

定量比较

SPG-Net: Segmentation Prediction and Guidance Network for Image Inpainting的更多相关文章
- [CVPR2017]Online Video Object Segmentation via Convolutional Trident Network
基于三端卷积网络的在线视频目标分割 针对半监督视频目标分割任务,作者采取了和MaskTrace类似的思路,以optical flow为主. 本文亮点在于: 1. 使用共享backbone,三输出的自编 ...
- 论文阅读:EGNet: Edge Guidance Network for Salient Object Detection
论文地址:http://openaccess.thecvf.com/content_ICCV_2019/papers/Zhao_EGNet_Edge_Guidance_Network_for_Sali ...
- Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network(GCN全局卷积网络)
作者认为语义分割的两个挑战是分类和定位,而这两个挑战又是比较对立的.对于分类问题,模型需要有变形和旋转不变形,而对于定位问题,模型有需要对变形敏感. 提出的GCN遵循两个主要原则: 1.对定位问题,模 ...
- Foreground-aware Image Inpainting
引言 语义分割得到边缘信息指导修复其三 存在问题:现在的图像修复方法主要的通过周围像素来修复,当修复区域与前景区域(显著物体)有交叠时,由于修复区域缺失前景与背景的时间内容导致修复结果不理想. 提出方 ...
- Semantic Segmentation on Remotely Sensed Images Using an Enhanced Global Convolutional Network with Channel Attention and Domain Specific Transfer Learning
创新点: 1.在GCN(global convolutional network)基础上,把他的backbone替换成更多层的,使其适应中分辨率影像,resnet50,101,152 2.利用 cha ...
- Decoders Matter for Semantic Segmentation:Data-Dependent Decoding Enables Flexible Feature Aggregation
Decoders Matter for Semantic Segmentation:Data-Dependent Decoding Enables Flexible Feature Aggregati ...
- dense prediction
Dense prediction fully convolutional network for sementic segmentation 先用feature extractor 提特征,然后再使 ...
- [Papers] Semantic Segmentation Papers(1)
目录 FCN Abstract Introduction Related Work FCN Adapting classifiers for dense prediction Shift-and-st ...
- Review of Semantic Segmentation with Deep Learning
In this post, I review the literature on semantic segmentation. Most research on semantic segmentati ...
随机推荐
- Boxing
测试自动装箱和自动拆箱,意思是运行的时候编译器帮我们加了两个代码: public class AutoBoxingandUnBoxing { public static void main(Strin ...
- 常用数据结构-namedtuple(命名元祖)
namedtuple从根本上来说是一个带有数据名称的元祖.它包含元祖的所有特性,但也有一些元祖没有的额外特性.使用namedtuple可以很容易创建轻量级对象类型. namedtuple将是你的代码更 ...
- Flutter 1.22版本新增的Button
Flutter 1.22版本新增了3个按钮,TextButton.OutlinedButton.ElevatedButton,虽然以前的Button没有被废弃,但还是建议使用新的Button. 为什么 ...
- Flask 中的MTV架构之Views
Flask 中的MTV架构之Views 1.MVC与MTV 1.1 MVC M:model,模型,数据模型 V:view,视图,负责数据展示 C:controller,控制器,负责业务逻辑 ...
- 云服务器部署Python项目(nginx+uwsgi+mysql+项目)
python项目部署到云服务器 关注公众号"轻松学编程"了解更多. 一.硬件准备 云服务器,系统ubuntu_16_04 . 注意:要在安全组中开放Http的80端口. 二.软件准 ...
- 浅谈MVP
MVP是什么 MVP:Model-View-PresenterModel:表示数据提供者:View:表示数据展示:Presenter:是M与V沟通的桥梁. MVP工作方式 UI:告知Presenter ...
- RabbitMq 基本命令
rabbitmqadmin 命令汇总: 命令 解释 rabbitmqadmin list users 查看所有用户 User rabbitmqadmin list users name 查看所有用户名 ...
- 手写Koa.js源码
用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器 ...
- (5)ASP.NET Core3.1 Ocelot服务质量
1.服务质量(Quality of Service) 对于微服务来说,熔断就是我们常说的"保险丝",意思是当服务出现某些状况时候,通过切断服务防止应用程序不断地执行可能会失败的操作 ...
- Java 最佳命名规则记录
类名:使用双驼峰规则.如 TestService 包名:命名全小写,且使用小写 如使用 web.csvdata.util 而不是 web.csvData.util 或 web.csvdata.util ...