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=Bin(Enc_t(r_t-1)) \\ \hat{x}_t=Dec_t(bin_t)+\gamma \hat{x}_{t-1} \tag 1 \]

\[r_t=x-\hat{x}_t, \ \ r_0=x,\ \ \hat{x}_0=0 \tag 2 \]

其中Enc和Dec是迭代\(t\)的编码器和解码器,\(bin_t\)是二进制表示,\(\hat{x}_t\)是实际图像\(x\)的重建版本,\(\gamma =0\)\(One\ shot\ reconstruction\)

根据实际加权值和预测值之间的loss来进行每一次迭代训练。

\[L_1=\sum \limits_{i=1}^{n}|y_{true}-y_{predicted}| \tag 3 \]

在可变率框架的每次迭代时的总体损失为:

\[L_1=\beta \sum \limits_{t}|r_t| \tag 4 \]

2.1 Analysis Block

提出了一种基于空间信息的有效的空间自适应分析块。我们的分析编码器块的结构包含三个输入通道和64个输出通道。图层的内核大小为3,步幅为1。该分析块由卷积层、广义分裂归一化技术组成。每一步都从仿射卷积开始:

\[v^{(k)}_i(m,n)=\sum \limits_j(h_{k,ij}*u_j^{(k)})(m,n)+c_{k,i} \tag 5 \]

\(v_i^{(k)}(m,n)\)其中 \(i^{th}\)是输入的channel维度,\(k^{th}\)是第\(k\ step,(m,n)\)是空间位置。\(x\)是输入图像,由\(vector\ v_i^{(0)}(m,n)\)组成,输出是\(y\),由\(vector\ u_i^{(3)}(m,n)\)组成。\(*\)代表2D卷积:

\[w_i^{(k)}(m,n)=v_i^{(k)}(s_km,s_k,n) \tag 6 \]

其中,步骤k处的降采样因子用\(s_k\)表示。每一步之后都是GDN操作。现在,式(7),定义了GDN操作的所有两个阶段,其中\(\beta_{k,i}\)\(\gamma_{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\),等于该迭代的上层输出。每个单元格由两个卷积层组成;\(conv\_{in}_i\)用于输入特征向量\(x_k\)\(conv\_h_i\)用于隐藏层。

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

这里,\(x_k、c_{k-1}和h_{k-1}\)是来自卷积层的输入向量。\(C_k\)\(h_k\)是每次迭代的计算方法,定义为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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

posted @ 2022-04-05 19:50  为红颜  阅读(414)  评论(0编辑  收藏  举报