美文网首页iOS精选首页投稿(暂停使用,暂停投稿)互联网科技
DIY图像压缩——机器学习实战之K-means 聚类图像压缩:色

DIY图像压缩——机器学习实战之K-means 聚类图像压缩:色

作者: 阿里云云栖号 | 来源:发表于2018-02-11 11:10 被阅读159次

摘要: 本文以图像压缩为例,介绍了机器学习的实际应用之一。

在彩色图像中,每个像素的大小为3字节(RGB),可以表示的颜色总数为256 * 256 * 256。下图为1280 x 720像素的图像,采用PNG格式(一种无损压缩技术),大小为1.71 MB。 我们的目标是使用颜色量化进一步压缩图像,尽管压缩过程会有损失。

K均值聚类

这是一种在给定的数据点集合中找到“K”个簇的优化算法。最初,它随机分配K个簇中心,然后基于一些距离度量(例如,欧几里得距离),使来自簇中心的数据点的距离之和最小化。K均值聚类算法有两个步骤:

a)分配 - 将每个数据点分配给离中心距离最近的簇。

b)更新 - 从指定给新簇的数据点计算新的均值(质心)。

为了描述K均值聚类算法前后的区别,请看下面这个例子(K=3)。

在图像压缩问题中,K均值聚类算法会把类似的颜色分别放在K个簇中——也就是说,每个簇的颜色都变成了一种。因此,我们只需要保留每个像素的标签(表明该像素在哪个簇中),以及每个簇的颜色编码即可完成图像的压缩。 

压缩

我们将编写一个简单的python代码来压缩图像,并将压缩图像与代码本(Codebook)一起存储。这里保存的压缩图像只是原始图像的每个像素的簇标签。代码本是在运行K均值算法后实现的簇中心存储列表的别名。簇标签和代码本都保存在数据类型“无符号整数”中。以下为图像压缩代码:

我们可以选择足够大的K来表示图像的颜色。示例中K为128,表明原始图像中的所有颜色组合被量化为128种不同的颜色。这些颜色将会在新图片中呈现(解压缩后),并且应在视觉上类似于原始图像。

解压缩

我们还需要解压缩图像,以便可视化重建的图像。以下为图像解压缩代码:

下图为解压缩后的图像。虽然新图像失去了大量的像素颜色信息,但没有出现任何主要的差异。

此外,您可以通过单独查看码本中的颜色来找到新图像的128种颜色。

注意

1. 如果您尝试按照博客文章中的方式来压缩“jpeg”图像,那么您将会发生错误,因为jpeg会进行有损压缩。 jpeg的压缩算法改变了像素的值,因此包含标签的压缩图像中的像素可能会超过K,从而导致错误。

2. K均值算法是在给定数据集中查找指定数量簇的优化问题。图像尺寸增加或K值增加都会增加执行时间。所以,你可以从较低的K值开始,以便快速获得结果。

3. 在压缩时间和压缩比率之间存在折衷。较高的K值将产生更好的压缩图像质量,但压缩时间也会更长。

结论

您可以在这里查看博客文章中的图像所占用的磁盘空间,如下图所示。原始的png图像是1757 KB(tiger.png),而压缩的虎图像和码本总共只有433 KB。新图像也占用更少的空间:由于只有128种独特的颜色,新的压缩比超过2。

相关文章

  • DIY图像压缩——机器学习实战之K-means 聚类图像压缩:色

    摘要:本文以图像压缩为例,介绍了机器学习的实际应用之一。 在彩色图像中,每个像素的大小为3字节(RGB),可以表示...

  • K-Means算法

    参考链接:1. python机器学习实战之K均值聚类2. 机器学习实战之K-Means算法3.《机器学习实战》(十...

  • png、jpg图片格式的区别

    JPG的特性 1、支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小。 2、有损压缩会使图像数据...

  • 机器学习实战:用SVD压缩图像

    前文我们了解了奇异值分解(SVD)的原理[https://mp.weixin.qq.com/s?__biz=MzA...

  • web图像优化(5)

    避免使用有损编解码器重新压缩图像 建议始终从原始图像压缩。 重新压缩图像有后果。 假设您使用了已经被压缩的质量为6...

  • 数字图像处理-图像压缩

    图像压缩介绍 概念 图像压缩是图像编码的一种典型用途。数据压缩的对象是数据,大的数据量并不代表含有大的信息量。图像...

  • 如何通过优化主页大小,将网站大小减少 62%

    什么是图像压缩? 压缩图像是指在保持可接受的视觉质量水平的同时减小图像文件的大小。我使用imagemin来压缩我网...

  • 数字图像处理(六) 图像压缩

      本节主要目的是介绍图像压缩的一些基本概念,主要包括图像压缩的基本概念、PCM编码、无损压缩、有损压缩、压缩标准...

  • 有关图片压缩整理

    纹理压缩 有损压缩:是指对图像的压缩过程中,算法丢失一部分图像信息,降低了图像的质量,并且这种损失是不可逆的。有损...

  • android图片压缩

    参数: Bitmap.CompressFormat format 图像的压缩格式; int quality 图像压...

网友评论

    本文标题:DIY图像压缩——机器学习实战之K-means 聚类图像压缩:色

    本文链接:https://www.haomeiwen.com/subject/gajktftx.html