ICCV 2019 | 基于语义连贯性的图像修复,全新的迭代 Coherent Attention 机制提升修复效果(含源码)

论文速递 kuma ⋅ 于 2个月前 ⋅ 最后回复由 你找不到我 2个月前 ⋅ 1032 阅读

终于来更新了,抽出时间把这篇论文解读一下。

引言

以往图像修复的工作没有考虑特征连续性从而导致修复色 彩或线条断层的问题,本文提出了一种全新的迭代 Coherent Attention 机制, 保证了生成特征连续性以及全局语义信息的一致性。同时我们提出了一个新的 Consistency loss配合我们的Attention层,从而保证Attention层及其对应的 解码器层的特征分布一致性。最后我们设计了一个新的特征补丁辨别器对修复细节进行加强。


本文已被iccv 2019 收录

论文链接:https://arxiv.org/abs/1905.12384
代码链接:https://github.com/KumapowerLIU/CSA-inpainting

file

以往的图像修复,往往没有考虑像素之间的连续性,映射到语义上来说就是没有考虑特征的连续性,从而导致色彩的断层或者线条的断层。如下图所示:
file

图中shift-net和Contextual Attention都是专做中心修复的,可以明显看出色彩的断层。而PC和GC用于随机马赛克修复,可以看出明显的人工修复痕迹。

我的方法整体架构:
file

△ 模型整体架构

模型分为粗修复和精细修复两个步骤,其中粗修复(Rough net)用的是pix to pix文章中的U-net网络,快并且效果不错. 精细修复网络(Refinement network)整体也是U-net架构,其中每个卷积分成两次完成,第一次是升降维度,第二次是up or down sample, 类似于分离卷积,不过我的降维用的3×3的卷积,采样用的空洞卷积。连贯性语义注意力机制(Coherent semantic attention)在32×32×256那一层,这一层效果不错并且时间消耗不多,这个在消融实验中有验证。

Coherent semantic attention

这个attention分成两个部分,第一部分称为搜索阶段,第二部分称为生成阶段。
file
其中蓝色区域为马赛克区域,灰色为上下文区域,我需要针对蓝色区域中每一个点找到最相关的上下文区域并且替换进来,这样所有的马赛克区域就都被上下文区域填满,再进行第二步生成阶段。生成阶段中,我们采用光标扫描的方式从上至下从左至右进行生成,最左上角第一个补丁没有先前的生成补丁,所以$ m_1 = \overline {m_1} $,但是 $\overline {m_2}$由于前面有生成补丁,所以$\overline {m_2}$应该与$\overline {m_1}$ 构建联系, $ m_{2}=\frac{Dad_{2}}{Dad_{2}+Dmax_{2}}\times m_{1}+\frac{Dmax_{2}}{Dad_{2}+Dmax_{2}}\times \overline{m_2} $,其中 $ Dad_{2} $ 是 $m_{1}$和 $m_2$之间的attention值, $ Dmax_2 $ 是在搜索阶段 $m_2$ 与最相关上下文补丁计算的attention值. 由于 $m_2$会包含 $m_1$的信息,所以 $m_3$会包含 $m_1$和 $m_2$的信息, $m_n$会包含 $ m_1 $ - $ m_n $ 的信息,并且随着距离的增长,补丁之间的关系会越弱。最终可以总结成:

$\begin{equation} \rm \begin{gathered} m_{1}=\overline {m_1}, Dad_1=0 \\ \underset{i\in (2\sim n)}{m_{i}}=\frac{Dad_{i}}{Dad_{i}+Dmax_{i}}\times m_{(i-1)}+\\ \frac{Dmax_{i}}{Dad_{i}+Dmax_{i}} \times \overline {m_i} \label{eq3} \end{gathered} \end{equation} $


Consistency loss:

由于整体结构用的U-net架构,所以我们要保证编码器和解码器对应层需要语义一致性,并且要让Coherent semantic attention层能够更好的工作,所以我们用VGG提取原图的特征空间,并将这个特征空间作为CSA(Coherent semantic attention)层和其对应的解码器层的标签并计算L2距离,这样就能够保证编码器和解码器对应层需要语义一致性并且提升CSA的效果。

Feature patch discriminator:

file

△ feature patch discriminator

我们用VGG提取图片的特征空间,并在这个特征空间上利用patch discriminator进行对抗损失计算,这样能够更加好的帮助生成器理解图像信息,同时稳定辨别器训练

下面是我的实验展示图:

file
file

本帖已被设为精华帖!
本帖由 sophie 于 2个月前 加精
回复数量: 1
您需要登陆以后才能留下评论!