论文精读(一种端到端的基于卷积神经网络的图像压缩框架)

An End-to-End Compression Framework Based on Convolutional Neural Networks

论文链接:https://arxiv.org/pdf/1708.00838.pdf

一、引言

    这周我主要在学习图像压缩方面的知识,主要是经典的图像压缩理论。包括图像冗余类型,图像压缩的编码解码部分,经典的图像压缩方法。

    接下来谈一谈深度学习在图像压缩上的应用。

    卷积神经网络在计算机视觉领域获得了巨大的成功,尤其是在高层的的视觉应用,例如识别和理解。但是在视觉的低层领域的应用是较少的,例如图像的压缩,这篇论文提出了一个基于卷积神经网络的对图像压缩方法。

 

预备知识:

  1. compact representation,紧凑表示,这个词跟稀疏表示的意义应该是相同的(sprase representation)。对图像进行压缩,就是寻找图像的紧凑表示。

  2. compression framework,压缩框架,指当下通用的国际压缩标准,例如JPEG,PNG,BMP等,其中JPEG是有损压缩,PNG是无损压缩,BMP存放的是图像的原始信息,没有对图像进行压缩。

  3. Convolution Neural Network,卷积神经网络

 

文章亮点:

  1. 实现了深度学习在图像压缩上的应用,且压缩效果达到了state of art;

  2. 提出的压缩网络较新颖,一共有两个CNN组成。ComCNN对图像进行提取紧凑表示,再使用标准编码器对紧凑表达进行编码,RecCNN对解码结果进行图像超分辨率重建。

    论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第1张图片

  3. 提出一种解决压缩标准中的量化函数导致的梯度无法反向传播的解决方法。

 

模型解释:

  1. ComCNN compact CNN 学习图像的紧凑表示【注重图像的encode方面】

    论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第2张图片

    1. 第一层有64个3×3×c的卷积核,c是图像通道数量,生成64通道的特征图,然后跟上一个Relu非线性激活;

    2. 第二层有64个3×3×64的卷积核,用来巩固特征图并下采样,下采样通过设置步长为2实现,然后跟上一个BN加上Relu激活函数;

    3. 第三层有c个3×3×64的卷积核,用来建立紧密的representation。

    4. 讨论环节:为什么可以用卷积神经网络对图像进行提取紧凑表示?

    5. 个人解析:CNN中的Convolution kernel 实际上是一个filter,每个kernel都过滤了相应的表达模式。例如颜色,纹理,边,角。这些简单的模式进行叠加可以组成,可以通过Conv+ReLU来观察图像中对应模式的有无情况。

  2. Channel 标准编码模式,这篇论文用的是JPEG编码模式,对紧凑表达再进行编码压缩。

    1. 讨论环节:为什么图像经过紧凑表达了还可以进行图像压缩。

    2. 个人解析:举个例子:下面的图是衣服有256条横线组成的图像,每一条线的像素相同,线与线之间的像素各不相同

      论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第3张图片

      对于这幅图像进行紧凑表达,如果Kernel提取了这幅图像的特征,那么经过紧凑表达之后结果也一定是呈线条状的,因为在卷积扫描的方向上,卷积框内的图像数值都是相同的,那么得到的紧凑表达结果一定也是类似的一幅图像(只是猜想,没有实践,论文也没有提到这一点),那么对于紧凑表达之后的结果,显然是有巨大冗余的(这里主要是相关性冗余,利用行程编码可以解决这种冗余现象,甚至能够实现无损压缩)。标准编码过程为:论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第4张图片,在映射器阶段去除像素之间的相关性,在量化器阶段去除图像的无关信息,在符号编码器阶段对信息进行熵编码

  3. RecCNN 在解码端重建高质量的图像【注重图像的重建方向】

    论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第5张图片

    1. 第一层有64个3×3×64的卷积核,后面跟上Relu非线性激活函数,生成64通道的特征图;

    2. 第二至十九层,每层有64个3×3×64的卷积核,后面跟上BN加Relu非线性激活;

    3. 最后一层有c个3×3×64的卷积核,BN和残差学习都被加入进来,用来重建原始图片。 

  4. 学习算法

    1. 理论优化函数:

      1. theta_1,theta_2分别代表ComCNN,RecCNN的训练参数,Cr(-)代表ComCNN,Re(-)代表RecCNN,Co(-)代表编解码器,这个loss function的本质是均方差最小

      2. 这个理论优化函数并不能训练,原因是Co(-)阶段有量化操作,梯度无法计算,在反向传播阶段,此处梯度将会停止传播

    2. 实际优化函数

      1. 通过控制theta_2,计算最优的theta_1:

      2. 通过控制theta_1,计算最优的theta_2:

      3. 引入辅助变量:

      4. 则表达式(3)变为表达式(5):

      5. theta_2的参数可以通过表达书(5)进行训练

      6. 由于Co(-)对梯度带来的损失性,theta_1的计算过程相对比较复杂

        1. 假设Re(theta_2^hat,x_m^hat)对辅助变量x_m^hat是单调的

          论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第6张图片,即当初入与最优输入相差越大,则输出与最优输出也差距越大,那么可以得到:

          论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第7张图片,theta_1^hat实际上是使在theta_2固定的的情况下让重建后图像均方差最小的参数,那么根据刚刚单调性的假设,输入越接近最优输入,输出最接近最优输出theta_1^hat实际上还是使输入为最优输入的参数,编码解码是一个与theta_1无关的过程,但在量化过程中会损失一定的精度,因此可以近似的表示为:

          ,那么,最终训练theta_1参数的表达式为:

  5. 训练算法:

    论文精读(一种端到端的基于卷积神经网络的图像压缩框架)_第8张图片

  6.  

Q:过高的图像压缩比(BPP bits per pixel越小)将导致图像复原后产生块状的伪影或者噪声

A:传统上可以采用后处理技术,对解码后的图像进行去块和去噪音处理【滑动窗口模型,形状自适应DCT,非凸低秩模型】{缺点:计算量大,找到最优解耗时长}

 

Q:常见的图像编码方式?

A:JPEG,JPRG2000,BPG;常见的图像编码方式包括:转换,量化,熵编码,哈弗曼编码也是一种熵编码

 

Q:用神经网络训练图像压缩的难点?

A:量化中的舍入函数不可微,这在执行反向传播算法时给训练深度神经网络带来了巨大挑战

 

你可能感兴趣的:(论文精读)