摳圖算法Background Matting:The world is your green screen

論文地址:https://arxiv.org/abs/2004.00626

代碼:https://github.com/senguptaumd/Background-Matting

背景介紹

摳圖是照片編輯和視覺效果中使用的標準技術,在現有的摳圖算法中,要想摳出一個好的maks一般需要三分圖(trimap由前景,背景,未知片段組成)。雖然現在也有不需要三分圖的算法正在發展,但是這種不需要三分圖的算法,在摳圖的質量與有三分圖的算法沒有可比性。
因此,在本算法中除了需要原圖片之外,還需要一張額外的背景圖片。

摳圖算法的公式

I = α F + ( 1 − α ) B I = \alpha F+(1-\alpha)B I=αF+(1α)B
F F F:前景圖(foreground), B B B:背景圖(background)。 α \alpha α:混合係數(mixing coeffcient)。 I I I:圖像的合成方程
α \alpha α趨近與0的時候,就會獲得背景圖,相反,當 α \alpha α趨近與1時,就會獲得前景圖。

方法介紹

核心方法
在本文中,核心是使用一個深度摳圖網絡G,對輸入的圖片進行前景色和 α \alpha α進行提取,對背景色和軟分割進行增強,在接上一個鑑別器網絡D指導訓練生成真實的結果

網絡結構圖

在這裏插入圖片描述

Adobe數據集上的監督訓練

輸入

包含對象在前景中的圖像 I I I(Image),圖像 I I I中對應的背景圖像 B ′ B^{\prime} B(Background)(這個和真實的背景圖 B B B不同),對象的軟分割圖像 S S S(Soft Segmentation)以及對象再相鄰時間上的臨近幀 M M M(Motion Cues)。

爲了生成軟分割圖像 S S S需要對圖像進行Decoder-Encoder的卷積處理後獲得粗分割結果,在對圖片進行腐蝕,擴張以及高斯模糊。

當選擇的是視頻輸入時,將 M M M設置爲 I I I前後兩幀的拼接,令每一幀的時間間隔爲T,則:
M = { I − 2 T , I − T , I + T , I + 2 T } M = \{I_{-2T},I_{-T},I_{+T},I_{+2T}\} M={ I2T,IT,I+T,I+2T}
這些圖像被轉化爲灰度圖像,以忽略顏色的信息而更多地傾向於對象的運動信息。

在沒有選擇視頻輸入時,把 M M M理解爲圖像 I I I的複製,即:
M = { I , I , I , I } M = \{I,I,I,I\} M={ I,I,I,I}

將輸入集表示爲 X = { I , B ′ , S , M } X = \{I,B^{\prime},S,M\} X={ I,B,S,M},則帶有權重的網絡計算過程可抽象地表示爲:
( F , α ) = G ( X ; θ ) (F,\alpha) = G(X;\theta) (F,α)=G(X;θ)

內容切換塊(Context Switching Block)

聚焦於網路圖左邊部分:
在這裏插入圖片描述
輸入的內容 X X X對應圖中左邊的四個部分,分別採用不同的Enocder對各自部分的圖像進行編碼,最終各自生成對應的通道數爲256的feature map。接着使用Selector塊將來自I的feature map與 B ′ , S , M B^{\prime},S,M B,S,M中的每一個部分分別組合,最終生成三個通道數爲64的feature map。

Selector塊由:1x1卷積,BatchNorm和ReLU構成

接着使用Combinator(結構與Selctor一致),將三個64通道的feature map與原始圖像 I I I中256通道的feature mp進行組合,以產生編碼特徵(encoded features),該特徵被傳遞到網路偶的其餘部分,包括殘差塊和decoders。

現在看網絡結構的右上角部分
在這裏插入圖片描述

將拼接好的編碼特徵,傳遞到通用的殘差塊(ResBLKs)中,在分別經過各自的殘差塊進行進一步的特徵提取。對於前景圖部分,將原圖 I I I的256通道的feature map與經過殘差塊的feature map進行融合,輸入到Decodor中,將前景分割出來,同時將 α \alpha α遮罩(alpha matte)的部分進行解碼,在講兩者結合通方程:
I = α F + ( 1 − α ) F I = \alpha F+(1-\alpha) F I=αF+(1α)F
生成圖像,與原圖像進行對比從而優化網絡。

在這個過程中 B ′ B^{\prime} B的獲取不是真實的 B B B,而是通過對前景區域部分進行小伽馬校正 γ ∼ N ( 1 , 0.12 ) \gamma \sim \mathcal{N}(1,0.12) γN(1,0.12)或者通過添加高斯噪聲 η ∼ N ( μ ∈ [ − 7 , 7 ] , σ ∈ [ 2 , 6 ] ) \eta \sim \mathcal{N}(\mu \in[-7,7], \sigma \in[2,6]) ηN(μ[7,7],σ[2,6])來生成的。

在最後的運動線索中,合成到背景上之前,對前景和 α \alpha α遮罩進行隨機仿射變換,然後轉化爲灰度圖。爲了計算I和M,最後是用B(真實的背景圖)來應用到圖像合成方程中,但是,最初輸入進網絡的仍然是 B ′ B^{\prime} B

最後訓練網絡 G A d o b e = G ( X ; θ A d o b e ) G_{Adobe} = G(X;\theta_{Adobe}) GAdobe=G(X;θAdobe)的損失函數爲:
L = min ⁡ θ Adobe  E X ∼ p X [ ∥ α − α ∗ ∥ 1 + ∥ ∇ ( α ) − ∇ ( α ∗ ) ∥ 1 + 2 ∥ F − F ∗ ∥ 1 + ∥ I − α F − ( 1 − α ) B ∥ 1 ] L = \min _{\theta_{\text {Adobe }}} E_{X \sim p_{X}}\left[\left\|\alpha-\alpha^{*}\right\|_{1}+\left\|\nabla(\alpha)-\nabla\left(\alpha^{*}\right)\right\|_{1}\right.\left.+2\left\|F-F^{*}\right\|_{1}+\|I-\alpha F-(1-\alpha) B\|_{1}\right] L=θAdobe minEXpX[αα1+(α)(α)1+2FF1+IαF(1α)B1]

未標記真實數據的對抗訓練

對於未標記的數據來說,在圖像的細節部分,比如人的手指,頭髮以及和背景色相近的前景色區域。在這些區域的表現一般都會比較粗糙。舉個例子,原來摳圖的圖像前景中,摻雜着一部分的背景色,對抗訓練就是爲了解決這個問題而設計的一個網絡。

算法採用的是LS-GAN框架來訓練生成器 G R e a l G_{Real} GReal和判別器 D D D,爲此,對生成器來說,要更新參數,使得以下式子最小化:
min ⁡ θ R e a l E X , B ˉ ∼ p X , B ˉ [ ( D ( α F + ( 1 − α ) B ˉ ) − 1 ) 2 + λ { 2 ∥ α − α ~ ∥ 1 + 4 ∥ ∇ ( α ) − ∇ ( α ~ ) ∥ 1 + ∥ F − F ∥ 1 + ∥ I − α F − ( 1 − α ) B ′ ∥ 1 } ] \min _{\theta_{\mathrm{Real}}} \mathbb{E}_{X, \bar{B} \sim p_{X, \bar{B}}}\left[(D(\alpha F+(1-\alpha) \bar{B})-1)^{2}\right.+\lambda\left\{2\|\alpha-\tilde{\alpha}\|_{1}+4\|\nabla(\alpha)-\nabla(\tilde{\alpha})\|_{1}\right.\left.\left.+\|F-F\|_{1}+\left\|I-\alpha F-(1-\alpha) B^{\prime}\right\|_{1}\right\}\right] θRealminEX,BˉpX,Bˉ[(D(αF+(1α)Bˉ)1)2+λ{ 2αα~1+4(α)(α~)1+FF1+IαF(1α)B1}]
其中, B ˉ \bar{B} Bˉ表示生成器D中看到的合成背景,設置 λ \lambda λ從0.05向每兩輪之間衰減 1 2 \frac12 21,使得判別器發揮更重要的作用,尤其是對圖像的銳化。

對於判別器來說,也要更新參數,使得一下式子最小化:
min ⁡ θ D i s c E X , B ˉ ∼ p X , B ˉ [ ( D ( α F + ( 1 − α ) B ˉ ) ) 2 ] + E I ∈ p data  [ ( D ( I ) − 1 ) 2 ] \min _{\theta_{\mathrm{Disc}}} \mathbb{E}_{X, \bar{B} \sim p_{X, \bar{B}}}\left[(D(\alpha F+(1-\alpha) \bar{B}))^{2}\right]+\mathbb{E}_{I \in p_{\text {data }}}\left[(D(I)-1)^{2}\right] θDiscminEX,BˉpX,Bˉ[(D(αF+(1α)Bˉ))2]+EIpdata [(D(I)1)2]

θ D i s c \theta_{Disc} θDisc代表的是生成器的權重,與 ( F , α ) = G ( X ; θ R e a l ) (F,\alpha) = G(X;\theta_{Real}) (F,α)=G(X;θReal)中的含義相同

在後處理過程中,設置 α \alpha α的閾值爲 α > 0.05 \alpha > 0.05 α>0.05並提取前N個最大的相連組間,爲每一個不在這些組間中的像素將 α \alpha α值設置爲0。其中, N N N是圖像中不相交的人物分割的數量。

對生成器與判別器部分的網絡結構解析

如下圖所示:
在這裏插入圖片描述
首先輸入還是和之前的格式一樣,首先是用生成器網絡 G R e a l G_{Real} GReal和初始網絡 G A d o b e G_{Adobe} GAdobe分別生成前景 F F F和係數 α \alpha α,通過對比兩個生成器的 F F F α \alpha α進行參數調整。

接着使用背景圖 B ˉ \bar{B} Bˉ與生成器生成的 F F F α \alpha α通過合成公式生成圖像,在經過判別器(Discriminator)進行判斷,通過自監督對抗損失(Self-Supervised Adversarial Loss)進行優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章