写点什么

基于深度学习的图像修补 / 完整方法分析

  • 2019-08-29
  • 本文字数:3592 字

    阅读完需:约 12 分钟

基于深度学习的图像修补/完整方法分析

修补的方法基本上也是基于梯度/边缘的连续性或者纹理的扩展性,而传统机器学习方法可以学习有先验知识的图像合成方法。下面介绍深度学习的方法。


Pluralistic Image Completion 是一种多元(Pluralistic)图像完整(image completion)的方法【1】,它为图像完整生成多种多样的合理解决方案。基于学习的方法面临的主要挑战是,通常每个标签只有一个 GT 训练实例。从条件的变分自动编码器(CVAE)采样仍然导致最少多样性。为此,采用基于概率原理的两个并行路径框架:一个是重建路径,利用给定的 GT 来得到缺失的部分先验,并从该分布重建原始图像;另一种是生成路径,条件先验与重构路径中的分布耦合在一起。两个路径都基于 GAN,另外还有一个短距加长距的注意层(attention layer),利用了解码器和编码器特征之间的远距离关系,提高了外观的一致性。


如图给出屏蔽输入的完整策略:“确定性”结构直接预测 GT 实例;“CVAE”增加随机抽样以使产出多样化;“实例盲”仅匹配可见部分,但训练不稳定;“双路径方法”【1】在测试期间使用生成路径,但在训练期间由并行的重建路径引导;黄色路径用于训练。如下对各部分分别解释一下。


假设一个图像,最初是 Ig,许多缺失的像素使其退化成为包含可见像素的 Im(被掩盖部分图像)。 定义 Ic 为包括原始缺失像素的补充(complement)部分图像。经典图像完整法试图以确定的方式从 Im 重建原始未掩盖的图像 Ig(见图“确定性”),这导致一个解决方案。 相反,双路径法想做的是从 p(Ic | Im)进行采样。


为了得到样本的分布,目前的方法是采用 CVAE 来估计潜空间的参数分布,然后从中采样(见图“CVAE”)。这涉及观察训练实例的条件对数似然函数 logp(Ic | Im)的变分下限:



其中 zc 是潜向量,qψ(·|·)是后验重要采样(importance sampling)函数,pφ(···)是条件先验函数,pθ(·|·)是似然函数,其中ψ,φ和θ是相应函数的深度网络参数。对所有参数,该下限最大化。


输出多样化的一种方法是,在训练期间简单不刺激输出去重建实例特有的 Ig,只需要适应训练集分布,如学习的对抗鉴别器那样(见图“实例盲(Instance Blind)“)。尽管如此,该方法不是很稳定,特别在复杂的大环境里。



双路径法【1】要求提供丢失的部分图像作为完整图像的超集,也是来自潜空间分布,已知为 p(zc)的平滑先验知识。这样,log p(Ic)的变分下限是:



当涉及到部分图像时这会更具辨别力,因为有不同数量的像素。更多像素(较大孔)的缺失部分图像 Ic 比较少像素(较小孔)的缺失部分图像 Ic 更大的潜先验方差。因此,为适应像素数 n,广义化先前的 p(zc)= Nm(0,σ2(n)I)。


将潜先验知识组合成条件对数似然函数的条件下限,只需要假设 zc 与 Ic 比与 Im 更密切相关,因此得到:



这样条件对数似然函数 logp(Ic | Im)的变分下限变成:



然而,不同的是,训练期间不再自由学习 qψ(zc | Ic),但其在变分下限的存在联系在一起。直观地,qψ(zc | Ic)的学习由变分下限的先验知识 p(zc)正则化,而条件先验 pφ(zc | Im)的学习依次由上面条件对数似然函数变分下限中的 qψ(zc | Ic)正则化。


上面条件对数似然函数 logp(Ic | Im)变分下限的一个问题是:在训练期间采样取自 qψ(zc | Ic),但在测试期间这不行,因此采样必须来自 pφ(zc | Im),这个可能无法充分学习。 为了缓解这个问题,将上面变分下限修改为重要采样(importance sampling)有和无二者的混合形式,简化写成:




当从重要函数(importance function)qψ(·| Ic)采样时,整个训练实例可用,并且似然函数 prθ(Ic | zc,Im)侧重于 Ic 的重构。相反,从学习的不包含 Ic 的条件先验 pφ(·| Im)采样时,让似然函数模型:



和 Ic 的原始实例(original instance)无关,可促进创造性生成(creative generation)。 不然,它只鼓励生成样本适应于整体的训练分布。


然后,总训练目标可以表示为联合最大化 log p(Ic)和 logp(Ic | Im)两个的变分下限,其中前者中的似然函数统一到后者,即




如下图是并行双路径的框架图:重建流水线(黄线)组合 Im 和 Ic 的信息用于训练;生成流水线(蓝线)推断隐藏区域的条件分布,在测试期间进行采样;表示和生成两个网络共享一样的权重。



该网络由两条路径组成:重建路径使用来自整个图像的信息,即 Ig = {Ic,Im},而生成路径仅使用来自可见区域 Im 的信息。另外:


• 对于重建路径,补充元素图像 Ic 用于推断训练期间的重要函数 qψ(·| Ic)=Nψ(·)。因此,采样的潜在向量 zc 包含缺失区域的信息,而条件特征 fm 对可见区域的信息进行编码。由于有足够的信息,该路径损失函数适合于重建原始图像 Ig。


• 对于生成路径(也是测试路径),仅基于可见 Im 推断洞 Ic 的潜分布。这明显不如路径中的推断准确。因此,重建损失仅针对可见区域 Im(经由 fm)。


• 此外,在两条路径上使用对抗学习网络,理想情况下确保完整的合成数据符合训练集分布,并凭经验得出更高质量的图像。


训练的损失函数定义如下:



其中分布正则化损失:




外观匹配损失:




对抗损失:




从自注意(Self-Attention)GAN 扩展出来,不仅在解码器层使用自注意图(self-attention map)来利用远距离空间上下文(distant spatial context),还要进一步捕获编码器和解码器之间的特征-特征上下文(feature-feature context)。 关键点是:让网络选择在编码器中使用更精细的特征,或者在解码器中使用更具语义生成的特性,下图是长+短距注意层的架构图所示。



如下图是通过实验结果对训练中不同策略的比较:双路径(顶部),CVAE(中部)和实例盲(底部)。



下图是不同注意模块的注意力图比较:长短距注意图(顶部)和上下文注意图(底部)。



深度图像完整通常无法将恢复的图像和谐地混合到现有内容中,尤其是在边界区域中。【2】从创建平滑过渡的角度考虑,提出简洁的深度融合网络(DFNet)。首先,引入融合块生成用于组合已知和未知区域的α组合图(alpha composition map)。融合模块不仅在恢复的内容和现有内容之间提供平滑的融合,而且提供注意力图(attention map),使网络更多地关注未知像素。通过这种方式,在结构和纹理信息之间构建了一个桥梁,使信息自然地从已知区域传播直到完整。


此外,DFNet 的融合块嵌入到网络的几个解码器层中。随着每层可调的损失约束,图像完整实现了更精确的结构信息恢复。


下图是融合块的示意图:融合块通过可学习的函数 M 从特征图中提取原始完整信息,并预测函数 A 的 alpha 合成图。最后,它通过混合函数 B 将原始完整与缩放的输入图像组合在一起。



如图所示,DFNet 建立在类似 U-Net 模型的体系结构上。和原始 U-Net 之间的区别在于,融合块嵌入到多个解码器层。融合块有助于在边界附近实现更平滑的过渡,并且是多尺度约束的关键组件。 一个融合块馈入两个元素,具有未知区域的输入图像 Iin 和特征映射 Fk 形成第 k 层(第一层是 U-Net 的最后一个解码器层)。 这个融合块首先从特征图中提取原始完整 Ck,然后预测α组合图αk,最后结合起来。最终结果 Iˆk 通过以下方式获得:



其中缩放 Iin 得到 Ik,通过可学习函数 M 从特征映射 Fk 提取的原始完整 Ck:



M(x)将 n 个通道特征图 x 变换为 3 通道图像,分辨率不变,即原始完整。 实际上,通过 1×1 卷积层加 sigmoid 函数来学习 M。alpha 合成图αk 由另一个可学习的函数 A 从原始完整和缩放的输入图像产生:



直观地说,在图像被完整时,在算法的较低分辨率构造结构更容易,而在高分辨率下纹理恢复更可行。 将融合块嵌入到 U-Net 的最后几个解码器层中,并以不同的分辨率获得完整结果。 然后,根据需要将结构和纹理约束应用于不同的分辨率。


每个融合块输出与输入特征图 Fi 相同分辨率的完整结果 Ci。 根据分辨率,可以在训练期间提供不同的约束。在测试期间,仅需要来自最后一层的完整结果 I0。



损失函数定义如下:先是重建损失:



感知和风格损失分别是:




其中克矩阵(Gram matrix):



最后,总的损失函数是:



其中结构和纹理损失分别是:



如图是实验结果比较:第 2 行可以看出,基于更多的融合块,建筑结构更加清晰和准确。 此外,在 3 个融合块的结果描绘了房屋的形状,而不是 1 个融合块结果的噪声。虽然编码器高层有更大的感知场和全局上下文,但在解码器更多层可以更容易地重建结构信息。


参考文献

  1. C Zheng, T Cham, J Cai,“Pluralistic Image Completion”, CVPR 2019

  2. X Hong et al.,“Deep Fusion Network for Image Completion”, arXiv 1904.08060, 2019

作者介绍

黄浴,奇点汽车美研中心总裁和自动驾驶首席科学家,上海大学兼职教授。曾在百度美研自动驾驶组、英特尔公司总部、三星美研数字媒体研究中心、华为美研媒体网络实验室,和法国汤姆逊多媒体公司普林斯顿研究所等工作。发表国际期刊和会议论文 30 余篇,申请 30 余个专利,其中 13 个获批准。

原文链接

注:本文源自黄浴的知乎:https://zhuanlan.zhihu.com/p/78874490


2019-08-29 22:003238

评论

发布
暂无评论
发现更多内容

BI分析助力企业数字营销与运营,瓴羊Quick BI让企业决策更精准

巷子

Webpack构建速度优化

Geek_02d948

webpack

合约广告平台架构演进实践

百度Geek说

业务架构 企业号十月 PK 榜 广告B端系统

高频数采、实时流计算:EMQ储能可预测维护系统方案|智慧工厂系列专题06

EMQ映云科技

物联网 IoT emqx 11月月更 云边协同

Node.js实现大文件断点续传

coder2028

node.js

大数据培训的前途怎么样

小谷哥

2022VDC游戏生态专场:打造更健康长久的游戏生态

极客天地

java培训学习机构怎么选择

小谷哥

JS知识点梳理之作用域、作用域链、柯里化、闭包

hellocoder2029

JavaScript

高并发系统谨防被一行日志击垮

小小怪下士

Java 程序员 高并发

推动中小企业数字化转型,终于“有据可依”了

雨果

低代码 数字化转型

Koordinator 1.0 正式发布:业界首个生产可用、面向规模场景的开源混部系统

云布道师

云原生 云栖大会

一个 MySQL 隐式转换的坑,差点把服务器整崩溃了

Java全栈架构师

Java MySQL 数据库 程序员 后端

说说Nodejs高并发的原理

coder2028

node.js

自学前端没有找到工作,怎么做呢

小谷哥

web3.0区块链挖矿游戏dapp系统开发合约定制(成熟技术)

开发微hkkf5566

【电商实战01】如何快速编写api层和model层?

王中阳Go

golang 高效工作 学习方法 11月月更 电商实战

当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界

阿里云大数据AI技术

深度学习 PyTorch 知识图谱 企业号十月 PK 榜 图文生成

Java Web(二)MyBatis

浅辄

Java web mybaits 11月月更

说说Nodejs高并发的原理

coder2028

node.js

BSC/BNB链质押挖矿dapp系统开发(案例演示)

开发微hkkf5566

Pipy:保护 Kubernetes 上的应用程序免受 SQL 注入和 XSS 攻击

Flomesh

程序员 微服务 服务网格 Pipy

解密负载均衡技术和负载均衡算法

京东科技开发者

负载均衡 算法 负载均衡算法 注册表 负载均衡技术

细说js变量、作用域和垃圾回收

hellocoder2029

JavaScript

IM通讯协议专题学习(一):Protobuf从入门到精通,一篇就够!

JackJiang

网络编程 即时通讯 IM

2022VDC云与基础架构专场:筑牢云原生与基础架构发展基石 多维助力效能提升

极客天地

HDC2022 HarmonyOS学生公开课第二届成功举办,年轻创新力量生生不息!

科技汇

JS词法环境和执行上下文

hellocoder2029

JavaScript

web前端培训班学习前景怎么样

小谷哥

webpack实战,手写loader和plugin

Geek_02d948

webpack

Webpack配置实战

Geek_02d948

webpack

基于深度学习的图像修补/完整方法分析_AI&大模型_黄浴_InfoQ精选文章