【端到端图像压缩】CompressAI运行记录

目录

0 前言

1 代码来源

2 代码的运行

2.1 CompressAI下载与安装

2.2 运行示例程序

3 结果分析

4 结论

5 参考文献


0 前言

期末作业要求运行端到端的图像压缩代码,过程中学习了csdn上诸多教程。这里将运行的过程分享出来。

1 代码来源

目前大多数文献附带的代码是在Linux平台使用TensorFlow环境实现的,由于硬件设备的限制,这些代码难以运行。

在文献《CompressAI: a PyTorch library and evaluation platform forend-to-end compression research》中,作者将下图所示的六个端到端图像压缩模型的代码移植到了pytorch平台,以下模型分别对应参考文献[1-6]。

【端到端图像压缩】CompressAI运行记录_第1张图片 图1.1 CompressAI包含的6个端到端压缩模型

CompressAI的代码完全开源,在下面的网站里有代码的下载方式及使用方法:interdigitalinc.github.io/CompressAI/index.html。

2 代码的运行

2.1 CompressAI下载与安装

通过Git方式将代码下载至本地后,在conda中选择对应的文件夹并输入“pip install -e .”,即可完成CompressAI的配置。运行结果如图2.1所示。

【端到端图像压缩】CompressAI运行记录_第2张图片

 

图2.1 配置CompressAI

2.2 运行示例程序

在CompressAI工程的“example”文件夹中,代码作者给出了CompressAI的使用示例。

首先运行“pip install -U ipython jupyter ipywidgets matplotlib”,安装“jupyter”等示例程序所需的库函数。运行结果如图2.2所示。

【端到端图像压缩】CompressAI运行记录_第3张图片

 

图2.2 安装“jupyter”等示例程序所需的库函数

安装后在CMD中输入“jupyter notebook”,在弹出的页面中即可看到两个示例文件。分别是“CompressAI Models Comparison Demo”和“CompressAI Inference Demo”。在这两个示例程序中,主要讲述了如何调用和评估已有的模型。

【端到端图像压缩】CompressAI运行记录_第4张图片

 

图2.3 示例程序

3 结果分析

在“CompressAI Inference Demo”中,代码主要分为两部分。第一部分是用于调用模型实现图像的端到端压缩,并计算相关指标及可视化。第二部分是用于将图像压缩的结果与传统的图像压缩方法进行比较。

在进行端到端图像压缩时,需要调用已训练的神经网络,CompressAI中已经内置了6种端到端图像压缩方法,也可以自己训练新的神经网络用于图像压缩。这里调用了“bmshj2018_factorized”图像压缩网络,显示该网络有2998147个参数。

【端到端图像压缩】CompressAI运行记录_第5张图片

 

图3.1 加载网络

代码首先将输入的图像转化为浮点数的四维张量,并显示这张图片。

【端到端图像压缩】CompressAI运行记录_第6张图片

图3.2 原始图片

运行网络后,再将张量转换为图片,则可以得到压缩后的图片。通过与原始图片求差,可以得到差值图片。

 【端到端图像压缩】CompressAI运行记录_第7张图片

 

图3.3 原始图片、重建图片和差值图片

通过计算可知这张图片的PSNR为27.40dB,MS-SSIM值为0.9743,比特率为0.222bpp,可见压缩效果较好。

【端到端图像压缩】CompressAI运行记录_第8张图片

 

图3.4 PSNR、MS-SSIM和比特率

在相同比特率的条件下,比较端到端的图像压缩方法与传统图像压缩方法结果。由下图可看出,在低比特率的条件下,端到端的图像压缩方法效果明显优于JPEG。

【端到端图像压缩】CompressAI运行记录_第9张图片

 

图3.5 相同比特率的条件下图像压缩效果对比

在相同的峰值信噪比要求下,可以发现端到端的图像压缩方法的比特率不到JPEG的一半。

【端到端图像压缩】CompressAI运行记录_第10张图片

 

图3.6 相同的峰值信噪比要求下图像压缩效果对比

在具有相同的MS-SSIM指标时,端到端图像压缩方法的比特率也远低于JPEG和webP。

【端到端图像压缩】CompressAI运行记录_第11张图片

 

图3.7 具有相同的MS-SSIM指标时图像压缩效果对比

在“CompressAI Models Comparison Demo”文件中,对比了不同种网络的运行结果。由于笔记本电脑内存不足,下图展示的结果为示例程序自带的结果。从结果中可以看出,这部分代码可以同时显示多个网络压缩后的图片。

【端到端图像压缩】CompressAI运行记录_第12张图片

图3.8 不同种端到端图像压缩方法结果比较

并同时计算所有输出的PSNR、MS-SSIM和比特率。

【端到端图像压缩】CompressAI运行记录_第13张图片 

 

图3.9 不同种端到端图像压缩方法的PSNR、MS-SSIM和比特率比较

4 结论

随着机器学习算法的发展,更清晰、更高分辨率、更低比特的图像压缩成为可能。端到端的图像压缩方法的出现,显现出了优于传统图像压缩方式的性能。本研究报告运行了CompressAI端到端图像压缩代码,并分析结果。通过运行代码更深刻的了解端到端图像处理算法内涵。

5 参考文献

  1.  Ballé J, Laparra V, Simoncelli E P. End-to-end optimized image compression[C]//ICLR 2017.
  2.  Ballé J, Minnen D, Singh S, et al. Variational image compression with a scale hyperprior[C]//ICLR2018.
  3.  Ballé J, Toderici G. Joint autoregressive and hierarchical priors for learned image compression[C]//NIPS 2018.
  4.  Minnen D, Ballé J, Toderici G. Joint autoregressive and hierarchical priors for learned image compression[C]//NIPS 2018.
  5.  Cheng Z, Sun H, Takeuchi M, et al. Learned Image Compression With Discretized Gaussian Mixture Likelihoods and Attention Modules[C]//CVPR 2020.
  6.  Cheng Z, Sun H, Takeuchi M, et al. Learned Image Compression With Discretized Gaussian Mixture Likelihoods and Attention Modules[C]//CVPR 2020.

你可能感兴趣的:(深度学习,python,人工智能)