当前位置:网站首页>深度学习系列45:图像恢复综述
深度学习系列45:图像恢复综述
2022-06-25 06:42:00 【IE06】
从本期开始,会探索图像恢复领域的论文和代码。本次先阅读一下综述。
传统方法一个很大的假设是我们相信我们可以在缺失区域之外找到相似的patch,但是如果缺失区域之外没有任何类似的patch,就没有办法正确修复图像了。
1 经典GAN方法
1.1 context encode:U-net生成器
2016年出现的基准的GAN算法,生成器为一个U型网络,判别器为多层卷积网络。损失包括像素级别的重建损失(L2)和鉴别器产出的对抗损失。
1.2 MSNPS:添加纹理生成器
2016年升级版的context encode,其生成器包含两部分,增加了生成纹理的卷积网络:
上面的U型网络用于生成内容,损失函数包括L2损失和对抗损失。
下面的卷积网络用于生成纹理,并寻找缺失区域外最近的神经网络响应来计算损失。这里的做法类似风格转移,将完整部分的风格迁移到损失部分。
1.3 GLCIC:添加局部鉴别器

这里生成器使用了膨胀卷积用来增加感受野。
训练分为3步:
- 生成器L2损失,注意L2损失是在缺失区域内计算的。
- 训练判别器
- 生成器加上对抗损失,与判别器交替训练
图像后处理采用fast marching+泊松图像混合
1.4 PGGAN:添加矩阵鉴别器
GLCIC太依赖于预先定义好的缺失区域,而实际场景中的残缺经常是未知的,因此仍需改进。
典型GAN鉴别器的输出是0 ~ 1的单个值。这意味着鉴别器会看整个图像,判断这幅图像是真的还是假的,我们称之为GlobalGAN。而PatchGAN判别器的输出是一个矩阵,这个矩阵中的每个元素都在0到1之间。注意,每个元素代表输入图像中的一个局部区域。
两者结合,叫做PGGAN
结构和GLCIC很相似,其中生成模块改成了膨胀残差网络,此外将标准反卷积改成了插值卷积用以消除伪影。
1.5 shiftGAN:U-net生成器添加shift连接

添加引导损失:所有连接的两个层之间编码特征和解码特征的L2损失之和。
添加shift连接:通过移位操作,网络可以有效借用缺失部分外最近的邻居给出的信息,来完善生成部分的全局语义结构和局部纹理细节。简单来说,它就是提供合适的参照物来完善估计。
1.6 DeepFill:生成器添加注意力
作者提出了一个二阶段的由粗到细的修复网络:
第一阶段粗修复网络:使用空洞卷积+重建损失先补出一个模糊粗糙的结果;
第二阶段精修复网络:使用带语境注意力模块空洞卷积+重建损失+全局、局部GAN-GP对抗损失来进一步细化结果。
encode部分上路分支是包含语义注意力层(contextual attention layer)的encoder;下路是常规的encoder。两路encoder输出的特征图最后拼接在一起合成一个特征图,最后通过decoder生成修复结果。
1.7 DeepFill v2: mask由门控卷积生成
gated conv是本文的核心创新点,他就像一个软筛子一样,对输入有选择机制。(软性选择,就是乘以一个0-1之间的数,与之相对的是硬筛子,要么全通过,要么全拦下),它可以自动根据更新规则从数据里面学到soft mask的参数(就像过滤系数一样),如下式:

此外为了应对free-form的mask,使用了Markovian discriminiator,对尺寸小于原图的矩阵打分。对抗损失使用了Hinge loss。
1.8 PatialConv:处理freeMask
其核心思想是,如果感受野内不存在有效像素(即都被mask了),则不进行卷积操作;其他情况下,也只对有效像素做卷积。
此外,mask也不断更新:
1.9 CTSDG:鉴别器添加边缘检测

比较像MSNPS,生成器这边从图像、边缘分别生成,鉴别器这边也是从图像、边缘分两支进行判定。
1.10 EdgeConnect:添加边缘生成器和边缘判别器

这个项目的功能和deepfill v2比较像,使用轮廓作为先验来指导图像生成。
如上图,左半部分的G1和D1用来学习轮廓,右边半部分的G2和D2则用来生成最终的图像。
G1和G2都使用了空洞卷积+残差模块;D1和D2都使用PatchGAN,也就是将判别图片分成70x70进行判别,对判别结果取平均。
原先的图片修补任务需要对RGB值图片的缺失区域进行修补,如果采用范数距离计算重构损失 L r e c L_{rec} Lrec的话,总得到模糊的图片(对可能的修补模式求平均的结果);如果采用特征距离计算对抗损失 L a d v L_{adv} Ladv的话,总得到人造痕迹太明显的图片(伪像)(从训练记忆里面找一个相似的结果并贴上去)。上下文编码器 Context Encoder 采用参数加权的方式结合使用两者,只是平衡了这两个缺点。
既然如此,把图片修补任务的难度降低,不修复三通道的RGB图,转而修复只有轮廓的二值图。修复得到了轮廓图片后,将其转变为风格迁移任务(将轮廓图转化为彩色图片)。这个过程,把恢复高频信息与低频信息的过程解耦合,从而解决图片修补任务。
边栏推荐
- MySQL interview - the response of executing SQL is relatively slow, and the troubleshooting ideas.
- 差点被这波Handler 面试连环炮带走~
- Advantages and differences of three kinds of vias in PCB 2021-10-27
- 【QT】qtcreator便捷快捷键以及QML介绍
- The method of judging whether triode can amplify AC signal
- The fourth floor is originally the fourth floor. Let's have a look
- How to use ad wiring for PCB design?
- 57. 插入区间
- 三台西门子消防主机FC18配套CAN光端机进行光纤冗余环网组网测试
- DNS协议及其DNS完整的查询过程
猜你喜欢

使用报文和波形记录分析仪RoyalScope的帧统计功能排查CAN总线偶发性故障

Fairmot yolov5s to onnx

基于Anaconda的模块安装与注意事项

How to select lead-free and lead-free tin spraying for PCB? 2021-11-16

STL tutorial 4- input / output stream and object serialization

Vscode is good, but I won't use it again

How to use ad wiring for PCB design?

Elk + filebeat log parsing, log warehousing optimization, logstash filter configuration attribute

realsense d455 semantic_ Slam implements semantic octree mapping

ts环境搭建
随机推荐
1742. 盒子中小球的最大数量
【深度学习 轻量型backbone】2022 EdgeViTs CVPR
50. Pow(x, n)-快速幂
Sword finger offer II 027 Palindrome linked list
Cifar-10 dataset application: quick start data enhancement method mixup significantly improves image recognition accuracy
417-二叉树的层序遍历1(102. 二叉树的层序遍历、107.二叉树的层次遍历 II、199.二叉树的右视图、637.二叉树的层平均值)
[daily training] 207 Class Schedule Card
C#获取exe的版本号-文件版本and程序集版本
一次弄清楚 Handler 可能导致的内存泄漏和解决办法
【QT】Qt 5 的程序:打印文档
CAN总线工作状况和信号质量“体检”
TCP的那点玩意儿
Take you through the normalization flow of GaN
Requirements for Power PCB circuit board design 2021-11-09
C get the version number of exe - file version and assembly version
Lebel only wants an asterisk in front of it, but doesn't want to verify it
云计算考试版本1.0
navicat定时任务无效
Startup, shutdown and restart of Oracle and MySQL on Linux
AttributeError: ‘Upsample‘ object has no attribute ‘recompute_ scale_ factor‘