[论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)
文章: The Linear Monge-Kantorovitch Linear Colour Mapping for Example-Based Colour Transfer, [paper], [matlab代码]
1-算法原理
本文将颜色迁移变成数据分布的转换问题, 因而本文需要解决2个方面的问题, 如何描述图像颜色分布, 二是如何对数据分布进行变换.
对于数据分布, 本文使用均值和协方差来对数据分布进行描述, 对于分布变换, 本文使用线性变换进行处理.
数据的均值和协方差比较简单, 因而本文的重点在于寻找变换方法. 本文使用的线性变换如下所示:
式中, \(u\) 为原始图像, \(v\) 为目标图像, \(\mu\) 为均值, \(\Sigma\) 为协方差, \(T\) 为需要求解的线性变换.
让 \(\Sigma_u = AA^T\) , \(\Sigma_v = BB^T\), 则
只要知道了A和B即可知道线性变换T.
2-算法核心
本文的核心就是寻找A和B. 文中主要使用的方法是矩阵分解, 介绍了几种方法.
2.1-Independent Transfer(IT)
首先介绍的是每个通道单独进行转换时, 协方差变成了对角矩阵, 对角元素为每个通道的方差的平方根, 这样变换公式为:
这种变换方式可以使用如下公式等价, 即为 Color transfer between images 中描述的方法
式中, i为通道, s表示源图像, t表示目标图像. 这种方法需要假设图像各颜色通道分布是独立可分离的, 但实际情况可能不满足这种情况, 因而实际效果可能不好. 需要先将图像转换到不相关的颜色空间, 一般在Lab颜色空间效果较好.
上图中, 依次为原始图像, 参考图像, rgb空间结果, lab空间结果.
2.2-Cholesky Decomposition(CD)
关于 Cholesky Decomposition 可以参考:
- 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用_大饼博士X的博客-CSDN博客_cholesky分解法求解线性方程组
- Cholesky分解 - 知乎 (zhihu.com)
Cholesky Decomposition 可以将矩阵分解为 \(A=LL^T\) 形式, 这样变换公式为:
文中说这种方法对于通道的顺序有一定的要求, 不同的颜色通道顺序结果不一样, 如RGB与BGR的结果很有可能不一样.
上图中, 依次为原始图像, 参考图像, rgb结果, bgr空间结果.
2.3-Square Root Decomposition(SRD)
这种方法是对 Cholesky Decomposition 方法的一种改进, 分解公式为:
这样变换公式为:
Square Root Decomposition 分解后, D为特征值的对角矩阵, 特征值从大到小排列, 可以实现主方向对齐, 类似PCA处理, 可以减少对颜色通道顺序的依赖, 这样在不同的颜色空间下结果类似.
这种矩阵分解的方法可能的问题是, 局部出现颜色变化不一致的问题, 应该是与 [论文阅读] 颜色迁移-Correlated Color Space 中描述的问题一样.
上图中, 依次为原始图像, 参考图像, SRD结果.
2.4-Linear Monge-Kantorovitch(MKL)
将分布变换的问题转换为最优传输的问题, 关于 Monge-Kantorovitch 可以参考: 最优传输--Monge-Kantorovich理论_asforking的博客-CSDN博客
这样变换公式为:
这个算法在 Square Root Decomposition 基础上进一步进行了改进, 对变换进一步约束了位移, 这样可以最小化颜色的变化.
上图中, 依次为原始图像, 参考图像, regrain结果.