[論文閱讀] 顏色遷移-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結果.