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

这篇具有很好参考价值的文章主要介绍了【端到端图像压缩】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,深度学习,python,人工智能 图1.1 CompressAI包含的6个端到端压缩模型

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

2 代码的运行

2.1 CompressAI下载与安装

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

compressai,深度学习,python,人工智能

 

图2.1 配置CompressAI

2.2 运行示例程序

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

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

compressai,深度学习,python,人工智能

 

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

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

compressai,深度学习,python,人工智能

 

图2.3 示例程序

3 结果分析

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

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

compressai,深度学习,python,人工智能

 

图3.1 加载网络

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

compressai,深度学习,python,人工智能

图3.2 原始图片

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

 compressai,深度学习,python,人工智能

 

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

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

compressai,深度学习,python,人工智能

 

图3.4 PSNR、MS-SSIM和比特率

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

compressai,深度学习,python,人工智能

 

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

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

compressai,深度学习,python,人工智能

 

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

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

compressai,深度学习,python,人工智能

 

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

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

compressai,深度学习,python,人工智能

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

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

compressai,深度学习,python,人工智能 

 

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

4 结论

随着机器学习算法的发展,更清晰、更高分辨率、更低比特的图像压缩成为可能。端到端的图像压缩方法的出现,显现出了优于传统图像压缩方式的性能。本研究报告运行了CompressAI端到端图像压缩代码,并分析结果。通过运行代码更深刻的了解端到端图像处理算法内涵。文章来源地址https://www.toymoban.com/news/detail-663543.html

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.

到了这里,关于【端到端图像压缩】CompressAI运行记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端实现端到端测试(代码版)

    playwright 、 cypress 、 selenium 对比 个人初步使用后,推荐playwright 框架作为e2e test 下载 cypress npm install cypress --save-dev package.json npm run cypress:open 使用流程 入门官方文档 npm run cypress:open 左侧端测试,右侧组件测试,点击左侧 选择你需要的浏览器,点击开始 自动打开浏览器,点击左侧s

    2024年02月04日
    浏览(37)
  • 单元测试与端到端测试——主要区别

    目录 前言: 什么是单元测试? 单元测试生命周期 单元测试的好处 那么它有什么好处呢? 单元测试示例 单元测试的类型 单元测试工具 什么是端到端测试? 端到端测试 端到端测试的主要好处是什么? 端到端测试示例 端到端测试的类型 横向端到端测试 垂直端到端测试 端到

    2024年02月15日
    浏览(49)
  • 实时Flink的端到端检测和测试

    在现代软件开发中,实时数据处理和检测是非常重要的。Apache Flink是一个流处理框架,可以用于实时数据处理和分析。在本文中,我们将讨论Flink的端到端检测和测试,以及如何实现高效和可靠的实时数据处理。 实时数据处理是指在数据生成的同时对数据进行处理和分析。这

    2024年02月22日
    浏览(46)
  • 端到端 RAG 解决方案 RAGFlow 正式开源

    继 AI 原生数据库 Infinity 于去年底正式开源之后,我们的端到端 RAG 解决方案 RAGFlow 也于今日正式开源。在回答 RAGFlow 是一款怎样的产品之前,我们先来谈谈为何要做这样一款产品。 RAG 发展到今日,已经成为 LLM 面向 B 端服务的共识,然而时至今日,针对它的疑问却从来没有

    2024年04月08日
    浏览(45)
  • 4端到端协议-4.3【实验】【计算机网络】

    2023-6-15 12:19:41 以下内容源自《【实验】【计算机网络】》 仅供学习交流使用 Wireshark的安装及基本使用【计算机网络】 4端到端协议-4.2【实验】【计算机网络】 各位同学,大家好,本次实验的内容为TCP的连接管理。 本次实验我们分成四个部分来介绍。我们先介绍实验目的,

    2024年02月10日
    浏览(79)
  • 计算机网络中的 端到端和点到点

    点到点主要说的是——数据链路层 端到端主要说的是——传输层 为什么我们需要这两个东西呢? 数据链路层只负责直接相连的两个结点之间的通信,一个结点的数据链路层接受网络层数据并封装之后,就把数据帧从链路上发送到与其相邻的下一个结点。同时点到点通信并不

    2024年02月16日
    浏览(37)
  • 使用 Python 创建端到端聊天机器人

    聊天机器人是一种计算机程序,它了解您的查询意图以使用解决方案进行回答。聊天机器人是业内最受欢迎的自然语言处理应用。因此,如果您想构建端到端聊天机器人,本文适合您。在本文中,我将带您了解如何使用 Python 创建端到端聊天机器人。 训练的意图及回复越多,

    2024年02月01日
    浏览(38)
  • 端到端流式语音识别研究综述——语音识别(论文研读)

    语音识别是实现人机交互的一种重要途径,是自然语言处理的基础环节,随着人工智能技术的发展,人机交互等大量应用场景存在着流式语音识别的需求。流式语音识别的定义是一边输入语音一边输出结果,它能够大大减少人机交互过程中语音识别的处理时间。目前在学术研

    2024年02月04日
    浏览(36)
  • BsinCopilot:Java版端到端大语言模型开发框架

    BsinCopilot是基于BsinPaaS开源框架构建的大语言模型应用SaaS服务,借鉴langchain的框架思想,引入  langchian4j组件,微前端微服务的架构设计,可快速助您构建和体验端到端的AI应用。 概念 说明 Bsin 毕昇缩写,毕昇,中国北宋发明家,活字印刷术的发明者。毕昇出身平民,长期在

    2024年03月13日
    浏览(57)
  • flink读写kafka保证端到端exactly-once

    内容: 本文主要介绍使用flink读写kafka,如何保证exactly-once Kafka端到端一致性需要注意的点: Flink任务需要开启checkpoint配置为CheckpointingMode.EXACTLY_ONCE Flink任务FlinkKafkaProducer需要指定参数Semantic.EXACTLY_ONCE Flink任务FlinkKafkaProducer配置需要配置transaction.timeout.ms,checkpoint间隔(代码指定

    2023年04月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包