論文地址: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={I?2T?,I?T?,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 ?min?EX~pX??[∥α?α?∥1?+∥?(α)??(α?)∥1?+2∥F?F?∥1?+∥I?αF?(1?α)B∥1?]
未標記真實資料的對抗訓練
對于未標記的資料來說,在影像的細節部分,比如人的手指,頭發以及和背景色相近的前景色區域,在這些區域的表現一般都會比較粗糙,舉個例子,原來摳圖的影像前景中,摻雜著一部分的背景色,對抗訓練就是為了解決這個問題而設計的一個網路,
演算法采用的是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]
θReal?min?EX,Bˉ~pX,Bˉ??[(D(αF+(1?α)Bˉ)?1)2+λ{2∥α?α~∥1?+4∥?(α)??(α~)∥1?+∥F?F∥1?+∥I?αF?(1?α)B′∥1?}]
其中,
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]
θDisc?min?EX,Bˉ~pX,Bˉ??[(D(αF+(1?α)Bˉ))2]+EI∈pdata ??[(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)進行優化,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255312.html
標籤:其他
上一篇:Matlab實作幅度調制詳解
