《AdaptSegNet:Learning to Adapt Structured Output Space for Semantic Segmentation》論文筆記
參考程式碼:AdaptSegNet
1. 概述
導讀:這篇文章著力於解決模型未見過資料的適應性,一般來講模型對於與訓練集中資料類似的資料表現較好,但是對於未知場景的資料就表現較差了,這也是domain-adaptation需要解決的問題。這篇文章在分割任務下進行了研究,提出在output space(分割softmax輸出)上使用GAN網路去擬合兩種資料(合成數據與真實資料)分佈,此外還提出使用多層GAN監督的形式優化特徵的分佈。
之前的一些domain adaptation的工作是在feature層次上進行的,但是在分割任務中就顯得不是很適合了,這是由於分割任務中的特徵編碼了高維度的形狀/紋理等資訊,因而相當複雜,不易adapt。文章通過觀察已知資料和未知資料的特點,觀察到兩種資料在分割結果上更加具有視覺上的一致性,因而在網路的輸出(output space)上進行domain adaptation。下圖表示的就是這種空間下的相似性:
文中將整個網路劃分成兩個部分:分割網路組成的生成器和判別網路。並提出了兩個分佈擬合策略:
- 1)使用分割輸出(softmax概率圖)的結果去擬合兩個資料的分佈;
- 2)使用多層資料(在多個特徵上得到softmax output space)之後再使用GAN去拉近兩個分佈;
2. 方法設計
2.1 網路結構
文章的網路結構見下圖所示:
在上圖中可以看到文章的網路由兩部分組成:分割網路構成的生成器
G
G
G與判別器
D
i
D_i
Di,輸入的真實影象與合成影象是
I
t
,
I
s
∈
R
(
H
∗
W
∗
C
)
I_t,I_s\in R^{(H*W*C)}
It,Is∈R(H∗W∗
2.2 單層GAN結構
判別器的訓練:
通過生成器得到的概率圖為
P
t
,
P
s
P_t,P_s
Pt,Ps,其過程為
P
=
G
(
I
)
∈
R
(
H
∗
W
∗
C
)
P=G(I)\in R^{(H*W*C)}
P=G(I)∈R(H∗W∗C),那麼擬合這兩個分佈的GAN損失可以描述為:
L
d
(
P
s
,
P
t
)
=
−
∑
h
,
w
l
o
g
(
D
(
P
t
)
)
+
l
o
g
(
D
(
P
s
)
)
L_d(P_s,P_t)=-\sum_{h,w}log(D(P_t))+log(D(P_s))
生成器的訓練:
此外,還存在合成數據的分割損失:
L
s
e
g
(
I
s
)
=
−
∑
h
,
w
∑
c
∈
C
Y
s
(
h
,
w
,
c
)
l
o
g
(
P
s
(
h
,
w
,
c
)
)
L_{seg}(I_s)=-\sum_{h,w}\sum_{c\in C}Y_s^{(h,w,c)}log(P_s^{(h,w,c)})
Lseg(Is)=−h,w∑c∈C∑Ys(h,w,c)log(Ps(h,w,c))
再加上真實資料在判別網路下的損失:
L
a
d
v
(
I
t
)
=
−
∑
h
,
w
l
o
g
(
D
(
P
t
)
)
L_{adv}(I_t)=-\sum_{h,w}log(D(P_t))
Ladv(It)=−h,w∑log(D(Pt))
2.3 多層GAN結構
這裡的多層是在單層分割輸出基礎上使用多層特徵進行分割,之後再在這些分割結果上進行與單層結構類似的損失計算,因而這裡的損失函式可以描述為:
L
I
s
,
I
t
=
∑
i
λ
s
e
g
i
L
s
e
g
i
(
I
s
)
+
λ
a
d
v
i
L
a
d
v
i
(
I
t
)
L_{I_s,I_t}=\sum_i\lambda_{seg}^iL_{seg}^i(I_s)+\lambda_{adv}^iL_{adv}^i(I_t)
LIs,It=i∑λsegiLsegi(Is)+λadviLadvi(It)
整體的優化過程為:
max
D
min
G
L
(
I
s
,
I
t
)
\max_D\min_GL(I_s,I_t)
DmaxGminL(Is,It)
2.4 損失函式
文章的損失函式由分割損失與GAN損失兩部分組成,可以其使用的組成形式為:
L
(
I
s
,
I
t
)
=
L
s
e
g
(
I
s
)
+
λ
a
d
v
L
a
d
v
(
I
t
)
L(I_s,I_t)=L_{seg}(I_s)+\lambda_{adv}L_{adv}(I_t)
L(Is,It)=Lseg(Is)+λadvLadv(It)
3. 實驗結果
GTA5-CityScapes:
SYNTHIA-CityScapes