Loading...
墨滴

张春成

2021/11/16  阅读:35  主题:默认主题

图像的颜色风格化

图像的颜色风格化

神经网络的非线性映射方法能够方便地进行各种有效的计算机视觉设想。 本文尝试使用SOM与KMEANS相结合的方式,对图像进行有效的颜色风格化。


图像风格化

人眼视觉对颜色所携带的信息较为敏感, 因此,图像的颜色一直是画家和计算机视觉从业者关注的重点之一。

什么是颜色风格化呢? 可以观察以下两组例子,

  • 第一组

    • 模板图 P1 Source

    • 变换图 P1 Target

  • 第二组

    • 模板图2 P2 Source

    • 变换图2 P2 Target

不难看出

图像的颜色变换,就是以“模板图”为基础, 学习它的颜色分布, 将变换图的颜色进行变换,使其与模板一致。

我之前写过相关的内容, 图解审美[1] 就试图说明图像的颜色空间问题, 但当时的母性变换效果实在不尽如人意。

因此,在此尝试了一个新方法,试图增强图像的颜色变换效果。 本文介绍了

一种基于SOM与KMEANS相结合的图像颜色风格化方法

算是敢起“审美”这个让自己汗颜的题目的自我救赎吧。

自组织映射

自组织映射(SOM[2])是一种基于深度神经网络的非线性映射方法。 如下图所示

SOM Intro
SOM Intro

简单来说,它的原理是

通过神经网络激活函数的非线性激活方法, 将输入信号映射到一个规范化的公共的标准空间。

它的损失函数是

在标准空间中,样本之间的距离关系保持不变。

也就是说,它执行这样一个功能

在保持样本相互关系不变的前提下, 找到一个新的标准空间, 来对这些样本进行重新表征。

这个性质对我们需要进行的颜色风格化工作十分的有用。

颜色标准化

我们在这里使用SOM进行了, 与其说是“颜色风格化”, 不如说是“颜色标准化”。

换了一个动词, 相信读者能够立即明白它背后的原理,

利用SOM, 从模板图像中学习到它的颜色分布的标准空间,

这样在SOM建立之后, 新图像的颜色风格化工作, 就可以直接转化为利用SOM进行颜色标准化, 即可。

方法相当的简单,而效果极其有效。

颜色标准空间的优化

然而,仅仅使用SOM进行颜色变换面临一个小问题, 就是模板图像的颜色分布,容易受到该图像颜色直方图的影响, 造成损失一些数量较少,但对画面极其重要的颜色, 比如如下现象

  • 直接使用SOM P3 Wrong

  • 优化后的SOM P1 Source

可以看到,直接使用SOM会导致该模型傻傻地忽略掉了图像中的“点睛之笔”,

“红色的旌旗”和“盛装的节日”

导致意境全无。

而我采用了KMEANS的方法, 在SOM训练之前, 对图像的颜色进行了“巧妙”的处理, 该处理能够使SOM捕捉到这些像素点少,却在视觉上极其重要的内容。 从而提升整体的颜色效果。

当然,该方法的效果也不是一直都好, (否则也不会只发在这里。。。), 比如下面的情况,就很难说SOM是怎么学出来的。

  • 模板图3 P3 Source

  • 变换图3 P3 Target

为什么色彩斑斓的图,SOM只从里面学到了红色系呢? 神奇。

最后,本文的分析代码可见我的 GITHUB 仓库[3]。 欢迎浏览和交流~~。

参考资料

[1]

图解审美: https://mp.weixin.qq.com/s?__biz=MzkxNTI1MDc5NA==&mid=2247484049&idx=1&sn=1391641b64b00943241ddcd853d35220&chksm=c1634994f614c082070c60ec88aae31c63253b3360bf1b6838712fc84324bfb06807ff175382&token=155997619&lang=zh_CN#rd

[2]

SOM: https://sites.pitt.edu/~is2470pb/Spring05/FinalProjects/Group1a/tutorial/som.html

[3]

GITHUB 仓库: https://github.com/listenzcc/JupyterScripts

张春成

2021/11/16  阅读:35  主题:默认主题

作者介绍

张春成