基于NN的编码:Dense Residual Convolutional Neural Network based In-Loop Filter[DRNLF](Tencent)

Dense Residual Convolutional Neural Network based In-Loop Filter

DRNLF是由腾讯和武汉大学合作提出的,基于神经网络的环路滤波,作为DF和SAO之间的附加滤波器,

DRNLF最早是在JVET-K0391提案中提出,之后并不断改进,本文总结该滤波器的演进过程。

JVET-K0391

A.Dense Residual Unit(DRU)

ResNet中的残差学习可以有效地解决梯度消失问题,并有助于深层网络的训练。DenseNet中的密集快捷方式鼓励功能重用,并促进信息和梯度的流动。本文结合ResNet和DenseNet的优点,设计了一种称为dense residual unit(DRU)的块结构,专门用于滤波任务,ResNet的残差块和DRU结构的比较如下图所示。

DRU由一个1x1的卷积层(作为bottleneck layer,用来节省计算资源和减少网络参数)、两个卷积层3x3和它们之间的一个激活函数(ReLU)组成。此外,在DRU中有两条捷径。内部捷径通过将1x1的卷积层的输出与最后一个卷积层的输出相加来实现残差学习。外部捷径直接将原始输入传递给下一个单元,通过该捷径可以使后续单元从从先前的输入中探索新的特征。作为DRU的输入x,DRU的输出可以表示为

其中H(·)表示级联操作,g(·)表示1x1的卷积层,f(·)表示残差学习。如图所示,在DRU中,批量归一化(BN)层被移除,因为它可能导致丢失对图像恢复有价值的低层特征。残差块中原始值跳过连接后的激活层也被移除,以鼓励信息流动。

B. Network Architecture

DRN的整体架构如下图所示。网络主要由一系列具有3x3卷积层的DRU组成。为了利用图像通道之间的相关性,提出的DRN以RGB图像作为输入。除了最后一个卷积层输出为3通道之外,其他卷积层生成相同数量的特征映射(表示为M)。DRU可以通过捷径将其输入直接传播到后续单元。通过网络中的级联DRU,每个DRU可以通过密集的捷径接收来自所有前面单元的多级特征。将1x1卷积层放在每个DRU单元的前面作为瓶颈层,融合这些多级特征,同时节省计算资源。全局标识跳过连接进一步促进了浅层特征的流动。在网络的最后一层加入两个3x3卷积层,自适应地融合前面的特征图,生成最终的重建图像。注意,1x1卷积层不用于第一个DRU单元。

C.Proposed Decoding Scheme

本文所提出的DRNLF作为DF和SAO之间的附加滤波器被引入VTM中,如下图所示。重建帧首先经过DF滤波,然后再经过DRN处理。然后采用SAO自适应地进一步减少DRN输出中的伪影。在本文中,针对不同的Qp单独训练不同的模型。在环路滤波过程中,根据压缩帧的QP值选择最优的DRN模型。

亮度分量和色度分量均可用使用训练好的DRN模型,并以块级为单位进行RDO决策要不要使用DRN滤波,并将标志位通过比特流传给解码端。

D. Simulation Results

本文使用DIV2K数据集[2]对所提出的网络进行训练和验证。它的训练集中有800个图像,验证集中有100个图像。模型以16个小批量(min-batch)进行训练。学习率初始化为10^{-4},每次小批量更新时学习率除以一半。在ALL INTRA配置下,通过使用不同的Qp压缩高质量图像来生成重建图像。具体地,使用22、27、32和37的Qp。该网络是在从训练样本中随机抽取的192x192的小patch上训练的。模型训练采用均方误差(MSE)作为损失函数。用X表示有压缩伪影的图像,Y表示相应的高质量图像,\theta表示所提出的DRN的参数。训练的目标是估计使以下MSE损失最小化:

将训练好的模型集成在VTM1.1中。注意本文中使用的参数N和M分别为8和64.

JVET-L0242

在本提案中,对DRU单元和DRN网络结构进行许多改进,所提出改进后的DRU和DRN如下图所示。

与上一提案相比,本提案主要包含五个方面的改进:

  1. 删除了外部的3x3卷积层,使得网络训练时性能稍好,速度更快 
  2. 将归一化的QP Map与重建帧级联起来作为DRN的输入,使得不同的QP只需要一个模型
  3. 在YUV颜色空间的数据集上训练网络,设计一个损失函数来平衡不同分量之间的编码增益
  4. 为了降低网络的计算开销,将DRU数从8个减少到4个,卷积核数从64个减少到32个
  5. 在每个DRU中,3x3传统卷积层被3x3深度可分离卷积(DSC)层取代

注意:输入是三通道的,意味着YUV分量是同样大小的,对于色度分量,对其进行上采样和亮度分量的尺寸对齐。

将训练好的网络集成在VTM中,如下图所示,将DRNLF放在DBF之后,SAO和ALF之前。我们对三个颜色分量上的每个CU块应用DRNLF与不应用DRNLF的RD Cost进行比较,以分别决定是否将DRNLF应用于每个块的相应分量。为每个CTU发信号通知三个附加标志,以分别在三个分量上指示DRNLF的开/关。该滤波器适用于帧内和帧间图像。

在训练阶段,利用DIV2K数据集为的网络生成训练集和验证集。DIV2K数据集中的图像在压缩前从RGB颜色空间转换到YUV颜色空间。图像由VTM 4.0 压缩(ALL INTRA配置)。量化参数(QP)值设置为22、27、32和37。压缩图像及其对应的归一化QP Map被用作网络的输入。压缩前的图像被用作ground-truth。L1损失用作训练的损失函数。使用Adam优化器。为了平衡不同分量之间的编码增益,我们将Y、Cb、Cr的权重分别设置为10、1、1。应用了300个训epoch。对于每个epoch,从图像中随机提取8个大小为64×64的小块来生成训练样本。学习速率初始化为5\times 10^{-4},每50个周期减半。对于计算效率和性能之间的权衡,N设置为4,M设置为32。

实验性能如下表所示:

为了比较不同网络参数的性能,将每个测试的网络都集成到VTM-2.0.1中进行比较。如表二和表三所示,N和M分别表示DRU数和特征图,T表示训练数据的颜色格式,W表示损失函数中Y、U、V的权重比,S表示是否去掉外层的3 × 3卷积层,DSC表示是否应用3×3 DSC层代替DRU的传统卷积层。

实验结果如下所示:

如表二所示,Test 4显示了在相同的网络结构和相同数量的参数下,Y分量的最佳编码效率。因此,本文中的网络采用了损失函数权重比为10:1:1的YUV训练网络,以平衡不同分量之间的编码增益。

如表三所示,Test 10采用了K0391中提出的网络,Test 9采用了本文提出的网络。参数比率基于Test 5的模型参数。Test 5中的网络采用了刚才描述的前三个改进,Test 10和Test 5之间的比较表明,简化的网络优于具有相同参数的前一个网络。考虑到编码效率和网络复杂性之间的权衡,基于表三中的前四个测试结果,明显的网络复杂性降低引入了可接受的编码增益降低。因此,本文采用浅层模型,对应于提到的第四种改进。此外,Test 8和Test 9的结果验证了DSC卷积层在节省计算资源方面的性能。因此,我们采用了描述的最后一个改进。

JVET-M0508

将L0242中的网络集成到了VTM3.0,并测试相应的性能

JVET-N0254

将L0242中的网络集成到了VTM4.0,并测试相应的性能

JVET-O0101

将L0242中的网络集成到了VTM5.0,并做了四组测试,如下表所示:

Test #

Test Part

Description

CE13-2.5a

bit-depth

32-bit(float) weights

CE13-2.5b

8-bit(int) weights

CE13-2.7a

generalization capability (QP)

CTC QP for training, CTC QP – 5 for testing

CE13-2.7b

CTC QP for training, CTC QP + 5 for testing

JVET-T0057

仍是基于O0101中的DRN结构的网络,通过修剪(pruning)减少DRNLF的计算

卷积神经网络的计算与神经网络每个卷积层的4D权重张量W[n][m][h][w]的大小有关,其中n是输出滤波器(filter)的个数,m是输入通道(channel)的个数,h×w是二维卷积核的大小。卷积层的计算可以通过将W中的一些系数归零来减少,从而减少乘加运算的次数。这种将W中的系数归零的方法称为神经网络压缩中的剪枝(pruning)。在本文中,将DRNLF做pruning来研究编码效率和剪枝的影响。这个贡献报告了DRNNLF将输出filters器的数量减少25%的结果。

如图3A所示,4D权重张量W可以展开为二维数组,其中2D数组中的每个元素是由h×w的2D卷积核的序列化滤波器系数组成的1D数组。在图3A中,2D阵列的列对应于输入通道。2D数组的行对应于输出filters。这一贡献考虑了通过对图3A中W中的系数进行剪枝,将图3B中描述的行的25%归零。因此,乘法加法的数目和神经网络参数的大小都可以减少25%。。

测试性能如下所示(VTM10.0)

 

Random Access Over VTM-10.0

BD-rate (Y)

BD-rate (U)

BD-rate (V)

Encoding Time (CPU)

Decoding Time (CPU)

Encoding Time (GPU)

Decoding Time (GPU)

No Pruning

-0.96%

-3.88%

-3.82%

105%

3334%

25% Filter Pruning

-0.79%

-3.70%

-2.82%

105%

3244%

 

Low delay B Over VTM-10.0

BD-rate (Y)

BD-rate (U)

BD-rate (V)

Encoding Time (CPU)

Decoding Time (CPU)

Encoding Time (GPU)

Decoding Time (GPU)

Overall

-0.77%

-4.88%

-4.64%

107%

3904%

25% Filter Pruning

-0.64%

-4.58%

-4.17%

106%

3848%

 

Low delay P Over VTM-10.0

BD-rate (Y)

BD-rate (U)

BD-rate (V)

Encoding Time (CPU)

Decoding Time (CPU)

Encoding Time (GPU)

Decoding Time (GPU)

Overall

-0.81%

-5.06%

-5.12%

110%

4370%

25% Filter Pruning

-0.65%

-4.95%

-4.49%

109%

4157%

 (Optional)

All Intra Over VTM-10.0

BD-rate (Y)

BD-rate (U)

BD-rate (V)

Encoding Time (CPU)

Decoding Time (CPU)

Encoding Time (GPU)

Decoding Time (GPU)

Overall

-1.31%

-2.69%

-3.38%

108%

3431%

25% Filter Pruning

-1.07%

-2.79%

-2.74%

108%

3418%

JVET-T0069

在本提案中,对DRU单元进行了进一步的改进,如下图所示,在3x3的DSC后面添加了SE Block,这是一种通道注意力机制,针对每个通道产生一个0-1的伸缩因子,从而可以筛选重要的特征图。

所提出的网络的整体架构如下图所示。该网络主要由8个Residual Unit 组成。除了最后一个卷积层为3通道输出外,其他卷积层生成相同数量的特征映射(表示为M=64)。最后在网络的最后一部分增加两个SE Block和一个3×3卷积层,自适应融合前一个特征映射,生成最终的重建图像。注意,第一单元中未使用1x1卷积层。全局标识跳过连接进一步促进了浅层特征的流动。

网络的训练采用L1损失和SSIM作为不同权重(W_{1}W_{2})的损失函数,L^{o }(Θ)更重视PSNR等客观指标,采用L^{s }(Θ)的训练阶段优先考虑SSIM的性能。

其中,Θ表示建议网络的参数,Y_{i}表示压缩图像块X_{i}的原始值。

如下图所示,所提出的CNNLF作为去块滤波器(DF)和采样自适应偏移(SAO)之间的附加滤波器被引入VTM。该网络首先对重建帧进行DF滤波,然后对其进行处理,利用SAO算法进一步减少网络输出中的伪影。

在本文中,仅针对不同的QP训练一个模型。在环路滤波过程中,基于块级率失真优化(RDO),给出了是否采用该滤波器的决策。为了在亮度和色度分量上用信号表示所提出的滤波器的使用,在比特流中分别用信号表示附加标志。

JVET-U0060

本提案测试了T-0057提案中的DRU单元分别使用深度可分离卷积和常规卷积的性能和计算复杂度

DSC

RC

Y-PSNR

U-PSNR

V-PSNR

Y-PSNR

U-PSNR

V-PSNR

Random access Main10

-0.99%

-3.78%

-3.79%

-1.28%

-5.79%

-5.87%

Low delay B Main10

-0.81%

-5.60%

-5.54%

-1.11%

-8.55%

-8.29%

Low delay P Main10

-0.87%

-4.72%

-5.02%

-1.23%

-7.85%

-7.84%

All Intra Main10

-1.28%

-2.82%

-3.57%

-1.57%

-4.49%

-5.36%

Average

-0.99%

-4.23%

-4.48%

-1.30%

-6.67%

-6.84%

DSC

RC

EncT

DecT

bit DIFF

EncT

DecT

bit DIFF

Random access Main10

106%

3471%

0.17%

107%

4379%

0.19%

Low delay B Main10

107%

4056%

0.24%

108%

5233%

0.29%

Low delay P Main10

110%

4426%

0.28%

112%

5578%

0.32%

All Intra Main10

107%

3393%

0.10%

109%

4135%

0.11%

Average

108%

3837%

0.20%

109%

4831%

0.23%

JVET-U0061

在本文中,从JVET-U0060向左图所示的预处理单元(输入网络前对UV分量上采样)添加了一个clip步骤,以获得右图中的预处理单元。Clip的目的是提高神经网络训练和推理的效果。

 JVET-W0062

该提案测试了使用MS-SSIM和L1 Loss分别作为损失函数对性能的影响,Test1和Test2的损失函数分别如下所示:

总的来说,在测试的时候,原方案做了如下改动:

  1. 损失函数:L1 loss和MS-SSIM;
  2. RDO:J=R+λ_new*MS-SSIM
  3. SAO 和 ALF 被禁用

考虑到在 JVET-U0074 中基于 NN 的环内滤波为 {DBF, NN, SAO, ALF},在所有测试中禁用 SAO 和 ALF,以避免 SAO 和 ALF 对 NN 结果造成不必要的影响,并且 公平地比较 L1 和 MS-SSIM 模型的结果。

Test1:(Trained with MS-SSIM)

All Intra Main10

BD-rate Over VTM-10.0

 

Y-PSNR

U-PSNR

V-PSNR

Y-MSIM

U-MSIM

V-MSIM

EncT

DecT

bit DIFF

Class A1

-3.31%

-0.91%

1.28%

-5.37%

-5.83%

-4.20%

225%

43858%

0%

Class A2

-4.30%

-9.16%

-10.89%

-4.09%

-10.27%

-8.54%

155%

34511%

0%

Class B

-2.92%

-8.71%

-3.96%

-2.95%

-9.52%

-7.52%

140%

31723%

0%

Class C

-5.13%

-10.23%

-8.96%

-3.68%

-9.96%

-9.20%

121%

20619%

0%

Class E

-6.22%

0.26%

-0.95%

-5.65%

-7.65%

-4.65%

149%

34642%

0%

Overall

-4.26%

-6.33%

-4.85%

-4.16%

-8.82%

-7.03%

151%

31312%

0%

Class D

-5.00%

-9.78%

-11.37%

-3.28%

-10.66%

-11.96%

117%

16942%

0%

 Test2: (Trained with L1)

All Intra Main10

BD-rate Over VTM-10.0

 

Y-PSNR

U-PSNR

V-PSNR

Y-MSIM

U-MSIM

V-MSIM

EncT

DecT

bit DIFF

Class A1

-4.30%

-8.98%

-10.15%

-3.79%

-11.27%

-10.33%

196%

38514%

0%

Class A2

-5.82%

-15.10%

-17.17%

-4.47%

-14.37%

-12.99%

148%

33133%

0%

Class B

-4.84%

-14.60%

-12.41%

-3.03%

-13.53%

-11.88%

135%

31796%

0%

Class C

-6.34%

-14.26%

-13.27%

-3.43%

-13.27%

-12.50%

118%

19446%

0%

Class E

-8.03%

-9.64%

-9.20%

-6.23%

-11.39%

-10.52%

142%

36453%

0%

Overall

-5.78%

-12.85%

-12.48%

-4.02%

-12.88%

-11.72%

143%

30316%

0%

Class D

-6.21%

-12.91%

-15.77%

-2.94%

-12.72%

-15.05%

117%

17029%

0%

结论:在相同的网络结构和测试条件下,基于 MS-SSIM 的训练模型在保持主观质量方面具有更好的性能(通过 MS-SSIM 评估),而 L1 模型具有 在客观质量上有更好的表现。 

JVET-W0151

EE1:使用深度可分离卷积和常规卷积的基于神经网络的环路滤波器:

U0060/U0061提出的密集残差卷积神经网络的环路滤波器(DRNLF)如下图所示,DRNLF用在去块滤波和SAO之间。

 DRNLF 包括一个 QP Map Quantizer单元,一个预处理单元,一个主处理单元和一个后处理单元,如下图所示。

 在JVET-U0061[5]中,在JVET-U0060的图3所示的Pre-Processing单元中添加了裁剪步骤,得到图4的Pre-Procssing单元。 裁剪旨在改进神经网络的训练和推理过程中的结果。

 该提案主要是测试了上述滤波器以VTM-11.0+V0056为Anchor的性能(启用 MTCF)

Random access

BD-rate Over VTM-11.0+V0056

Y-PSNR

U-PSNR

V-PSNR

Y-MSIM

U-MSIM

V-MSIM

EncT

DecT

Class A1

-1.78%

-3.37%

-3.78%

-3.68%

-3.71%

-4.22%

108%

4396%

Class A2

-1.13%

-4.34%

-2.89%

-0.75%

-3.51%

-1.72%

107%

2872%

Class B

-0.80%

-5.46%

-3.76%

-0.45%

-5.16%

-2.86%

107%

2547%

Class C

-1.03%

-5.81%

-4.44%

-0.65%

-5.56%

-3.93%

105%

3742%

Class E

Overall

-1.12%

-4.91%

-3.77%

-1.21%

-4.65%

-3.19%

107%

3224%

Class D

-1.41%

-4.12%

-4.51%

-0.53%

-4.69%

-4.64%

105%

2441%

Class F

-0.42%

-2.02%

-2.18%

-0.22%

-2.58%

-2.58%

111%

1628%

All Intra

BD-rate Over VTM-11.0+V0056

Y-PSNR

U-PSNR

V-PSNR

Y-MSIM

U-MSIM

V-MSIM

EncT

DecT

Class A1

-1.41%

-3.07%

-3.63%

-2.98%

-3.55%

-4.20%

114%

3704%

Class A2

-1.34%

-3.81%

-2.97%

-1.09%

-3.21%

-1.87%

108%

2807%

Class B

-1.04%

-4.85%

-4.27%

-0.75%

-4.98%

-3.63%

106%

2888%

Class C

-2.04%

-6.53%

-5.57%

-1.34%

-6.22%

-5.43%

103%

3380%

Class E

-2.45%

-3.18%

-3.57%

-1.51%

-2.72%

-2.40%

105%

5121%

Overall

-1.61%

-4.48%

-4.12%

-1.44%

-4.35%

-3.63%

106%

3413%

Class D

-2.49%

-4.82%

-5.81%

-1.31%

-5.08%

-5.99%

103%

3064%

Class F

-0.94%

-2.58%

-2.49%

-0.65%

-3.04%

-2.95%

103%

2468%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值