专栏首页AI研习社Github 项目推荐 | 用 TensorFlow 实现基于 GAN 的极限图像压缩框架

Github 项目推荐 | 用 TensorFlow 实现基于 GAN 的极限图像压缩框架

本库是用 TensorFlow 实现的基于 GAN 的极限图像压缩框架。该方法由 Agustsson 等人开发,该方法非常有趣,详细信息请查阅论文:

Generative Adversarial Networks for Extreme Learned Image Compression

https://arxiv.org/abs/1804.02958

Github 链接:

https://github.com/Justin-Tan/generative-compression

用法

代码基于 TensorFlow 1.8

# Clone
$ git clone https://github.com/Justin-Tan/generative-compression.git
$ cd generative-compression

# To train, check command line arguments
$ python3 train.py -h
# Run
$ python3 train.py -opt momentum --name my_network

训练的批尺寸(batch size)为 1,每隔一定数量的步骤将重新构造 samples / tensorboard。Checkpoint 每十个 epoches 储存一次。

图像压缩(即将推出)

# Compress
$ python3 compress.py -h  # check arguments
$ python3 compress.py -i /path/to/image -r /path/to/model/checkpoint

结果

这些全局压缩的图像来自 Cityscapes leftImg8bit 数据集的测试分割。

C = 8 channels, multiscale discriminator

Show quantized C=4,8,16 channels image comparison

预训练模型

开发者可以找到用于全局压缩的预训练模型,其中 C = 8(对应于 0.072bpp 表示)的通道瓶颈和<dropbox link here>下的多尺度鉴别器损失。 该模型在Cityscapes(https://www.cityscapes-dataset.com/) leftImg8bit 数据集的划分中了 64 个 epochs 来训练。

警告:这些模型在 TensorFlow 1.3 下训练,不过在 TensorFlow 1.8 下似乎也能正常加载。

详细信息请查看 Github 官方链接:

https://github.com/Justin-Tan/generative-compression

本文分享自微信公众号 - AI研习社(okweiwu),作者:AI研习君

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Tensorflow 入门与安装 | Tensorflow 最全资料汇总【2】

    【AI研习社】关注AI前沿、开发技巧及技术教程等方面的内容。欢迎技术开发类文章、视频教程等内容投稿,邮件发送至:zhangxian@leiphone.com 自...

    AI研习社
  • 业界 | TensorFlow 2.0 Alpha 版来了!吴恩达配套课程同步上线

    AI 科技评论按:3 月 7 日凌晨,谷歌 TensorFlow 开发者峰会(TensorFlow Dev Summit 2019)在美国加州举行。自今年 1 ...

    AI研习社
  • Tensorflow的迭代更新 | Tensorflow 最全资料汇总【1】

    【AI研习社】关注AI前沿、开发技巧及技术教程等方面的内容。欢迎技术开发类文章、视频教程等内容投稿,邮件发送至:zhangxian@leiphone.com 谷...

    AI研习社
  • python 验证码识别库pytesse

    pytesseract只是tesseract-ocr的一种实现接口。所以要先安装tesseract-ocr(大名鼎鼎的开源的OCR识别引擎)。

    py3study
  • Lua/luajit 点与冒号的区别

    无论在定义method或 function时用的点号, 还是冒号, Lua/Luajit 中最终是以使用时的点号或冒号为准, 并且Object.method(...

    sunsky
  • HTML案例—很讨巧的一种js+css制作hover模式展示二级菜单方法

    xing.org1^
  • 为什么局部变量需要显式设置初始化值

    我们在编程中,无时无刻地都在于方法打交道,而在方法中,我们很难不使用局部变量,比如我们有下面的这样一段很简单的代码

    技术小黑屋
  • MySQL 索引(中)

    聚簇索引是按照每张表的主键构造的一棵 B+ 树,叶子节点中存放的即为整张表的行记录数据,聚簇索引的叶子节点也称为数据页。非聚簇索引叶子节点并不包含行记录的全部数...

    mr.songw
  • 真实实践中的MeritMS与Project Wise的校审流程对比

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

    hotqin888
  • HDOJ/HDU 2700 Parity(奇偶判断~)

    Problem Description A bit string has odd parity if the number of 1’s is odd. A...

    谙忆

扫码关注云+社区

领取腾讯云代金券