阅读论文的步骤:查阅文献->阅读文献->文献复现->找文献的不足进行改进->研究出成果
论文链接:arxiv
1. 论文思路
通过将目标跟踪任务分解为像素级别的分类和在像素处对象边界框回归的两个子问题,提出一种新的全卷积孪生神经网络,以每个像素方式端到端的解决视觉跟踪问题。SiamCAR由两个简单的子网构成:一个用于特征提取的Siamese subnetwork和一个用于边界框预测的分类回归子网络。框架以ResNet50为骨架网络。
SOTA的方法SiamRPN,SiamRPN++和SPM都是基于区域的,本文的方法能够避免棘手的参数调整减少人为干预。
跟踪阶段中分类分治是预测空间中每个位置的标签,回归分支是考虑回归每个位置的相对边界框。在这种方法中以逐像素的方法进行问题解决。然后设计一个简单有效的基于Siamese的分类和回归网络,以端到端的方式同时学习分类和回归模型。
SiamCAR采用在线训练和离线跟踪的策略,在训练过程中不适用任何数据增强,此文章的贡献主要有:
- 提出用于视觉跟踪的SiamCAR网络,结构简单功能强大。
- 所提出的tracker是anchor和proposal free。超参数的数量显著减少,这使得跟踪器免于复杂的参数调整,并且使得跟踪器显著更简单,尤其是在训练中。
- 没有花哨的功能,建议的跟踪器在准确性和时间成本方面实现了最先进的跟踪性能。
2. 具体原理
跟踪问题中,深度卷积特征CNN被广泛应用,模板更新可以提高模型的适应性但是在线跟踪效率很低。目前的研究表明:基于Siameme的在线训练和具有深度神经网络的离线跟踪方法已经实现了准确性和效率之间的最佳平衡。
模型的流程如下所示:
2.1 特征提取子网络
子网络包含两部分:跟踪模板Z作为输入的目标分支和搜索模板X作为输入的搜索分支。这两个分支共享相同的CNN架构作为他们的主干模型,输出两个功能图
φ
(
Z
)
和
φ
(
X
)
\varphi(Z)和\varphi(X)
φ(Z)和φ(X).为了嵌入这两个分支的信息,可以通过以
φ
(
Z
)
\varphi(Z)
φ(Z)为核对
φ
(
X
)
\varphi(X)
φ(X)进行互相关来获得响应图R。由于我们需要对后续预测子网络中的响应图R进行解码,以获得目标的位置和尺度信息,这里希望R保留丰富的信息。然而互相关层只能生成单通道压缩响应图,缺乏有用的特征和重要的跟踪信息。使用深度相关层来生成多个语义相似度图:
R
=
φ
(
X
)
⋆
φ
(
Z
)
R=\varphi(X)\star\varphi(Z)
R=φ(X)⋆φ(Z)
⋆
\star
⋆代表逐通道的互相关操作。生成的响应图R和
φ
(
X
)
\varphi(X)
φ(X)有相同的通道数,它包含了用于分类和回归的大量信息。
低级特征例如边缘、角、颜色何兴庄可以代表更好的视觉属性,并且对于位置来说是不可或缺的。高级特征在语义属性上具有更好的表示,并且他们更为重要。许多方法利用融合低级和高级特征来提高跟踪精度。这里我们还考虑聚合多层深层特征进行跟踪。我们使用改进的ResNet-50作为我们的主干网络。为了实现用于识别和辨别的更好的推断,我们将从主干的最后三个剩余块中提取的特征合成,分别表示为
F
3
(
X
)
,
F
4
(
X
)
,
F
5
(
X
)
\mathcal F_3(X),\mathcal F_4(X),\mathcal F_5(X)
F3(X),F4(X),F5(X)的三个输出连接为一个单位
φ
(
X
)
=
C
a
t
(
F
3
(
X
)
,
F
4
(
X
)
,
F
5
(
X
)
)
\varphi(X)=Cat(\mathcal F_3(X),\mathcal F_4(X),\mathcal F_5(X))
φ(X)=Cat(F3(X),F4(X),F5(X))
这里
F
i
=
3
:
5
(
X
)
\mathcal F_{i=3:5}(X)
Fi=3:5(X)包含256个通道,所以
φ
(
X
)
\varphi(X)
φ(X)包含了3*256个通道。
在搜索图 φ ( X ) \varphi(X) φ(X)和模板图 φ ( Z ) \varphi(Z) φ(Z)之间执行深度方向的互相关,以获得多通道响应图,然后使用1*1的核对响应图进行卷积,将其维度减少到256个channel。通过降维可以显著减少参数的数量,从而加快后续计算的速度。最终的降维响应图 R ⋆ R^{\star} R⋆被用作分类-回归子网络的输入。
2.2 分类和回归子网络的边界框预测
响应图
R
∗
R^*
R∗中每个位置(i,j)都可以被映射回输入搜索区域作为(x,y)。基于RPN的跟踪器将搜索区域上的相应位置视为多尺度Anchor box的中心,并以这些Anchor bob为参考回归包围bounding box。本文提出的模型直接对每个位置的目标bounding box进行分类和回归,相关联的训练可以通过端到端的完全卷积操作来完成,此操作可以避免复杂的参数调整减少人为干预。
跟踪任务被分解成两个子任务:一个分类分支,用于预测每个位置的类别,一个回归分支,用于计算该位置的目标边界框(见图2的子网络图)。使用Siamese子网络对于响应图中的
R
w
×
h
×
2
∗
R_{w\times h\times 2}^*
Rw×h×2∗,分类分支输入一个分类特征图
A
w
×
h
×
2
c
l
s
A_{w \times h \times 2}^{cls}
Aw×h×2cls,回归分支输出一个一个回归特征图
A
w
×
h
×
4
r
e
g
A_{w \times h \times 4}^{reg}
Aw×h×4reg,这里w和h代表提取的特征图的宽度和高度。在图2中,在
A
w
×
h
×
2
c
l
s
A_{w \times h \times 2}^{cls}
Aw×h×2cls中的每一个点(i,j,:)包含着2D的向量,代表了输入搜索区域中相应位置的前景和背景分数。同样的,在
A
w
×
h
×
4
r
e
g
A_{w \times h \times 4}^{reg}
Aw×h×4reg中的每一个点(i,j,:)包含着4D的向量
t
(
i
,
g
)
=
(
l
,
t
,
r
,
b
)
t(i,g)=(l,t,r,b)
t(i,g)=(l,t,r,b),它代表了从对应区域到输入搜索区域中四个边界角的距离。
由于输入搜索区域中目标和背景所占的面积比例不是很大,所以不会出现样本不平衡的问题。因此,我们简单地采用交叉熵损失进行分类,采用IoU损失进行回归。使用
(
x
0
,
y
0
)
,
(
x
1
,
y
1
)
(x_0,y_0),(x_1,y_1)
(x0,y0),(x1,y1)表示ground-truth边框的左上角和右下角的坐标,
(
x
,
y
)
(x,y)
(x,y)代表对应位置的点
(
x
,
y
)
(x,y)
(x,y),在
A
w
×
h
×
4
r
e
g
A_{w \times h \times 4}^{reg}
Aw×h×4reg的回归目标
t
~
(
i
,
j
)
\tilde{t}_{(i,j)}
t~(i,j)可以这样计算:
t
~
(
i
,
j
)
0
=
l
~
=
x
−
x
0
,
t
~
(
i
,
j
)
1
=
t
~
=
y
−
y
0
t
~
(
i
,
j
)
2
=
r
~
=
x
1
−
x
,
t
~
(
i
,
j
)
3
=
b
~
=
y
1
−
y
\tilde t_{(i,j)}^0=\tilde l = x - x_0,\quad\quad \tilde t_{(i,j)}^1=\tilde t = y - y_0\\ \tilde t_{(i,j)}^2=\tilde r = x_1 - x,\quad\quad \tilde t_{(i,j)}^3=\tilde b = y_1 - y
t~(i,j)0=l~=x−x0,t~(i,j)1=t~=y−y0t~(i,j)2=r~=x1−x,t~(i,j)3=b~=y1−y
利用
t
(
i
,
j
)
t(i,j)
t(i,j)可以计算ground-truth边界框和预测边界框之间的IoU,计算回归损失:
L
r
e
g
=
1
∑
I
(
t
~
(
i
,
j
)
)
∑
i
,
j
I
(
t
~
(
i
,
j
)
)
L
I
O
U
(
A
r
e
g
(
i
,
j
,
:
)
,
t
~
(
x
,
y
)
)
\mathcal L_{reg} = \frac 1 {\sum \mathbb I(\tilde t_{(i,j)})} \sum_{i,j} \mathbb I(\tilde t_{(i,j)})L_{IOU}(A^{reg(i,j,:)},\tilde t_{(x,y)})
Lreg=∑I(t~(i,j))1i,j∑I(t~(i,j))LIOU(Areg(i,j,:),t~(x,y))
怎么理解呢,这里我给出一个解释
指示函数的意思是当前的点(x,y)在bounding box里面,就取1,否则就取0. 分母底下那个意思是在边界框里面像素点的个数,可以这么说。后面的IoU就是
(
A
r
e
g
(
i
,
j
,
:
)
,
t
~
(
x
,
y
)
)
(A^{reg(i,j,:)},\tilde t_{(x,y)})
(Areg(i,j,:),t~(x,y))的交并比,最后在每个像素点求和即可得到回归问题的损失函数的值。
但是这个交并比是什么嘞,像素间的交并比感觉很奇怪?
L
I
O
U
L_{IOU}
LIOU是交并比损失,
I
(
⋅
)
\mathbb I(\cdot)
I(⋅)是指示函数,定义如下:
I
(
t
~
(
i
,
j
)
)
=
{
1
i
f
t
~
(
i
,
j
)
k
>
0
,
k
=
0
,
1
,
2
,
3
0
o
t
h
e
r
w
i
s
e
\mathbb I(\tilde t_{(i,j)})=\begin{cases} 1 \quad if \quad \tilde t_{(i,j)}^k \gt0,k=0,1,2,3 \\ 0 \quad otherwise \end{cases}
I(t~(i,j))={1ift~(i,j)k>0,k=0,1,2,30otherwise
有观察发现距离目标中心较远倾向产生低质量的边界框,从而降低了系统的性能。此方法中我们添加一个与分类分支平行的中心分支,用来去除异常值。在图2中,此分支输出了一个中心特征图
A
w
×
h
×
1
c
e
n
A_{w \times h \times 1}^{cen}
Aw×h×1cen,每个点的值表示了相应位置的中心度得分。在
A
w
×
h
×
1
c
e
n
A_{w \times h \times 1}^{cen}
Aw×h×1cen中的分数
C
(
i
,
j
)
C(i,j)
C(i,j)定义如下:
C
(
i
,
j
)
=
I
(
t
~
(
i
,
j
)
)
∗
m
i
n
(
l
~
,
r
~
)
m
a
x
(
l
~
,
r
~
)
×
m
i
n
(
t
~
,
b
~
)
m
a
x
(
t
~
,
b
~
)
C(i,j)=\mathbb I(\tilde t_{(i,j)})*\sqrt{\frac {min(\tilde l,\tilde r)} {max(\tilde l,\tilde r)}\times \frac {min(\tilde t,\tilde b)} {max(\tilde t,\tilde b)}}
C(i,j)=I(t~(i,j))∗max(l~,r~)min(l~,r~)×max(t~,b~)min(t~,b~)
其中
C
(
i
,
j
)
C(i,j)
C(i,j)与搜索区域中相应位置
(
x
,
y
)
(x,y)
(x,y)和物体中心之间的距离形成对比。如果(x,y)在背景中,C(i,j)的值设置为0。中心损失为:
L
c
e
n
=
−
1
∑
I
(
t
~
(
i
,
j
)
)
∑
I
(
t
~
(
i
,
j
)
)
=
=
1
C
(
i
,
j
)
∗
l
o
g
A
w
×
h
×
1
c
e
n
(
i
,
j
)
+
(
1
−
C
(
i
,
j
)
)
∗
l
o
g
(
1
−
A
w
×
h
×
1
c
e
n
(
i
,
j
)
)
L_{cen} = \frac {-1} {\sum \mathbb I(\tilde t_{(i,j)})} \sum _{\mathbb I(\tilde t{(i,j)})==1}C(i,j)*log A_{w \times h \times 1}^{cen}(i,j) \\ +(1-C(i,j))*log(1-A_{w\times h \times 1}^{cen}(i,j))
Lcen=∑I(t~(i,j))−1I(t~(i,j))==1∑C(i,j)∗logAw×h×1cen(i,j)+(1−C(i,j))∗log(1−Aw×h×1cen(i,j))
最后总体的损失为:
L
=
L
c
l
s
+
λ
1
L
c
e
n
+
λ
2
L
r
e
g
\mathcal L = \mathcal L_{cls} + \lambda_1\mathcal L_{cen} + \lambda_2 \mathcal L_{reg}
L=Lcls+λ1Lcen+λ2Lreg
其中,
L
c
l
s
\mathcal L_{cls}
Lcls代表分类问题的交叉熵,
λ
1
λ
2
\lambda_1 \quad \lambda_2
λ1λ2是中心损失和回归损失的值,在模型中分别取
λ
1
=
1
λ
2
=
3
\lambda_1 = 1 \quad \lambda_2 = 3
λ1=1λ2=3。
2.3 追踪阶段
跟踪的目的是预测当前帧中目标的边界框,对于任一位置
(
i
,
j
)
(i,j)
(i,j),我们提出的框架产生6D的向量
T
i
j
=
(
c
l
s
,
c
e
n
,
l
,
t
,
r
,
b
)
T_{ij}=(cls,cen,l,t,r,b)
Tij=(cls,cen,l,t,r,b),cls代表分类的foreground分数,cen代表center-ness分数,在跟踪过程中,边界框的大小和纵横比通常会在连续的帧之间发生微小的变化。为了使用这种时空一致性来监督预测,我们引入的尺度变化罚值
p
i
j
p_{ij}
pij来对分类得分cls重新排序,它允许更新6D向量
P
T
i
j
=
(
c
l
s
i
j
×
p
i
j
,
c
e
n
,
l
,
t
,
r
,
b
)
PT_{ij}=(cls_{ij}\times p_{ij},cen,l,t,r,b)
PTij=(clsij×pij,cen,l,t,r,b),跟踪阶段可以表述为:
q
=
arg
max
i
j
{
(
1
−
λ
d
)
c
l
s
i
j
×
p
i
j
+
λ
d
H
}
(
9
)
q = \arg \max_{ij}\{(1-\lambda_d)cls_{ij}\times p_{ij} + \lambda_d H\} \quad\quad (9)
q=argijmax{(1−λd)clsij×pij+λdH}(9)
其中,H是余弦窗,
λ
\lambda
λ是平衡权值,输出q是作为目标像素的具有最高分数的查询位置。
由于我们的模型以像素预测的方式解决了目标跟踪问题,因此每个位置都与预测的边界框相关。在实际跟踪过程中,如果只使用q的边界框作为目标框,相邻帧之间会发生抖动。我们观察到位于q周围的像素更有可能是目标像素。所以我们根据
c
l
s
i
j
×
p
i
j
cls_{ij}\times p_{ij}
clsij×pij的值在n的q个邻域中选择前k个点,最终预测是所选k个回归框的加权平均值。根据经验,n=8和k=3是是模型获得最优性能的结果。
2.4 跟踪过程(“中心点确定”是重点,有创新)
CSDN大佬讲解:
SiamCAR的详细解答,一看就会,不会请打我
3. 结果分析
首先项目配置:python环境的pytorch环境在4 RTX2080Ti下运行。模板大小127pixel,搜索区域大小255pixel。在Siamese子网络中,使用修正的ResNet50作为骨干网络,在ImageNet上对网络进行预处理,然后使用这些参数作为初始化来重新训练我们的模型。
训练过程中,batchsize为96,使用SGD执行20个epoch,初始学习率为0.001.前10个epoch训练和回归子网络中Siamese子网络参数被冻结。最后10个epoch,ResNet50的最后三块被冻结一起训练。这个过程大概需要42个小时。使用数据集:COCO,ImageNet DET,ImageNet VID,YouTube-BB。在GOT-10K,UAV,OTB,LaSOT上进行实验。需要注意的是,对于GOT-10K和LaSOT上的实验,我们的SiamCAR是用官网提供的指定训练集进行训练的,为了公平对比。
测试过程中,使用离线跟踪策略。只有序列的初始帧中的对象被用作模板补丁。因此,在整个跟踪期间,Siamese子网的目标分支可以被预先计算和固定。采用当前帧中的搜索区域作为搜索分支的输入。为了在相邻帧之间实现更稳定和更平滑的预测,计算对应于q的top-3区域的回归框的加权平均值作为最终跟踪结果。
3.1 GOT-10K
GOT-10K是一个大型高多样性基准用于野外一般目标追踪。包含10000多个真实运动对象的视频片段。所有方法都使用数据集提供的相同训练数据。训练数据集和测试数据集中的类是零重叠的。官网提供的指标有包括成功图、平均重叠AO和成功率SR。AO表示所有估计的边界框和地面真实框之间的平均重叠。0.75表示重叠超过0.5的成功跟踪帧的比率,而0.75表示重叠超过0.75的成功跟踪帧的比率。
在GOT-10K评估SiamCAR,并且和比较先进的tracker进行比较:SiamRPN++,SiamRPN,SiamFC,ECO,CFNet和其他baseline或先进的方法。与SiamRPN++相比,我们的SiamCAR在AO、
S
R
0.5
和
S
R
0.75
SR_{0.5}和SR_{0.75}
SR0.5和SR0.75上的得分分别提高了5.2%、5.4%和9.0%。
3.2 LaSOT
LaSOT是最近发布的单目标基准,包含超过352w个手动标注的帧和1400个视频。包含70个类,每个类包含20个跟踪序列。其官网提供35中算法作为baseline。指标为标准化精度图,精度图和成功图。与SiamRPN++相比,我们的SiamCAR在三个指标上分别提高了3.1%、1.9%和1.1%。SiamCAR相比于其他的baseline有很大的进步,三个指标的得分分别提高了14%、13.7%和11%。结果表明该模型具有很好的泛化能力。
Figure 6. Comparisons among Top-20 trackers on LaSOT [13]. Our SiamCAR significantly outperforms the baselines and state-of-the-art methods.
3.3 OTB50
OTB-50包含50个具有实质性变化的挑战性视频。测试序列用9个属性手动标记,以表示具有挑战性的方面,包括照明变化、比例变化、遮挡、变形、运动模糊、快速运动、平面内旋转、平面外旋转、视野外、背景杂波和低分辨率。我们将我们的网络与9种最先进的方法进行了比较,包括SiamRPN++,SiamRPN,SiamFC和ECO。评估每个跟踪器的成功图和精度图。
Figure 7. Comparisons on OTB-50 [40] with challenging aspects: low resolution, background clutter, out-of-plane rotation and deformation. Our SiamCAR achieves the best results for all these aspects.
3.4 UAV123
UAV123数据集总共包含123个视频序列,包括超过110K的帧。所有序列都用垂直边界框进行了完全注释。数据集中的目标主要受快速运动、大尺度变化、大光照变化和遮挡的影响,这使得跟踪具有挑战性。
可以看出SiamCAR的性能在准确度和成功率都比较理想。最后放出一张结果表:
4. 优缺点总结
论文中提出的:
- (N)特征提取模块中的模板更新可以提高模型的适应性,但是在线跟踪效率很低。
- 基于Siameme的在线训练和具有深度神经网络的离线跟踪方法已经实现了准确性和效率之间的最佳平衡。
- 互相关层只能生成单通道压缩响应图,缺乏有用的特征和重要的跟踪信息。
- 相关联的训练可以通过端到端的完全卷积操作来完成,此操作可以避免复杂的参数调整减少人为干预。
- SiamCAR中的IOU损失为: − ln I O U − \ln IOU −lnIOU,这是一种比较优秀的IOU损失,增加了非线性的因素,使得训练更准确。
- 没有锚点,避免锚的棘手的超参数调整,减少了人工干预。