代码编织梦想

2 Related work

Balle 使用GDN(generalized divisive normalization)

content-weighted image compression system 在rate loss quantization continuous relaxation不同。在importance map上面定义rate loss,使用一个简单的二值化器来量化。
基础结构

3 Content-weighted Image Compression

3.1.1 encoder 和decoder

Encoder 和decoder都是全连接层,可以后向训练。

encoder由三个卷积层和3个残差块组成。每个残差块有2个卷积层,使用时移除原始的残差块的BN。输入图像 x x x由128个 8 × 8 8 \times 8 8×8步长为4的过滤器卷积,随后用1个残差块。然后特征图用256个 4 × 4 4 \times 4 4×4步长为2的过滤器卷积,接着2个残差块,从而生成中间的特征图 f ( x ) f(x) f(x)。最后特征图 f ( x ) f(x) f(x) m m m 1 × 1 1 \times 1 1×1的过滤器产生encoder结果 E ( x ) E(x) E(x)。少于0.5bpp的模型设置 n = 64 n=64 n=64,否则设为 n = 128 n=128 n=128

decoder D ( c ) D(c) D(c)的网络结构和encoder对称, c c c是图像的code。

Encoder

decoder

Binarizer

e i j k 是 e e_{ijk}是e eijke的元素

由于导数基本为0,不利于back-propagation,受到binarized neural networks(BNN)的影响,因此修改为

得到的偏导是

Importance map

在Balle提出的网络中,量化之后的码字长度是空间不变的,压缩是通过熵编码实现的。然而作者认为,一幅图像中不同部分分配的比特数应该是不一样多的,因此作者提出了importance map用于比特分配以及压缩率控制。

将encoder的最后一个残差块的特征图作为importance map的输入,使用3层卷积网络产生了importance map p = P ( x ) p=P(x) p=P(x)

对于importance map的每个元素 p i j p_{ij} pij计算importance mask m。首先计算量化值,每个 p i j p_{ij} pij都转为不超过 n n n的整数值( n n n是特征图的数量):

在这里插入图片描述

L是重要程度, n    m o d    L = 0 n \; mod \;L = 0 nmodL=0。Each important level is corresponding to n L \frac{n}{L} Lnbits.

重要性图不仅可以被视为熵率估计的替代方案,而且还可以自然地考虑上下文。

importance mask m:

假设每一个feature map的每一个(i,j)位置分配1bit,那么原本共需要 n × h × w n \times h \times w n×h×w,现在只需要 N L ∑ i , j Q ( p i j ) \frac{N}{L}\sum_{i,j}Q(p_{ij}) LNi,jQ(pij)bits。

两个式子可以合并写成

对应的偏导:

最终的编码结果是 c = M ( p ) ∘ B ( e ) c = M(p) \circ B(e) c=M(p)B(e)

也就是将importance mask m和二值量化结果点乘。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ruVhtWAR-1647441363283)(C:\Users\s50018299\AppData\Roaming\Typora\typora-user-images\image-20210826105239854.png)]

具有锐边或丰富纹理的区域通常具有较高的值,并应分配更多的位来编码。

Model formulation

模型的目标函数是

L = ∑ x ∈ χ L D ( c , x ) + γ L R ( x ) \mathcal{L}=\sum_{x \in \chi}{\mathcal{L}_D(c,x) + \gamma\mathcal{L}_R(x)} L=xχLD(c,x)+γLR(x)

L D ( c , x ) \mathcal{L}_D(c,x) LD(c,x)代表失真loss, L R ( x ) \mathcal{L}_R(x) LR(x)表示码率loss。

失真loss

衡量原始图像和解码结果的差异: L D ( c , x ) = ∣ ∣ D ( c ) − x ∣ ∣ 2 2 \mathcal{L}_D(c,x)=||D(c)-x||^2_2 LD(c,x)=D(c)x22

码率loss

码率loss直接定义为码长度的连续估计。假定encoder的结果 E ( x ) E(x) E(x)的是 n × h × w n\times h \times w n×h×w。码分成两部分:1)quantized importance map Q ( p ) Q(p) Q(p),为 h × w h \times w h×w;2)修剪的二值码流 N L ∑ i , j Q ( p i j ) \frac{N}{L}\sum_{i,j}Q(p_{ij}) LNi,jQ(pij)。第一部分对encoder和importance map network而言是常量,因此 N L ∑ i , j Q ( p i j ) \frac{N}{L}\sum_{i,j}Q(p_{ij}) LNi,jQ(pij)可以直接被用来作为码率loss。由于Q(p_ij) 不可导,relax Q(p_ij)如下

L R 0 ( c , x ) = ∑ i , j ( P ( x ) ) i j \mathcal{L}_R^0(c,x)=\sum_{i,j}(P(x))_{ij} LR0(c,x)=i,j(P(x))ij

使用阈值r修改码率loss如下

****

Convolutional entropy encoder

CABAC

使用CABAC进行二值算术编码。文章在这个框架下面进行修改。

Context modeling

c k i j c_{kij} ckij的context记为 C N T X ( c k i j ) CNTX(c_{kij}) CNTX(ckij) C N T X ( c k i j ) CNTX(c_{kij}) CNTX(ckij)是一个 5 × 5 × 4 5\times 5\times 4 5×5×4的长方体。 C N T X ( c k i j ) CNTX(c_{kij}) CNTX(ckij)分为有用和无用的2组。有用的表示可以用来预测 c k i j c_{kij} ckij。无用的包含:1)待预测bit c k i j c_{kij} ckij,2)importance map值为0,3)范围外,4)未能被编码。 C N T X ( c k i j ) CNTX(c_{kij}) CNTX(ckij)的编码方式:1)无用的编为0,2)值为0的无用的bits编为1,3)值为1的编为2

在这里插入图片描述

红色块表示要预测的位;深色块表示不可用位;蓝色块表示可用位。

概率预测

常用方法是建立维持一个频率表。由于长方体过大,因此改为CNN模型。

E ( C N T X ( c k i j ) ) E(CNTX(c_{kij})) E(CNTX(ckij))将长方体作为输入,输出是 c k i j c_{kij} ckij为1的概率。

损失函数可以写作:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cHpfGg3X-1647441363286)(C:\Users\s50018299\AppData\Roaming\Typora\typora-user-images\image-20210823153556690.png)]

encoder用ADAM训练。

实验

数据:ImageNet的一个有大约10000张高质量的子集。将图片裁剪成 128 × 128 128 \times 128 128×128的片,用这些片来训练网络。训练好后运用在Kodak PhotoCD图像数据集上。

对比JPEG,JPEG 2000,Balle的CNN模型,使用MSE、PSNR、SSIM评价。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WnAZPsRs-1647441363287)(C:\Users\s50018299\AppData\Roaming\Typora\typora-user-images\image-20210823161544790.png)]

率失真曲线如图。在MSE中,JPEG表现最差。PSNR,论文方法和JPEG 2000、Balle相近。SSIM,论文方法最优。

视觉评价

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对比四种方法在低压缩率的情况。Balle通过模糊边缘和小范围的纹理产生结果。

列2、3存在不少的模糊、铃效应、块效应等。

我们可以观察到第1、2、3和5行的模糊伪影,第4和5行的颜色失真,第4和5行的振铃伪影。

应将更多的位分配给具有强边缘或详细纹理的区域,而将更少的位分配给光滑区域

importance map不使用手工工程,而是端到端学习,以最大限度地减少速率失真损失

importance map实验分析

baseline model:不包含entropy和基于 importance map的rate loss。

代码

https://github.com/limuhit/ImageCompression这是一个测试代码,对caffe框架进行了一个修改,我理解完整的功能应该是需要再修改的。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36993032/article/details/123538613

论文阅读笔记(四十二):visualizing and understanding convolutional networks___sunshine__的博客-爱代码爱编程

Abstract. Large Convolutional Network models have recently demonstrated impressive classification performance o

aaai-19录用论文清单_hitrjj的博客-爱代码爱编程

AAAI-19于1月27日在夏威夷召开,今年是33届会议。 会议录用论文清单, workshop16个,tutorials24个。 标题的词云分析: 作者单位词云(按作者人数计算/一篇文章可能有多个作者):

实现论文learning convolutional networks for content-weighted image compression 源代码踩过的坑_ct_wj的博客-爱代码爱编程

1. import caffe 后面发现是numpy版本问题,这里强制更新一下  pip install numpy --upgrade --force 2. 更新numpy以后出现 ImportError: cannot import name '_validate_lengths'    这里又是numpy版本过高出现问题 真实崩溃 解决方法:

深度学习图像压缩-爱代码爱编程

文章的创新点是在量化中加入了Importance Map,让模型自适应地选择重要的区域,整体结构为: 在编码器的输出端有两个分支。一个分支类似传统的自编码器,用于输出特征,并量化和解码。另一个分支作用是产生一个Import

顶会速递 | ICLR 2020录用论文全集-爱代码爱编程

由深度学习三巨头Yoshua Bengio和Yann LeCun牵头创办的人工智能顶会ICLR今年最终收到2594篇投稿,共687篇论文被接收,其中48篇orals,108篇spotlights,531篇posters,录取率为26.5%,相比去年的31.4%略有下降。华人学者占比为47%。这篇博客为大家列出全部录用的论文列表,方便大家自取。

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network论文翻译——中英文对照-爱代码爱编程

文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation Photo-Realistic Single Image Sup

【论文阅读笔记】Learning Efficient Convolutional Networks through Network Slimming-爱代码爱编程

论文地址:Network Slimming 论文总结   本文提出了一种channel-level的裁剪方案,可以通过稀疏化尺度因子(BN层的scaling factor)来裁掉“不重要”的channel。   文中的方案为: 在训练时,对BN层的scaling factor施加

【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018-爱代码爱编程

目录导引 系列传送A Core-Set Approach1 Abstract2 Introduction2.1 CNN2.2 AL2.3 Tailor an al method3 Related Works3.1 Active Learning3.2 Core-Set Selection3.3 Weakly-Supervised Deep Lear

(八:2020.08.27)CVPR 2020 追踪之论文纲要(译)-爱代码爱编程

CVPR 2020 追踪之论文纲要(修正于2020.08.27) 讲在前面论文目录 讲在前面 论坛很多博客都对论文做了总结和分类,但就医学领域而言,对这些论文的筛选信息显然需要更加精细的把控,所以自己对这1400篇的论文做一个大致从名称上的筛选,希望能找到些能解决当前问题的答案。论文链接建议直接Google论文名,比去各种论文或顶会网站找不知

【论文阅读笔记】NeurIPS2020文章列表Part1-爱代码爱编程

A graph similarity for deep learningAn Unsupervised Information-Theoretic Perceptual Quality MetricSelf-Supervised MultiModal Versatile NetworksBenchmarking Deep Inverse Models ov

【论文阅读笔记】NeurIPS2020文章列表Part2-爱代码爱编程

Online Multitask Learning with Long-Term MemoryFewer is More: A Deep Graph Metric Learning Perspective Using Fewer ProxiesAdaptive Graph Convolutional Recurrent Network for Traffi

【综述】Deep Learning for Visual Tracking: A Comprehensive Survey-2019-爱代码爱编程

论文地址: https://arxiv.org/pdf/1912.00535.pdf Abstract 视觉目标跟踪是计算机视觉中最受欢迎但最具挑战性的研究课题之一。鉴于问题的不适定性质及其在广泛的现实世界场景中的流行,已经建立了一些大规模的基准数据集,在这些数据集上开发了相当多的方法,并在近年来取得了重大进展-主要是通过最近基于深度学习(DL)的

计算机视觉论文-2021-04-01-爱代码爱编程

本专栏是计算机视觉方向论文收集积累,时间:2021年4月1日,来源:paper digest 欢迎关注原创公众号 【计算机视觉联盟】,回复 【西瓜书手推笔记】 可获取我的机器学习纯手推笔记! 直达笔记地址:机器学习手推笔记(GitHub地址)   1, TITLE: Fast and Accurate Emulation of

【CVPR2021】论文汇总列表--Part1-爱代码爱编程

- 本帖汇总了CVPR2021目前在arxiv上公布的文章列表,持续更新中。 Best wishes! ☔ ❤ 🍜 👉 part2 👈ckpt: 20210501, data from arxiv.org Action Unit Memory Network for Weakly Supervised Temporal Action Lo

计算机视觉论文-2021-05-27-爱代码爱编程

本专栏是计算机视觉方向论文收集积累,时间:2021年5月11日,来源:paper digest 欢迎关注原创公众号 【计算机视觉联盟】,回复 【西瓜书手推笔记】 可获取我的机器学习纯手推笔记! 直达笔记地址:机器学习手推笔记(GitHub地址)   1, TITLE: Multiple Domain Experts Colla

【论文总结】Incremental Learning of Object Detectors without Catastrophic Forgetting(附翻译)-爱代码爱编程

Incremental Learning of Object Detectors without Catastrophic Forgetting 无灾难性遗忘的增量学习目标检测器 论文地址:https://arxiv.org/abs/1708.06977 代码地址:https://github.com/kshmelkov/incremental_det

深度学习论文阅读(二):ZFNet《Visualizing and Understanding Convolutional Networks》-爱代码爱编程

深度学习论文阅读(二):ZFNet《Visualizing and Understanding Convolutional Networks》 Abstract 摘要1.Introduction 引言1.1 Related Work 相关工作2. Approach 方法2.1 Visualization with a Deconvnet 通过反卷积

实现论文learning convolutional networks for content-爱代码爱编程

1.  不能使用linux系统,否则奇怪的报错很难解决。 2. 必须使用64位的python2,否则caffe会报错。 3. 建议稍微学习一个caffe的数据结构,它与习惯的tensorflow、torch不一样。 4. 必须在有显卡的设备上运行,因为google网盘提供的caffe已经被修改过,自行设置关闭gpu非常麻烦。提供一个google网盘提