【论文笔记】(VC)《Combining Progressive Rethinking and Collaborative Learning: ... for In-Loop filtering》

《Combining Progressive Rethinking and Collaborative Learning: A Deep Framework for In-Loop Filtering 》阅读笔记


question
1、how to model spatial and temporal redundancies more effectively in the coding scenario
(如何建模,有效的利用时空冗余)
2、what kinds of side information (sideinfo) can be inferred from the codecs to benefit in-loop filter models and how this side-info is injected
(什么边信息可以利用,以及如何输入滤波器模型)


proposed methods
对于第一个问题:

  • 设计了一个a deep network with both progressive rethinking and collaborative learning mechanisms to improve quality of the reconstructed intra-frames and inter-frames
    (渐进思考+协作学习机制)

对于第二个问题:

  • 提取了一个 coarse-to-fine 的划分map,构建I帧的边信息
  • 参考帧的warped features 用作P/B 帧的边信息

motivation

Representative Feature Refinement via Progressive Review

residual dense network(RDN) perform the progressive feature refinement.然而,每个块的结尾都会降维来实现避免模型参数的过度增加,这样会造成信息损失。尽管保留了大部分信息,但对于之后的学习来说,如果有过去的经验,会很有帮助。
因此,文中引入了一种块间连接,使模型能够通过回顾过去的历史记忆来表示学习,即“rethinking”
可是这样难道就不会增加模型参数了吗?为什么不可以在dense连接过程中降维呢,一边降维,一边加dense连接,这样不也是作者说的理由吗

Hierarchical Side-Info in the Coding Context

编码过程是逐块进行的,因此块的边界信息能够提供编码内容,引导网络从粗到细的恢复
因此,文章提取了MM-CU作为边信息来促进网络模型的滤波过程

*** Collaborative Learning Mechanism***

先前的工作使用时域信息,即使用来自参考帧的信息流提升当前帧的质量。然而却没有更新参考帧的特征状态。
因此,文中提出一种协同学习机制,利用渐进和协作的方式从参考帧(最近的相邻帧和峰值质量帧)得到有用的信息。(没懂。。)


网络设计

流程
1、首先将所有帧分为两类:高质量帧(H-frame),低质量帧(L-frame);H-frame:所有I帧和P/B帧的POC是4的倍数的帧;L-frame:不属于H-frame的帧
2、使用PR-CNN滤波H-frame,PR-RNN滤波L-frame
(对于H帧来说,参考帧质量很低,可能误导恢复过程,因此只使用帧内滤波)
在这里插入图片描述
3、对于L-frame来说,PR-RNN的输入分别为最近的H-frame的输出以及上一帧的输出作为额外输入。


PRN

下图作为一些表示的说明
在这里插入图片描述

Residual Dense Network
在这里插入图片描述
使用一系列的residual dense blocks(RDB)堆叠构建residua dense network(RDN)
(《Residual dense network for image super-resolution》)

modeling PR-CNN step by step
在这里插入图片描述
inter-block connections(图中红色的线)用来在块间传递更多的信息。它们使连续的块“重新思考”,即学习在没有维度压缩的情况下,根据先前的信息提取更具代表性的特征。同时将MM-CU输入网络引导恢复过程

Frame-Level Temporal Fusion
在这里插入图片描述
将warped参考帧作为输入,提供时域信息,然鹅,这样可能不能充分利用时域依赖

PR-RNN (Feature-Level Aggregation and Collaborative Learning)
在这里插入图片描述
使用协同学习机制来在特征级别双向利用时域信息。


Progressive Rethinking Block
在这里插入图片描述
F d − 1 F_{d-1} Fd1经过dense network后,使用1x1卷积降维,势必会造成信息损失。为了补偿损失,引入一条路径将上一个PRB的特征图 M d − 1 M_{d-1} Md1传到当前块,与 G d G_{d} Gd连接起来,即图中红色的线。从过去的经验中学习,而不仅仅利用当前信息。因此inter-block connection能够实现长期依赖,学习历史信息。

Progressive Rethinking Convolutional Neural Network
PR-CNN使用未滤波帧 x x x 和MM-CU作为输入, x x x 直接输入主分支,MM-CU输入SIFE后融入主分支。
在这里插入图片描述
PR-CNN分为3部分:Low-Level Feature Extractor (LFE), High-Level Feature Extractor (HFE) with MM-CU Fusion and Reconstruction Sub-Network

Low-Level Feature Extractor
LFE包含2个卷积层。。。没了,就2个卷积层。。。,提取低级特征用的得到 F 0 F_{0} F0

High-Level Feature Extractor with MM-CU Fusion

F 0 F_{0} F0 输入D个RDB中,提取高级特征。
经过初期一些RDBs后,将M-CU( Mean value of CU )的特征图以元素相加的方式加入主分支。

ReconstructionSub-network
经过D个RDB后,将所有特征图concat起来,使用1xx1卷积压缩。在再经过卷积处理后,使用global residual connection,最后使用3x3构建输出。


MM-CU

MM-CU Generation
计算每一次划分时的CU平均值,从粗到细的引导网络恢复。
在这里插入图片描述
MM-CU Fusion
在这里插入图片描述
Side-Info Feature Extractor(SUFE)
M-CU首先经过一层卷积,然后2个RDBs,加上residual connection,最后,使用使用一层卷积生成M-CU的特征图(好像和图示不太一样)

更粗糙的M-CU map显示更多的全局结构信息,更精细的M-CU map 显示更多的局部细节结构信息。


Progressive Rethinking Recurrent Neural Network (PR-RNN)

使用PR-RNN来利用协作学习的方式有效利用帧间信息。
在这里插入图片描述
不同于PR-CNN,PR-RNN使用3种帧作为输入:

  • 当前帧 x n x_n xn
  • 临近帧:与当前帧最接近的帧
  • 质量最高的帧:选择最近的H-frame

文中讲述这里为了逐帧使用滤波器,将在不同时间节点的3个输入作为3个队列,相应的有3个状态:State C C C or x C x_C xC,State N N N or x N x_N xN,State Q Q Q or x Q x_Q xQ;分别对应当前帧,临近帧,质量最高帧;
这里PR_RNN分为4部分:Flow Estimation, Low-Level Feature Extractor, Recurrent Module with collaborative Mechanism, and Reconstruction Sub-Network

Flow Estimation
因为这3帧没有对齐,因此需要估计他们的光流结果,应用warping operations ,文中采用SPyNet(Optical flow estimation using a spatial pyramid network)来产生光流图
f l o w i − > j = P S p y N e t ( x j , x i ) flow_{i->j}=P_{SpyNet}(x_j,x_i) flowi>j=PSpyNet(xj,xi)
i i i j j j代表任意2个状态;这里 P S p y N e t P_{SpyNet} PSpyNet的第一个参数和第二个参数分别代表目标帧和源帧。
这里会不会出现其他的损失,从而导致恢复变差?)

Low-level Feature Extractor
不仅仅warping所有帧到当前帧,还提取3个输入的浅层特征图,进一步使用协作学习机制warping到递归模型中。
低级特征提取如同PR-CNN。

Recurrent Module with Collaborative Learning
经过上面2个步骤后,输入的特征图经过 the Collaborative Learning Module (CLM) and then pass sequential PRBs 进一步更新状态。(细节在下面)

Reconstruction Sub-network
使用1x1的卷积降低通道数目后,加上一个global residual connection。最后使用3x3的卷积生成输出。


Collaborative Learning
在这里插入图片描述
在时间 t t t,3个状态的相应的特征图被更新如下:
在这里插入图片描述
F C t F^t_C FCt : 状态 C C C 在时间 t t t 的特征图,其他类似。
P R M ( . ) P_{RM}(.) PRM(.) 代表递归模型的映射

具体来说,
1、3个状态使用估计流被warped:
在这里插入图片描述
这里 i , j i,j i,j分别代表任意2个状态

2、,the warped feature maps 被连接起来,以便于相互交互和共享信息。
在这里插入图片描述
翻译文中一段话(
直观地说,协作学习可以理解为一个团队登山的过程。这三个状态具有不同的恢复质量,可以看作是一个登山队,其成员处于不同的海拔高度。通过分享信息,这三个状态彼此受益,就像队友们互相协作,共同攀登更高的目标一样。通过这个过程,三种状态可以达到更高的高度,即拥有更高的质量。)
(题外话:会不会互相拉低,导致越来越低呢)

3、 经过信息共享后,3个状态的特征使用1x1的卷积被压缩,然后经过几个PRBs进一步处理。这个流程如下所示:
在这里插入图片描述
到这里,所有状态被更新了。 F i t F^t_i Fit 被进一步融入下一个递归去提升质量。


我的问题

1、这里一个H-frame会用来协助提升几个L-frame的质量,这里对于H-frame来说,他的状态是共享的吗,还是每处理一个当前帧,H-frame就有一个状态?
2、H-frame和临近帧的状态会被永远记录下来吗,还是只是用于当前帧的状态更新,即恢复当前帧的时候,H-frame和临近帧同样会被恢复吗?
3、递归多少次,有限制吗,递归有没有可能导致质量变差?


应用细节

结构的大小。。。

训练
1、数据集: DIV2K [47] and Vimeo-90K [48]。划分64x64和128x128的块分别训练PR-CNN和PR-RNN,应用随机水平垂直翻转做数据增强。
2、Adam;学习率开始被设置为0.0001,逐渐降低。
3、将该模型放到DF和SAO之间。


结果
在这里插入图片描述
在这里插入图片描述
ablation study
Verification of Inter-Block Connection
Verification of MM-CU Maps
在这里插入图片描述
Verification of Collaborative Learning Mechanism
在这里插入图片描述


contributions
1、设计了一个基于残差学习和dense 连接的Progressive Rethinking Block ,额外加了一个inter-block连接提供补偿信息,进而可以提高帧内和帧间图像的滤波器建模能力
2、设计了一个Progressive Rethinking Recurrent Neural Network (PR-RNN) ,用来协作学习来有效利用时域冗余信息。从人类的协调能力受到启发,利用信息共享同步更新当前帧和参考帧的状态
3、提取了多尺度的CU平均值map(Multi-scale Mean value of CU (MM-CU) maps),在AI中,通过融合MM-CUmap构建了一个Progressive Rethinking Convolutional Neural Network (PR-CNN)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值