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 ...
随机推荐
- 使用rsync基于ssh免密登陆进行备份或目录同步
日常工作中有很多的备份工作,rsync是一个很不错的工具,尝试使用基于ssh免密登陆的方式进行备份,测试成功,是可行且方便的方法,撰文记之,以备后用: 1.A主机root用户对B主机root用户做ss ...
- tushare+pandas实现财经数据分析
写在前面的话: 这是一个优秀的财经接口包,博主平时工作中也有使用,觉得很好,现在分享一些使用心得给需要的人,tushare并不是一个炒股软件,只是一个提供pandas数据的工具,具体如何使用,因人而异 ...
- tomcat运行一段时间后报错"Too many open files"
tomcat运行一段时间后报打开太多文件错误:Too many open files 查看当前进程的文件打开数: lsof -n |awk '{print $2}'|sort|uniq -c |so ...
- virtualbox FAIL(0x80004005) VirtualBox VT-x is not available (VERR_VMX_NO_VMX)
virtualbox启动虚拟机报错: FAIL(0x80004005) VirtualBox VT-x is not available (VERR_VMX_NO_VMX),无法创建新任务 这是win ...
- go语言中map每次遍历的顺序不同-问题分析
WHAT? 发现下面这段代码,多次运行出的结果是不一样的 mapper := make(map[int]string) mapper[1] = "1" mapper[2] = &q ...
- Redis for OPS 07:Redis 补充说明
写在前面的话 redis 的各种架构搭建暂时就到这里,本文主要用于补充说明 Redis 的一些概念以及配置文件的相关信息. 常用词汇 缓存穿透: 类似热点数据存储 Redis 一样,对于非热点数据存储 ...
- angular 前端路由不生效解决方案
angular 前端路由不生效解决方案 Intro 最近使用 Angular 为我的活动室预约项目开发一个前后端分离的客户端,在部署上遇到了一个问题,前端路由不生效,这里记录一下.本地开发正常,但是部 ...
- Python Turtle绘画初学编程——六芒星,浪形圈
老师上课说可以自学一下python中的绘图turtle,就自己初步学习了一下,做了两个简单的绘图——六芒星和浪形圈(其实我也不知道该叫它什么,就照样子编了个词
- Koa 提交和接收 JSON 表单数据
来自 url 中的 query 参数可直接通过 context.query 获取,但 POST 方式提交的表单数据则需要借助中间件的解析来完成,比如 koa-bodyparser. 首先准备好一个表单 ...
- JS中for,for...in,for...of以及foreach循环的用法
1.for()循环 // for循环的表达式之间用的是;号分隔的,千万不要写成, for (初始化表达式1; 判断表达式2; 自增表达式3) { // 循环体4 } 2.for...in索引遍历 va ...