• 用深度学习进行图像压缩 by ch


    论文连接:https://arxiv.org/abs/1703.10553

    1.系统模型

           系统主要包括Encoder,Importantce mapDecoder三部分网络,encoder是对图片进行初步编码,以及得到图片的特征图,作为后续importantance map部分的输入,Decoder是解码部分,恢复原始图片。

    2.proxy function

             Encoder网络的输出的编码都是在(0,1)区间内,但是要将编码转换为二进制,所以需要对得到的编码进行量化,量化用到的函数如下:

       但是由于量化函数在0.5以外任何地方的梯度都是0,0.5出为无穷大,如果采用这个函数,这种梯度导致网络训练过程中的难以通过反向传播进行优化,所以这里引入一个新的函数:

            引入新的函数后,可以看到梯度如下:

            在前向编码的过程中依旧使用原始的函数进行量化,但是梯度反向传播进行优化的过程中,通过新引入的函数进行计算。

    3.Importance Map

      在对图像进行编码时,编码器会对图像的每一个像素进行编码,但是在实际图像中,图像中包含的内容会存在空间差异,有的部分细节比较多,比如边缘,纹理等,这些部分需要更多的bit进行编码以便保留细节,但是有些背景部分,图像比较平缓,没有太多的内容,这些部分并不需要保留太多信息,所以可以用少量的bit进行编码。因此不区分空间差异进行的编码不仅会浪费资源,还会导致细节部分失真。所以在该系统中引入Importance Map网络:

           这部分网络把编码网络得到的特征图作为输入,通过对图像内容的空间差异进行分析,对不同的部分按复杂度分配bit,指导后续编码。从图像可以看出,针对压缩率的不同,分配方式不同,当压缩率要求高时,背景部分得到的bit数极少,只有一些图像内部的边缘部分分得较多的bit。

    4.熵编码

           由编码网络的和Importance Map网络得到的编码并没有进行熵约束,因此不是最优的,仍然存在压缩空间,于是引入熵编码,熵编码可以用算数编码如CABAC,该文章采用神经网络的方式进行编码,编码网络如下:

            在对某bit进行编码时,该网络将其余部分分为Available bit和Unavailable bit,区分的标准是是否可以用来对该bit进行预测以及Importance Map中是否为0。

    5.损失函数

            由于图像压缩需要兼顾压缩率和失真情况,所以需要对压缩率和失真状况进行联合优化,优化函数如下:  

             第一部分代表原始图像和压缩后图像的失真,使用均方误差函数,后一部分是压缩比例。

  • 相关阅读:
    Ruby的Integer数据类型
    InfoPath设计优化
    深入浅出SharePoint——TimeJob编程
    深入浅出SharePoint——操作Item权限类
    深入浅出Powershell——添加用户或群组到群组中
    深入浅出PowerShell——更新List Item中的PeopleandGroup 域值
    使用TimeJob
    深入浅出InfoPath——动态获取InfoPath中的命名空间
    ContentType大展拳脚——定义List
    PowerShell深入浅出——增加账号到管理员群组
  • 原文地址:https://www.cnblogs.com/bupt213/p/11497982.html
Copyright © 2020-2023  润新知