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 ...
随机推荐
- ERP收付款的操作与设计--开源软件诞生22
赤龙ERP收款付款讲解--第22篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...
- 【jmeter】实现接口关联的两种方式:正则表达式提取器和json提取器
关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用. 示例: 1.用户密码进行登录,登录后生成authentication 2.需要将登录接口响应结果中auth ...
- Flink的DataSource三部曲之三:自定义
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Centos7安 装python3+Selenium+chrome+chromedriver
Centos7安装python3+Selenium+chrome+chromedriver详细python2和python3共存,Selenium错误的处理更新Centos源 wget -O /etc ...
- Mybatis的缓存——一级缓存和源码分析
目录 什么是缓存? 一级缓存 测试一. 测试二. 总结: 一级缓存源码分析: 1. 一级缓存到底是什么? 得出结论: 2. 一级缓存什么时候被创建? 3. 一级缓存的执行流程 结论: 一级缓存源码分析 ...
- 334. Increasing Triplet Subsequence(也可以使用dp动态规划)
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...
- 位图bitmap应用
所有比特的编号方法是,从低字节的低位比特位开始,第一个bit为0,最后一个bit为 n-1. 比如说,现在有个数组是这样子的,int a[4],那么a[0]的比特位为0--31a[1]的比特位为32- ...
- prometheus函数介绍
一 函数介绍 gauge类型的数据 属于随机变化数值,并不像counter那样 是 持续增长 1 increase() increase 函数 在promethes中,是⽤来 针对Counter 这 ...
- tensorflow的tfrecord操作代码与数据协议规范
tensorflow的数据集可以说是非常重要的部分,我认为人工智能就是数据加算法,数据没处理好哪来的算法? 对此tensorflow有一个专门管理数据集的方式tfrecord·在训练数据时提取图片与标 ...
- 如何测量Ceph OSD内存占用
前言 这个工具我第一次看到是在填坑群里面看到,是由研发-北京-蓝星同学分享的,看到比较有趣,就写一篇相关的记录下用法 火焰图里面也可以定位内存方面的问题,那个是通过一段时间的统计,以一个汇总的方式来查 ...