论文信息
- Paper: [NeurIPS 2020] Video Object Segmentation with Adaptive Feature Bank and Uncertain-Region Refinement
- Link: https://arxiv.org/abs/2010.07958
- Code: https://github.com/xmlyqing00/AFB-URR
背景梳理
视频对象分割(VOS)是许多视频处理任务(如视频编辑和视频修复)中的基本步骤。在半监督的设定下,给出了目标对象在第一帧中的标注,任务是在视频后续帧中分割出该对象的掩膜。
VOS中的一个关键问题是如何学习到目标对象的特征。现有的工作分为隐式学习与显示学习。隐式学习一般采用全卷积网络(FCN)隐式地通过网络权重来学习目标对象的特征。在分割新视频之前,这些方法通常需要使用在线学习的方法来学习到新目标对象的特征。显式方法显式地学习目标对象的外观。显示学习一般将分割任务视作在投影的嵌入空间中进行像素级的分类任务。显示学习方法首先构造一个嵌入空间以储存对象的外观,然后通过计算相似度来分割后续帧。因此,它们也被称为基于匹配的方法。
今天介绍的这篇VOS的文章使用的也是基于匹配的方法。
论文贡献
- 提出了一种自适应且高效的特征库,以维护用于视频对象分割的最有用信息。
- 引入了置信度损失来估计分割结果的歧义性。设计了局部细粒度的细分模块来优化这些模糊区域。
- 在长视频上验证了方法的有效性,更适用于实际应用。
方法
整体框架
下图为本文算法的整体框架。在蓝色区域中,本文使用基于匹配的方法来生成初始的分割掩码,并设计了自适应的特征库动态地存储信息。在红色区域中,本文设计了一个置信度损失来估计错误分类的歧义,并设计了一个细粒度的模块对不确定区域进行分类。
基于匹配的分割方法
对于一段视频,对第一帧与它的标注进行编码以构建特征库。之后,使用特征库从第二帧开始匹配并分割目标对象,解码器采用匹配结果来估计帧中目标对象的掩膜。
编码器
编码器将当前帧编码到特征图中进行分割。使用ResNet-50作为主干,并将第3层作为特征图。假设有L个感兴趣的对象,按对象对参考帧进行编码,然后输出L个特征图 P ^ i , i ∈ [ 1 , L ] \hat{P}_{i},i \in[1, L] P^i,i∈[1,L]。对索引为j的帧,获得的特征图为: P j = { P ^ 1 , P ^ 2 , ⋯ , P ^ L } , j ∈ [ 1 , t − 1 ] P_{j}=\left\{\hat{P}_{1}, \hat{P}_{2}, \cdots, \hat{P}_{L}\right\},j \in[1, t-1] Pj={P^1,P^2,⋯,P^L},j∈[1,t−1]。
特征图嵌入
通过两个卷积模块将特征图编码为 k k k与 v v v两个嵌入空间。通过键值 k k k匹配特征图,同时允许它们的值不同,以便保留尽可能多的语义信息。
匹配器
通过编码器和特征图嵌入,查询帧被编码为成对的密钥 k Q k^{Q} kQ和值 v Q v^{Q} vQ。由过去的帧,提取了 L L L个特征库 F B i , i ∈ [ 1 , L ] F B_{i}, i \in[1, L] FBi,i∈[1,L]。查询帧和特征库之间的相似性是逐对象计算的。对于查询帧中的每一点 p p p,使用加权求和的方法来检索第 i i i个对象特征库中最接近的值 v ^ i ( p ) \hat{v}_{i}(p) v^i(p):
v ^ i ( p ) = ∑ ( k F B , v F B ) ∈ F B i g ( k Q ( p ) , k F B ) v F B \hat{v}_{i}(p)=\sum_{\left(k^{F B}, v^{F B}\right) \in F B_{i}} g\left(k^{Q}(p), k^{F B}\right) v^{F B} v^i(p)=(kFB,vFB)∈FBi∑g(kQ(p),kFB)vFB
其中 g ( k Q ( p ) , k F B ) = exp ( k Q ( p ) ∙ k F B ) ∑ ∀ j exp ( k Q ( p ) ∙ k F B ) g\left(k^{Q}(p), k^{F B}\right)=\frac{\exp \left(k^{Q}(p) \bullet k^{F B}\right)}{\sum_{\forall j} \exp \left(k^{Q}(p) \bullet k^{F B}\right)} g(kQ(p),kFB)=∑∀jexp(kQ(p)∙kFB)exp(kQ(p)∙kFB), i ∈ [ 1 , L ] i \in[1, L] i∈[1,L], ∙ \bullet ∙表示向量间点乘。匹配的输出 y i y_{i} yi为 v Q v^{Q} vQ与 v ^ i \hat{v}_{i} v^i的concat,即 y i = [ v Q , v ^ i ] , i ∈ [ 1 , L ] y_{i}=\left[v^{Q}, \hat{v}_{i}\right], \quad i \in[1, L] yi=[vQ,v^i],i∈[1,L]。
解码器
解码器获取匹配器的输出 y i y_{i} yi,独立地估计对象的掩膜。通过计算估计掩膜与真实掩膜的交叉熵损失来训练解码器。
自适应特征库
特征吸收
之前帧的特征与当前帧的信息通过加权平均进行更新。下图说明了自适应特征库如何吸收新特征。现有特征和新特征分别用蓝色和红色标记。提取新特征时,如果它与某个现有特征足够接近,则将其合并。这样的合并避免了存储冗余信息并提高了存储效率。同时,它可以根据对象的变化外观灵活地更新存储的特征。
对每个新特征
a
(
i
)
=
(
k
t
−
1
P
(
i
)
,
v
t
−
1
P
(
i
)
)
a(i)=\left(k_{t-1}^{P}(i), v_{t-1}^{P}(i)\right)
a(i)=(kt−1P(i),vt−1P(i))与存储在特征库中的旧特征
b
(
j
)
=
(
k
F
B
(
j
)
,
v
F
B
(
j
)
)
∈
F
B
b(j)=\left(k^{F B}(j), v^{F B}(j)\right) \in F B
b(j)=(kFB(j),vFB(j))∈FB
相似度公式为:
h
(
a
(
i
)
,
b
(
j
)
)
=
k
t
−
1
P
(
i
)
∙
k
F
B
(
j
)
∥
k
t
−
1
P
(
i
)
∥
∥
k
F
B
(
j
)
∥
h(a(i), b(j))=\frac{k_{t-1}^{P}(i) \bullet k^{F B}(j)}{\left\|k_{t-1}^{P}(i)\right\|\left\|k^{F B}(j)\right\|}
h(a(i),b(j))=∥∥kt−1P(i)∥∥∥kFB(j)∥kt−1P(i)∙kFB(j)
对每一个,选取使
h
(
a
(
i
)
,
b
(
j
)
)
h(a(i), b(j))
h(a(i),b(j))最大的
b
(
i
)
b(i)
b(i),当相似度到达某一阈值时,更新
b
(
i
)
b(i)
b(i):
k
F
B
(
j
′
)
=
(
1
−
λ
p
)
k
F
B
(
j
′
)
+
λ
p
k
t
−
1
P
(
i
)
v
F
B
(
j
′
)
=
(
1
−
λ
p
)
v
F
B
(
j
′
)
+
λ
p
v
t
−
1
P
(
i
)
\begin{aligned} k^{F B}\left(j^{\prime}\right) &=\left(1-\lambda_{p}\right) k^{F B}\left(j^{\prime}\right)+\lambda_{p} k_{t-1}^{P}(i) \\ v^{F B}\left(j^{\prime}\right) &=\left(1-\lambda_{p}\right) v^{F B}\left(j^{\prime}\right)+\lambda_{p} v_{t-1}^{P}(i) \end{aligned}
kFB(j′)vFB(j′)=(1−λp)kFB(j′)+λpkt−1P(i)=(1−λp)vFB(j′)+λpvt−1P(i)
特征舍弃
与缓存替换策略类似,将特征库中最没可能适用的特征舍弃,使用最不常用指数(LFU)进行衡量。对
∀
(
k
F
B
(
j
)
,
v
F
B
(
j
)
)
∈
F
B
\forall\left(k^{F B}(j), v^{F B}(j)\right) \in F B
∀(kFB(j),vFB(j))∈FB,LFU的计算方式为:
c
n
t
(
j
)
:
=
c
n
t
(
j
)
+
log
(
∑
∀
(
k
Q
(
i
)
,
v
Q
(
i
)
)
sgn
(
g
(
k
Q
(
i
)
,
k
F
B
(
j
)
)
>
ϵ
l
)
+
1
)
c n t(j):=c n t(j)+\log \left(\sum_{\forall\left(k^{Q}(i), v^{Q}(i)\right)} \operatorname{sgn}\left(g\left(k^{Q}(i),k^{F B}(j)\right)>\epsilon_{l}\right)+1\right)
cnt(j):=cnt(j)+log⎝⎛∀(kQ(i),vQ(i))∑sgn(g(kQ(i),kFB(j))>ϵl)+1⎠⎞
L
F
U
(
j
)
=
cnt
(
j
)
l
(
j
)
L F U(j)=\frac{\operatorname{cnt}(j)}{l(j)}
LFU(j)=l(j)cnt(j)
当特征库容量到达一定大小时,最小LFU的特征会被舍弃。
不确定区域优化
在解码阶段,由于是根据放大的低分辨率图像计算目标对象的掩膜,估计的掩膜在物体边界常常是模糊的。根据这一缺陷,提出了不确定区域优化(URR)方法,以解决边界和其他不确定区域。
置信度损失函数
使用每一像素点的最大相似值
M
^
1
\hat{M}^{1}
M^1与第二大相似值
M
^
2
\hat{M}^{2}
M^2的比值来定义像素级不确定性图U,以此测量每个像素点的分类歧义。
U
=
exp
(
1
−
M
^
1
M
^
2
)
U=\exp \left(1-\frac{\hat{M}^{1}}{\hat{M}^{2}}\right)
U=exp(1−M^2M^1)
不确定度图U在(0; 1]中,较小的值表示更大的置信度。目标对象掩膜的置信度损失
L
conf
\mathcal{L}_{\text {conf}}
Lconf定义为:
L
conf
=
∥
U
∥
2
\mathcal{L}_{\text {conf}}=\|U\|_{2}
Lconf=∥U∥2
局部优化
对于每个不确定像素p,根据p的邻域组成其局部参考特征
y
(
p
)
=
{
y
i
(
p
)
∣
i
∈
[
1
,
L
]
}
y(p)=\left\{y_{i}(p) \mid i \in[1, L]\right\}
y(p)={yi(p)∣i∈[1,L]}
如果p的局部特征
r
(
p
)
r(p)
r(p)接近
y
i
(
p
)
y_{i}(p)
yi(p),则像素p很可能被归类为对象i。局部参考特征
y
i
(
p
)
y_{i}(p)
yi(p)由小邻域
N
(
p
)
N(p)
N(p)中的加权平均值计算,
y
i
(
p
)
=
1
∑
q
∈
N
(
p
)
M
i
(
q
)
∑
q
∈
N
(
p
)
M
i
(
q
)
r
(
q
)
y_{i}(p)=\frac{1}{\sum_{q \in \mathcal{N}(p)} M_{i}(q)} \sum_{q \in \mathcal{N}(p)} M_{i}(q) r(q)
yi(p)=∑q∈N(p)Mi(q)1q∈N(p)∑Mi(q)r(q)
其中,
M
i
M_{i}
Mi是目标
i
i
i的掩膜。
之后,一个残差网络模块
f
l
f_{l}
fl用来学习预测局部的相似性。通过比较
r
(
p
)
r(p)
r(p)和
y
i
(
p
)
y_{i}(p)
yi(p)之间的相似性,每个像素p获得了局部优化掩膜
e
e
e,
e
i
(
p
)
=
c
i
(
p
)
f
l
(
r
(
p
)
,
y
i
(
p
)
)
e_{i}(p)=c_{i}(p) f_{l}\left(r(p), y_{i}(p)\right)
ei(p)=ci(p)fl(r(p),yi(p))
其中,
c
i
(
p
)
=
max
q
∈
N
(
p
)
M
i
(
q
)
c_{i}(p)=\max _{q \in \mathcal{N}(p)} M_{i}(q)
ci(p)=maxq∈N(p)Mi(q)。
最终的分割结果为:
S
i
(
p
)
=
M
i
(
p
)
+
U
(
p
)
e
i
(
p
)
S_{i}(p)=M_{i}(p)+U(p) e_{i}(p)
Si(p)=Mi(p)+U(p)ei(p)
实验结果
消融实验
下图展示了算法在DAVIS17[1]上的消融实验结果。
从上图可以看出:1.自适应特征库可以有效地存储所有先前帧的关键信息;2.不确定区域优化方法能够显著提高分割性能。
与现有方法对比
下图为该方法与现有方法在DAVIS17上的对比。M为平均值,R衡量得分高于阈值0.5的序列分数,D衡量性能随时间变化。由图中可见,该实验方法优于现有方法。
分析与总结
今天介绍的文章提出了自适应特征库(AFB)模块和不确定区域优化(URR)模块。自适应特征库有效地存储了关键特征以进行分割。 不确定区域优化设计用于优化歧义区域。在半监督视频对象分割任务,尤其是半监督长视频对象分割任务中具有实用价值。
参考文献
[1] Jordi Pont-Tuset, Federico Perazzi, Sergi Caelles, Pablo Arbeláez, Alex Sorkine-Hornung, and Luc Van Gool. The 2017 DAVIS Challenge on Video Object Segmentation. arXiv:1704.00675[cs], March 2018. arXiv: 1704.00675.