Free-Form Image Inpainting with Gated Convolution

article/2025/10/11 3:50:21

在这里插入图片描述

CVPR 2020的一篇文章

解读一下题目:

- free form   自由形式
- image inpainting 图像补全
- gated convolution 门控卷积

该文章提出了一个,缺失区域为自由形式的图像补全情况的解决方法,针对该方法提出了一个门控卷积的方法。

模型结构图如下:

在这里插入图片描述

不通篇翻译了,直接进行论文有价值部分分享

问题:

  • 以前的image inpainting任务的mask都是一个固定大小的矩形。
  • 传统的补全方法,卷积滤波器在对图像进行计算的过程中存在不合理性:
    – 有时,卷积滤波器处理的像素全部为mask部分,有时,处理的全部为gt像素,有时,处理的是gt像素和msk像素的边界。
    – 卷积滤波器对待gt像素和mask像素是同等对待的,包括边界情况也同等方式计算,这样不合理。

针对以上问题,作者提出一个gated convolution方法

在这里插入图片描述
公式中,前两行是两个卷积运算。
其中 I I I 是原始图像。 W g W_g Wg是gated卷积核参数, W f W_f Wf是feature卷积核参数。原图像分别经过两个不同的滤波器得到门控信息 G a t i n g Gating Gating和特征 F e a t u r e Feature Feature,最终的输出 O O O是两部分分别经过激活函数后做element-wise乘法得到。我认为该方法看似有其合理性,理想是Gating收集门控信息,哪些像素值得被信任,哪些像素要信任的少一些,然后对提取出来的特征进行一部分削弱。

除了该方法外,文章中还提出下面一些可圈可点的创新

改进了对抗网络 Spectral-Normalized Markovian Discriminator (SN-PatchGAN)

在这里插入图片描述
判别器网络如上图。在图像补全的以往判别器中,一般分成两个分支:

  • 全局判别
    观察补全后的整张图像是否合理
  • 局部判别
    观察补全区域是否合理

但在该任务中,缺失部分mask为free form 任意形式,所以无法判别局部的情况了。
在该方法中,作者提出了如上图的判别网络,将原图像压缩后,生成一个特征图,特征图的每个像素对应原始图像的一个小区域。该判别器在特征图的每个像素进行判别,也就是判别对应原图像的每个区域的合理性。

任意形式的mask生成 Free-Form Mask Generation

用了一些随机的划线条,来模拟人画出来的mask。为了让线条连接平滑一些,线条边缘画了一些圆

用户引导图像补全 Extension to User-Guided Image Inpainting

除了mask之外,人在画一些形状,输入给网络引导图像补全。

loss function

该方法loss function为reconstruction loss 和 对抗损失 两部分
重建损失 可以理解为 像素对像素的 差距损失。

贴一些实验结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/Emoms44W.shtml

相关文章

Deep Image Prior

Deep Image Prior 摘要 深度卷积网络已经成为图像生成和重建的常用工具。人们猜想,他们优秀的表现是归功于他们能够从大量图像样本中学习到真实图像先验的能力。而相反,本文中作者展示生成网络在经过任何学习之前就能够捕获大量的低级图像统计信息&…

Automatic Trimap Generation for Image Matting

Automatic Trimap Generation for Image Matting翻译 Abstract image matting 是计算摄影中的一个重要问题。虽然已经研究了二十多年,但是开发一种不需要人工干预的自动matting算法仍然是一个挑战。大多数最先进的matting算法都需要人工干预,以trimap或涂…

Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition程序运行记录

论文题目: 《Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition》 作者列表: 杨洋(天津大学),王超岳(悉尼大学),刘日升(大连理工大学),张…

Learning Continuous Image Representation with Local Implicit Image Function

1. 简介 文章简称为LIIF,即Local Implicit Image Function,受到了3D视觉里场景或物体的隐式表示思想的启发,主要的想法便是把正常的图像当做是连续的,用神经网络表示这个图像之后,对于图像上的每一个像素点其实就当做…

【InternImage】Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

基于Deformable Conv的大规模基础模型 特点: 采用Deformable Conv V3 【v2 19论文】CNN模型 背景 大规模的ViT模型借助模型能力在超大规模数据集上取得了非常高的性能,然而大规模CNN模型研究才刚刚开始。 近期CNN研究倾向于使用大的卷积kernel&#…

ImageMol

ai圈也是卷的狠啊~~ 又发现一个全球首个分子图像自监督学习框架来也 分子是维持物质化学稳定性的最小单位。对分子的研究,是药学、材料学、生物学、化学等众多科学领域的基础性问题。 分子的表征学习(Molecular Representation Learning)是…

Morphological image processing

目录 基本思想: 一.集合论基础 1.集合的概念 2.集合间的关系和运算 二.二值形态学的基本运算 1.腐蚀 (1)概念 (2)结构元素形状对腐蚀运算结果的影响 (3)腐蚀运算在物体识别中的应用 2…

实用的图片批量压缩优化工具

ImageOptim ImageOptim 支持 PNG/JPEG/GIF 动画,本质是各种影像优化工具的图形前端:AdvPNG、OptiPNG、Pngcrush、JpegOptim、jpegtran、Gifsicle 和 PNGOUT素材。 ImageOptim软件非常小! 2.6M而已ImageOptim操作非常非常非常快捷&#xff01…

【UNI APP】globalData全局变量

uni-app 在app.vue文件export default里面定义globalData,在当前文件(app.vue)里面获取globalData需要用this.$options.globalData获取,其他文件则用getApp().globalData获取。 this.$options是用来获取自…

uniapp 全局数据(globalData)的设置,获取,更改

因为uniapp基本上都是将页面,或者页面中相同的部分,进行组件化,所以会存在父,子,(子,父)之间的传值的情况,但在某些情况下,可以选择将内容设置为一个全局的变…

微信小程序定义和调用全局变量globalData

先看看文件结构: 1.现在app.js里面定义globalData对应的全局变量 2.然后在其他js文件进行调用。例如在photo.js里面 要注意的是需要在文件开始的时候初始化 app这个对象 //获取应用实例 const app getApp()

微信小程序:globalData和Storage数据存储的错误示例

前言 在小程序登录是,将返回的用户数据,存储在globalData中和storage中。 // 存储的数据是一个对象 wx.setStorageSync(userAuthData, user.data.data); this.globalData.userAuthData user.data.data; 之前,数据更新了,为了避…

uni-app之全局变量globalData的使用

一般访问请求的时候,baseurl我们都会用变量来代替,所以我们一半会把大量这种常用的,但是又不会经常变动的数据变成一个常量--globalData export default {onLaunch: function() {},onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)},glo…

微信小程序中的共享数据 : globalData

和vue中的vuex作用相同,都是用于设置给所有页面都可以使用的数据的。 globalData在app.js中,它是一个对象,在里面设置要使用到的共享数据。 我们在其他页面要使用globalData中的数据时,首先如下: let app getApp() …

在uniapp中监听globalData中的值变化

小程序里怎么去监听app.js里的globalData数据变化呢 1、先再app.vue 中定义一个全局数据对象globalData,再对象里定义好相应的属性与属性值 globalData:{count:0 },methods:{watch:function(method,istr){var objthis.globalDataconsole.log(obj)Objec…

微信小程序中全局共享数据globalData的使用

1.全局共享数据 全局共享数据的两种方式 通过Vue原型共享数据通过globalData共享数据vuex本地存储 1)在Vue实例原型属性上添加属性,其他任何页面预想使用,直接使用this获取到, 比如: 主要代码:(在入口文件mian.js中) import request from ./utils/request Vue.prototype.re…

Vue全局共享数据之globalData,vuex,本地存储使用方法

目录 一、globalData 二、vuex存储方式 1.vue2用法,2.vue3用法 三、本地存储 uniapp的数据缓存 写在最前面,把vue能用到的存储方法都整理拿出来,方便阅读以及工作用。🍉🍉🍉可以收藏起来即拿即用 Vue全局共…

微信小程序 | 12.生命周期、globalData全局数据

文章目录 1.小程序的生命周期2.全局数据globalData3.globalData的应用3.1.搭配app.js的onLaunch()存储openid3.2.轮询globalData3.2.1.问题描述 3.2.2.解决方式:轮询globalData 1.小程序的生命周期 小程序生命周期(onLaunch、onShow、onHide、onReady、onLoad、onU…

uniapp 全局静态数据(globalData)的修改和使用

uniapp 全局静态数据(globalData)的修改和使用 全局静态数据: 在App.vue中的调用: this.globalData.systemTitle在App.vue中的修改: this.globalData.systemTitle res.title在pages中调用: let title…

微信小程序全局变量(globalData)和缓存(StorageSync)的区别和用法

globalData和storage的区别 一、app.globalData 是全局变量,下次进入的时候,就要重新获取,一般用于: 1、保存一些可能涉及安全类的数据,例如资源类,每次需要很准确的,就建议用全局变量。 2、…