2021 Image Compression with Recurrent Neural Network and Generalized Divisive Normalization

概要

该文提出了两种有效的新编解码块:采用卷积层和Generalized Divisive Normalization(GDN)的分析(analysis)和合成块(synthesis)。该文的网络利用pixel RNN方法进行量化。此外,为了改进整个网络,我们使用LSTM细胞对残差图像进行编码,以减少不必要的信息。

1. 网络结构

下图给出了两块图像压缩的总体体系结构:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Akb1AFvj-1649159163141)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220311142243409.png)]

每个输入(image patch)首先被传递到分析(analysis)编码器块,以丰富图像表示。类似地,合成(synthesis)-解码器块在循环神经网络细胞的帮助下重建解码图像。

在端端框架中有三个模块带有两个新模块,即编码器网络、分析块、二值化器、解码器网络和合成块。

端到端框架的单次迭代在(1)中表示:
b t = B i n ( E n c t ( r t − 1 ) ) x ^ t = D e c t ( b i n t ) + γ x ^ t − 1 (1) b_t=Bin(Enc_t(r_t-1)) \\ \hat{x}_t=Dec_t(bin_t)+\gamma \hat{x}_{t-1} \tag 1 bt=Bin(Enct(rt1))x^t=Dect(bint)+γx^t1(1)

r t = x − x ^ t ,    r 0 = x ,    x ^ 0 = 0 (2) r_t=x-\hat{x}_t, \ \ r_0=x,\ \ \hat{x}_0=0 \tag 2 rt=xx^t,  r0=x,  x^0=0(2)

其中Enc和Dec是迭代 t t t的编码器和解码器, b i n t bin_t bint是二进制表示, x ^ t \hat{x}_t x^t是实际图像 x x x的重建版本, γ = 0 \gamma =0 γ=0 O n e   s h o t   r e c o n s t r u c t i o n One\ shot\ reconstruction One shot reconstruction

根据实际加权值和预测值之间的loss来进行每一次迭代训练。
L 1 = ∑ i = 1 n ∣ y t r u e − y p r e d i c t e d ∣ (3) L_1=\sum \limits_{i=1}^{n}|y_{true}-y_{predicted}| \tag 3 L1=i=1nytrueypredicted(3)
在可变率框架的每次迭代时的总体损失为:
L 1 = β ∑ t ∣ r t ∣ (4) L_1=\beta \sum \limits_{t}|r_t| \tag 4 L1=βtrt(4)

2.1 Analysis Block

提出了一种基于空间信息的有效的空间自适应分析块。我们的分析编码器块的结构包含三个输入通道和64个输出通道。图层的内核大小为3,步幅为1。该分析块由卷积层、广义分裂归一化技术组成。每一步都从仿射卷积开始:
v i ( k ) ( m , n ) = ∑ j ( h k , i j ∗ u j ( k ) ) ( m , n ) + c k , i (5) v^{(k)}_i(m,n)=\sum \limits_j(h_{k,ij}*u_j^{(k)})(m,n)+c_{k,i} \tag 5 vi(k)(m,n)=j(hk,ijuj(k))(m,n)+ck,i(5)
v i ( k ) ( m , n ) v_i^{(k)}(m,n) vi(k)(m,n)其中 i t h i^{th} ith是输入的channel维度, k t h k^{th} kth是第 k   s t e p , ( m , n ) k\ step,(m,n) k step(m,n)是空间位置。 x x x是输入图像,由 v e c t o r   v i ( 0 ) ( m , n ) vector\ v_i^{(0)}(m,n) vector vi(0)(m,n)组成,输出是 y y y,由 v e c t o r   u i ( 3 ) ( m , n ) vector\ u_i^{(3)}(m,n) vector ui(3)(m,n)组成。 ∗ * 代表2D卷积:
w i ( k ) ( m , n ) = v i ( k ) ( s k m , s k , n ) (6) w_i^{(k)}(m,n)=v_i^{(k)}(s_km,s_k,n) \tag 6 wi(k)(m,n)=vi(k)(skm,sk,n)(6)
其中,步骤k处的降采样因子用 s k s_k sk表示。每一步之后都是GDN操作。现在,式(7),定义了GDN操作的所有两个阶段,其中 β k , i \beta_{k,i} βk,i γ k , i j \gamma_{k,ij} γk,ij是归一化操作的两个尺度和偏差参数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMdtzrS9-1649159163142)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220311150431439.png)]

2.2 Synthesis Block

考虑到最终重建图像的问题,该图像可能包含多个伪影。在量化后的解码器侧提出了一种有效的合成块,以保持解码图像的信息和质量。如上图所示,通过几个卷积和逆GDN层来重建输入图像。与上述的分析块相同,解码器模块由两个阶段组成,其中所有的过程都被反转。经过iGDN操作后,特征向量进入RNN单元进行进一步重建,反卷积层形成最终的重建图像。每一步都从卷积层开始,然后进行逆GDN运算,计算如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2kMWCwU-1649159163143)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220311150645885.png)]

inverse GDN包括三个步骤,每一步都进行逆操作、降采样和inverse GDN。

2.3 RNN Cell

该图像压缩网络包括RNN个单元和一个像素深度方案。在每次迭代中,使用RNN单元从图像中提取特征。连续地记忆每个迭代过程中的残差状态,并重建图像。整个网络使用7个RNN单元,3个单元在编码器侧,4个单元在解码器侧。在每次迭代中,前一个单元格的估计结果都会传递到隐藏层以进行进一步的迭代。RNN单元格的简化视图如图所示:

RNN单元格的hidden layer和memory layer状态分别为ck−1和xk−1。第k次迭代的输入特征向量为 x k x_k xk,等于该迭代的上层输出。每个单元格由两个卷积层组成; c o n v _ i n i conv\_{in}_i conv_ini用于输入特征向量 x k x_k xk c o n v _ h i conv\_h_i conv_hi用于隐藏层。

在上述图中, x k x_k xk c k − 1 c_{k−1} ck1 h k − 1 h_{k−1} hk1是输入向量。其中, X X X表示元素级的乘法。类似地, + + +表示元素级加法 c k c_k ck h k h_k hk是这个单元格的输出向量和下一个单元格的输入向量。

这里, x k 、 c k − 1 和 h k − 1 x_k、c_{k-1}和h_{k-1} xkck1hk1是来自卷积层的输入向量。 C k C_k Ck h k h_k hk是每次迭代的计算方法,定义为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3bfTWsug-1649159163144)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220311151453451.png)]

2.4 Entropy Coding

我们通过在二值化器模块中使用不同的隐藏值来提高网络的性能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b835l5au-1649159163145)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220311151559928.png)]

上图探究了一下通道数及GDN block的存在对于PSNR的影响。在上述实验中,该文的网络中使用了Block+Conv(Enc64+Bin38)的参数。

3. 结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L9ZUsQPv-1649159163146)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220405194021175.png)]

4.总结

该文提出了在基于RNN的图像压缩网络中嵌入的基于卷积层和GDN层的两个有效块,即分析块和合成块。采用像素级RNN方法,利用线性卷积构造了一种具有一定隐藏值的像素级二值量化方案。此外,为了进一步提高网络的性能,同时利用了RNN Cells。这些单元格被放置在编码器和解码器的部分,以提高性能。

论文是有提供代码的:代码

Reference:

Image Compression with Recurrent Neural Network and Generalized Divisive Normalization

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值