Foreground-aware Image Inpainting
引言
语义分割得到边缘信息指导修复其三
存在问题:现在的图像修复方法主要的通过周围像素来修复,当修复区域与前景区域(显著物体)有交叠时,由于修复区域缺失前景与背景的时间内容导致修复结果不理想。
提出方法:a foreground-aware image inpainting system,可明确区分结构推断和内容修复。模型首先预测前景轮廓,然后根据预测发前景轮廓进行区域修复。
论文来源:CVPR 2019
相关论文:
《Image inpainting for irregular holes using partial convolutions.》部分卷积《Free-form image inpainting with gated convolution》门控卷积
《Spg-net: Segmentation prediction and guidance network for image inpainting.》通过语义分割获取前景蒙版,来修复图像
论文贡献:
1.提出区分结构推断和内容修复的模型,使用显式轮廓指导explicit contour guidance修复图像
2.为了推断图像结构(图像边界),提出了边界修复模型来参数精确的图像边界
3.为了高效率完成模型的训练,我们采用curriculum的训练方法来训练结构推断和内容修复的模型
数据集的制作:
基于前景感知的图像修复框架要求我们训练一个轮廓补全模块并自动推断轮廓,因此我们需要一个带有标记轮廓的训练数据集。
salient object segmentation datasets(显著物体目标检测):显著目标检测来源于视觉显著性,即找到一张图像中人眼最关注的目标区域,是一个二分类的问题。背景全部变为黑色,而目标变为白色,但是一般只能检测一个显著性目标,不会涉及到分类的问题。
从各种公共数据集(显著性分割数据集:包括MSRA-10K[10]、人工注释的Flickr自然图像数据集等)中收集了超过15762幅包含一个或几个突出对象的自然图像。每个图像在这个突出数据集中被注释与一个精确的分割掩码。数据集的内容非常多样化,包含了各种各样的对象,包括动物、植物、人、面孔、建筑物、街道等等。每个图像中物体的相对大小有很大的差异。我们将所有样本分为12,609张训练图像和3,153张测试图像。
利用mask的数据集:Places2, Paris ,CelebFace
网络结构:

1 Contour Detection

通过DeepCut生成一个具有精确边界的物体蒙版;
由于图像上缺失区域的存在,导致生成的语义分割模板带有噪声,使用二值化孔洞蒙版的方式移除蒙版中被误分类为物体的像素点,再通过connected component analysis连接成分分析进一步移除小集群来获得前景蒙版;
再通过Sobel边缘检测算子获得物体的不完整边界
2Contour Completion Module

目的:是补全缺失区域内的输入图像的缺失轮廓。预测出的edge map是二值图像。1表示前景对象的边界,0表示图像中的其他像素。
架构:
输入:待修复的图像、生成的非完整边界、孔的蒙版
输出:完整的物体边界
主体是GAN网络,经过粗细两层修复网络。
粗网络:encoder-decoder结构,得到孔洞粗略的边界预测,不能作为有效指导。
细网络:在粗网络的基础上机上 contextual attention layer。
类似于下图

PatchGAN
损失函数:


细网络上增加hinge loss,采用ReLu函数

3 Image Completion Module

损失函数



实验结果

Foreground-aware Image Inpainting的更多相关文章
- spring源码:Aware接口(li)
一.spring容器中的aware接口介绍 Spring中提供了各种Aware接口,比较常见的如BeanFactoryAware,BeanNameAware,ApplicationContextAwa ...
- 源码阅读笔记 - 2 std::vector (2) 关于Allocator Aware Container特性
所有的STL容器,都保存一个或默认,或由用户提供的allocator的实例,用来提供对象内存分配和构造的方法(除了std::array),这样的容器,被称作Allocator Aware Contai ...
- ios app响应background,foreground 事件实现
1 通过AppDelegate 实现 App进入后台事件方法 - (void)applicationDidEnterBackground:(UIApplication *)application AP ...
- Enlisting multiple 1-phase aware participants in the same transaction
In some cases it may be necessary to enlist participants that aren't two-phase commit aware into a t ...
- Windows Phone Foreground Toast
Basically ToastPrompt is an UI component that derives from the Coding4Fun toolkit's abstract PopUp&l ...
- GMF:如何让网格显示在background,而不是foreground
前言 很久没写文章了,准备写一系列关于Eclipse RCP /Plugin的文章. 这些文章都是trouble shooting性质的,不准备写的很细,当你碰到这样的问题,google到时,能帮你把 ...
- 收到远程通知,怎么区分是点击通知栏提醒进去的还是在foreground收到的通知?
我现在是要区分点击通知栏的通知进入应用还是点击应用图标进入的,1,开始程序都是在后台.2,接受通知都是在foreground状态.applicationdidFinishLaunchWithOptio ...
- Spring中Aware相关接口原理
Spring中提供一些Aware相关接口,像是BeanFactoryAware. ApplicationContextAware.ResourceLoaderAware.ServletContextA ...
- Bean的前身今世&处理器&Aware
出生: <bean>......</bean> 幼年:BeanDefinition bean的接口定义 小学:GenericBeanDefinition 基础的bean映射 ...
- spring中的aware接口
1.实现了相应的aware接口,这个类就获取了相应的资源. 2.spring中有很多aware接口,包括applicationContextAware接口,和BeanNameAware接口. 实现了这 ...
随机推荐
- CodeForces 1344D Résumé Review
题意 给定一个长度为 \(n\) 的序列 \(a\) 和一个整数 \(k\),构造一个序列 \(b\) 使得满足以下条件: \(0\leq b_i\leq a_i\) \(\sum\limits_{i ...
- 定位流之z-index属性
1.固定定位是脱离标准流的,不会占用标准流的空间 2.和绝对定位有点像,也不区分行内块级元素 3.类似于前面学的背景关联方式(让某个背景图片不随滚动而滚动)让某个元素不随着滚动条的滚动而滚动 ie6不 ...
- Docker(8)- docker search 命令详解
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 从 Docker Hub ...
- FullCalendar v5.3.2版本制作一个航班日历Demo
今天一个新需求是制作一个航班日历来订舱.然后我就各种找,最后找到FullCalendar,过程非常煎熬,网上例子大部分没用,大部分没有完整版.官网教程又不是很详细.搞了几天才彻底搞好这个航班日历,有需 ...
- php 断点续传以及100% 后台zip解压
前台部分 <div class="col-md-12"> <div class="form-group"> <label clas ...
- HTML5 实现的一个俄罗斯方块实例代码
/*实现的功能:方块旋转(W键).自动下落.移动(ASD).消行.快速下落(空格键).下落阴影.游戏结束.*/ <!DOCTYPE html> <html> < ...
- sqlserver with(NOLOCK) 或 with(READPAST)
https://blog.csdn.net/shuicaohui5/article/details/6758868
- php xml转数组
<?php libxml_disable_entity_loader(true); $notify_values = json_decode(json_encode(simplexml_load ...
- 程序员注意【自verycd.com的JavaAmg77 】
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的1 ...
- nginx安装 linux
1.安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.创建一个文件夹 cd /usr/local m ...