SEC
paper: Seed, Expand and Constrain: Three Principles for Weakly-Supervised Image Segmentation
本文是发表在16年的ECCV上,本篇文章使用到了CAM的思路,算是拉开了后面基于CAM进行改进的序幕。
文章提出的网络的损失函数由三个部分的loss组成:
L
s
e
e
d
L_{seed}
Lseed,
L
e
x
p
a
n
d
L_{expand}
Lexpand和
L
c
o
n
s
t
r
a
i
n
L_{constrain}
Lconstrain。
L s e e d L_{seed} Lseed component
这部分损失函数的作用是为了鼓励神经网络预测出物体的基本定位位置,即最具辨识度的区域一定要预测出来。而这部分的监督信息通过CAM得到,即
- 使用CAM结合弱监督标签获得各个前景的score map/heat map。
- 由于CAM只预测出了前景,所以还需要预测出背景(这一步很多算法不一样,比如AffinityNet中直接将所有类别置信度都很低的点视为背景),在本文中作者是结合显著性检测以提取出背景的中心点(最具辨识度的区域/最像背景的区域)。
- 这样我们得到了最终的输出,图像中包含了:预测的前景最显著区域(置信度设为1)+背景最显著区域(置信度设为1)+待定区域。这部分就是seed的监督信息。
- 计算DCNN的输出与生成的预测区域计算交叉熵(由于生成的label置信度设为1了,所以此处只需要最小化log对数就行了)
L s e e d ( f ( X ) , T , S c ) = − 1 ∑ c ∈ T ∣ S c ∣ ∑ c ∈ T ∑ u ∈ S c log f u , c ( X ) L_{\mathrm{seed}}\left(f(X), T, S_{c}\right)=-\frac{1}{\sum_{c \in T}\left|S_{c}\right|} \sum_{c \in T} \sum_{u \in S_{c}} \log f_{u, c}(X) Lseed(f(X),T,Sc)=−∑c∈T∣Sc∣1c∈T∑u∈Sc∑logfu,c(X)
tip:注意这里是直接将每个像素点的对数相加,这有个问题:图像的背景区域往往比前景区域大。在之后文章(DSRG等)的改进中,会归一化前景类别和背景以平衡影响。
L e x p e n d L_{expend} Lexpend component
这部分loss的作用是为了使得预测的各个类的feature map尽可能的接近真实值,但是由于只有图像级别的loss,所以作者此处设计了一个算法将feature map映射到一个点,在与label计算交叉熵。我认为作者这里借鉴了MIL-seg模型的思想,这里提出的GWRP类似MIL-seg中的LSE,都是为了将feature map映射到点,且都是取了平均池化和极大池化的折衷,要说不同,可能就是:
- LSE和GWRP设计不同。
- 作者针对(背景,图像中存在的前景,图像中不存在的前景)分别设置了不同的GWRP参数。LSE作者对所有的类别都设置了同样的参数 r = 5 r=5 r=5。
GWRP算法,先将feature map上各个点的值按照从高到低的值排序。
j
j
j为索引。GWRP的思路就是为索引越小的点赋上更大的权重,索引越大的点赋上更小的权重。参数
d
c
d_c
dc用于调整权重倾斜力度。
G
c
(
f
(
X
)
,
d
c
)
=
1
∑
j
=
1
n
(
d
c
)
j
−
1
∑
j
=
1
n
(
d
c
)
j
−
1
f
i
j
,
c
(
X
)
G_c(f(X),d_c)=\frac{1}{\sum_{j=1}^n(d_c)^{j-1}}\sum_{j=1}^n(d_c)^{j-1}f_{i_j,c}(X)
Gc(f(X),dc)=∑j=1n(dc)j−11j=1∑n(dc)j−1fij,c(X)
正如上面提到的,对于从feature map到点,根据该类别设置不同的参数,设置规如下:
{
d
c
=
d
−
=
0
c
=
图
像
中
不
存
在
的
前
景
,
希
望
输
出
尽
可
能
少
的
点
,
设
置
为
0
等
效
于
G
M
P
d
c
=
d
+
=
0.996
c
=
图
像
中
存
在
的
前
景
,
由
于
前
景
的
区
域
不
大
不
小
,
所
以
倾
向
于
G
A
P
,
但
比
背
景
稍
倾
向
G
M
P
d
c
=
d
b
g
=
0.999
c
=
背
景
,
由
于
背
景
区
域
一
般
占
比
较
大
,
所
以
倾
向
于
G
A
P
\begin{cases}d_c=d_-=0& c=图像中不存在的前景,希望输出尽可能少的点,设置为0等效于GMP\\ d_c=d_+=0.996 & c=图像中存在的前景,由于前景的区域不大不小,所以倾向于GAP,但比背景稍倾向GMP \\ dc=d_{bg}=0.999& c=背景,由于背景区域一般占比较大,所以倾向于GAP\end{cases}
⎩⎪⎨⎪⎧dc=d−=0dc=d+=0.996dc=dbg=0.999c=图像中不存在的前景,希望输出尽可能少的点,设置为0等效于GMPc=图像中存在的前景,由于前景的区域不大不小,所以倾向于GAP,但比背景稍倾向GMPc=背景,由于背景区域一般占比较大,所以倾向于GAP
所以最终的loss就是中规中矩的loss,
T
T
T是图像
X
X
X的label,表明了哪些类存在于
X
X
X中:
L
e
x
p
a
n
d
(
f
(
X
)
,
T
)
=
−
1
∣
T
∣
∑
c
∈
T
log
G
c
(
f
(
X
)
,
d
+
)
−
1
∣
C
′
∖
T
∣
∑
c
∈
C
′
∖
T
log
(
1
−
G
c
(
f
(
X
)
,
d
−
)
)
−
log
G
c
b
g
(
f
(
X
)
,
d
b
g
)
L_{expand}(f(X),T)=-\frac{1}{\vert T\vert}\sum_{c\in T}\log G_c(f(X),d_+)-\frac{1}{\vert C' \setminus T\vert}\sum_{c\in C'\setminus T}\log (1-G_c(f(X),d_-))-\log G_{c^{bg}}(f(X),d_{bg})
Lexpand(f(X),T)=−∣T∣1c∈T∑logGc(f(X),d+)−∣C′∖T∣1c∈C′∖T∑log(1−Gc(f(X),d−))−logGcbg(f(X),dbg)
L c o n s t r a i n L_{constrain} Lconstrain component
这部分的loss是为了优化边界,在之前比如MIL-seg中是结合MCG进行优化,到了16年,可能受强监督模型Deeplab之类的启发,此处也使用了CRF进行边界优化。
CRF算法我们标记为
Q
(
X
,
f
(
X
)
)
Q(X,f(X))
Q(X,f(X)),表示输入为原图
X
X
X和DCNN的输出
f
(
X
)
f(X)
f(X),输出优化过后的语义分割图。
在一般情况下,一般拿CRF做语义分割的后场处理,即two-stage的做法。而作者这里把CRF的输出作为监督信息制成损失函数也监督DCNN的训练。所以此处
L
c
o
n
s
t
r
a
i
n
L_{constrain}
Lconstrain是计算
f
(
x
)
f(x)
f(x)与
Q
(
X
,
f
(
X
)
)
Q(X,f(X))
Q(X,f(X))的交叉熵,使得DCNN的输出就直接倾向于CRF处理后的效果。
L
c
o
n
s
t
r
a
i
n
(
X
,
f
(
X
)
)
=
1
n
∑
u
=
1
n
∑
c
∈
C
Q
u
,
c
(
X
,
f
(
X
)
)
log
Q
u
,
c
(
X
,
f
(
X
)
)
f
u
,
c
(
X
)
L_{constrain}(X,f(X))=\frac{1}{n}\sum_{u=1}^n\sum_{c \in C}Q_{u,c}(X,f(X))\log \frac{Q_{u,c}(X,f(X))}{f_{u,c(X)}}
Lconstrain(X,f(X))=n1u=1∑nc∈C∑Qu,c(X,f(X))logfu,c(X)Qu,c(X,f(X))
final loss
最终的loss就是直接将着三部分组合起来(甚至没有进行加权?)。
min
θ
∑
(
X
,
T
)
∈
D
[
L
seed
(
f
(
X
;
θ
)
,
T
)
+
L
expand
(
f
(
X
;
θ
)
,
T
)
+
L
constrain
(
X
,
f
(
X
;
θ
)
)
]
\min _{\theta} \sum_{(X, T) \in \mathcal{D}}\left[L_{\text { seed }}(f(X ; \theta), T)+L_{\text { expand }}(f(X ; \theta), T)+L_{\text { constrain }}(X, f(X ; \theta))\right]
θmin(X,T)∈D∑[L seed (f(X;θ),T)+L expand (f(X;θ),T)+L constrain (X,f(X;θ))]
回顾一下
- L s e e d L_{seed} Lseed是由CAM+Saliency获得前景和背景的显著区域制成label。以监督DCNN至少学习到最具显著性的区域。
- L e x p a n d L_{expand} Lexpand是使用了类似MIL-seg文章中的思想,将DCNN生成的feature maps使用GWRP映射到点,以方便和image-level进行监督计算。
- L c o n s t r a i n L_{ constrain} Lconstrain是由CRF+DCNN的输出获得改良后的分割图制成label,以监督DCNN直接学习到较好的边界识别。
performance
VOC12 val | VOC12 test | |
---|---|---|
SEC w/o CRF | 44.8 | 45.4 |
SEC w/ CRF | 50.7 | 51.7 |