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。输入图像xxx由128个8×88 \times 88×8步长为4的过滤器卷积,随后用1个残差块。然后特征图用256个4×44 \times 44×4步长为2的过滤器卷积,接着2个残差块,从而生成中间的特征图f(x)f(x)f(x)。最后特征图f(x)f(x)f(x)用mmm个1×11 \times 11×1的过滤器产生encoder结果E(x)E(x)E(x)。少于0.5bpp的模型设置n=64n=64n=64,否则设为n=128n=128n=128。

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

Encoder

decoder

Binarizer

eijk是ee_{ijk}是eeijk​是e的元素

由于导数基本为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的每个元素pijp_{ij}pij​计算importance mask m。首先计算量化值,每个pijp_{ij}pij​都转为不超过nnn的整数值(nnn是特征图的数量):

L是重要程度, nmodL=0n \; mod \;L = 0nmodL=0。Each important level is corresponding to nL\frac{n}{L}Ln​bits.

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

importance mask m:

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

两个式子可以合并写成

对应的偏导:

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

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

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

Model formulation

模型的目标函数是

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

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

失真loss

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

码率loss

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

LR0(c,x)=∑i,j(P(x))ij\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

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

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

概率预测

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

E(CNTX(ckij))E(CNTX(c_{kij}))E(CNTX(ckij​))将长方体作为输入,输出是ckijc_{kij}ckij​为1的概率。

损失函数可以写作:

encoder用ADAM训练。

实验

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

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

率失真曲线如图。在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框架进行了一个修改,我理解完整的功能应该是需要再修改的。

【论文笔记】Learning Convolutional Networks for Content-weighted Image Compression相关推荐

  1. 论文笔记-Two-Stream Convolutional Networks for Action Recognition in Videos

    原文地址:http://blog.csdn.net/lk274857347/article/details/73559112 论文贡献: 提出了结合空域和时域网络的two_stream卷积网络结构. ...

  2. 论文笔记 《Maxout Networks》 《Network In Network》

    原文出处:http://zhangliliang.com/2014/09/22/paper-note-maxout-and-nin/ 论文笔记 <Maxout Networks> & ...

  3. 论文笔记 Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition - CVPR

    Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition 2020 CVPR | c ...

  4. 论文Very Deep Convolutional Networks for Large-Scale Image Recognition

    Very Deep Convolutional Networks for Large-Scale Image Recognition 转载请注明:http://blog.csdn.net/stdcou ...

  5. 【论文笔记】SlowFast Networks for Video Recognition

    目录 1,摘要 2,介绍 3. SlowFast 网络 3.1 Slow路径 3.2 Fast 路径 3.3 横向连接 3.4 网络实现 参考文献 参考 1,摘要 本论文提出了用于视频识别的SlowF ...

  6. 论文笔记 | Learning Deep Features for Discriminative Localization

    作者 Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba Bolei Zhou Abstract 受到NI ...

  7. [论文笔记]User-Centric Ultra-Dense Networks for 5G: Challenges , Methodologies, and Directions

    前言 本文是我所作的第四篇论文笔记,前三篇都是按照"翻译--笔记"的模式进行,本篇将跳过翻译环节直接进行论文的笔记摘录.原因有以下几点:1.翻译步骤对内容理解很有限,理解主要在笔记 ...

  8. [论文笔记] Learning Gestures From WiFi: A Siamese Recurrent Convolutional Architecture

    原文链接:Learning Gestures From WiFi: A Siamese Recurrent Convolutional Architecture | IEEE Journals &am ...

  9. [论文阅读笔记]Two-Stream Convolutional Networks for Action Recognition in Videos

    Karen Simonyan Andrew Zisserman  Visual Geometry Group, University of Oxford  fkaren,azg@robots.ox.a ...

  10. 论文笔记:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

    前言 初代频域GCN简单粗暴的将diag(g^(λl))diag(\hat{g}{(\lambda_l)})diag(g^​(λl​))变成了卷积核diag(θl)diag(\theta_l)diag ...

最新文章

  1. python有大括号吗_只有我一个人觉得Python取消了大括号而显得结构更加混乱了吗?...
  2. HDU - 7028 Decomposition 无向完全图构造欧拉回路
  3. t-sql中的事务控制及错误处理
  4. leetcode 116 --- 填充每个节点指向最右节点的next指针
  5. 前端页面-不可编辑控制
  6. CORS跨域漏洞的学习(防止CSRF漏洞导致的漏洞)
  7. JAVA生成企业组织机构代码、营业执照代码、税务登记号码、统一社会信用代码并校验
  8. matlab写子函数,matlab主函数子函数怎么写
  9. 如何准备蓝桥杯以及刷题
  10. colorAccent,colorPrimary,colorPrimaryDark……来这里你就明白了
  11. 30 周年,Linux 成功的真正原因是什么?
  12. TC358775XBG是一颗将MIPI DSI信号转换成single/ dual -link LVDS的芯片,最高分辨率支持到1920x1200
  13. 微软正打造新一代 Windows 操作系统
  14. c语言课设——药品管理系统
  15. 回忆经典,九叔教你用Python制作贪吃蛇游戏
  16. 2010企业IT应用9大趋势
  17. CVPR2018: Generative Image Inpainting with Contextual Attention 论文翻译、解读
  18. 超详细|一篇搞定操作系统——用户接口
  19. 电涡流传感器330103-00-05-10-02-00本特利
  20. cesium 修改默认地球

热门文章

  1. 最新的软著自助免费申请教程!
  2. Struck: Structured Output Tracking with Kernels
  3. 面向数据中心,浪潮存储双剑出鞘
  4. 算法设计与分析递归概念之Fibonacci数列
  5. 计算机任务管理器无法响应,电脑任务管理器经常未响应怎么办
  6. 图像调优2:什么是10° D65 和 2° D65
  7. Gson报错Invalid time zone indicator ‘ ‘
  8. java文字格斗游戏
  9. django学习笔记(五)------path
  10. [渝粤教育] 西南科技大学 会计电算化 在线考试复习资料2021版