论文译解
摘要
基于锚点的孪生跟踪器在准确性方面取得了显着进步,但进一步的改进受到滞后跟踪鲁棒性的限制。 我们发现根本原因是基于锚点的方法中的回归网络仅在正锚框上训练(即 IoU ≥ 0.6的预测锚框)。 这种机制使得难以改进与目标对象重叠较小的锚点。 在本文中,我们提出了一种新的对象感知无锚网络来解决这个问题。 首先,我们没有改进参考锚框,而是以无锚的方式直接预测目标对象的位置和尺度。 由于 ground-truth boxes 中的每个像素都经过良好训练,因此跟踪器能够在推理过程中纠正目标对象的不准确预测。 其次,我们引入了一个特征对齐模块来从预测的边界框学习一个对象感知特征。 对象感知功能可以进一步有助于目标对象和背景的分类。 此外,我们提出了一种基于无锚模型的新型跟踪框架。 实验表明,我们的无锚跟踪器在五个基准测试中实现了最先进的性能,包括 VOT-2018、VOT-2019、OTB-100、GOT-10k 和 LaSOT。 源代码可在 https://github.com/researchmm/TracKit 获得。
1 引言
目标跟踪是一项基本的视觉任务。 它旨在仅给出其在第一帧中的位置的基础上,推断视频序列中任意目标的位置。 跟踪的主要挑战在于目标对象可能会经历严重的遮挡、较大的变形和光照变化[44,49]。 实时速度跟踪具有多种应用,例如监视、机器人、自动驾驶和人机交互 [16,25,33]。
近年来,孪生跟踪器因其均衡的速度和准确性而备受关注。 开创性的工作,即 SINT [35] 和 SiamFC [1],使用孪生网络来学习对象目标和候选图像块之间的相似性度量,从而将跟踪建模为目标在整个图像上的搜索问题。 已经提出了大量后续的孪生跟踪器并取得了可喜的性能 [9,11,21,22,50]。 其中,名为 SiamRPN [22] 的孪生区域提案网络具有代表性。 它引入了区域提议网络[31],其由用于前景-背景估计的分类网络和用于锚框改进的回归网络组成,即为预定义的锚框学习一个2维的偏移量。这种基于锚点的跟踪器在跟踪精度方面显示出巨大的潜力。 然而,由于回归网络仅在正锚框上进行训练(即 IoU ≥ 0.6),因此很难细化与目标对象重叠较小的锚框。 这将导致跟踪失败,尤其是当分类结果不可靠时。 例如,由于跟踪中的误差累积,目标位置的预测可能变得不可靠,例如,当IoU < 0.3时, 回归网络无法纠正这种弱预测,因为它以前在训练集中是从未见过这种弱预测,从而,跟踪器在后续帧中逐渐漂移。
综上,很自然地会提出一个问题:我们能否设计一个具有纠正不准确预测能力的边界框回归器呢? 在这项工作中,我们通过提出一种新的目标感知无锚跟踪器来证明答案是肯定的。 我们的目标感知 anchor free 跟踪器不是预测锚框的小偏移量,而是直接回归视频帧中目标对象的位置。 更具体地说,所提出的跟踪器由两个部分组成:一个对象感知分类网络和一个边界框回归网络。 分类网络负责确定一个区域是属于前景还是背景,而回归旨在预测目标对象内的每个像素到ground-truth bounding boxes的四个边的距离。 由于 ground-truth 框中的每个像素都经过良好训练,即使只有一小块区域被识别为前景,回归网络也能够定位目标对象。 最终,在推理过程中,跟踪器能够纠正与目标对象重叠较小的弱预测。
当回归网络预测出更准确的边界框时(例如,纠正弱预测),相应的特征可以反过来帮助前景和背景的分类。 我们使用预测的边界框作为参考来学习用于分类的对象感知特征。 更具体地说,我们引入了一个特征对齐模块,它包含一个二维空间变换,用于将特征采样位置与预测的边界框(即候选对象区域)对齐。 该模块保证在预测区域内指定采样,以适应对象尺度和位置的变化。 因此,学习到的特征对于分类更具辨别力和可靠性。
所提出框架的有效性在五个 benchmark 上得到验证:VOT-2018 [17]、VOT-2019 [18]、OTB-100 [44]、GOT-10k [14] 和 LaSOT [8]。 我们的方法在 VOT2018 [17] 上实现了最先进的性能(EAO 为 0.467),同时以 58 fps 的速度运行,如图 1 所示。与基于锚的方法相比,即分别为 SiamRPN [22] 和 SiamRPN++ [21],它获得了高达 92.2% 和 12.8% 的相对改进。 在其他数据集上,与最近的最新技术相比,我们的跟踪器的性能也具有竞争力。 此外,我们进一步为我们的无锚跟踪器配备了一个插件即在线更新模块,并使其能够在推理过程中捕捉物体的外观变化。 在线模块进一步增强了跟踪性能,这显示了所提出的无锚跟踪方法的可扩展性。
这项工作的主要贡献有两个。 1)基于基于锚点的方法难以改进与目标对象重叠较小的锚点的观察,我们提出了一种目标感知无锚网络。 所提出的算法不仅可以纠正不精确的边界框预测,还可以学习目标感知功能以提高匹配精度。 2)我们通过将所提出的无锚网络与有效的特征组合模块相结合,设计了一种新颖的跟踪框架。 所提出的跟踪模型在以实时速度运行时在五个基准测试中实现了最先进的性能。
2 相关工作
在本节中,我们回顾了跟踪和检测中无锚机制和特征对齐的相关工作,并简要回顾了最近的孪生跟踪器。
2.1 孪生跟踪器
开创性的工作,即 SINT [35] 和 SiamFC [1],使用孪生网络离线训练对象目标和候选图像块之间的相似性度量。 SiamRPN [22] 通过区域建议网络对其进行了改进,该网络相当于一个特定于目标的基于锚点的检测器。 通过预定义的锚框,SiamRPN [22] 可以有效地捕获对象的尺度变化。 后续研究主要分为两个阵营:设计更强大的 backbone 网络[21,50]或提出更有效的提议网络[9]。 尽管这些离线 Siamese 跟踪器取得了非常有希望的结果,但它们的跟踪鲁棒性仍然不如最近最先进的在线跟踪器,例如 ATOM [4] 和 DiMP [2]。
2.2 无锚机制
无锚方法最近在目标检测任务中变得流行,因为它们的体系结构简单且性能优越 [7,19,36]。 与基于锚的方法估计锚框的偏移不同,无锚机制直接预测对象的位置。 早期的 anchor-free 工作 [47] 预测与对象的交集,而最近的工作侧重于估计对象的关键点,例如对象中心 [7] 和角点 [19]。 无锚检测器的另一个分支 [30,36] 在不使用不使用任何参考的情况下,预测每个像素的目标边界框,例如锚点或关键点。 我们方法中的无锚机制受到最近检测算法 [36] 的启发,但又有所不同。 我们将在第 3.4 节讨论主要区别。
2.3 特征对齐
视觉特征和参考 ROI(感兴趣区域)之间的对齐对于定位任务至关重要,例如检测和跟踪 [40]。 例如,ROIAlign [12] 通常被用于对象检测,以将特征与参考锚框对齐,从而显着提高定位精度。 在视觉跟踪中,也有几种方法 [15,41] 考虑视觉特征和候选边界框之间的对应关系。 然而,这些方法只考虑了具有高分类分数的边界框。 如果高分表示背景区域,则相应的特征将误导目标对象的检测。 为了解决这个问题,我们提出了一种新的特征对齐方法,其中对齐独立于分类结果。 我们直接从预测的边界框中采样视觉特征,而不考虑分类分数,生成目标感知特征。 这种目标感知特征反过来有助于前景和背景的分类。
3 目标感知无锚网络
本节提出了用于视觉跟踪的目标感知无锚网络(Ocean)。 网络架构由两部分组成:用于前景-背景概率预测的目标感知分类网络和用于目标尺度估计的回归网络。 这两个网络的输入特征由一个共享的主干网络生成(详见第 4.1 节)。 我们首先介绍回归网络,然后是分类分支,因为回归分支提供对象尺度信息以增强目标对象和背景的分类。
3.1 无锚回归网络
回顾最近的基于锚点的跟踪器 [21,22],我们观察到当预测的边界框变得不可靠时,跟踪器会迅速漂移。 根本原因是,在训练期间,这些方法仅考虑与 ground-truth 的 IoU 大于高阈值(即 IoU ≥ 0.6)的锚框。 因此,这些方法缺乏修正弱预测的能力,例如,与目标重叠的框很小。
为了解决这个问题,我们引入了一种用于视觉跟踪的新型无锚回归。 它将真实边界框中的所有像素视为训练样本。 核心思想是估计目标对象内的每个像素到ground-truth bounding box的四个边的距离。具体来说,定义
B
=
(
x
0
,
y
0
,
x
1
,
y
1
)
∈
R
4
B=\left(x_{0}, y_{0}, x_{1}, y_{1}\right) \in \mathbb{R}^{4}
B=(x0,y0,x1,y1)∈R4表示目标对象的ground-truth bounding box的左上角和右下角坐标,如果一个像素的坐标
(
x
,
y
)
(x, y)
(x,y)落在 ground-truth box
B
B
B中,则该像素被认为是回归样本。因此,训练样本的标签
T
∗
=
(
l
∗
,
t
∗
,
r
∗
,
b
∗
)
T^{*}=\left(l^{*}, t^{*}, r^{*}, b^{*}\right)
T∗=(l∗,t∗,r∗,b∗)可以被式 1 计算
e
q
1
:
l
∗
=
x
−
x
0
,
t
∗
=
y
−
y
0
,
r
∗
=
x
1
−
x
,
b
∗
=
y
1
−
y
,
{eq1:}\\ l^{*} =x-x_{0}, t^{*}=y-y_{0}, \\ r^{*} =x_{1}-x, b^{*}=y_{1}-y,
eq1:l∗=x−x0,t∗=y−y0,r∗=x1−x,b∗=y1−y,
其表示了从位置
(
x
,
y
)
(x, y)
(x,y)到ground-truth box
B
B
B的四条边的距离,如图2(a)所示。回归网络的学习通过通道数为256的4个
3
×
3
3 \times 3
3×3卷积层,后接一个通道数为4的
3
×
3
3 \times 3
3×3卷积层用于预测距离。如图 3 所示,其上部的“Conv”块表示回归网络。
这种无锚回归允许在训练过程中将所有像素都放在 ground-truth box 中,因此即使只有一小块区域被识别为前景,它也可以预测目标对象的比例。 因此,跟踪器能够在一定程度上纠正推理过程中的弱预测。
3.2 目标感知分类网络
在之前的 Siamese 跟踪方法 [1,21,22] 中,分类置信度是通过从特征图中的固定规则区域采样的特征来估计的,例如图 2(b) 中的紫色点。 该采样特征描绘了图像的固定局部区域,并且不可缩放以适应目标尺度的变化。 因此,分类置信度在区分目标对象和复杂背景时并不可靠。
为了解决这个问题,我们提出了一个特征对齐模块来学习用于分类的目标感知特征。 对齐模块变换卷积核的固定采样位置以与预测的边界框对齐。 具体来说,对于分类图中的每个位置
(
d
x
,
d
y
)
(d_{x},d_{y})
(dx,dy),都拥有一个由回归网络生成的对应的边界框
M
=
(
m
x
,
m
y
,
m
w
,
m
h
)
M=\left(m_{x}, m_{y}, m_{w}, m_{h}\right)
M=(mx,my,mw,mh),其中
m
x
m_{x}
mx和
m
y
m_{y}
my表示边界框中心,以及
m
w
m_{w}
mw和
m
h
m_{h}
mh表示该边界框的宽度和高度。我们的目标是通过从相应的候选区域 M 中采样特征来估计每个位置
(
d
x
,
d
y
)
(d_{x},d_{y})
(dx,dy) 的分类置信度。 卷积核大小为
k
×
k
k \times k
k×k 的标准二维卷积使用固定的规则网格
G
=
{
(
−
⌊
k
/
2
⌋
,
−
⌊
k
/
2
⌋
)
,
…
,
(
⌊
k
/
2
⌋
,
⌊
k
/
2
⌋
)
}
\mathcal{G} =\{(-\lfloor k / 2\rfloor,-\lfloor k / 2\rfloor), \ldots,(\lfloor k / 2\rfloor,\lfloor k / 2\rfloor)\}
G={(−⌊k/2⌋,−⌊k/2⌋),…,(⌊k/2⌋,⌊k/2⌋)} 对特征进行采样,其中
⌊
.
⌋
\lfloor.\rfloor
⌊.⌋表示floor函数。 规则网格 G 不能保证采样的特征覆盖区域 M 的全部内容。
因此,我们提出为规则采样网格
G
\mathcal{G}
G配备一个空间变换
T
\mathcal{T}
T,使得采样位置从固定区域变换到预测区域M。如图2(c)所示,通过测量从
G
\mathcal{G}
G 中的采样位置(紫色点)到与预测边界框对齐的位置(青色点)的相对方向和距离,获得变换
T
\mathcal{T}
T(黄色虚线箭头)。利用新的采样位置,目标感知特征被特征对齐模块提取(可变形卷积),公式为
e
q
2
:
f
[
u
]
=
∑
g
∈
G
,
Δ
t
∈
T
w
[
g
]
⋅
x
[
u
+
g
+
Δ
t
]
{eq2:} \mathbf{f}[u]=\sum_{g \in \mathcal{G}, \Delta t \in \mathcal{T}} \mathbf{w}[g] \cdot \mathbf{x}[u+g+\Delta t]
eq2:f[u]=g∈G,Δt∈T∑w[g]⋅x[u+g+Δt]
其中 x 表示输入特征图,w 表示学习的卷积权重,u 表示特征图上的位置,f 表示输出的目标感知特征图。 空间变换
Δ
t
∈
T
\Delta t \in \mathcal{T}
Δt∈T 表示从原始规则采样点到与预测边界框对齐的新点的距离向量。 变换被定义为
e
q
3
:
T
=
{
(
m
x
,
m
y
)
+
B
}
−
{
(
d
x
,
d
y
)
+
G
}
{eq3:} \mathcal{T}=\left\{\left(m_{x}, m_{y}\right)+\mathcal{B}\right\}-\left\{\left(d_{x}, d_{y}\right)+\mathcal{G}\right\}
eq3:T={(mx,my)+B}−{(dx,dy)+G}
其中,
{
(
m
x
,
m
y
)
+
B
}
\left\{\left(m_{x}, m_{y}\right)+\mathcal{B}\right\}
{(mx,my)+B}表示与M对齐的采样位置,即图2(c)中的青色点,
{
(
d
x
,
d
y
)
+
G
}
\left\{\left(d_{x}, d_{y}\right)+\mathcal{G}\right\}
{(dx,dy)+G}使用标准卷积进行采样的规则采样区域,即图2(c)中的紫色点。且
B
=
{
(
−
m
w
/
2
,
−
m
h
/
2
)
,
…
,
(
m
w
/
2
,
m
h
/
2
)
}
\mathcal{B}=\left\{\left(-m_{w} / 2,-m_{h} / 2\right), \ldots,\left(m_{w} / 2, m_{h} / 2\right)\right\}
B={(−mw/2,−mh/2),…,(mw/2,mh/2)}表示相对与预测框中心(
m
x
,
m
y
m_{x}, m_{y}
mx,my)的新的采样坐标,即图2(c)中的青色点。当
Δ
t
=
0
\Delta t = 0
Δt=0时,特征采样区域退化为固定区域采样。采样位置的变换适应视频帧中预测边界框的变化。 因此,提取的目标感知特征对目标尺度的变化具有鲁棒性,有利于跟踪过程中的特征匹配。 此外,目标感知特征提供了对候选目标的全局描述,这使得对象和背景的区分更加可靠。
我们利用目标感知特征和规则区域特征来预测区域是属于目标对象还是图像背景。 对于基于对象感知特征的分类,我们在 f f f 上应用卷积核核大小为 3 × 3 3 \times 3 3×3 的标准卷积来预测置信度 p o p_{o} po(如图 3 中分类网络的“OA.Conv”块所示)。 对于基于正则区域特征的分类,在正则区域特征 f ′ f^{\prime} f′ 上执行4个通道数为 256 的 3 × 3 3 \times 3 3×3 标准卷积层,然后是一个通道数为 1 的标准 3 × 3 3 \times 3 3×3 卷积层来预测置信度 p r p_{r} pr(可视化为图 3 中分类网络的“Conv”块)。 计算置信度 p o p_{o} po和 p r p_{r} pr的总和得到最终的分类分数。 目标感知特征提供了目标的全局描述,从而提高了候选区域的匹配精度。 同时,规则区域特征集中在图像的局部,对于定位目标对象的中心具有鲁棒性。 这两个特征的结合提高了分类网络的可靠性。
3.3 损失函数
为了优化所提出的无锚网络,我们采用 IoU 损失 [47] 和二元交叉熵 (BCE) 损失 [6] 来联合训练回归和分类网络。 在回归中,损失定义为
e
q
4
:
L
r
e
g
=
−
∑
i
ln
(
IoU
(
p
r
e
g
,
T
∗
)
)
{eq4:} \mathcal{L}_{r e g}=-\sum_{i} \ln \left(\operatorname{IoU}\left(p_{r e g}, T^{*}\right)\right)
eq4:Lreg=−i∑ln(IoU(preg,T∗))
其中,
p
r
e
g
p_{r e g}
preg表示预测,i 索引训练样本,在分类中,基于对象感知特征
f
f
f的损失
L
o
\mathcal{L}_{o}
Lo 表示为
e
q
5
:
L
o
=
−
∑
j
p
o
∗
log
(
p
o
)
+
(
1
−
p
o
∗
)
log
(
1
−
p
o
)
{eq5:} \mathcal{L}_{o}=-\sum_{j} p_{o}^{*} \log \left(p_{o}\right)+\left(1-p_{o}^{*}\right) \log \left(1-p_{o}\right)
eq5:Lo=−j∑po∗log(po)+(1−po∗)log(1−po)
而基于正则区域特征
f
′
f^{\prime}
f′ 的损失
L
r
\mathcal{L}_{r}
Lr 表示为
e
q
6
:
L
r
=
−
∑
j
p
r
∗
log
(
p
r
)
+
(
1
−
p
r
∗
)
log
(
1
−
p
r
)
{eq6:} \mathcal{L}_{r}=-\sum_{j} p_{r}^{*} \log \left(p_{r}\right)+\left(1-p_{r}^{*}\right) \log \left(1-p_{r}\right)
eq6:Lr=−j∑pr∗log(pr)+(1−pr∗)log(1−pr)
其中
p
o
p_{o}
po和
p
r
p_{r}
pr分别是在目标感知特征和正则区域特征上计算的分类分数图,j 索引用于分类的训练样本,
p
o
∗
p_{o}^{*}
po∗ 和
p
r
∗
p_{r}^{*}
pr∗ 表示真实标签。更具体地说,
p
o
∗
p_{o}^{*}
po∗ 是一个概率标签,其中每个值表示预测的边界框和 ground-truth 之间的 IoU,即图 2( c) 中带有红色斜线的区域。
p
r
∗
p_{r}^{*}
pr∗ 是一个二进制标签,其中靠近目标中心的像素被标记为 1,即图 2(b) 中的红色区域,其表示为
e
q
7
:
p
r
∗
[
v
]
=
{
1
,
if
∥
v
−
c
∥
≤
R
0
,
otherwise.
{eq7:} p_{r}^{*}[v]=\left\{\begin{array}{ll} 1, & \text { if }\|v-c\| \leq R \\ 0, & \text { otherwise. } \end{array}\right.
eq7:pr∗[v]={1,0, if ∥v−c∥≤R otherwise.
整个对象感知无锚网络的联合训练是为了优化以下目标函数:
e
q
8
:
L
=
L
r
e
g
+
λ
1
L
o
+
λ
2
L
r
{eq8:} \mathcal{L}=\mathcal{L}_{r e g}+\lambda_{1} \mathcal{L}_{o}+\lambda_{2} \mathcal{L}_{r}
eq8:L=Lreg+λ1Lo+λ2Lr
其中,
λ
1
\lambda_{1}
λ1和
λ
2
\lambda_{2}
λ2表示权衡超参数。
3.4 与FCOS的区别
我们的无锚机制与最近的检测方法 [7,19,36](在第 2 节中讨论)具有相似的启发。 在本节中,我们将进一步讨论与最相关工作的差异,即 FCOS [36]。 FCOS 和我们的方法都直接在像素级别的图像平面上预测对象位置。 然而,我们的工作在两个基本方面不同于 FCOS [36]。 1)在 FCOS [36] 中,分类和回归网络的训练样本是相同的。 两者都是从 ground-truth 框内的位置采样的。在我们的方法中, 不同的是,用于分类和回归的数据采样策略是不对称的,这是为跟踪任务量身定制的。 更具体地说,分类网络只将接近目标的像素视为正样本(即 R≤16 像素),而回归网络将真实框中的所有像素视为训练样本。 这种细粒度的采样策略保证了分类网络可以学习到用于区域匹配的鲁棒相似性度量,这对于跟踪很重要。 2) 在 FCOS [36] 中,objectness 分数是用从固定正则区域中提取的特征来计算的,类似于图2(b)中的紫色点。相比之下,我们的方法还引入了目标感知特征,可以捕获目标对象的全局外观。 目标感知特征将采样区域与预测的边界框对齐(例如,图 2(c)中的青色点),因此它能适应物体的尺度变化。 正则区域特征和目标感知特征的结合使分类更加可靠,如第 5.3 节中所验证的那样。
4 目标感知无锚跟踪
5 作者的直播分享笔记
- 跟踪领域的工作可以分为两类:一类对跟踪问题进行分析,一类对跟踪模型进行改进。
- 正样本:用于进行边界框回归的样本。
- 如果将RPN中IOU值较低的anchor也当成正样本回归,那么将会产生损失不收敛的问题。
- object-aware classification:主要的思想就是将分类用的特征的采样区域固定在预测出的box里面,将分类和回归进行统一。
代码复现问题记录
1 关于数据集的解压和使用
- 从作者给出的百度网盘链接下载数据集之后,先使用cat命令将各个tar文件合并,然后再解压,这样不会出现解压错误。注意:不要在外置移动硬盘中进行解压,速度很慢,且容易出现解压不成功;
- 需要勾选Gevent compatible选项,否则在进行数据迭代时,将会产生数据加载不成功问题。
- 如果使用超链接链接数据集,在进行数据迭代时,需要打开存储数据的硬盘。
2 关于程序调试
2.1 配置文件修改
- 有的参数在Ocean.yaml文件中修改之后,还需要在config.py文件中修改才能生效;
- batch参数如果不等于16,则会造成deform_conv中offset与input的shape不对应问题。
2.2 deform_conv相关
- 如果在TracKit/lib/models/dcn/src中没有出现.so后缀文件,则setup.py步骤未成功,需要重新执行;
- 如若出现下列错误
RuntimeError: view size is not compatible with input tensor's size and stride (at least one dimension spans across two contiguous subspaces). Use .reshape(...) instead.
则在deform_conv_cuda.cpp文件中,使用reshape替换view,然后重新按照readme中的步骤执行setup.py(即重新编译cpp文件)。