Paper | D3: Deep Dual-Domain Based Fast Restoration of JPEG-Compressed Images
发表于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),将迭代式优化方法替换为了简单的神经网络。原因在于:
在[24]中对解空间的限制,可以在训练神经网络时用loss(惩罚)代替。
迭代式求解和神经网络对参数的优化,本质是一样的。因此对字典的学习可以用神经网络实现。
具体原理参见3.2-3.3节。
实验略。
Paper | D3: Deep Dual-Domain Based Fast Restoration of JPEG-Compressed Images的更多相关文章
- 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 ...
- [转]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 ...
- 阅读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 ...
- 【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 ...
- 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 ...
- 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 ...
- 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 ...
- DeepCoder: A Deep Neural Network Based Video Compression
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract: 在深度学习的最新进展的启发下,我们提出了一种基于卷积神经网络(CNN)的视频压缩框架DeepCoder.我们分别对预测 ...
- 【Paper】Deep & Cross Network for Ad Click Predictions
目录 背景 相关工作 主要贡献 核心思想 Embedding和Stacking层 交叉网络(Cross Network) 深度网络(Deep Network) 组合层(Combination Laye ...
随机推荐
- 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 ...
- Linux 学习记录一(安装、基本文件操作).
Linux 名字的由来,是当时作者将初版的 Linux 发布在网上,供别人下载完善,而那个核心文件夹就叫 Linux,就这么叫着了.而为什么 Linux 的吉祥物是一只企鹅呢?是因为当时大家要发行稳定 ...
- IT兄弟连 HTML5教程 HTML5的曲折发展过程 浏览器之间的大战
播放电影和音乐要使用播放器,浏览网页就需要使用浏览器.浏览器虽然只是一个设备,并不是开发语言,但在Web开发中必不可少,因为浏览器要去解析HTML5.CSS3和JavaScript等语言用于显示网页, ...
- IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素
从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...
- Dubbo从入门到实战:实战篇
一.加入 zookeeper 作为注册中心 在前面的案例中,我们没有使用任何的注册中心,而是用一种直连的方式进行的.但是,实际上很多时候,我们都是使用 dubbo + zookeeper 的方式,使用 ...
- tinker接入
对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换. 下面以本人的经验介绍下微信的tinker接入: 命令行接入方式: gradle接入 ...
- 黄聪:mysql的SQL_CALC_FOUND_ROWS 使用 类似count(*) 使用性能更高
mysql的SQL_CALC_FOUND_ROWS 使用 类似count(*) 使用性能更高 在很多分页的程序中都这样写: SELECT COUNT(*) from `table` WHERE ... ...
- pandas 学习 第2篇:Series -(创建,属性,转换和索引)
序列(Series)是由一组数据(各种NumPy数据类型),以及一组与之相关的数据标签(索引)组成,序列不要求数据类型是相同的. 序列是一个一维数组,只有一个维度(或称作轴)是行(row),在访问序列 ...
- LinqMethod 实现 LeftJoin
LinqMethod 实现 LeftJoin Intro 有时候我们想实现 leftJoin 但是 Linq 提供的 Join 相当于是 INNER JOIN,于是就打算实现一个 LeftJoin 的 ...
- MVC过滤器:自定义异常过滤器
一.异常过滤器 异常筛选器用于实现IExceptionFilter接口,并在ASP.NET MVC管道执行期间引发了未处理的异常时执行.异常筛选器可用于执行诸如日志记录或显示错误页之类的任务.Hand ...