论文笔记之超分:FSTRN-resLR-SRFBN-RBPN

2014到2018的图片超分文章总结传送门

1. Fast Spatio-Temporal Residual Network for Video Super-Resolution(FSTRN 2019 CVPR)

1.1 网络结构

在这里插入图片描述网络分成了四部分:

  • LR video shallow feature extraction net(LFENet)
  • fast spatio-temporal residual blocks (FRBs)
  • LR feature fusion and upsampling SR net (LSRNet)
  • global residual learning (GRL) (包括了space residual learning (LRL) and cross-space residual learning (CRL))

分别用 I L R I_{LR} ILR I S R I_{SR} ISR表示FSTN的输入和输出,用 I H R I_{HR} IHR表示目标

1.1.1 LFENet

使用了一个C3D layer从LR视频中提取特征。
F 0 L = H L F E ( I L R ) F_0^L = H_{LFE}(I_{LR}) F0L=HLFE(ILR)
F 0 L F_0^L F0L是提取的feature-maps, H L F E H_{LFE} HLFE是C3D操作, F 0 L F_0^L F0L用于LR空间的GRL还有FRBs的输入

1.1.2 FRBs

对于第 d d d层FRBs,输出表示为
F d L = H F R B , d ( F d − 1 L ) = H F R B , d ( H F R B , d − 1 ( . . . ( H F R B , 1 ( F 0 L ) ) . . . ) ) F_d^L = H_{FRB,d}(F_{d-1}^L) = H_{FRB,d}(H_{FRB,d-1}(...(H_{FRB,1}(F_0^L))...)) FdL=HFRBd(Fd1L)=HFRB,d(HFRB,d1(...(HFRB,1(F0L))...))
同时LR space residual learning(LRL)也用于LR空间的特征学习,通过 H L R L H_{LRL} HLRL,一个组合函数:
F L R L L = H L R L ( F D L , F 0 L ) F_{LRL}^L = H_{LRL}(F_D^L, F_0^L) FLRLL=HLRL(FDL,F0L)

FRB模块将一个 k ∗ k ∗ k k * k *k kkk的卷积核改成一个 1 ∗ k ∗ k 1 * k * k 1kk k ∗ 1 ∗ 1 k * 1 * 1 k11 的卷积核。修改了激活函数。所以FRBs块可以写成
F d L = F d − 1 L + W d , t ( W d , s ( σ ( F d − 1 L ) ) ) F_d^L = F_{d - 1}^L + W_{d,t}(W_{d,s}(\sigma(F_{d-1}^L))) FdL=Fd1L+Wd,t(Wd,s(σ(Fd1L)))
σ \sigma σ表示PReLU激活函数, W d , s W_{d,s} Wd,s W d , t W_{d,t} Wd,t分别表示空间卷积和时间卷积,公式里没有加入偏差。

FRB
LRL通过PReLU函数,一个dropout层实现。
F L R L L = H L R L ( F D L , F 0 L ) = σ L ( F D L + F 0 L ) F_{LRL}^L = H_{LRL}(F_D^L, F_0^L) = \sigma_L(F_D^L + F_0^L) FLRLL=HLRL(FDL,F0L)=σL(FDL+F0L)

1.1.3 LSRNet

用于在LRL提取特征之后,在HR空间获取超分视频。使用了一个C3D卷积,之后使用deconvution,然后再用C3D做特征融合
F S R L = H L S R ( F L R L L ) F_{SR}^L = H_{LSR}(F_{LRL}^L) FSRL=HLSR(FLRLL)
再这一部分,还有cross-space residual learning(CRL),首先通过一个SR mapping从LR空间到HR空间,得到 F S R H , 最 终 网 络 输 出 为 F_{SR}^H,最终网络输出为 FSRH I S R = H F S T R N ( I L R ) = F S R L + F S R H I_{SR} = H_{FSTRN}(I_{LR}) = F_{SR}^L+F_{SR}^H ISR=HFSTRN(ILR)=FSRL+FSRH
F S R H = H C R L ( I L R ) F_{SR}^H = H_{CRL}(I_{LR}) FSRH=HCRL(ILR),这个映射操作将LR映射到HR空间,尽可能简单,可以是基于双线性、最近邻、双三次、面积和反卷积的插值。

1.1.4 Global residual learning

包括了LR space residual learning(LRL)和Cross-space residual learning(CRL)

1.2 Loss

使用 Charbonnier penalty function, ρ = x 2 + ϵ 2 \rho = \sqrt{x^2 + \epsilon^2} ρ=x2+ϵ2 做近似, ϵ = 1 e − 3 \epsilon = 1e -3 ϵ=1e3
L ( I S R , I H R ; θ ) = 1 N ∑ n = 1 N ρ ( I H R n − I S R n ) L(I_{SR},I_{HR};\theta) = \frac{1}{N}\sum_{n = 1}{N}\rho(I_{HR}^n - I_{SR}^n) L(ISR,IHR;θ)=N1n=1Nρ(IHRnISRn)

2.Residual Networks for Light Field Image Super-Resolution(resLF)

这篇文章比较难读懂,把自己理解的mark下,也可能和作者做的有偏差。
代码地址

总结:将一个光场中的图像分成不同的子像素偏移量的图像堆栈,然后输入不同的网络分支,从每个分支计算不同空间方向上的剩余信息,并进一步集成以补充视图图像的高频细节。
ResLF

2.1 Method

目标是从一个低像素的图片 L L r ( x , y , u , v ) L^{Lr}(x,y,u,v) LLr(x,y,u,v)重建出超分图片 L s r ( x , y , u , v ) L^{sr}(x, y, u, v) Lsr(x,y,u,v),其中 ( x , y ) (x, y) (x,y)是空间域, ( u , v ) (u, v) (u,v)是角度域。超分的图像最终是 ( r X , r Y , U , V ) (rX, rY, U, V) (rX,rY,U,V) r r r是放大倍数。将图片转换到YCbCr色彩空间并且只使用Y通道。

总体框架

不同的方向移动的像素可以根据disparity信息组合,产生更高分辨率的图片。本文水平,垂直和对角线方向的子像素移动。
将角度方向记为 t a n θ = v / u tan \theta = v/ u tanθ=v/u,提取图像周围的像素 I θ = 0 , I θ = 90 , I θ = 45 , I θ = 135 I_{\theta = 0}, I_{\theta = 90}, I_{\theta = 45}, I_{\theta = 135} Iθ=0,Iθ=90,Iθ=45,Iθ=135。设计了residual网络结构。如图所示网络有四个分支和一个带有几个residual blocks的全局部分。与其他视图图像相比,一个LF中的中心视图图像具有更多来自相关图像堆栈的可用子像素信息。首先设计网络提高中间视图图像的空间分辨率,每个图像栈image stack的图像数量一样,学习不同角度的LF图片,最终恢复图像。

网络设计

将训练数据记为 { L l r , I c h r } \{L^{lr}, I_c^{hr}\} {Llr,Ichr} I c h r I_c^{hr} Ichr是gt,中间图像的高像素表示。四个角度的图片栈可以计算得到。网络学习模式 H U ∗ V H_{U*V} HUV,根据输入的 U ∗ V U*V UV角度像素图预测中间图像的高像素图像 I c s r = H U ∗ V ( I θ = 90 , I θ = 45 , I θ = 135 I_c^{sr} = H_{U*V}(I_{\theta = 90}, I_{\theta = 45}, I_{\theta = 135} Icsr=HUV(Iθ=90,Iθ=45,Iθ=135
每个角度方向的图片栈作为一组数据在每个分支进行编码,然后隐式计算disparity information信息,找到每个视图图片准确的子像素平移,这里每个分支的第一层卷积提取图片栈的特征 F F E θ = H F E θ ( I θ l r ) F_{FE_{\theta}} = H_{FE_{\theta}}(I_{\theta}^{lr}) FFEθ=HFEθ(Iθlr)
提取到的特征作为后面的残差模块的输入,对于中心图片,用相似的卷积操作 F F E c = H F E c ( I c l r ) F_{FE_c} = H_{FE_c}(I_c^{lr}) FFEc=HFEc(Iclr)
假设每个分支有S个残差模块(S),第s个残差模块的输出,残差模块和EDSR用的相似。对每个模块,输入会直接加入输出
F R B θ = H R B θ , s ( F R B θ , s − 1 ) F_{RB_{\theta}} = H_{RB_{\theta}, s}(F_{RB_{\theta}, s-1}) FRBθ=HRBθ,s(FRBθ,s1)
提取了不同分支的特征后,通过全局方式整合特征信息并将他们送入之后丶残差学习模块。 F G R B , d = H G R B , d ( F G R B , d − 1 ) = H G R B , d ( . . . = H G R B , 1 ( F G R B , 0 ) . . . ) F_{GRB,d} = H_{GRB,d}(F_{GRB, d - 1}) = H_{GRB,d}(...= H_{GRB,1}(F_{GRB,0})...) FGRB,d=HGRB,d(FGRB,d1)=HGRB,d(...=HGRB,1(FGRB,0)...)
这里 F G R B , 0 = [ F R B 0 , S , F R B 9 0 , S , F R B 4 5 , S , F R B 1 35 , S ] F_{GRB,0} = [F_{RB_0,S}, F_{RB_90,S}, F_{RB_45,S}, F_{RB_135,S}] FGRB,0=[FRB0,S,FRB90,S,FRB45,S,FRB135,S]经过了S个RB模块后各个方向分支信息的整合。定义有 D D D个全局残差模块 H G R B , d ( ⋅ ) H_{GRB,d}(\cdot) HGRB,d()取提取各个方向的信息,全局残差模块和局部残差模块结构类似,但是是4倍大。然后全局特征送入卷积成 H G F ( ⋅ ) H_{GF}(\cdot) HGF(),然后加入之前提取的中间图像信息 F F E c F_{FE_c} FFEc。之后进行上采样 H U P ( ⋅ ) H_{UP}(\cdot) HUP()。使用的是ESPCN的方式。最终 I c s r = H U P ( H G F ( F G R B , D ) + F F E c ) I_c^{sr} = H_{UP}(H_{GF}(F_{GRB,D}) + F_{FE_c}) Icsr=HUP(HGF(FGRB,D)+FFEc)

Light Field Super-Resolution(光场超分辨率)

一个LF捕获场景下不同视角的图片有不同的特征,在一个网络对他们同时进行充分是比较困难的。目前有一些基于学习的LFSR方法通过复杂的网络重建LR图像通过将超分过程单独应用到每张图片,或者更具已有的超分视图下的LF计算新的图片。这种方式下,图片是通过不平衡的信息实现超分的,同时,不同视角下的对应信息也不容易保存,对于不同角度方向的超分,网络需要重新训练。对于每张单独的图片,本文通过组合周围图片信息取保持积核结构,提供更灵活的方式取获取不同角度分辨率下的LF图像。
在这里插入图片描述

对于不同的angular分辨率(就是对应上面的 U ∗ V U*V UV),使用不同的resLF网络。文章将LF 图片分成不同部分,对于不是在中间的图片,也看成是对应于其他部分的中间图片,比如对于一个 7 ∗ 7 7*7 77的分辨率,那么他隔壁的就是 5 ∗ 5 5*5 55,后面的就是 3 ∗ 3 3*3 33,对于边界处,进行补零,对于角点其实是 2 ∗ 2 2*2 22,垂直方向和水平方向大小又是不一样的。

2.2 Loss

L1 loss

3. Feedback Network for Image Super-Resolution(SRFBN 2019 CVPR)

代码地址
总结:文中使用了一个反馈机制feedback mechanism来做超分,high-level的信息通过top-down的方式通过反馈连接进行反馈,网络只需要少量的参数。每次的输出都会计算loss对网络进行调节,所使用的反馈模块可以通过上采样或下采样丰富high-level信息。并提供了密集的skip connections,对于循环神经网络的训练,越到后面所使用的目标gt越难(加的扰动越多),通过这个学习策略网络能够逐步学习复杂的退化模型。
FBN

3.1总体结构

在这里插入图片描述
SRFBN展开有 T T T个迭代,每次迭代可分成三部分:

  • an LR feature extraction block (LRFB)
  • a feedback block (FB)
  • a reconstruction block (RB)

全局的连接是一个绕过子网络的上采样图片。每一次子网络每一次迭代都恢复一个残差图像 I R e s t I_{Res}^t IRest。同时用 C o n v ( s , n ) Conv(s,n) Conv(s,n)表示一个有 n n n个大小为 s s s的卷积核,用 D e c o n v ( s , n ) Deconv(s,n) Deconv(s,n)表示反卷积。

LRFB C o n v ( 3 , 4 m ) Conv(3, 4m) Conv(3,4m) C o n v ( 3 , m ) Conv(3,m) Conv(3,m)组成。用 I L R I_{LR} ILR表示输入,则可以获得浅层的特征 F i n t = f L R F B ( I L R ) F_{in}^t = f_{LRFB}(I_LR) Fint=fLRFB(ILR)

FB: F i n t F_{in}^t Fint作为后续的FB模块输入,从 F i n 1 F_{in}^1 Fin1算起。所以对于第 t t t次迭代,
F o u t t = f F B ( F o u t t , F i n t ) F_{out}^t = f_{FB}(F_{out}^t, F_{in}^t) Foutt=fFB(Foutt,Fint)
在这里插入图片描述

RB:重建部分 D e c o n v ( k , m ) Deconv(k,m) Deconv(k,m)上采样LR特征 F o u t t F_{out}^t Foutt到HR,然后 C o n v ( 3 , c o u t ) Conv(3,c_{out}) Conv(3,cout)产生残差图片 I R e s t I_{Res}^t IRest
I R e s t = f R B ( F o u t t ) I_{Res}^t = f_{RB}(F_{out}^t) IRest=fRB(Foutt)

最后第 t t t次迭代的输出可以表示为 I S R t = I R e s t + f U P ( I L R ) I_{SR}^t = I_{Res}^t +f_{UP}(I_{LR}) ISRt=IRest+fUP(ILR)

3.2 Curriculum learning strategy

使用 L 1 L_1 L1 loss优化,对于复杂的退化模型, ( I H R 1 , I H R 2 , . . . , I H R T ) (I_{HR}^1, I_{HR}^2, ...,I_{HR}^T) (IHR1,IHR2,...,IHRT)基于任务的苦难程度排列,最终的loss写成:
L Θ = 1 T ∑ t = 1 T W t ∣ ∣ I H R t − I S R t ∣ ∣ 1 L_{\Theta} = \frac{1}{T}\sum_{t=1}^T W^t||I_{HR}^t - I_{SR}^t||_1 LΘ=T1t=1TWtIHRtISRt1
W t W_t Wt表示第t次迭代输出的价值,这里设为1。

4. Recurrent Back-Projection Network for Video Super-Resolution(RBPN VSR)

根据保存时序信息的方式,deep VSR可以分成三种方式:

  • Temporal Concatenation:这种方式不能表示序列上多个运动状态因为输入帧被连接在一起。
  • Temporal Aggregation:图(b),这种方法的全局优化比较难因为基本上仍然连接许多输入帧。
  • RNN
    在这里插入图片描述

4.1 Recurrent Back-Projection Networks

RBPN
问题描述:
记第 I I I帧低像素帧的大小为$ ( M l ∗ N l ) (M^l*N^l) (MlNl),输入是 n + 1 n+1 n+1 { I t − n , . . . , I t − 1 , I t } \{I_{t-n},...,I_{t-1}, I_t\} {Itn,...,It1,It},这里 I t I_t It是目标帧。目标是对第 t t t帧进行超分得到 ( M h ∗ N h ) (M^h * N^h) (MhNh),其中 M l < M h , N l < N h M^l < M^h, N^l<N^h Ml<Mh,Nl<Nh
网络结果可以分成三部分:

  • initial feature extraction
  • multiple projections
  • reconstruction
initial feature extraction

在投影模块之前,先对 I t I_t It提取特征得到 L t L_t Lt,对于邻近的帧 I t − k , k ∈ [ n ] I_{t-k}, k\in[n] Itk,k[n],先计算密集运动流 F t − k F_{t-k} Ftk(每个像素2D向量,怎样得到这个F),讲这个 F t − k F_{t-k} Ftk放在 I t I_{t} It I t − k I_{t-k} Itk之间。运动流可以让投影模块提取到 I t I_t It I t − k I_{t-k} Itk之间丢失的的信息。这个叠加的8通道“图像”被映射到相邻的特征张量 M t − k M_{t−k} Mtk

Multiple Projections

通过结合SISR和MISR方法提取目标帧丢失的细节。产生HR特征,这个阶段输入 L t − k − 1 L_{t-k-1} Ltk1 M t − k M_{t-k} Mtk,输出HR特征 H t − k H_{t-k} Htk

在这里插入图片描述
在RBPN中,mutiple projection使用的是一个循环链,这个循环包括了encoder-decoder模块。模块有两个输入,产生两个输出如上图所示。encoder产生从投影到特定帧的预测HR特征的隐藏状态。解码器对隐藏层解码作为下个编码器的输入。encoder-decoder具体如下。
在这里插入图片描述例子
在这里插入图片描述

Reconstruction

通过将HR特征concate起来,输入到重建模块 S R t = f r e c ( [ H t − 1 , H T − 2 , . . . , H t − n ] ) SR_t = f_{rec}([H_{t-1},H_{T-2},...,H_{t-n}]) SRt=frec([Ht1,HT2,...,Htn]),网络中 f r e c f_{rec} frec只是一个单一的卷积层。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值