发表于2016年CVPR。

摘要

  • 既利用了CNN,又考虑了JPEG压缩的特性,解决JPEG图像去失真问题。

  • 针对于压缩特性,作者考虑了JPEG压缩方案的先验知识,也看到了基于稀疏的双域方法的成功实践[24]。

  • 基于此,作者设计了一个单步稀疏推断(One-Step Sparse Inference, 1-SI)模块,作为稀疏编码的前向近似,高效、轻量。

读后感

这篇文章的主要贡献在于:将[24]中的双域法(主要基于稀疏字典学习),推广到了深度学习方法上,从而避免了迭代优化。

至于压缩特性,作者的考虑和[24]应该基本是一样的:特别设计了一个box-constrained loss,若DCT域上的字典生成结果落在了量化间隔外(必须预知量化水平),那么在训练时就会被惩罚,以此逼近更准确的DCT域字典。

故事

  • 压缩失真的普遍性:在视觉通信和计算系统中,压缩失真是主要图像失真。有损压缩,例如JPEG和HEVC-MSP,被广泛用于节省带宽和存储。

  • 压缩失真简介:有损压缩是对编码对象的不精确的精简近似,因此不可避免地带来失真,比如块效应(blockiness)、振铃(ringing effects)和模糊(blurs)。

  • 压缩失真成因简介:这些失真通常是由基于块处理的不连续性、量化丢失高频细节等导致。

  • 解决压缩失真的可行性:由于实用的图像压缩方法并非理想(practical image compression methods are not information theoretically optimal),因此得到的码流中仍然是存在冗余的。这就让图像复原成为了可能。此外,压缩失真还具有一些特性可以利用。例如,JPEG压缩会先将图像分为\(8 \times 8\)的块,然后在每个块内执行DCT、根据提前设定的量化水平量化DCT系数。

  • 和一般去噪的不同:根据上面的特性不难看出,压缩噪声比一般噪声更难建模,因为其通常是非平稳的(non-stationary)、与信号有关的。

  • 前人工作:早期工作[6,22]:基于滤波器,可以滤除一些伪影。数据驱动方法:目的是避免基于经验的、对压缩失真的建模。基于图像稀疏的方法:用于产生锐化的图像,但通常在边缘会有伪影,并且会产生不自然的光滑区域。深度学习方法:鼻祖ARCNN,可惜没有考虑任何压缩特性。还有一些工作,例如快速回归器[14]、稀疏和低秩先验模型[29]、深度系数编码[35]、稀疏展开模型[17]、基于\(l_0\)范数稀疏性的深度网络[34]等。

  • 关键启发:本文受到[24]的启发。前人工作要么在DCT域上做,要么在像素域做。然而,只要某个块内一个DCT系数存在量化误差,那么整个块的像素值都会产生误差。另一方面,由于我们去掉了很多高频DCT系数,因此仅仅凭借DCT域是很难恢复高频细节的。因此,[24]就提出了双域模型。博主批注:这其实是频域法和像素域方法各自的特点。实际上,DCT域和像素域是可以互相切换的,你有的冗余我也有。只不过,像素域上对图像的先验更好理解,比如稀疏、对称、自相似等,但频域的先验很难找出来。

  • 我们选择DNN的原因:复杂度和实时性是很重要的。传统推导流程,例如稀疏编码,包含大量优化过程。

深度双域法(D3)

首先回顾[24]提出的双域法。博主没做过字典学习和稀疏编码,根据文章猜个大概:

  • 假设未压缩图像的像素域块是\(x_i\),量化后的DCT系数是\(y_i\)。

  • 首先根据数据库,学习关于DCT域和像素域的两个字典。

  • 那么,作者就通过最小化下式(字典已知),学习稀疏系数。

  • 该方法需要提前知道量化水平(可推出量化间隔),限制DCT系数在量化间隔内,从而限制解空间。

关键局限:(1)迭代优化;(2)超参数需要主观设置;(3)两个字典是独立学习的。

接下来就是这篇文章的D3工作。

可以看到,框图是一致的,也是先将图像转换到DCT域,然后再转换到图像域。

在转换和反转换后,我们都可以定义一个损失。前者是为了逼近DCT域表示(惩罚落在量化间隔外的表现),后者是为了逼近像素值。

亮点在于:作者借助可学习的LSTA算法(LISTA),将迭代式优化方法替换为了简单的神经网络。原因在于:

  1. 在[24]中对解空间的限制,可以在训练神经网络时用loss(惩罚)代替。

  2. 迭代式求解和神经网络对参数的优化,本质是一样的。因此对字典的学习可以用神经网络实现。

具体原理参见3.2-3.3节。

实验略。

Paper | D3: Deep Dual-Domain Based Fast Restoration of JPEG-Compressed Images的更多相关文章

  1. Paper Read: Robust Deep Multi-modal Learning Based on Gated Information Fusion Network

    Robust Deep Multi-modal Learning Based on Gated Information Fusion Network 2018-07-27 14:25:26 Paper ...

  2. [转]Deep Reinforcement Learning Based Trading Application at JP Morgan Chase

    Deep Reinforcement Learning Based Trading Application at JP Morgan Chase https://medium.com/@ranko.m ...

  3. 阅读Deep Packet Inspection based Application-Aware Traffic Control for Software Defined Networks

    Deep Packet Inspection based Application-Aware Traffic Control for Software Defined Networks Globlec ...

  4. 【Paper Reading】Deep Supervised Hashing for fast Image Retrieval

    what has been done: This paper proposed a novel Deep Supervised Hashing method to learn a compact si ...

  5. Paper Reading - Deep Visual-Semantic Alignments for Generating Image Descriptions ( CVPR 2015 )

    Link of the Paper: https://arxiv.org/abs/1412.2306 Main Points: An Alignment Model: Convolutional Ne ...

  6. Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★

    Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...

  7. Paper Reading - Learning like a Child: Fast Novel Visual Concept Learning from Sentence Descriptions of Images ( ICCV 2015 )

    Link of the Paper: https://arxiv.org/pdf/1504.06692.pdf Innovations: The authors propose the Novel V ...

  8. DeepCoder: A Deep Neural Network Based Video Compression

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract: 在深度学习的最新进展的启发下,我们提出了一种基于卷积神经网络(CNN)的视频压缩框架DeepCoder.我们分别对预测 ...

  9. 【Paper】Deep & Cross Network for Ad Click Predictions

    目录 背景 相关工作 主要贡献 核心思想 Embedding和Stacking层 交叉网络(Cross Network) 深度网络(Deep Network) 组合层(Combination Laye ...

随机推荐

  1. MySQL select from where multiple conditions

    Maybe one of the most used MySQL commands is SELECT, that is the way to stract the information from ...

  2. Linux 学习记录一(安装、基本文件操作).

    Linux 名字的由来,是当时作者将初版的 Linux 发布在网上,供别人下载完善,而那个核心文件夹就叫 Linux,就这么叫着了.而为什么 Linux 的吉祥物是一只企鹅呢?是因为当时大家要发行稳定 ...

  3. IT兄弟连 HTML5教程 HTML5的曲折发展过程 浏览器之间的大战

    播放电影和音乐要使用播放器,浏览网页就需要使用浏览器.浏览器虽然只是一个设备,并不是开发语言,但在Web开发中必不可少,因为浏览器要去解析HTML5.CSS3和JavaScript等语言用于显示网页, ...

  4. IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素

    从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...

  5. Dubbo从入门到实战:实战篇

    一.加入 zookeeper 作为注册中心 在前面的案例中,我们没有使用任何的注册中心,而是用一种直连的方式进行的.但是,实际上很多时候,我们都是使用 dubbo + zookeeper 的方式,使用 ...

  6. tinker接入

    对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换. 下面以本人的经验介绍下微信的tinker接入: 命令行接入方式: gradle接入 ...

  7. 黄聪:mysql的SQL_CALC_FOUND_ROWS 使用 类似count(*) 使用性能更高

    mysql的SQL_CALC_FOUND_ROWS 使用 类似count(*) 使用性能更高 在很多分页的程序中都这样写: SELECT COUNT(*) from `table` WHERE ... ...

  8. pandas 学习 第2篇:Series -(创建,属性,转换和索引)

    序列(Series)是由一组数据(各种NumPy数据类型),以及一组与之相关的数据标签(索引)组成,序列不要求数据类型是相同的. 序列是一个一维数组,只有一个维度(或称作轴)是行(row),在访问序列 ...

  9. LinqMethod 实现 LeftJoin

    LinqMethod 实现 LeftJoin Intro 有时候我们想实现 leftJoin 但是 Linq 提供的 Join 相当于是 INNER JOIN,于是就打算实现一个 LeftJoin 的 ...

  10. MVC过滤器:自定义异常过滤器

    一.异常过滤器 异常筛选器用于实现IExceptionFilter接口,并在ASP.NET MVC管道执行期间引发了未处理的异常时执行.异常筛选器可用于执行诸如日志记录或显示错误页之类的任务.Hand ...