当前位置: 首页 > news >正文

快速傅立叶卷积(FFC)

在这里插入图片描述

论文 LaMa: Resolution-robust Large Mask Inpainting with Fourier Convolutions
https://github.com/advimman/lama

1.Introduce

解决图像绘制问题——缺失部分的真实填充——既需要“理解”自然图像的大尺度结构,又需要进行图像合成。

通常的做法是在一个大型自动生成的数据集上训练绘画系统,这些数据集是通过随机屏蔽真实图像创建的。通常使用带有中间预测的复杂两阶段模型,例如平滑图像[27,54,61]、边缘[32,48]和分割图[44]。在这项工作中,我们用一个简单的单级网络获得了最先进的结果。

一个大的有效接受野[29]对于理解图像的整体结构,从而解决图像绘制问题是必不可少的。此外,在一个大掩模的情况下,一个大而有限的接受域可能不足以获得生成高质量图像所必需的信息。我们注意到流行的卷积架构可能缺乏足够大的有效接受场。我们仔细地干预系统的每个组成部分,以缓解问题,并释放单级解决方案的潜力。具体来说:i)我们提出了一个基于最近发展的快速傅立叶卷积(FFCs)[4]的喷漆网络。ffc允许覆盖整个图像的接受域,即使在网络的早期层也是如此。我们证明ffc的这种特性提高了网络的感知质量和参数效率。有趣的是,FFC的归纳偏倚允许网络泛化到训练过程中从未见过的高分辨率(图5、图6)。这一发现带来了显著的实际好处,因为需要的训练数据和计算量更少。

ii)我们提出使用基于高接受场语义分割网络的感知损失[20]。这是基于这样一种观察,即接受野不足不仅会损害绘画网络,还会损害感知损失。我们的损失促进了全球结构和形状的一致性。

iii)我们引入了一种积极的训练掩码生成策略,以释放前两个组件的高接受场的潜力。这个过程产生了宽而大的掩模,这迫使网络充分利用了模型和损失函数的高接受场。

这就引出了一种新的单阶段图像绘制系统——大掩模绘制系统(LaMa)。LaMa的主要组成部分是高感受野架构(i),具有高感受野损失函数(ii),以及训练掩码生成的激进算法(iii)。我们仔细地将LaMa与最先进的基线进行比较,并分析每个提议组成部分的影响。

通过评价,我们发现仅在低分辨率数据上进行训练后,LaMa就可以泛化到高分辨率图像。LaMa可以捕获和生成复杂的周期结构,并且对大掩模具有鲁棒性。此外,与竞争基线相比,这是用更少的可训练参数和推理时间成本实现的。

方法

2.1. 早期层中的全局上下文

例如填充大蒙版,生成适当的inpainting需要考虑全局上下文。因此,我们认为一个好的架构应该在管道中尽可能早地拥有具有尽可能广泛的接受域的单元。传统的全卷积模型,如ResNet[14],存在有效接受野[29]增长缓慢的问题。由于卷积核通常很小(例如3 × 3),接收域可能不足,特别是在网络的早期层。因此,网络中的许多层将缺乏全局上下文,并且将浪费计算和参数来创建一个全局上下文。

对于宽掩模,特定位置的生成器的整个接受野可能在掩模内,因此只观察到缺失的像素。对于高分辨率图像,这个问题尤为明显。

快速傅立叶卷积(FFC)[4]是最近提出的运算符,它允许在网络的前期层中利用全局上下文。FFC基于通道快速傅里叶变换(FFT)[2],具有覆盖整个图像的接受野。FFC将通道分成两个并行分支:i)局部分支使用常规卷积,ii)全局分支使用真正的FFT来考虑全局上下文。实FFT只能应用于实值信号,逆实FFT保证输出为实值。与FFT相比,真正的FFT只使用了一半的频谱。具体而言,FFC采取以下步骤:
在这里插入图片描述
在这里插入图片描述
最后,将本地(i)和全局(ii)分支的输出融合在一起。FFC的图示见图2。
在这里插入图片描述
FFCs的功能FFCs是完全可微的,并且易于使用的替代传统卷积。由于图像范围的接受域,ffc允许生成器从早期层开始考虑全局上下文,这对于高分辨率图像的绘制至关重要。这也带来了更高的效率:可训练参数可以用于推理和生成,而不是“等待”信息的传播。

我们发现ffc非常适合捕获周期性结构,这在人造环境中很常见,例如砖、梯子、窗户等(图4)。有趣的是,在所有频率上共享相同的卷积将模型转向尺度等方差4。

http://www.lryc.cn/news/237516.html

相关文章:

  • 藏头诗(C语言)
  • 适合您的智能手机的 7 款优秀手机数据恢复软件分享
  • uniapp APP下载流文件execl 并用WPS打开
  • 【Python】 Python 操作PDF文档
  • vue3-响应式核心
  • 人工智能的广泛应用与影响
  • SAP创建权限对象、角色、并分配角色
  • [uni-app]记录APP端跳转页面自动滚动到底部的bug
  • 应用软件安全编程--23避免使用不安全的操作模式
  • 国产高云FPGA:纯verilog实现视频图像缩放,提供6套Gowin工程源码和技术支持
  • python操作windows窗口,python库pygetwindow使用详解
  • 手写消息队列(基于RabbitMQ)
  • kafka本地安装报错
  • 王者荣耀游戏
  • MobaXterm如何连接CentOS7的Linux虚拟机?Redis可视化客户端工具如何连接Linux版Redis?
  • python实现炫酷的屏幕保护程序
  • java学习part06数组
  • Java 的异常体系
  • V100 GPU服务器安装CUDA教程
  • 快速弄懂Python3.11中的新特性
  • 七,vi和vim
  • 湖科大计网:传输层
  • 设计模式(二)-创建者模式(3)-抽象工厂模式
  • [计算机网络]网络层概述
  • 猫12分类:使用yolov5训练检测模型
  • Kubernetes Dashboard部署ImagePullBackOff问题处理
  • 十四、Docker的基本操作
  • C#,数值计算——插值和外推,分段线性插值(Linear_interp)的计算方法与源程序
  • 详细讲解什么是单例模式
  • 在springBoot中同时使用mysql和MongoDB