Generating Diverse Structure for Image Inpainting With Hierarchical VQ-VAE

Jialun Peng1 Dong Liu1* Songcen Xu2 Houqiang Li1 1 University of Science and Technology of China 2 Noah's Ark Lab, Huawei Technologies Co., Ltd.pjl@mail.ustc.edu.cn, {dongeliu, lihq}@ustc.edu.cn, xusongcen@huawei.com

原文提供代码链接:

GitHub - USTC-JialunPeng/Diverse-Structure-Inpainting: CVPR 2021: "Generating Diverse Structure for Image Inpainting With Hierarchical VQ-VAE"

摘要:

给定一个没有附加约束的不完整图像,只要图像看起来合理,图像修复就原生允许多个解决方案。最近,已经提出了多种解决方案修复方法,并展示了生成不同结果的潜力。然而,这些方法很难确保每个解决方案的质量,例如它们产生扭曲的结构和/或模糊的纹理。我们提出了一个用于不同修复的两阶段模型,其中第一阶段生成多个具有不同结构的粗结果,第二阶段通过增加纹理分别细化每个粗结果。所提出的模型受到分层向量量化变分自动编码器 (VQ-VAE) 的启发,其层次结构解开结构和纹理信息。此外,VQVAE 中的矢量量化能够对结构信息的离散分布进行自回归建模。从分布中采样可以很容易地生成多样化和高质量的结构,构成了我们模型的第一阶段。在第二阶段,我们在纹理生成网络内部提出了一个结构注意模块,该模块利用结构信息来捕获远距离相关性。我们进一步重用VQ-VAE来计算两个特征损失,分别有助于提高结构的一致性和纹理真实感。在CelebA-HQ、Places2和ImageNet数据集上的实验结果表明,我们的方法不仅增强了修复解决方案的多样性,而且提高了生成的多幅图像的视觉质量。

模型结构图:

第一阶段——生成粗结果:

我们首先提出了一种多样结构生成器Gs,它使用自回归网络来制定离散结构特征上的条件分布。从分布中取样可以产生不同的结构特征。

损失函数为:

第二阶段——生成精细结果,有两部分组成:

第一部分主要由纹理生成器+粗结果/gt结果 ,得到生成整张图。

另外提出了一个结构注意力模块,它直接计算结构特征的注意力得分。直观地说,具有相似结构的区域应该具有相似的纹理。计算结构特征上的注意力得分可以对结构信息的精确长程相关性进行建模,从而提高合成纹理和生成结构之间的一致性。

此处的判别器为:SN PatchGAN中的判别器

可以计算由判别器以及L1损失。

第二部分由在原始数据集上提前预训练好的分层VQ-VAE的编码器部分构成:

预训练Hierarchical VQ-VAE

这个模型在编码器部分会生成图像的结构特征,纹理特征。

然后拿训练好的Hierarchical VQ-VAE的编码器部分,固定编码器参数??,将第一部分中生成的comp图像作为输入,得到了生成图像comp对于这个编码器的结构特征以及纹理特征。

然后与gt图像的结构特征纹理特征得到另外的损失函数。用于指导模型训练。

结构损失函数为:

总损失函数为:

模型表现(部分):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/763168.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(必看图文)Hadoop集群安装及MapReduce应用(手把手详解版)

前言 随着大数据时代的到来,处理和分析海量数据已成为企业和科研机构不可或缺的能力。Hadoop,作为开源的分布式计算平台,因其强大的数据处理能力和良好的可扩展性,成为大数据处理领域的佼佼者。本图文教程旨在帮助读者理解Hadoop集…

一次搞懂 Python 字典!Python字典的20种神奇用法

目录 引言 1. 创建字典 2. 访问字典元素 3. 添加或更新元素 4. 删除元素 5. 检查键是否存在 6. 获取字典的长度 7. 遍历字典 8. 合并字典 9. 字典推导式 10. 获取所有键 11. 获取所有值 12. 获取所有键值对 13. 从字典中获取值 14. 设置默认值 15. 清空字典 1…

《RepViT Revisiting Mobile CNN From ViT Perspective》

期刊:CVPR 年份:2024 代码:http://https: //github.com/THU-MIG/RepViT 摘要 最近,与轻量级卷积神经网络(CNN)相比,轻量级视觉Transformer(ViTs)在资源受限的移动设备上表现出了更高的性能和更低的延迟。研究人员已…

鸿蒙星河NEXT学习笔记

1.1 字符串 // 变量的存储和修改(string number boolean) // 1. 变量存储 // 1.1 字符串 string 类型 // 注意点1:字符串需要用引号引起来(单引双引号)字符串 "字符串" // 注意点2:存储的时候&a…

【pytorch12】什么是梯度

说明 导数偏微分梯度 梯度:是一个向量,向量的每一个轴是每一个方向上的偏微分 梯度是有方向也有大小,梯度的方向代表函数在当前点的一个增长的方向,然后这个向量的长度代表了这个点增长的速率 蓝色代表比较小的值,红色…

【吊打面试官系列-MyBatis面试题】模糊查询 like 语句该怎么写?

大家好&#xff0c;我是锋哥。今天分享关于 【模糊查询 like 语句该怎么写?】面试题&#xff0c;希望对大家有帮助&#xff1b; 模糊查询 like 语句该怎么写? 第 1 种&#xff1a;在 Java 代码中添加 sql 通配符。 string wildcardname “%smi%”; list<name> names …

煤都鄂尔多斯的“模”变

去年&#xff0c;《中国日报》曾经报道了这样一个故事。 从小生活在鄂尔多斯市准格尔旗三宝窑村的肖存海&#xff0c;如今对家园有了新的印象。村子附近曾经满是沟壑纵横&#xff0c;满眼荒芜的矿坑。如今&#xff0c;这些大地的伤疤不见了&#xff0c;取而代之的是一排排的苹果…

星火认知大模型Spark3.5 api调用 #AI夏令营 #Datawhale #夏令营

环境安装 pip install --upgrade -q spark_ai_python 官网注册 链接&#xff1a;https://console.xfyun.cn/app/myapp 官方会在报名成功后&#xff0c;立即发放星火大模型 Spark Max的 API 额度助力我们完成赛事&#xff0c; 200w Tokens 任你花&#xff01; 暑期有四场夏令营…

智慧水利3D可视化模拟仿真系统定制让您足不出门也能“掌控全厂”

在当今信息爆炸的时代&#xff0c;3d数据可视化大屏系统以其直观、动态的展示方式&#xff0c;让您轻松把握数据趋势&#xff0c;助力科学决策&#xff0c;正成为企业、政府乃至城市规划等领域的得力助手。 无论是企业管理、城市规划还是交通管理&#xff0c;3D可视化数据大屏系…

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十二章)Wifi透传实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 适用于板卡型号&#xff1a; 紫光同创PG2L50H_MBG324开发平台&#xff08;盘古PGX-Nano&#xff09; 一&#xff1a;…

Docker 一篇到位

目录 01. Docker使用导航 02. Build Share Run 样例 03. 理解容器 04. 安装 Docker 05. Docker 样例&#xff08;常见命令使用&#xff09; 下载镜像 启动容器 修改页面 保存镜像 docker commit docker save docker load 分享社区 docker login docker tag do…

【Leetcode 566】【Easy】重塑矩阵

目录 题目描述 整体思路 具体代码 题目描述&#xff1a; 原题链接 整体思路 首先要确保重塑后的矩阵内元素个数和原矩阵元素个数要相同&#xff0c;如果不同则原样返回原矩阵。 按行遍历顺序遍历原矩阵&#xff0c;设一个临时vector<int>存放新矩阵的每一行的元素…

Go线程实现模型-G

G 概述 一个G就代表一个goroutine(或称Go例程)&#xff0c;也与go函数相对应。作为编程人员&#xff0c;我们只是使用go语句向Go的运行时系统提交一个并发任务&#xff0c;而Go的运行时系统则会按照我们要求并发地执行它 Go编译器会把go语句变成对内部函数newproc的调用&…

张嘴就能生图?一分钟教会你使用魔法!(Stable Diffusion进阶:SDXL-Turbo)

大家好我是极客菌&#xff01;&#xff01;&#xff01;Stable Diffusion&#xff0c;一款基于深度学习的图像生成模型&#xff0c;以其强大的图像生成能力和个性化风格迁移能力&#xff0c;在艺术创作领域掀起了一场革命。而SDXL-Turbo&#xff0c;作为Stable Diffusion的进阶…

ADS基础教程23 - 有限元电磁仿真(FEM)可视化操作

EM介绍 一、引言二、FEM可视化操作流程1.打开可视化界面2.查看介质的网格3.设置网格颜色4.选择网格5.传感器选择6.编辑传感器7.选择频率8.动画 三、总结 一、引言 在ADS基础教程22中介绍了如何在ADS进行有限元电磁仿真&#xff08;FEM&#xff09;&#xff0c;本文将继续介绍F…

MD5算法详解

哈希函数 是一种将任意输入长度转变为固定输出长度的函数。 一些常见哈希函数有&#xff1a;MD5、SHA1、SHA256。 MD5算法 MD5算法是一种消息摘要算法&#xff0c;用于消息认证。 数据存储方式&#xff1a;小段存储。 数据填充 首先对我们明文数据进行处理&#xff0c;使其…

Jasper studio报表工具中,如何判断subDataSource()子报表数据源是否为空

目录 1.1、错误描述 1.2、解决方案 1.1、错误描述 今天在处理一个有关Jasper Studio报表模板制作的线上问题&#xff0c;需要根据某个报表子数据源是否为空&#xff0c;来决定对应的组件是否显示&#xff0c;找了好久的资料都没有实现&#xff0c;最后找到一种解决办法。就是…

专为运维工程师设计!阿里藏经阁出品的Python实战手册被我搞来了

Python 可能是极少数既简单又强大的编程语言中的一种。更重要的是&#xff0c;用它来编程是非常快乐的事。 今天给小伙伴们分享的是阿里“藏经阁”出品的专门给运维工程师设计的Python实战手册 废话不多说&#xff0c;下面把内容展示给大家 01 Python快速回顾 02 Python脚本…

Linux下SUID提权学习 - 从原理到使用

目录 1. 文件权限介绍1.1 suid权限1.2 sgid权限1.3 sticky权限 2. SUID权限3. 设置SUID权限4. SUID提权原理5. SUID提权步骤6. 常用指令的提权方法6.1 nmap6.2 find6.3 vim6.4 bash6.5 less6.6 more6.7 其他命令的提权方法 1. 文件权限介绍 linux的文件有普通权限和特殊权限&a…

【剑指Offer系列】68-二叉树的最近公共祖先(哈希)

思路&#xff1a;使用map存储每个节点的父节点&#xff0c;则两个节点的最近公共祖先&#xff0c;即二者的最近父节点 1、中序遍历二叉树&#xff08;当前节点的下一个节点&#xff09; 2、记录每个节点的父节点 3、列出p的族谱、q的族谱 4、寻找二者最近的祖先 class Soluti…