前言
近些年深度学习在图像修复这一块,大体框架都是通过上下文编码器,通过将周围卷积特征传播通过全连接层来预测丢失的部分,这种方法会产生语义上合理但模糊的结果。Shift-Net,在U-Net架构中引入一个特俗的位移连接层,用于填充具有尖锐结构和精细纹理的任何形状的缺失区域。将已知区域的编码器特征位移到缺失部分的估计。在解码器特征上引引导损耗,用来最小化全连接层之后的解码器特征与缺失部分的地面实况编码器特征之间的距离。利用这种约束,可以使用缺区域中的解码器特征来指导已知区域中的编码器特征的位移。进一步开发了端到端学习算法来训练Shift-Net。
介绍
考虑到基于样本和基于CNN的图像修复方法的优点。Shift-Net采用U-Net架构,增加了一个特殊的位移连接层。在基于示例的修复中,迭代地执行基于补丁的复制和填充过程以使纹理和结构从已知区域增长到缺失部分。补丁处理顺序在产生合理的修复效果中起着关键作用。CNN在预测缺失部分的图像结构和语义方面是有效的,所以在CNN产生的结构指导下,Shift-Net中的填充过程可以通过引入位移连接层来同时完成,以连接已知区域的编码器特征和缺失部分的解码器特征。因此,Shift-Net继承了基于样本和基于CNN的方法的优点,并且可以通过合理的语义和精细的细节纹理产生修复结果。
模型结构引导损失,重建损失和对抗性学习被引入来指导位移操作并学习Shift-Net模型参数。为了确保解码器可以作为好的指导,引入了引导损失来强化解码器特征接近Ground-truth编码特征。此外,l1和对抗性损失也是被认为是重建缺失部分并恢复更详细的纹理。通过最小化模型目标,Shift-Net可以通过训练集进行端到端学习。
贡献
- 通过将位移连接层引入U-Net,开发了一种新颖的Shift-Net架构,有效地结合基于CNN和基于示例的修复。
- 引导、重建和对抗性损失用于训练Shift-Net,即使部署了位移操作,也可以端到端的学习网络参数。
- 实验效果表现非常棒。
方法
给定输入图像I,图像修复是通过填充缺失部分来恢复给定图像。采用U-Net作为基线网络。通过引导损失和位移操作,来更好的恢复语义结构和精细细节纹理。
引导损失
U-Net由编码器和解码器组成,其中引入跳跃层连接编码器的每个层特征和相应的解码器层特征。引入跳跃层使得在瓶颈层之前和之后利用信息变得方便,对于图像修复和其他低级视觉任务在捕获局部视觉细节方面是有价值的。
设X为缺失区域。X0为已知区域。给定U-Net有l层,L(i)表示第i层的编码特征。L(l-i)表示第(l-i)层解码器特征。为了恢复我们的原图,我们期望L(i)和L(l-i)传达原图几乎所有的信息。对于X的任意区域,它的编码特征层信息几乎都等于0,从而,原图特征应该传递等效的信息给解码特征层。通过引入以下指导损失明确地模拟解码层与原图特征之间的关系。
引导损失
因为已知区域X0和原图的信息一样,所以只关注X的区域的损失。通过连接编码层与解码层。可以近似获得原图中的所有信息。
转换操作和Shift-Net
在基于示例的修补中,通常假设缺失部分是已知区域中的像素/斑块的空间重排,对于缺少部分中y处于定位的每个像素/斑块,基于示例的修复明确或隐含地找到位移向量U,用U加上未知区域信息代替未知区域。位移矢量通常是从缺失部分的外部到内部逐步获得。或者可以通过全局一致性来求解MRF模型。但是这些可能无法恢复复杂的图像语义和结构。
在U-Net中加入转换连接层,编码层特征和解码层特征信息都是从原图中获取信息,解码层中未知区域的信息可以通过近邻搜索编码层中的已知区域找到。
解码层中的未知信息
位移向量 位移向量 编码层特征
Shift-Net与基于示例修复的不同:
- 基于示例的修复是通过像素/斑块来操作的,Shift-Net是通过深度特征编码器从数据集中端到端的学习出来的。
- 基于示例的修复中位移向量可以通过求解优化问题或者按特定顺序获得。对于Shift操作,位移向量通过引导解码层特征并行计算。
- 基于示例的不能修复复杂结构,Shift-Net从大量数据里学习,可以修复复杂语义的图像。
- 基于示例中得到位移向量直接作为已知区域的位移表示,Shift-Net有一个特征融合传递过程。
关注我们,我们会每天坚持推送学到的新知识给你
微信公众号
网友评论