[论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)

文章: The Linear Monge-Kantorovitch Linear Colour Mapping for Example-Based Colour Transfer, [paper], [matlab代码]

1-算法原理

本文将颜色迁移变成数据分布的转换问题, 因而本文需要解决2个方面的问题, 如何描述图像颜色分布, 二是如何对数据分布进行变换.

对于数据分布, 本文使用均值和协方差来对数据分布进行描述, 对于分布变换, 本文使用线性变换进行处理.

数据的均值和协方差比较简单, 因而本文的重点在于寻找变换方法. 本文使用的线性变换如下所示:

\[\left\{\begin{array}{l}
t(u)=T\left(u-\mu_u\right)+\mu_v \\
T \Sigma_u T^T=\Sigma_v \tag{5}
\end{array}\right.
\]

式中, \(u\) 为原始图像, \(v\) 为目标图像, \(\mu\) 为均值, \(\Sigma\) 为协方差, \(T\) 为需要求解的线性变换.

让 \(\Sigma_u = AA^T\) , \(\Sigma_v = BB^T\), 则

\[T(AA^T)T^T = BB^T \\
(TA)(TA)^T = BB^T \\
TA = B \\
T = BA^{-1}
\]

只要知道了A和B即可知道线性变换T.

2-算法核心

本文的核心就是寻找A和B. 文中主要使用的方法是矩阵分解, 介绍了几种方法.

2.1-Independent Transfer(IT)

首先介绍的是每个通道单独进行转换时, 协方差变成了对角矩阵, 对角元素为每个通道的方差的平方根, 这样变换公式为:

\[T=\left(\begin{array}{ccc}
\sqrt{\frac{\operatorname{var}\left(v_1\right)}{\operatorname{var}\left(u_1\right)}} & & 0 \\
0 & \ddots & \\ \tag{11}
& & \sqrt{\frac{\operatorname{var}\left(v_N\right)}{\operatorname{var}\left(u_N\right)}}
\end{array}\right)
\]

这种变换方式可以使用如下公式等价, 即为 Color transfer between images 中描述的方法

\[C^i = \frac{\sigma_t^{i}}{\sigma_s^{i}}(C_s^{i} - \mu_s^{i}) + \mu_t^{i}
\]

式中, i为通道, s表示源图像, t表示目标图像. 这种方法需要假设图像各颜色通道分布是独立可分离的, 但实际情况可能不满足这种情况, 因而实际效果可能不好. 需要先将图像转换到不相关的颜色空间, 一般在Lab颜色空间效果较好.

上图中, 依次为原始图像, 参考图像, rgb空间结果, lab空间结果.

2.2-Cholesky Decomposition(CD)

关于 Cholesky Decomposition 可以参考:

  1. 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用_大饼博士X的博客-CSDN博客_cholesky分解法求解线性方程组
  2. Cholesky分解 - 知乎 (zhihu.com)

Cholesky Decomposition 可以将矩阵分解为 \(A=LL^T\) 形式, 这样变换公式为:

\[T = L_vL_u^{-1} \tag{12}
\]

文中说这种方法对于通道的顺序有一定的要求, 不同的颜色通道顺序结果不一样, 如RGB与BGR的结果很有可能不一样.

上图中, 依次为原始图像, 参考图像, rgb结果, bgr空间结果.

2.3-Square Root Decomposition(SRD)

这种方法是对 Cholesky Decomposition 方法的一种改进, 分解公式为:

\[\Sigma_u = P_u^T D_u P_u, \Sigma_u^{1/2} = P_u^T D_u^{1/2} P_u \\
\Sigma_v = P_v^T D_v P_v, \Sigma_v^{1/2} = P_v^T D_v^{1/2} P_v
\]

这样变换公式为:

\[T = \Sigma_v^{1/2}\Sigma_u^{-1/2} \tag{15}
\]

Square Root Decomposition 分解后, D为特征值的对角矩阵, 特征值从大到小排列, 可以实现主方向对齐, 类似PCA处理, 可以减少对颜色通道顺序的依赖, 这样在不同的颜色空间下结果类似.

这种矩阵分解的方法可能的问题是, 局部出现颜色变化不一致的问题, 应该是与 [论文阅读] 颜色迁移-Correlated Color Space 中描述的问题一样.

上图中, 依次为原始图像, 参考图像, SRD结果.

2.4-Linear Monge-Kantorovitch(MKL)

将分布变换的问题转换为最优传输的问题, 关于 Monge-Kantorovitch 可以参考: 最优传输--Monge-Kantorovich理论_asforking的博客-CSDN博客

这样变换公式为:

\[T = \Sigma_u^{-1/2}(\Sigma_u^{1/2}\Sigma_v\Sigma_u^{1/2})\Sigma_u^{-1/2} \tag{25}
\]

这个算法在 Square Root Decomposition 基础上进一步进行了改进, 对变换进一步约束了位移, 这样可以最小化颜色的变化.



上图中, 依次为原始图像, 参考图像, regrain结果.

3-参考

  1. The Linear Monge-Kantorovitch Linear Colour Mapping for Example-Based Colour Transfer 论文理解_玉兔金兔的博客-CSDN博客

[论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)的更多相关文章

  1. 【CV论文阅读】Deep Linear Discriminative Analysis, ICLR, 2016

    DeepLDA 并不是把LDA模型整合到了Deep Network,而是利用LDA来指导模型的训练.从实验结果来看,使用DeepLDA模型最后投影的特征也是很discriminative 的,但是很遗 ...

  2. 分布式多任务学习论文阅读(四):去偏lasso实现高效通信

    1.难点-如何实现高效的通信 我们考虑下列的多任务优化问题: \[ \underset{\textbf{W}}{\min} \sum_{t=1}^{T} [\frac{1}{m_t}\sum_{i=1 ...

  3. 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)

    今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...

  4. 论文阅读之Joint cell segmentation and tracking using cell proposals

    论文提出了一种联合细胞分割和跟踪方法,利用细胞segmentation proposals创建有向无环图,然后在该图中迭代地找到最短路径,为单个细胞提供分割,跟踪和事件. 3. PROPOSAL GE ...

  5. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

  6. [论文阅读] RNN 在阿里DIEN中的应用

    [论文阅读] RNN 在阿里DIEN中的应用 0x00 摘要 本文基于阿里推荐DIEN代码,梳理了下RNN一些概念,以及TensorFlow中的部分源码.本博客旨在帮助小伙伴们详细了解每一步骤以及为什 ...

  7. BERT 论文阅读笔记

    BERT 论文阅读 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 由 @快刀切草莓君 ...

  8. Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读

    Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...

  9. 深度学*点云语义分割:CVPR2019论文阅读

    深度学*点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...

  10. 《Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks》论文阅读

    <Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shi ...

随机推荐

  1. 使用Jumpserver堡垒机管理MySQL应用

    第一步,添加系统用户 资产管理,系统用户,创建<数据库协议>MySQL 用户名和密码填写实际可以访问数据库的用户名和密码 第二步,添加应用 应用管理,数据库 主机和端口填写可以访问数据库的 ...

  2. 第六章:Django 综合篇 - 8:信号 signal

    django自带一套信号机制来帮助我们在框架的不同位置之间传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者(rec ...

  3. 安装 loki 轻量级日志监控系统

    文章转载自:https://www.cnblogs.com/flypig666/archive/2004/01/13/14151801.html 从本文中学习到的是docker-compose相关命令 ...

  4. [ML从入门到入门] 支持向量机:从SVM的推导过程到SMO的收敛性讨论

    前言 支持向量机(Support Vector Machine,SVM)在70年代由苏联人 Vladimir Vapnik 提出,主要用于处理二分类问题,也就是研究如何区分两类事物. 本文主要介绍支持 ...

  5. Android 使用压缩纹理

    本文介绍了什么是压缩纹理,以及加载压缩纹理的核心步骤.并在 Android OpenGLES 平台上实现了压缩纹理的显示. 一.压缩纹理概念 传统的图片文件格式有 PNG . JPEG 等,这种类型的 ...

  6. ToroiseGit/GitBash 设置提交信息模板设置

    一.背景:当使用git提交代码时,每次的提交信息固定,却又比较长不好记的时,还需要将模板的地址保存下来,如果能设置一个固定的模板就可以很好的解决这个问题. 提交前的提交信息需要手动输入: 二.Toro ...

  7. SpringBoot课程学习(一)

    @SpringBootTest指定测试的启动类 声明@SpringBootTest @Test注解 @Test 指定测试方法 @Order排序 一:先声明排序模式 @TestMethodOrder(M ...

  8. PHP全栈开发(八):CSS Ⅵ 列表 style

    列表分为有序列表和无序列表 我们知道有序列表的标签是<ol>意思是order list 无序列表的标签是<ul> 列表里面每项的标签用<li>来进行包裹. 使用CS ...

  9. 一文讲清楚 JVM Safe Point

    大家好,我是树哥. 关于 Safe Point 是 JVM 中很关键的一个概念,但我估计有不少同学不是很懂.于是今天跟大家来深入聊聊 Safe Point,希望通过这篇文章能解答这样几个问题: 什么是 ...

  10. WhereIf 扩展

    public static class QueryableExtensions { public static IQueryable<T> WhereIf<T>(this IQ ...