Crafting a Toolchain for Image Restoration by Deep Reinforcement Learning

Abstract

我们研究了一种新的基于强化学习的图像恢复方法。与现有的研究不同,我们准备了一个工具箱,由不同复杂性和专门用于不同任务的小卷积网络组成。我们的方法,RL-Restore,然后学习策略从工具箱中选择适当的工具逐步恢复损坏图像的质量。我们制定一个逐步的奖励函数与图像在每一步的恢复情况成比例,以学习行动策略。我们还设计了一个联合学习计划来培训代理和工具,以更好地处理不确定性。与传统的人为设计的网络相比,RL-Restore能够使用动态形成的工具链1,以一种参数更有效的方式恢复被复杂和未知扭曲损坏的图像。

1. Introduction

深度卷积神经网络(Deep convolutional neural network, CNN)不仅在高级视觉任务中取得了巨大的成功,而且在诸如去模糊、去噪、JPEG伪影减少和超分辨率等低级视觉任务中也取得了巨大的成功。与传统的基于模型的优化方法相比,该方法具有良好的性能和较快的测试速度。

  1. 在JPEG图像压缩中,针对不同的压缩质量设计了不同的网络来实现满意的恢复。
  2. 在超分辨率的情况下,通常使用不同的网络来处理不同的缩放因子。
  3. 最近的一些研究表明,使用CNN可以同时处理多种失真类型或应对不同程度的退化。

此外,这种网络以相同的结构处理所有图像,尽管其中一些本质上不那么困难,而且可以以更便宜的方式恢复。

我们的想法背离了当前的哲学,即一个人需要一个大容量的CNN来解决一个复杂的修复任务。相反,我们希望拥有一套工具(基于小型cnn),并学会适应地使用它们来解决手头的任务。上述想法可以提供新的见解,如何CNN可以用于解决现实世界的恢复任务,其中的图像可能受到污染的混合扭曲,如经过几个阶段的处理,模糊,噪声和块。此外,与现有方法相比,新方法可能导致参数有效的恢复0CNN-based模型。特别是,可以根据扭曲的严重程度选择不同复杂性的工具。

为此,我们提出了一个框架,将图像恢复视为一个决策过程,通过该框架,agent 将自适应地选择一系列工具来逐步细化图像,如果被认为恢复的图像质量令人满意,代理可以选择停止。它们是针对特定任务的,旨在处理不同类型的恢复任务,包括去模糊、去噪或JPEG工件减少。工具顺序的选择是在一个强化学习(RL)框架中制定的。agent通过分析当前步骤中恢复图像的内容并观察所选择的最后一个动作来学习选择下一个最佳工具。当代理改进输入图像的质量时,就会累积奖励。

贡献:

  • 我们提出了一个新的尝试,在强化学习框架中解决图像修复问题。与现有的方法部署单一且可能庞大的网络结构不同,RL-Restore享有使用不同容量的工具来实现所需修复的灵活性。
  • 我们提出了一个联合学习的方案,同时训练代理和工具,使框架拥有更好的能力来应对处理过程中出现的新的和未知的工件。
  • 我们表明,动态形成的工具链在计算复杂度较低的情况下,与强大的人为设计的网络相比,表现得很有竞争力。我们的方法可以在一定程度上应对看不见的扭曲。有趣的是,我们的方法比现有的方法更加透明,因为它可以揭示如何使用不同的工具一步步去除复杂的扭曲。

在这里插入图片描述

  • 图1所示。(a)显示图像被复杂的扭曲破坏。(b-c)描述通过RL-Restore恢复映像的决策过程中的一些选择步骤。在每一步中,代理都会选择特定的工具来提高图像质量。(d-e)是基于cnn的结果,其中(d)具有与RL-Restore相似的参数,而(e)具有两倍以上的参数。为了更好的比较,给出了PSNR值。

图1(b-c)展示了一个学习策略来恢复被多种扭曲损坏的图像,其中图像质量是逐步细化的。两个基线CNN模型的结果如图1(d-e)所示,其中(d)的参数数量与我们的相似(应用agent + tools),而(e)有两倍多。正如我们将在实验部分进一步介绍的,考虑到相似的复杂性,RL-Restore方法优于CNN方法,并且它需要更少的计算量82.2%来实现与单个大数据处理相同的性能
CNN

Related Work

CNN for Image Restoration.

图像复原是一个被广泛研究的课题,其目的在于从被破坏的/有噪声的观测中估计出清晰的/原始的图像。基于卷积神经网络(CNN)的方法在各种图像恢复任务中表现出了出色的性能。

这些研究大多只训练一个单一的网络,专门从事手头的任务例如:去模糊,降噪, 减少JPEG伪影超分辨率。我们的工作提供了。我们的工作提供了一种替代方案,它的参数效率更高,但又能适应畸变的形式。

有几项开创性的研究同时处理多种降解问题。Kim等[19]通过开发一个20层的深度CNN,使用单一模型来处理多尺度的图像超分辨率。Guo等[10]建立了一个一对多的网络,可以处理不同级别压缩伪影的图像。Zhang等人[44]提出了一个20层的深度CNN来同时处理多个修复任务,包括图像去噪、JPEG伪影降低和超分辨率。这些研究都没有考虑混合失真,即一张图像受到多种失真的影响。与上述工作不同的是,我们有兴趣探索是否可以使用3到8层的较小规模CNN来联合修复受到混合失真污染的图像。

有一些方法[5,11,14]可以用来将网络压缩到更小的空间以提高计算效率。在图像恢复领域,研究递归神经网络[20,36,37]来减少网络参数。然而,由于递归的数量很大,计算成本仍然很高。我们工作的目标是正交的上述研究-我们的框架节省参数和计算通过学习一个政策作出决定,选择适当的而不是压缩一个现有的任务

Deep Reinforcement Learning.

强化学习是一种强大的工具,可以学习一个智能体做出连续的决策,以最大限度地积累奖励。RL早期的工作主要集中在机器人控制方面[27,38]。最近,传统的RL算法被整合到深度学习框架中,并成功地应用于各种领域,如游戏代理[26,30,33,34]和神经网络体系结构设计[3,45]。在计算机视觉领域,深度RL也引起了人们的关注

3. Learning a Restoration Toolchain

Problem Definition.

在给定畸变图像 I d i s I_{dis} Idis 的情况下,我们的目标是还原出接近地面真实图像 I g t I_{gt} Igt 的清晰图像 I r e s I_{res} Ires 。这个处理的过程可公式化为: I d i s = D ( I g t ) ; D = D n ◦ . . . ◦ D 1 , I_{dis} = D(I_{gt}) ; D = D_n◦ ...◦ D_1 , Idis=D(Igt);D=Dn...D1,

在这里 ◦ 表示组成函数,每个 D1 ,…,Dn 表示一种特定类型的失真。

与专注于单一类型失真的现有方法[6,8,31,37,41]相比,我们打算处理多种失真的混合(即n > 1)。

例如,最终的输出图像可能会受到失焦模糊、曝光噪声和JPEG压缩的顺序影响。在这种情况下,失真数n为3, D1、D2、D3 分别代表模糊、噪声和压缩。为了解决混合失真问题,我们建议使用一系列的恢复工具逐步恢复损坏的图像。

Challenges.

工具选择的任务是不平凡的,并提出了独特的挑战RL。:首先,恢复类型、级别和处理顺序的选择都会影响最终的性能。

在这里插入图片描述

  • 图2。不同的图像恢复工具链。我们在这里进行初步试验。给出两个扭曲的图像和相应的工具链©和(d),我们通过重新排列所选工具的顺序(用形状表示)或调整水平(用颜色表示)来构造其他工具链。恢复的结果表明,工具链的这种微小变化可能会导致非常不同的性能

图2显示了一个例子,其中图像被两种不同的变形组合损坏。使用合适的工具链,如图2 (c, d)所示,图像质量和峰值信噪比(PSNR)值依次得到改善。

然后我们稍微重新排列工具的顺序,如图2(b, e)或调整工具的恢复级别,如图2(a, f)。结果表明,一个小的变化会严重影响恢复性能。具体来说,使用不当的工具可能会导致不自然的输出,如图2(a)中的过度锐化和图2(f)中的模糊。

即使工具都选得很好,不合适的顺序也会降低性能(图2(b, e)).由于工具链的顺序对结果有很大的影响,在每一步选择使用哪一种工具就变得至关重要。

当工具被训练到特定的任务时,我们会遇到另一个问题,没有一个工具能够完美地处理“中间状态”,即经过几个步骤处理后的中间结果。由于大多数变形是不可逆的,因此恢复它们的混合物并不是简单地由相应的恢复体组成的。新的人工干预会加入到中间的状态中。例如,清除模糊操作也会增强噪声,导致下面的降噪器无法移除新引入的工件。这是我们任务所特有的挑战。

  1. 我们对这个顺序工具选择的问题视为马尔可夫决策过程(MDP),用深度学习的方法来解决。
  2. 我们提出了一个训练方案来联合改进agent和工具,使工具更了解agent观察到的中间状态。

框架如下:

Overview of RL-Restore.

所提出的框架旨在发现给定损坏输入图像的工具链。如图3所示,RL-Restore由两个部分组成:

  1. 包含各种图像恢复工具的工具箱
  2. 具有循环结构的代理,在每个步骤或早期停止动作中动态选择工具。

我们把工具选择过程看作一个强化的学习过程——在工具选择上做出一系列的决定,以最大化与重新存储的图像质量成比例的奖励。接下来,我们首先描述工具箱的似是而非的设置,然后解释代理的细节。

3.1. Toolbox

“工具箱”包含一组可应用于损坏图像的工具。我们的目标是设计一个强大和轻量级的工具箱,因此我们限制每个工具精通特定的任务。也就是说,每一种工具都只在一个狭窄的扭曲范围内进行训练。为了进一步降低总体复杂性,我们使用更小的网络来完成更容易的任务。为了我们的研究目的,我们准备了12个工具,如表1所示,每个工具都被指定处理一定程度的高斯模糊,高斯噪声或JPEG压缩。我们使用三层CNN(如[8])来处理轻微的失真,使用更深的八层CNN来处理严重的失真。请注意,这些工具不需要被限制来解决上述的扭曲。我们之所以做这些选择,是因为它们在图像恢复的文献中通常被考虑。在实践中,人们可以根据手头的任务来设计具有适当复杂性的工具。

在这里插入图片描述

  • 表1。工具箱里的工具。我们考虑三种类型的畸变和不同的退化程度。每个工具根据其要解决的失真程度,可以是一个3层CNN,也可以是一个8层CNN。

正如在第3节开始讨论的那样,有限的工具集并不能完美地处理出现在中间状态的新工件。
由此提出两种策略:

  1. 为了提高工具的鲁棒性,我们在所有的训练数据中添加了轻微的高斯噪声和JPEG压缩。
  2. 在对代理进行培训之后,所有工具都将在经过良好培训的工具链的基础上进行联合微调。

这样工具对agent任务的适应性更强,对中间状态的处理能力更强。我们将在第3.3节讨论培训步骤。第四节的实验验证了所提策略的有效性。

在这里插入图片描述

  • 图3。演示了我们的RL-Restore框架。在每一步t, agent f a g f_{ag} fag 观察当前状态 S t S_t St ,包括当前恢复的图像 I t I_t It 和输入值向量标识 v ~ t \widetilde{v}_t v t ,这是agent在上一步的输出。注意, I 1 I_1 I1 表示输入图像, v ~ 1 \widetilde{v}_1 v 1 是一个零向量。根据agent输出 v t v_t vt 的最大值,选择一个动作 a t a_t at ,使用相应的工具还原当前图像。在恢复过程 f r f_r fr 之后,对于新恢复的图像 I t + 1 I_{t+1} It+1 和值向量 v ~ t + 1 \widetilde{v}_{t+1} v t+1 = v t v_t vt , RL-Restore迭代地执行另一个恢复步骤,直到选择停止动作。

3.2. Agent

RL-Restore的处理流程如图3所示。给定一个输入图像,代理首先从工具箱中选择一个工具,并使用它来恢复该图像,然后根据前面的结果选择另一个工具,重复恢复过程,直到它决定停止。

我们将首先澄清一些术语,如行动、状态和奖励,然后进入代理结构和恢复过程的细节。

Action.

动作空间表示为 A ,是agent可以采取的所有可能动作的集合。在每个步骤 t ,一个动作 a t a_t at 被选择和应用到当前输入图像。每个操作表示工具箱中的一个工具,还有一个额外的操作表示停止。如果工具箱中有N个工具,那么A的基数是 N + 1。因此,输出 v t v_t vt 是一个代理的(N + 1)维向量,隐含了每个动作的值。一旦停止动作被选择,恢复过程将被终止,当前输入的图像将会得到最终的结果。

State.

状态包含代理可以观察到的信息。在我们的公式中,状态被表述为: S t = { I t , v ~ t } S_t = \{ I_t,\widetilde{v}_t \} St={It,v t},其中 I t I_t It 表示为当前的输入图像, v ~ t \widetilde{v}_t v t 是去的历史行为的向量。

在步骤一中, I 1 I1 I1 是输入图像, v ~ 1 \widetilde{v}_1 v 1 是零向量,环境为angent提供了足够的背景知识。

  1. 当前的输入图像 I t I_t It 非常重要,因为被选择的行动可以直接应用到这张图片中来获取更好的回复结果。
  2. 先前的行动向量 v ~ t \widetilde{v}_t v t 的信息是agent 在 t - 1 的步骤中输出值向量。例如 v ~ t = v t − 1 \widetilde{v}_t = v_{t-1} v t=vt1

对之前决策的了解可以帮助当前步骤中的操作选择。根据经验,这比只使用 I t I_t It 更有效。

Reward.

奖励驱动着agent的训练,因为它学习最大化累积奖励。为了最终得到满意的复原图像,需要学习一个好的策略。我们希望每一步都能提高图像质量,因此我们设计了阶梯式奖励,如下:

r t = P t + 1 − P t , ( 2 ) r_t = P_{t+1} - P_t ,\qquad\qquad\qquad (2) rt=Pt+1Pt,(2)

这里 r r r_r rr 是第 t 步的奖励函数, P t + 1 P_{t+1} Pt+1 代表了 I t + 1 I_{t+1} It+1 和 参考图像 I g t I_{gt} Igt 的PSNR(峰值信噪比)。 P t P_t Pt 代表了第 t 步的输入PSNR。累积奖励可以写成:
R = ∑ t = 1 T r t = P T + 1 − P 1 , R = \sum_{t=1}^{T} r_t = P_{T+1} - P_1 , R=t=1Trt=PT+1P1,
即恢复过程中总的PSNR增益,并将其最大化以达到最优增强。

请注意,可以灵活地使用其他图像质量指标(例如,感知损失[18],GAN loss[23])作为我们框架中的奖励。这一问题的调查已经超出了本文的研究重。

Structure.

在每一个步骤 t 中,agent 能够评估给定输入状态 S t S_t St 的每个action 的 value。这可以公式化为:

v t = f a g ( S t ; W a g ) , ( 3 ) v_t = f_{ag} (S_t;W_{ag}), \qquad\qquad\qquad(3) vt=fag(St;Wag),(3)

其中 f a g f_{ag} fag 代表了agent 的网络, W a g W_{ag} Wag 代表了其参数。
v t v_t vt 代表了 action 的 value 。

最大值的动作为 a t a_t at , 即 a t = = a r g m a x a v t , a a_t = =argmax_a v_{t,a} at==argmaxavt,a , 其中 v a , t v_{a,t} va,t 表示与动作a对应的值向量vt 的元素。

在图3中,agent 由三个模块组成。

  1. 第一个模块:特征提取器,是一个四层CNN,后面是一个全连接(fc)层,输出一个32维的特征。
  2. 第二个模块:一个热编码器 (one-hot)N + 1维输入和N维输出,保存先前选择的动作的信息。注意,输出比输入低一个维度,因为在前一个步骤中不能采用停止操作,因此我们只需删除最后一个维度。
    前两个模块的输出连接到第三个模块的输入,它是一个长短期记忆(LSTM)。LSTM不仅观察输入状态,而且还将历史状态存储在它的存储器中,它提供了恢复图像和动作的上下文信息。
  3. 最后,在LSTM之后再加上fc层,得到一个值向量vt,用于工具选择。

Restoration.

一旦根据 vt 的最大值等到一个动作 a t a_t at , 将对输入图像 I t I_t It 应用到相应的工具中可以得到一个新的恢复图像:

I t + 1 = f r ( I t , a t ; W r ) , ( 4 ) I_{t+1} = f_r(I_t,a_t;W_r),\qquad\qquad\qquad (4) It+1=fr(It,at;Wr),(4)
其中 f r f_r fr 代表了恢复函数, W r W_r Wr 代表了工具箱中工具选择的参数。

如果选择了停止操作,则 f r f_r fr 表示一个标识映射。

通过表示 I d i s I_{dis} Idis I r e s I_{res} Ires 分别为输入失真图像和最终恢复输出,恢复的整体过程可以表示为:

{ I 1 = I d i s I t + 1 = f ( I t ; W ) 1 ≤ t ≤ T ( 5 ) I r e s = I T + 1 , \left\{ \begin{aligned} I_1&= I_{dis} \\ I_{t+1}&= f(I_t;W) \qquad 1\leq t \leq T \qquad(5)\\ I_{res}& = I_{T+1}, \end{aligned} \right. I1It+1Ires=Idis=f(It;W)1tT(5)=IT+1,

{ I 1 = I d i s I t + 1 = f ( I t ; W ) 1 ≤ t ≤ T I r e s = I T + 1 \left\{\begin{array}{l} \mathbf{I}_{1}=\mathbf{I}_{d i s} \\ \mathbf{I}_{t+1}=f\left(\mathbf{I}_{t} ; W\right) \quad 1 \leq t \leq T \\ \mathbf{I}_{r e s}=\mathbf{I}_{T+1} \end{array}\right. I1=IdisIt+1=f(It;W)1tTIres=IT+1

其中 f = [ f a g ; f r ] ,    W = [ W a g ; W r ] 。 f = [f_{ag};f _r ],\;W = [W_{ag} ;W_r]。 f=[fag;fr],W=[Wag;Wr]T是选择停止动作时的步长。我们还设置了最大步骤 T m a x T_{max} Tmax,以防止过度恢复。当 t = T m a x t = T_{max} t=Tmax 且未选择停止动作时,我们将在当前步骤结束后终止恢复过程。换句话说,我们添加了一个约束条件: T ≤ T a m x T ≤ T_{amx} TTamx

3.3. Training

工具的训练遵循一个标准设置,均方误差(MSE) 1 2 ∣ ∣ y − h ( x ) ∣ ∣ 2 2 \frac12||y-h_{(x)}||^2_2 21yh(x)22 是最小化的。真实图像, 输入图像和工具分别定义为 y , x , h y,x ,h y,x,h。对于agent,由于我们没有一个关于选择正确动作的先验知识,所以训练是通过deep Q-learning[30]来解决的。在本文提出的框架中,vt 的每个元素都是 [30] 中定义的一个动作值,因此损失函数可以写成 L = ( y t − v t , a t ) 2 L = (y_t - v_{t,a_t})^2 L=(ytvt,at)2 其中:
在这里插入图片描述
并且 γ = 0.99 γ = 0.99 γ=0.99 是一个折扣因子。我们还使用了一个目标网络 f a g ′ f'_{ag} fag 来稳定训练,是 f a g f_{ag} fag 网络的一个克隆,并且它的参数在在训练中每经过 C 步更新一次。

在上面的公式中, v t + 1 , a ′ v_{t+1,a'} vt+1,a 是源于 f a g ′ f'_{ag} fag v t , a t v_{t,a_t} vt,at 是源于 f a g f_{ag} fag。在训练时,这些片段是从回放记忆中随机选择的,[12]中提出了两种更新策略,其中随机更新是指从每一episode的随机点进行更新,并进行固定数量的步骤,顺序更新表示所有的更新都从episode的开头开始,一直持续到结尾。在[12]中,两种更新策略具有相似的性能。因为我们的工具链不是太长,我们简单地采用顺序更新,其中每个训练序列包含一个完整的工具链。

Joint Training.

正如第3.1节所讨论的,没有一种工具能够完美地处理中间状态,在前面的恢复步骤中可能会引入新的和复杂的工件。为了解决这个问题,我们提出了一种联合训练算法,如算法1所示,以端到端的方式训练工具,使所有工具都可以学习处理中间状态。具体来说,对于批处理中的每一个工具链,将被扭曲的图像 I 1 I_1 I1 转发,得到一个恢复结果 I T + 1 I_{T+1} IT+1 。给定最终的MSE损失,梯度然后沿着相同的工具链向后传递。同时,将每个工具的梯度在一批内进行累积,最后用梯度的平均值来更新相应的工具。上面的更新过程重复地进行了几次迭代。

Implementation Details.

在我们的实现中,工具的训练类似于[19],所有的实验运行超过

80 epochs(3.2 × 105 迭代),batch size 为64。

初始的 learning rate = 0.1 ,它每20个epochs减少0.1倍、

在联合训练中,我们设置 M =64 , α = 0.001 在算法一中,分别为批大小和学习率。

联合训练运行 2 × 10 5 次迭代。

当训练agent时,我们使用了Adam 优化器,并且batch size 设置为32。

根据经验,最大步长 T m a x T_{max} Tmax 设置为3,重放存储器的大小选择为 5 × 105 。更新频率C = 2500,所有目标网络 f a g ′ f'_{ag} fag 每2500次从最新的agent 网络 f a g f_{ag} fag 复制一次。

在 5 × 105 次迭代中,学习率从 2.5 × 10-4 衰减到 2.5 × 10-5

在这里插入图片描述

4. Experiments

Datasets and Evaluation Metrics.

我们在DIV2K数据集[1]上进行了实验,这是最新的大规模和高质量的图像恢复数据集。

800张DIV2K训练图像分为两部分: 750张用于训练,50张用于测试。DIV2K验证图像用于验证。训练图像通过2、3和4的因子进行缩小来增强。然后这些图像被裁切进去63×63个子图像,形成我们的训练集和测试集,分别有249,344个子图像和3,584个子图像

我们采用混合变形进行agent的训练和测试。具体来说,一个序列的高斯模糊,高斯噪声和JPEG压缩被添加到训练图像的随机水平。高斯模糊和高斯噪声的标准差分布均匀分别为[0,5]和[0,50],而JPEG压缩质量在[10,100]。
在这里插入图片描述

  • 图4。不同程度的扭曲。

如图4所示,所有混合畸变被分为五组,从极轻微到极严重。我们抛弃了两个极端的案例,它们要么太容易,要么太难。对中度组进行训练和测试。为了进一步测试泛化能力,我们也对没有包含在训练数据中的轻度和重度组进行测试。

Comparsions.

我们将 RL-Restore 与 DnCNN[44] 和 VDSR[19] 进行比较,DnCNN[44] 和 VDSR[19] 是最先进的图像恢复和超分辨率模型,它们都能够处理多次退化。
在这里插入图片描述

  • 表2。基线和 RL-Restore 恢复的复杂性。

DnCNN 和 VDSR 与20个卷积层结构相似,DnCNN采用批处理归一化。他们的参数超过了 60 万。相比之下,RL-Restore(包括agent和所选工具)的复杂性只有DnCNN和VDSR的三分之一,总共19万个参数。当我们在63×63的输入图像上计算乘法次数时,可以观察到一个更大的差距。为了与 RL-Restore 进行公平的比较,我们进行了收缩 VDSR 从 20 到 15 层(每层 42 个过滤器)形成一个新的基线,命名为 VDSR-s ,它的复杂性与 RL-Restore 相似。遵循相同的训练策略[19,44],我们首先用agent训练集训练基线,然后用 agent 和 tools 训练集对模型进行微调,直到收敛。
在这里插入图片描述

  • 表3。DIV2K测试集的定量结果。

4.1. Quantitative Evaluation on Synthetic Dataset

表3给出了 RL-Restore 和基线在不同测试集上的定量结果。在轻度和中度的数据集上的结果表明,我们的方法明显优于VDSR-s,而与 DnCNN 和 VDSR 相当,这表明我们提出的 RL-Restore 可以达到与深度 CNN 相同的性能,但复杂度要低得多。 值得注意的是,在训练数据中未观察到失真的情况下,在严重的测试集上,RL-Restore分别超过了DnCNN和VDSR 0.2 dB和0.3 dB。这表明,我们的基于rl的方法在处理看不见的扭曲方面更加灵活,而固定的CNN更难对看不见的情况进行推广。可视化结果如图5所示。
在这里插入图片描述

  • 图5。在合成数据集上与基线进行定性比较。

为了检查RL-Restore的内部行为,我们分析了每一步的工具选择频率。结果如图6所示,其中x轴上的0-12代表表1中的12个工具,13为停止动作。
在这里插入图片描述

  • 图6。每一步所选择的工具选择比例。

从这三张图上可以看出,工具的选择是多样化的,所有工具的利用比例都不同。具体来说,第一步首选去模糊和去噪工具,而第二步则经常选择去噪和去JPEG工具。最后一步倾向于以很大的概率 47% 停止代理。有趣的是,当对看不见的数据进行测试时,在轻微测试集和严重测试集上,最后一步停止动作的比率分别为60%和38%,这表明更严重和更复杂的扭曲需要更长的工具链来恢复。

在实际案例中,图像总是被各种复杂的、混合的、具有未知退化核的失真所扭曲,这使得当前方法的修复任务变得极为困难。所提出的基于RL的方法 可能会对可能的解决办法有所启发。当实 世界失真(如:轻微的焦外模糊、曝光 噪声和JPEG伪影)与训练数据接近。所提出的RL-Restore可以很容易地推广到这些地方。问题,并且比单一的CNN模型表现更好。

在这里插入图片描述

  • 图7。真实世界图像的结果。

实例如图7所示,由智能手机采集的输入图像,结合不同的失真(如模糊、噪声、压缩)。我们直接将训练好的RL-Restore和VDSR应用在这些真实世界的图像上,而不需要在测试数据上进一步微调。很明显,我们的方法,得益于灵活的工具链,对于还原真实世界的图像是比较有效的。具体来说,图7(a,c)显示,RL-Restore可以成功地处理由曝光和压缩引起的严重伪影,而图7(b,d,e)则证明了 我们的方法能够恢复模糊和复杂的混合。噪声。

另外值得注意的是,当代理对恢复的质量有信心时,停止动作是由代理选择的(图7(c,d,e))。我们相信,所提出的框架有可能用更强大的恢复工具来处理更复杂的真实扭曲。

4.3. Ablation Studies

在本节中,我们将研究所提议的RL-Restore的不同设置,并对超参数的选择给出一些见解。为了更好地区分各个因素的有效性,我们在下面的所有实验中都排除了联合训练策略。

在这里插入图片描述

  • 表4。工具箱尺寸和工具链长度的烧蚀研究。

Toolbox Size and Toolchain Length.

工具箱的容量和恢复动作的数量对恢复性能起主导作用。我们交替改变工具链的长度和工具箱的大小。从表4中观察到,在当前的问题设置下,在N = 12和T max = 3的情况下,RL-Restore表现良好。更少的工具和更短的工具链会降低性能。更多的工具和更长的工具链可以达到相当的性能。我们将这一现象归因于学习更复杂的工具链的难度增加。值得指出的是 一个长度为2的工具链,其PSNR值可与 轻度测试组上的工具链更长,表明轻微的工具链会影响测试结果。失真需要较少的步骤来恢复。

Tools Training.

正如第3.1节所讨论的,我们为工具提出了两种训练策略,以消除中间状态的复杂工件

  • 在工具训练数据中添加轻微的噪音和压缩。
  • 与 agent 进行联合训练。
    在这里插入图片描述
  • Table 5. Ablation study on tools training.

控制实验如表5所示,其中“原始”设置代表基线,“+noise ”采用第一个策略,“+joint ”使用两者。很明显,在训练数据中加入噪声成功地提高了0.2 dB的PSNR,联合训练在所有测试集上进一步提高了0.2 dB,证明了两种训练策略的有效性。

Reward Funtion.

我们通过实验发现,奖励功能的选择对绩效有很大的影响。除了提出的基于PSNR的逐步奖励,我们还研究了其他的奖励功能:

  1. 逐步SSIM,其中奖励为每一步的SSIM收益;
  2. 最终PSNR,其中奖励是最后一步给出的最终PSNR增益
  3. 在[4]的最终结果是负的均方误差。

在这里插入图片描述

  • Table 6. Ablation study on reward functions.

我们根据不同的奖励自适应地调整学习速率。从表6中可以看出,在PSNR度量上表现最差的逐步SSIM似乎不是一个很好的奖励选择。最终的MSE在PSNR上稍好一些,但在SSIM上表现最差。最终的PSNR达到类似的性能,提出的逐步PSNR奖励。然而,我们并不认为PNSR是最好的奖励,我们也鼓励采用其他的评价方法进行进一步的比较。

Automatic Stopping.

在这里插入图片描述

  • Table 7. Ablation study on stopping action.

停止操作为 agent 提供了在对恢复的结果有信心时终止恢复过程的灵活性。这种灵活的停止机制避免了图像的过度恢复,节省了大量的计算量。为了证明它的有效性,我们比较了有或没有停止动作的结果。从表7中可以看出,去掉停止动作后,PSNR值在0.15 dB左右下降。我们观察到,在温和测试集上的差距比在其他测试集上大。这与我们的经验是一致的,如果代理没有及时停止,轻微的变形很容易过度恢复。

5. Conclusion

我们提出了一种新的基于强化学习的图像恢复方法。与大多数现有的基于深度学习的方法不同,在我们的方法中,一个agent被学习动态选择一个工具链来逐步恢复被复杂和混合扭曲损坏的图像。在合成图像和真实图像上的大量结果验证了所提方法的有效性。由于其固有的灵活性,所提出的框架可以应用于更有挑战性的恢复任务或其他低层次的视力问题,通过开发强大的工具和适当的奖励。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值