Matting
任務就是把α(不透明度, 也就是像素屬於前景的機率)、F(前景色)和B(背景色)三個變量給解出來.html
C爲圖像當前可觀察到的顏色, 這是已知的. 問題是一個等式解不出三個變量, 所以就必須引入額外的約束使這個方程可解, 這個額外的約束就是由用戶指定的trimap
(有人譯爲三元圖
)圖, 或者是僅僅在前景和背景畫幾筆的草圖(scribbles).函數
來自於論文: Christoph Rhemann, Carsten Rother, Jue Wang, Margrit Gelautz, Pushmeet Kohli, Pamela Rott. A Perceptually Motivated Online Benchmark for Image Matting. Conference on Computer Vision and Pattern Recognition (CVPR), June 2009.
測試
一些相關的術語, 來自參考連接[1]
SAD(Sum of Absolute Difference)= SAE(Sum of Absolute Error)即絕對偏差和
SATD(Sum of Absolute Transformed Difference)即hadamard變換後再絕對值求和
SSD(Sum of Squared Difference)= SSE(Sum of Squared Error)即差值的平方和
MAD(Mean Absolute Difference)= MAE(Mean Absolute Error)即平均絕對差值
MSD(Mean Squared Difference)= MSE(Mean Squared Error)即平均平方偏差spa
由於如果僅僅考慮SAD和MSE指標, 在和人類判斷的對比中, 發現, 並不能很好地反映人類的實際判斷標準. 爲此文章引入了兩個新的指標, 梯度和連通性. 先來講下連通性.code
這個圖基於matting
任務中得到的alpha matte
圖, 這是一個灰度圖, 表示的就是前面的公式裏的\(\alpha\).orm
因爲這裏的圖上出現了幾個參數, \(\alpha_i \, \Omega, d_i, l_i, i\), 下面結合具體的公式來理解.htm
\[ \sum_{i}\left(\varphi\left(\alpha_{i}, \Omega\right)-\varphi\left(\alpha_{i}^{*}, \Omega\right)\right)^{p} \]blog
這裏的p是自定義參數. 具體見後.圖片
該公式給出了連通性偏差的計算方法, 這裏是對整個預測出來的alpha matte
圖和對應的真值的圖的對應的差別的累和. 這裏的關鍵是裏面的\(\varphi\left(\alpha_{i}, \Omega\right)\)函數.get
首先要解釋這裏的\(\Omega\), 它表示的是對於預測結果圖和真值共有的最大的值爲1的連通區域, 被稱爲"源域(source region)", 也就是在上圖中紅線區域大體表示的範圍. 這裏的\(\varphi\)計算的是有着透明度\(\alpha_i\)的像素i, 與源域的連通度(degree of connectivity), 當其爲1則認爲該像素與源域全連通, 等於0表示徹底不連通. 另外一個加星號的表示真值圖上的對應像素的連通度的計算. 兩者計算差別, 來累計偏差. 好的結果應該有着更低的偏差, 更類似的連通狀況.
公式裏的\(l_i\)表示像素i四連通到源域所須要的最大閾值, 也就是上圖中的虛線, 用它對alpha matte
進行二值化, 正好處於使像素i與源域連通(實際須要四連通)/不連通的臨界. 如果對於一個像素而言, 它的\(l=\alpha\), 那麼就能夠認爲它與源域是全連通的.
而公式裏的\(d_i\)如圖所示, 表示的就是像素i處的\(\alpha\)值和對應的臨界閾值\(l_i\)的差距.
\[ \varphi\left(\alpha_{i}, \Omega\right)=1-\left(\lambda_{i} \cdot \delta\left(d_{i} \geq \theta\right) \cdot d_{i}\right) \]
這裏的\(\theta\)是自定義參數, 具體見後. 它用在指示函數\(\delta\)裏做爲一個閾值, 來忽略小於它的\(d_i\)的狀況, 認爲小於它就已是全連通了, 使得偏差計算更爲靈活.
其中的\(\lambda_{i}=\frac{1}{|K|} \sum_{k \in K} dist_{k}(i)\)用來對\(d_i\)進行加權, 這裏的K表示\(l_i\)到\(\alpha_i\)之間的離散\(\alpha\)值的集合, \(dist_k\)計算了設置爲閾值\(k\)時, 對於像素i距離最近的連通到源域的像素, 與像素i之間的標準化歐式距離. 實際狀況中, 遠離連通區域的像素, 得到的權重\(\lambda\)也應該相應會更大些, 這樣致使獲得的\(\varphi\)會更小些, 也就是認爲連通度更小.
主要計算的是預測的alpha matte \(\alpha\)和ground truth \(\alpha^{*}\)的之間的梯度差別, 定義以下:
\[ \sum_{i}\left(\nabla \alpha_{i}-\nabla \alpha_{i}^{*}\right)^{q} \]
這裏的q是自定義參數. 具體見後
這裏的\(\nabla \alpha_{i}\)和\(\nabla \alpha_{i}^{*}\)表示的是對應的alpha matte
的歸一化梯度, 這是經過將matte
與具備方差\(σ\)的一階Gaussian導數濾波器進行卷積計算獲得的. 兩者計算差別, 進而累計損失. 整體越類似, 指標值越小.
這裏的方差\(σ\)也是自定義參數, 具體見後
對於這裏存在四個須要人工設置的參數: \(\theta, p, q\), 在參考文章3中, 有進一步的測試與設定, 文章最終選擇了這樣的設定: \(\sigma=1.4, q=2, \theta=0.15, p=1\).