CFSNet: Toward a Controllable Feature Space for Image Restoration ICCV2019

CFSNet: Toward a Controllable Feature Space for Image Restoration

 图1:图像超分辨率(第一行)的感知失真权衡与噪声降低与细节保留(第二行)的权衡,在测试时间,使用CFSNet时,用户可以很容易地根据个人喜好调整输入控制变量a_{in}达到最满意的结果。相比之下,固定的方法(如EDSR、dncn - b)并不能总是保证最佳的视觉质量。

摘要

深度学习在图像修复方面在一些特定的评价指标上(PSNR,SSIM)取得了巨大的进展,然而,恢复后的图像感知质量相对主观,很有必要用户根据个人偏好或图像特征来控制重建结果,而现有的确定性网络无法做到这一点。这促使我们为一般的图像恢复任务精心设计一个统一的交互框架。在这个框架下,用户可以控制不同目标的持续过渡,例如图像超分辨率的感知失真权衡、降噪与细节保留的权衡。我们通过控制所设计网络的潜在特征来实现这一目标。具体的,我们提出的网络叫控制特征空间网络(CFCNet),由两个不同的目标的分支组成,我们的框架可以自适应地学习不同层和通道的耦合系数,从而更好地控制恢复后的图像的质量。在几个典型的图像恢复任务上的实验充分验证了该方法的有效性。代码在:代码地址

 
1.介绍
 

        图像恢复是一种经典的病态逆问题,其目标是从各种退化影响下的损伤图像中恢复出高质量的图像。根据退化的类型,可以将其分为不同的子任务,如图像超分辨率、图像去噪、JPEG图像去块等。

        深度学习的兴起极大地促进了这些子任务的发展。但是这些方法通常是针对特定目标的,当处理不同于训练数据集的图像时,我们需要对网络进行再训练。此外,大多数方法的目的通常是在PSNR或SSIM方面追求较高的重建精度。然而,从个人的角度来评价图像质量是比较主观的,低重建失真并不总是与高视觉质量相一致。另外,在许多的应用中,获取用户的偏好和被破坏图像的真实退化程度往往是一个挑战。所有这些都需要一个交互式图像恢复框架,它可以应用于各种各样的子任务,然而,据我们所知,目前能够同时满足交互性和通用性要求的网络很少。

        为了提高深度学习方法的灵活性,一些设计方案被提出。以图像去噪为例,数据增强被广泛用于提高模型的泛化能力。利用包含一系列噪声的数据集进行训练,可以用单个模型实现盲降噪任务,但是,这种方法会对输入产生一个固定的重建结果,并不一定能保证令人满意感知质量(如图1所示)。另外一种选择,Zhang等人使用降噪图像作为输入,将可调噪声水平图串联起来处理盲图像去噪任务。虽然该方案也具有良好的用户友好性,但不能推广到其他任务中。在图像超分中,在输入中加入噪声去协调图像的质量与失真。但是,该方案针对的是图像的超分辨率,不能保证平滑和连续的控制。
        在本文中,为了克服这一缺点,我们提出了一种新的基于控制的人机交互图像恢复框架。具体一点,我们通过调整每个单元块的特性来实现重构结果的交互控制,称为耦合模块。每个耦合模块由一个主模块和一个调优模块组成。在两个端点优化目标下得到两个块的参数。以图像超分辨率为例,主模块进行低失真优化,调优模块对高感知质量进行优化,另外,作为实现精细特征控制的关键,我们设计了高自由度耦合系数自适应地从一个控制标量学习到每个耦合模块。

         主要贡献为:

  1. 提出了一种新颖的可控端到端交互的精细的图像恢复框架。

  2. 我们提出了一个耦合模块和一个自适应的耦合系数学习策略来提高重构性能。

  3. 我们的CFSNet在超分辨率方面JPEG图像去块和图像去噪方面的灵活性和视觉质量的表现优于最先进的方法,   

2.相关工作

        图像恢复:深度学习方法在图像恢复中得到了广泛的应用。不断深化、拓宽或减轻网络结构,尽可能提高超分辨率精度。而[13,17,23,26]更注重损失函数的设计,以提高视觉质量。除此之外,[4,20,33]探讨了感知失真的权衡。在[8]中,Dong等人采用了ARCNN构建的多个层叠卷积层进行JPEG图像去块。Zhang等人提出了FFDNet,使图像去噪更加灵活和有效。郭等人设计了[11]用于处理真实图像的盲去噪。不同于这些具体任务的方法,[19,20,37,38]提出了一些可以用于不同图像恢复任务的统一方案。但是,这些固定网络不够灵活,无法处理不稳定的用户需求和应用程序需求。

        可控的图像变换:在高级视觉任务中,已经探索了多种技术来实现可控的图像变换。[21]和[36]将人脸属性向量加入到网络中控制人脸外观,在[31]中,采用深度特征插值实现高分辨率图像的自动转换。[14]还提出了一种在特征空间中控制自适应实例规格化(AdaIN)来调整高层属性的方案。Shoshan等人在主网络中插入了一些调优块,以允许对网络进行修改。但是,这些方法都是针对高级视觉任务设计的,不能直接应用于图像恢复。将可控图像变换应用于低层视觉任务,Wang等人在参数空间中进行插值,但该方法不能保证输出的最优性,这启发我们进一步探索图像恢复的细粒度控制。

3.提出的方法

        在本节中,我们首先概述了提出的框架CFSNet,然后介绍了受图像超分辨率问题启发的建模过程。不是专门针对特定的超分辨率任务,最后,我们将我们的CFSNet推广到多个图像恢复任务,包括去噪和去块。此外,我们给出了基于流形学习的显式模型解释,以显示所提网络的内在合理性。在本节的最后,我们通过与最近的相关工作进行了比较展示了我们工作的优越性和进步性。

3.1基础网络模型

如图2所示,我们的CFSNet包括主模块和调优模块。主模块路径包括M个主模块,调优路径包括M个调优模块和2*M+3个全连接层。一对主模块块和调优模块块通过耦合操作有效地结合两个分支的特性,构成耦合模块。我们将原始退化图像I_{in}和控制标量a_{in}作为输入,输出恢复后的图像I_{rec}作为最终结果。

在开始,我们首先使用3X3卷积去提取退化图像I_{in}的特征:

B_{0}=F_{in}(I_{in})    

 其中F_{in}表示特征提取函数,B_{0}作为下一阶段的输入。这里,输入图像一次I_{in},我们介绍控制标量a_{in}平衡不同的优化目标。更具体地说,有3个共享权重的完全连接层,将输入标量a_{in}转变为多通道向量和2个独立的完全连接层学习的每一个耦合模块的最佳耦合系数:

                                                                        a_{m}=F_{m}^{ind}(F_{m}^{sha}(a_{in}))
         其中,F_{m}^{ind}F_{m}^{sha}分别表示表示共享和独立的全连通层的函数,a_{m}是m个耦合模块的耦合系数向量。每个耦合模块将主模块和调优模块的输出耦合如下:

  其中,F_{m}(\cdot )表示第m个耦合运算,R_{m}T_{m}表示第m个主模块和调优模块的输出特征。F_{m}^{mian}(\cdot )F_{m}^{tun}(\cdot )表示第m个主模块函数和调优函数。为了解决图像超分辨率任务,我们在最后一个卷积层之前添加了一个额外的包括升级块的耦合模块,如图2所示,具体来说,我们利用亚像素卷积运算(卷积+像素洗牌)[27]来对特征图进行高档化。最后,我们使用3×3的卷积层得到重建后的图像:

F_{out}(\cdot )表示卷积运算,整个重建过程可以表示为:

F_{CFSN}(\cdot )表示我们提出的CFSNET网络的函数,\theta_{main},\theta_{tun},,\theta_{a},分别表示主模块、各调优模块和各全连通层的参数。

        由于我们框架的两个分支基于不同的优化目标,我们的培训过程可以进一步细化为两个步骤:

  1. a_{in}设置为0,利用L_{1}(I_{rec},I_{g};\theta _{mian})训练主路径,I_{g}表示对应的真实的地面图像。

  2. a_{in}设置为1,将控制标量a_{in}映射到不同的耦合参数中{a_{m}},修正主分支的参数,用另一个损失函数训练调优分支L_{2}(I_{rec},I_{g};\theta _{tun},\theta _{a})

3.2耦合模块

       现在介绍耦合模块的细节。我们主要从图像超分辨率的角度来介绍我们的设计。为了平衡感知质量和失真之间的平衡,我们通常意识到通过修改惩罚参数\lambda的损失:

        L_{distortion}表示失真损失(比如MSE,MAE),L_{adv}包括GAN损失[10,33]和感知损失,\lambda是一个标量,我们通常利用L_{distortion}预训练网络,然后用混合损失L_{gen}微调网络和\lambda来达到不同的权衡。也就是说,如果我们把预先训练的结果作为参考点,然后我们可以从参考点开始,逐步将其转换为另一个优化目标的结果。

        然而,对不同的\lambda训练一个网络效率并不高,为了解决这个问题,我们变换\lambda的输入,直接控制潜在特征空间中参考点的偏移量。为了这个目的,我们实现了一个可控耦合模块,将用L_{distortion}失真学习的参考特征和用L_{gen}学习的新特征耦合在一起。我们将基于失真优化的特征作为参考点,记为R_{m}。在基于感知质量的优化过程中,我们保持参考点不变,以为T_{m}\rightarrow R_{m}变化方向。换句话,在耦合模块中,部分特征由参考信息提供,另一部分由新探索获得:

其中表示第m个系数,C表示通道数。

        值得注意的是,不同的主块提供了不同的参考信息,所以我们应该以不同的方式对待它们。我们希望赋予每个耦合模块一个不同的耦合系数,以充分利用参考信息。因此,我们的控制系数\left \{ {a_{m}} \right \}从优化过程学习到。更具体地说,我们使用一些完全连接层将一个输入控件标量a_{in}映射到不同的耦合系数,提出网络会找到最优耦合模式,因为我们控制系数\left \{ {a_{m}} \right \}适应性不是固定的。

        由于耦合模块和自适应学习策略,我们通过由一个控制变量a_{in}可以实现连续、平稳过渡。此外,如果该框架在感知质量和超分辨率失真之间取得了很好的平衡,那么我们可以将该模型推广到其他恢复任务中吗?通过理论分析和实验测试,我们发现该框架适用于多种图像恢复任务。在下一节中,我们将对我们的模型提供更一般的理论解释。

3.3理论分析

        假设有一个包含所有自然图像的高维空间。自然图像的退化过程在空间上是连续的。所以近似地,这些退化的图像在空间中是相邻的,用已知退化水平的结果近似未知退化水平的重建结果是可能的。不幸的是,自然图像位于一个近似非线性流形上[34].因此,简单的图像插值往往会在最终结果中引入一些重影现象或其他意想不到的细节。

        我们自然地将注意力转向特征空间,而不是在像素空间中进行操作。已有文献表明,数据流形可以通过神经网络映射进行平面化,并将映射流形近似为欧几里德空间[2,5,28]。基于这个假设如图3所示,我们将潜在空间中的X_{i}Y_{i}分别表示为两个端点,将未知点Z_{i}表示为X_{i}Y_{i}的仿射组合:

a_{i}表示第i个组合系数,这正是可控耦合模块的公式7.然而,我们也应该注意到这个假设是由CNN的深度和宽度所决定的。换句话说,我们不知道通过不同的渠道和不同的层次可以实现的扁平化的程度。因此,不同通道和不同层的组合系数应存在差异。此外,我们希望通过优化过程找到最优组合系数:

其中表示最优解,然而,很难直接获得最优a^{*},因为未知工作点Z_{ij}一般不能进行可跟踪计算。使用我们用一种隐式的方法优化公式9.具体来说,我们将输入控件变量a_{in}映射到不同的组合系数与一些叠加的全连接层,然后将上述过程近似化为线性映射网络参数的优化:

其中F_{alpha}表示a_{in}的映射函数。\widehat{a}为接近的最优解。幸运的是,这个网络可以嵌入到我们的框架中。因此,我们可以一次性优化线性映射网络的参数和调优块。整个优化过程(对应于步骤2)可以表示为:

3.4讨论

Dynamic-Net 的不同:最近,Dynamic-Net[28]实现了连续图像转换的交互式控制。相比之下,有两个主要的区别动态网络和我们的CFSNet。首先,Dynamic-Net主要用于图像转换任务,比如样式转换。当我们直接使用Dynamic-Net进行图像恢复时,很难获得理想的结果。在超分辨率驱动下,我们设计了用于低层图像恢复的CFSNet。其次,在Dynamic-Net中,如图4所示,他们直接调整多个标量\left \{ a_{m} \right \}得到不同的输出,然而在我们的网络中,耦合系数a_{m}是一个向量,学会了从输入标量a_{in}通过自适应优化过程。这样更方便使用,我们在3.3节中解释了这个设计的合理性。

        深度网络插值的不同:深度网络插值(Deep Network插值,DNI)是另一种控制感知质量与失真之间平衡的选择[32,
33)。DNI还可以应用于许多低级的视觉任务[32]。然而,这种方法需要训练两个具有相同架构但不同损失函数的的网络,并生成第三个网络进行控制。相比之下,我们的框架可以通过统一的端到端网络实现更好的交互控制。此外,我们的框架利用耦合模块更好地利用了参考信息。DNI在参数空间内插补产生连续的过渡效果,插补系数在整个参数空间内保持不变。然而,这种简单的策略并不能保证输出的最优性。而在我们的CFSNet中,我们在特征空间中进行插值,重构效果的连续过渡与与a_{in}控制变量的变化一致。我们可以得到未知工作点的更好的近似值。

4.实验部分

待补充

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值