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接口. 实现了这 ...
随机推荐
- ORB-SLAM3 Initializer.cpp函数解读
作者: Liam 点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 构造函数 Initializer::Initializer(const Frame ...
- P2868 [USACO07DEC]Sightseeing Cows G
题意描述 Sightseeing Cows G 给定一张有向图,图中每个点都有点权 \(a_i\),每条边都有边权 \(e_i\). 求图中一个环,使 "环上个点权之和" 除以 & ...
- vue踩坑
1. 双向绑定的对象 改变或新增其属性 DOM不刷新问题 var obj = { "attr1": "1", "attr2": [2] }; ...
- leetcode 98:n-queens-ii
题目描述 继续思考"n-queens"问题 这次我们不是输出皇后的排列情况,而是输出n皇后问题一共有多少种解法 Follow up for N-Queens problem. No ...
- 【转载】Apriori
通过这个博客学习:数据挖掘十大算法(四):Apriori(关联分析算法) 代码也是摘自上面博客,对照代码理解理论部分可能更加有助于对该算法的理解 from numpy import * # 构造数据 ...
- 对“线上问题 不能gdb调试怎么处理??“”的思考
Q1:线上问题的process 都为release版本!不带调试信息怎么查?(目前有时需要查线上问题, 不得不解决这个问题) 之前查问题都是编译环境编译一个带有debug信息的版本进行替换来调试,但是 ...
- java实现 阿拉伯数字转换为汉字数字(转载)
public class VedioExtractSpeech { public static void main(String[] args) { System.out.println(" ...
- 磁盘构造/msdos分区(fdisk)格式化(mkfs)和挂载
分区不是必要的,分区是与系统盘分开,防止数据丢失. 磁盘使用流程:查看磁盘(fdisk -l)---分区---格式化(创建文件系统)----挂载(自动挂载) 分区表类型:msdos(一般是系统分区) ...
- linux解释器、内建和外建命令
查看系统是哪种命令解释器: [root@localhost ~]# echo $SHELL /bin/bash 内建命令:是shell程序的一部分,包含的是一些比较简单的linux系统命令,这些命令由 ...
- GreenDao增删改查
3.GreenDao增删改查 (1)插入 常用API //这是最简单的插入语句,新增一行数据,返回值为行号 public long insert(T entity) //传递一个数组,新增多行数据 p ...