论文笔记Globally and Locally Consistent Image Completion

2023-11-10 20:40

本文主要是介绍论文笔记Globally and Locally Consistent Image Completion,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文笔记Globally and Locally Consistent Image Completion

图1 Patch-based方法的示例图
Patch-based方法的不足:(1)Depend on low-level features;(2)Unable to generate novel objects;2)基于Context Encoder的图像补全,该方法基于深度学习生成相似的纹理区域,在一定程度上可以补全缺失的区域,而且效果还不错。但是不能够保持局部一致性。

在这里插入图片描述

图2 Context Encoder 方法的示例图
Context Encoder方法的不足:(1)Can generate novel objects but fixed low resolution images;(2)Masks region must in the center of image;(3)补全的区域不能保持与周围区域的局部一致性。本文方法主要是基于Context Encoder方法进行相关改进。下表为三种方法的简单比较。

在这里插入图片描述

Table 1. Comparison of differentapproaches for completion.
文章内容:本文提出一种新颖的图像补全方法,可以保持图像在局部和全局一致。使用完全卷积神经网络,我们可以通过填充任何形状的缺失区域来完成任意分辨率的图像。为了训练这个图像补全网络,作者使用全局和局部上下文鉴别器进行训练,以区分真实图像和已补全的图像。全局鉴别器查看整个图像,以评估其是否整体一致,而局部鉴别器仅在以补全区域为中心的小区域上看,以确保生成的补丁在局部保持一致性。

在这里插入图片描述

图3 该方法填充的效果图
该文章完全以卷积网络作为基础,遵循GAN的思路,设计为两部分(三个网络),一部分用于生成图像,即生成网络,一部分用于鉴别生成图像是否与原图像一致,即全局鉴别器和局部鉴别器。在整个网络中,作者采用ReLU函数,在最后一层采用Sigmoid函数使得输出在0到1区间内。网络结构图如下所示。

在这里插入图片描述

图4 网络结构图
生成图像部分,作者采用12层卷积网络对原始图片(去除需要进行填充的部分)进行encoding,得到一张原图16分之一大小的网格。然后再对该网格采用4层卷积网络进行decoding,从而得到复原图像,下表为生成网络各层参数分布情况。输入:RGB图像,二进制掩码(需要填充的区域以1填充)输出:RGB图像

在这里插入图片描述

Table 2. Architecture of the image completion network.
鉴别器被分为两个部分,一个全局鉴别器(Global Discriminator)以及一个局部鉴别器(Local Discriminator)。全局鉴别器将完整图像作为输入,识别场景的全局一致性,而局部鉴别器仅在以填充区域为中心的原图像4分之一大小区域上观测,识别局部一致性。通过采用两个不同的鉴别器,使得最终网络不但可以使全局观测一致,并且能够优化其细节,最终产生更好的图片填充效果。全局鉴别网络输入是256X256,RGB三通道图片,局部网络输入是128X128,RGB三通道图片,根据论文当中的设置,全局网络和局部网络都会通过5X5的convolution layer,以及2X2的stride降低分辨率,最终分别得到1024维向量。然后,作者将全局和局部两个鉴别器输出连接成一个2048维向量,通过一个全连接然后用sigmoid函数得到整体图像一致性打分。

在这里插入图片描述

表3 局部鉴别网络结构设置

在这里插入图片描述

表4 全局鉴别网络结构设置

在这里插入图片描述

表5 连接层设置

在这里插入图片描述
在这里插入图片描述

图5 鉴别器的工作示意图
该文章的特点:(1)生成网络模型仅仅降低了两次分辨率,使用大小为原始大小四分之一的卷积,其目的是为了降低最终图像的纹理模糊程度。(2)使用dilated convolutional layer(空洞卷积/扩张卷积),它能够通过相同数量的参数和计算能力感知每个像素周围更大的区域。(Multi-Scale Context Aggregation by Dilated Convolutions)文章中给出了具体的示意,为了能够计算填充图像每一个像素的颜色,该像素需要知道周围图像的内容,采用空洞卷积能够帮助每一个点有效 的“看到”比使用标准卷积更大的输入图像区域,从而填充图中点p2的颜色。
在这里插入图片描述

图5 Importance of spatial support
扩张卷积算子可以用下式来表示:
在这里插入图片描述

其中,η是扩张因子,当η=1,则表示标准卷积操作,文中的η1>1;Dilated convolutions:307×307pixelsstandard convolutional:99×99 pixels

损失函数:生成网络使用weighted Mean Squared Error (MSE)作为损失函数,计算原图与生成图像像素之间的差异,表达式如下所示:

在这里插入图片描述

公式2 MSE loss
其中,⊙ is the pixelwise multiplication,|| · || is the Euclidean norm.鉴别器网络使用GAN损失函数,其目标是最大化生成图像和原始图像的相似概率(见图5中的2048维向量,它代表的是概率),表达式如下所示:

在这里插入图片描述

公式3 GAN loss
最后结合两者损失,形成下式:

在这里插入图片描述

公式4 combining loss
其中α为超参,文中取值0.004.训练步骤:(1)Trained completion network with the MSE loss. (TC= 90, 000 iterations)(2)Fix the completion network and train the discriminators. (TD = 10, 000 iterations)(3) Completion network and content discriminators are trained jointly. (Ttrain = 500, 000 iterations )(4)post-processing,Blending the completed region with the color of the surrounding pixels. (首先使用fast marching method 然后使用泊松分布图像融合)其中第(1)、(2)对于该网络取得成功至关重要。Some tricks:(训练图像可以是任何尺寸)(1)将图像的较短边resize成(256,384)中的一个随机数(等比例resize)。(2)从图像上随机crop一个256*256的图片。(3)在图像上随机挖一个洞,洞的长和宽为(96,128)中的某个随机数(长宽不需一样,且相互独立)。(4)全局discriminator的输入为full 256×256-pixel。(5)局部discriminator的输入128 × 128-pixel patch.实验结果:

在这里插入图片描述

图6 Comparisons with existing works
网络中不同部分对补全图像的影响:

在这里插入图片描述

图7 Comparison of training with differentdiscriminator configurations
后处理的效果图:
在这里插入图片描述

图8 Effect of our simple post-processing
目标移除结果图:

在这里插入图片描述

图9 Examples of object removal by our approach.
人脸补全及场景补全结果图:

在这里插入图片描述

图10 Faces and Facades
存在的不足:(1)不能补全具有大尺寸洞的图,这主要与空洞卷积所能“看到”的区域大小有关,文中最大可看到307×307pixels。(2)不能生成复杂性的结构性纹理,这个可能与作者的网络设计的网络有关。(3)一定程度上受到训练图像库的限制。失败案例图:

在这里插入图片描述

图11 Failure cases

在这里插入图片描述

图12 Failure cases for our approach where our model is unable to complete heavily structured objects such as people.

在这里插入图片描述

图13 Failure cases for our approach where our model is unable to complete heavily structured objects such as people.

作者:Wonshington
链接:https://www.jianshu.com/p/d1aedac9e0ce
来源:简书

这篇关于论文笔记Globally and Locally Consistent Image Completion的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/385119

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi