Press "Enter" to skip to content

最近邻居照片马赛克:数字艺术的机器学习

最近邻居照片马赛克:数字艺术的机器学习 四海 第1张

这是一个例子!

放大动画,建议全屏观看。(作者的视频)

技术创新正在以非常快的速度增长,使得数字存储变得极其便宜和易用。此外,大多数人现在都有配备高质量相机的手机。大多数拍摄的照片都会被观看几次,然后被存放在硬盘或云存储服务中。这导致人们聚集了大量的图片库。我也不例外,由于COVID-19封锁期间有一些额外的时间,我想出了一些软件,为人们的照片库给予第二次生命。这个软件可以创建照片马赛克。

照片马赛克是由许多小图像拼接在一起创建的图像或照片。在上面的gif动画和视频中,可以很容易地看到有多少小的图像方块被用来创建一个更大的图片。有几种创建这些马赛克的方法;例如,可以根据颜色或图像结构选择和放置较小的图像方块或瓦片到较大的图像中。在这篇文章中,我们将专注于颜色匹配策略,这对于数据科学或机器学习的观众特别重要,因为它利用了K最近邻(KNN)建模方法。

问题的框架

与往常一样,将问题进行解构并围绕需要实现目标所需的各个组件构建函数是一个好的做法。首先,我们需要将较大的或封面图像分成较小的部分(见下图1)。一旦我们有了较小的部分,然后我们可以找到与每个部分匹配的图像瓦片。我们使用颜色匹配的方法构建马赛克,因此我们可以将问题形式化如下:对于每个封面图像的部分,找到最接近颜色的图像瓦片。

最近邻居照片马赛克:数字艺术的机器学习 四海 第2张

图1:在这里,我们将封面图像分成由白线表示的方形部分。(作者的图片)

彩色图像的结构

数字彩色图像由不同的像素颜色通道组成,将这些通道组合起来创建彩色图像。常见的格式是红绿蓝或RGB图像格式,在该格式中,彩色图像由红色、绿色和蓝色通道组成。图像通常以8位存储,这意味着每个像素的颜色通道的像素值范围在0到255之间(2⁸-1)。

最近邻居照片马赛克:数字艺术的机器学习 四海 第3张

图2:在这里,我们捕捉到了封面图像部分(顶部)和瓦片(底部)的平均RGB值。这个部分在库中没有完全匹配,但是很接近。(作者的图片)

如果我们对每个图像的平均红色、绿色和蓝色像素值进行平均,我们可以使用三个数字来描述每个图像的一般颜色。因此,为了找到适合每个部分的瓦片,我们需要找到具有相同平均RGB像素值的瓦片。我们可以首先创建一个封面图像每个部分的平均RGB像素值列表。然后,我们可以从瓦片照片库中创建一个平均RGB像素值列表。一旦创建了这两个列表,我们可以遍历部分列表,并搜索瓦片库列表,以找到匹配的平均RGB像素值。

通过巧妙的动态规划和高效的数据结构,可以相对快速地进行此搜索。然而,这种方法存在一个重大缺陷,需要解决。可能情况是,瓦片图像库是不完整的,并且并不是每个平均RGB像素值都有对应的瓦片图像。因此,寻找具有完全相同平均RGB值的瓦片将会得到空结果,参见图2。解决方案是寻找下一个最接近的平均RGB值的瓦片。针对颜色确定“接近度”的研究非常广泛。例如,众所周知,黑色和白色根本不接近。然而,我们的解决方案是简单而实用的,它利用了机器学习的方法。

利用K最近邻找到最接近的颜色

每个子部分和图块都由平均红色、绿色和蓝色的三个数值表示。我们可以将这三个颜色数值视为独立的维度,从而可以创建一个三维图,其中每个颜色都是一个维度或轴。如果我们将正在寻找匹配图块的子部分的值与我们的库中的可能图块进行比较,我们可以看到哪些图块具有最接近的颜色数值。

最近邻居照片马赛克:数字艺术的机器学习 四海 第4张

图3:子部分的平均RGB值以红色标出。与其颜色数值相近的图块以橙色标出。使用K最近邻算法,我们可以找到最接近的匹配,用黄色的“X”表示。(图片作者提供)

K最近邻算法可以评估库中的所有图块,并对平均像素值进行建模。然后,在为每个子部分寻找匹配图块时,模型将返回最接近的邻居或颜色数值最匹配的图块。这个搜索过程在图3中有所说明。使用K最近邻算法要比直接搜索准确值更可靠,因为有时准确值可能不存在。在内部,K最近邻模型可以使用类似树状结构构建,这使得搜索或遍历相对高效。因此,性能也与我们提到过的其他解决方案相当。一旦找到每个子部分颜色的所有图块,就可以使用简单的数组/矩阵索引将所有图块图像拼接在一起,创建封面照片的最终马赛克。

结束语

如果您想要自己的照片马赛克或需要帮助构建您的照片马赛克,请随时与我们联系。我们可以重新利用那些在某个硬盘上积尘已久的旧图像,给它们第二次机会变成美丽的作品。嘿,说不定它们甚至可以成为NFT!

让我们来看另一个使用不同动画效果的照片马赛克的例子。所有的动画都是通过编程方式生成的,将在以下文章中详细介绍。

分散动画,请在全屏模式下观看。(作者提供的视频)

本文最初发布在这里,已获得许可进行转载。

Leave a Reply

Your email address will not be published. Required fields are marked *