github链接 :https://github.com/Zhaoyi-Yan/Shift-Net
摘要
深度神经网络(DNN)已经在图像修复任务上表现出了较为出色的效果,但是目前存在的模型虽然可以推断出语义上近似可信的结果,但是补全结果往往是模糊了,为了得到更精细的纹理信息和更完整的结构信息,该篇论文在U-Net结构上引入了shift-connection模块。论文主要的贡献如下:
- 向U-Net 结构中引入了shift-connection 层,奖卷积神经网络与基于范例(exemplar-based) 的图像修复巧妙的结合了起来
- 模型的训练引入了guidance loss,且模型的训练是端到端的。
方法介绍
该修复模型以U-Net 为基础,引入了shift-connection层,设计了新型的Shift-Net,以guidance loss,l1 loss以及adv loss作为约束对模型进行训练,达到了较好的图像修复效果,模型整体框架如下:
shift-connection layer
常规的基于范例的图像修复算法认为确实区域的像素可以由已知区域的像素点进行空间重组得到,然而这一类思想的算法得到的结果在处理较为复杂的图像修复任务时,往往无法推断出正确的语义和结构信息。作者在U-Net结构中引入shift-connection。假设U-Net结构有L层网络,I代表输入的图片, ϕ i ( I ) \phi_i(I) ϕi(I)代表模型第i层的输出。则shift的具体操作如下:
其中 Ω ‾ \overline{\Omega} Ω 代表图片已知区域,为模型第L-l层的特征图的缺失区域的每一个点y(1*1*C)寻找其与 第l层特征图中已知区域像素点中最相似的点 x ∗ ( y ) x^*(y) x∗(y),并计算两个向量之前的shift, u y = x ∗ ( y ) − y u_y = x^*(y) - y uy=x∗(y)−y,最终计算得到shift层结果。
将模型第l,L-l,以及shift 层的结果cat在一起继续向下传递,得到最终的修复结果。
相比于传统的基于范例的图像修复算法,该方法使用的是利用经大量数据训练过的神经网络提取出的特征图进行相似度计算,能够更有利的捕捉图片整体信息,得到更加清晰的结构以更精细的纹理特征。
guidance loss
让 Ω \Omega Ω代表确实区域, Ω ‾ \overline{\Omega} Ω代表图片已知区域,为了尽可能的还原缺失区域的信息,作者希望 ϕ l ( I ) \phi_l(I) ϕl(I)和 ϕ L ( I ) \phi_L(I) ϕL(I)可以尽可能的包含, ϕ l ( I g t ) \phi_l(I^{gt}) ϕl(Igt)所有的消息,但对于任意的 y ∈ Ω y \in \Omega y∈Ω, ( ϕ l ( I ) ) y ≈ 0 (\phi_l(I))_y \approx 0 (ϕl(I))y≈0,因此 ( ϕ L − l ( I ) ) y (\phi_{L-l}(I))_y (ϕL−l(I))y需要尽可能拥有 ( ϕ l ( I g t ) ) y (\phi_l(I^{gt}))_y (ϕl(Igt))y所有的信息。因此guidance loss的具体实现为:
l1 loss和adv loss
因这两种loss在图像修复任务中十分常见,这里就不作过多解释。
实验结果
作者在paris以及Places2两个数据集上开展了实验,且取得了优异的补全补全效果。