论文:Region Normalization for Image Inpainting, AAAI 2020

代码:https://github.com/geekyutao/RN

图像修复的目的是重建输入图像的损坏区域。它在图像编辑中有许多应用,例如面部编辑和图像遮挡。图像修复中的关键问题是在损坏的区域中生成视觉上合理的内容。

现有的图像修复方法可以分为两类:传统方法和基于学习的方法。传统方法通过基于扩散的方式来填充损坏的区域,这些方法会将邻近的信息传播到损坏区域。基于学习的方法通常训练神经网络以在损坏区域中合成内容,近年来已大大超越了传统方法。但是,当前的方法大多通过改进网络结构来提升性能,忽略了图像修复的本质问题:损坏的区域大多和未损坏的区域通常是独立的。

将损坏的图像输入到神经网络中可能会产生问题,例如无效像素的卷积以及归一化的均值和方差。但是,当前方法无法解决网络中的均值和方差漂移问题。当前方法大多采用 feature normalization(FN) 进行训练,这些FN方法大多在空间维度上进行归一化,忽略了损坏区域对归一化的影响。

在这篇论文中,作者提出Region normalization(RN)来解决上述问题。根据输入的mask将像素划分为不同的区域,并计算每个区域的均值和方差来实现归一化。

RN算法的思想比较容易懂,如上图所示:绿色部分代表损坏的数据、红色部分代表未损坏的数据,两部分数据分别归一化。

在实现细节上,作者提出两种RN,一个是basic RN,另一个是learnable RN。basic RN如下图所示。对未损坏区域、损坏区域分别归一化,然后会有两组affine transformation参数。在网络的前面几层中,输入图像具有较大的损坏区域,会导致严重的均值和方差漂移。因此,使用RN-B通过分区域归一化来解决这一问题。

经过多个卷积层以后,未损坏区域和损坏区域会融合在一起,这时仍然使用region mask就不可靠了。这个时候,使用RN-L,利用输入特征的空间关系来检测损坏区域,为RN生成region mask。RN-L如下图所示,首先使用 maxpool 和 avgpool 得到两个feature map并拼接在一起。然后使用sigmoid函数得到一个spatial response map。最后,通过阈值得到 region mask。在论文里,\(t=0.8\)。

作者使用了 EdgeConnect 方法的架构。(EdgeConnect包括一个 edge generator 和一个 image generator),在本文中,作者使用了 image generator 做为基础网络。同时,作者把 instance normalization 替换为 RN, RN-B, RN-L. 整体架构如下图所示。

值得注意的是,作者所提出的两种RN是即插即用模块,可以方便地应用于其他图像修复网络。

Region Normalization for Image Inpainting, AAAI 2020的更多相关文章

  1. 京东云与AI 10 篇论文被AAAI 2020 收录,京东科技实力亮相世界舞台

    美国时间2月7-12日,AAAI 2020大会在纽约正式拉开序幕,AAAI作为全球人工智能领域的顶级学术会议,每年评审并收录来自全球最顶尖的学术论文,这些学术研究引领着技术的趋势和未来.京东云与AI在 ...

  2. AAAI 2020论文分享:通过识别和翻译交互打造更优的语音翻译模型

    2月初,AAAI 2020在美国纽约拉开了帷幕.本届大会百度共有28篇论文被收录.本文将对其中的机器翻译领域入选论文<Synchronous Speech Recognition and Spe ...

  3. Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020)

    Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020) 1. Motivation 可见 ...

  4. Spiking-YOLO : 前沿性研究,脉冲神经网络在目标检测的首次尝试 | AAAI 2020

    论文提出Spiking-YOLO,是脉冲神经网络在目标检测领域的首次成功尝试,实现了与卷积神经网络相当的性能,而能源消耗极低.论文内容新颖,比较前沿,推荐给大家阅读   来源:晓飞的算法工程笔记 公众 ...

  5. AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

    论文提出了类似于dropout作用的diversification block,通过抑制特征图的高响应区域来反向提高模型的特征提取能力,在损失函数方面,提出专注于top-k类别的gradient-bo ...

  6. AAAI 2020 | DIoU和CIoU:IoU在目标检测中的正确打开方式

    论文提出了IoU-based的DIoU loss和CIoU loss,以及建议使用DIoU-NMS替换经典的NMS方法,充分地利用IoU的特性进行优化.并且方法能够简单地迁移到现有的算法中带来性能的提 ...

  7. 2020年AI、CV、NLP顶会最全时间表

    2020年AI.CV.NLP顶会最全时间表 2019-09-01 14:04:19 weixin_38753768 阅读数 40   2020 AI.CV.NLP主流会议时间表,包含会议举办的时间.地 ...

  8. 论文翻译:2021_MetricGAN+: An Improved Version of MetricGAN for Speech Enhancement

    论文地址:MetricGAN+:用于语音增强的 MetricGAN 的改进版本 论文代码:https://github.com/JasonSWFu/MetricGAN 引用格式:Fu S W, Yu ...

  9. Consistency Regularization for GANs

    目录 概 主要内容 Zhang H., Zhang Z., Odena A. and Lee H. CONSISTENCY REGULARIZATION FOR GENERATIVE ADVERSAR ...

随机推荐

  1. Redis五种数据类型应用场景

    目录 1.1 回顾 2.1 应用场景 2.1.1 String 2.1.2 Hash 2.1.3 List 2.1.4 Zet 2.1.5 zset 3.1 小结 1.1 回顾 Redis的五种数据类 ...

  2. Navicat15安装激活版教程

    navicat15安装 一键式安装,安装包如下 链接:https://pan.baidu.com/s/1VTJmJ7ulUySWoWBu-fugiw 提取码:fz5u 先安装软件包点击安装,一直下一步 ...

  3. 117.填充每个节点的下一个右侧节点指针II

    # Definition for a Node.class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'No ...

  4. 服务消费者(Feign-上)

    上一篇文章,讲述了Ribbon去做负载请求的服务消费者,本章讲述声明性REST客户端:Feign的简单使用方式 - Feign简介 Feign是一个声明式的Web服务客户端.这使得Web服务客户端的写 ...

  5. python数据结构-最全的六种排序

    1.冒泡排序: 比较相邻的元素,如果第一个比第二个大,那就交换位置 让大的元素跟下一个相邻的元素作比较,如果大于交换位置 对所有元素重复以上步骤(除了最后一个),直到没有任何一个需要作对比 2.选择排 ...

  6. POJ 3977 题解

    题目 Given a list of N integers with absolute values no larger than \(10^{15}\), find a non empty subs ...

  7. NOIP 2016 洛谷 P2827 蚯蚓 题解

    题目传送门 展开 题目描述 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手 ...

  8. os.environ的详解

    我们想要用Python获得一些有关系统的各种信息的时候就不得不想到os的environ,那这里面都具体包含了那些内容呢? 简介 对于官方的解释,environ是一个字符串所对应环境的映像对象.这是什么 ...

  9. Docker数据卷的介绍和使用

    最近在学习docker,这篇主要讲了数据卷的作用以及使用,我用的是mac系统去操作的 1.数据卷的简介 2.数据卷的配置 (1).查看你的镜像docker images (2)运行的命令 ~$ doc ...

  10. MVC引用asp.net报表(测试小例子)

    public class Default1Controller : Controller { // // GET: /Default1/ public ActionResult Index() { r ...