📝论文下载地址
SiamMask论文地址
SiamMask论文百度网盘下载地址 ❗提取码:jcr4
❗
SiamMask论文翻译(水印)百度网盘下载地址 ❗提取码:2jvq
❗
SiamMask论文翻译(无水印PDF+Word)下载地址
🔨代码下载地址
[GitHub]
[百度网盘] ❗提取码:5meh
❗
[预训练权重百度网盘下载地址] ❗提取码:jnur
❗
👨🎓论文作者
📦模型讲解
[模型结构]
与普通的视频跟踪网络不同的是,SiamMask可以同时完成视频跟踪和实例级分割的任务。如下图所示,与传统的对象跟踪器一样,依赖于一个简单的边界框初始化(蓝色)并在线操作。与ECO(红色)等最先进的跟踪器不同,SiamMask(绿色)能够生成二进制分割,从而更准确地描述目标对象。
如下图所示,SiamMask的网络结构,作者提出了三分支的SiamMask网络。与之前的孪生网络十分相似的是,将模板图像与搜索图像输入网络,两者经过特征提取网络,特征提取网络如下表所示,生成15×15×256和31×31×256的featuremap,与SiamFC相似的是,将两个featuremap逐通道相互卷积,生成17×17×256的featuremap,作者=将这个过程生成的像素值叫做RoW,如图中所致,蓝色的1×1×256的featuremap为heatmap的最大值,代表目标最有可能出现的位置。之后将featuremap输入三个分支中,图中 h ϕ h_{\phi} hϕ、 b ϕ b_{\phi} bϕ和 s ϕ s_{\phi} sϕ是1×1的卷积层,作用是改变通道的数量。
在box分支中,17×17×256的featuremap经过1×1×(4k)的卷积层后生成17×17×4k的featuremap,这里k是每一个RoW生成k个anchors,这里实际上和SiamRPN相同,每四个一组,分别对应
d
x
、
d
y
、
d
w
、
d
h
dx、dy、dw、dh
dx、dy、dw、dh四个值,代表着与groundtruth的距离。
在score分支中,17×17×256的featuremap经过1×1×(2k)的卷积层后生成17×17×2k的featuremap,这里k是每一个RoW生成k个anchors,这里实际上和SiamRPN相同,每两个一组,分别对应分类为目标和背景的标签结果。
作者的创新之处就在第三个分支中,Mask分支。17×17×256的featuremap经过1×1×(63×63)的卷积层后生成17×17×(63×63)的featuremap,从featuremap中取出与RoW位置相同的像素值,为1×1×(63×63),对其做上采样,生成127×127×1的图像,在这个图像中所有的像素值都取0或1,生成的相当于是一个二进制掩码,目标像素值为1,背景像素值为0,这样就完成了实例级分割的任务。
三分支中的网络结构如下表所示:
除了三分支的SiamMask之外,作者还提出了二分支的SiamMask网络,如上图所示,删掉了box分支,只保留score和Mask分支。通过Mask分支生成的二进制掩码来生成相对应的bounding box,二分支中的网络结构如下表所示:
[模型创新]
[改进bounding box的生成策略]
作者设计了三种生成bounding box的策略如下图所示的红色、绿色和蓝色框:
[Min-max]
在之前的视频跟踪网络中,生成的都是平行于图片的x轴,y轴的bounding box。当然,SiamMask也能完成这样的任务,如下图中红色框所示,作者将其称为Min-max。在三分支的SiamMask网络中,box分支负责生成这样的bounding box。而在二分支的SiamMask网络中,作者利用Mask分支生成的二进制掩码取出目标所在的最小和最大的像素值,来生成Min-max的bounding box。
[MBR]
之后作者为了能够将bounding box尽可能的贴合物体,设计了MBR的生成策略,如下图绿色框所示。同样,利用Mask分支生成的二进制掩码,求目标的最小包闭矩形,这样会导致生成的bounding box会有一定的倾斜。
[Opt]
最后作者又设计了一种策略Opt,如下图蓝色框所示。通过Mask分支生成的二进制掩码,求一个矩形区域使得矩形与目标像素的IoU最大,通过这种策略在一些计算目标与bounding box之间IoU的比赛中会提高SiamMask的成绩。
[叠加细化模型]
下图为特征提取网络和Mask分支的结构图,网络忽略了box分支和score分支,经过特征提取网络生成的1×1×256的featuremap,首先经过反卷积生成15×15×32的featuremap,之后每一次反卷积都通过
U
i
U_{i}
Ui结合多层的特征,最后经过一个3×3的卷积层和Sigmoid层生成127×127×1的二进制掩码。
下图为 U i U_{i} Ui的结构图,也就是细化模型的结构。经过细化模型可以实现上采样的过程中结合特征提取的featuremap信息。
[损失函数]
首先,作者介绍了Mask分支的损失函数:
L
m
a
s
k
(
θ
,
ϕ
)
=
∑
n
(
1
+
y
n
2
w
h
∑
i
j
log
(
1
+
e
−
c
n
i
j
m
n
i
j
)
)
\mathcal{L}_{m a s k}(\theta, \phi)=\sum_{n}\left(\frac{1+y_{n}}{2 w h} \sum_{i j} \log \left(1+e^{-c_{n}^{i j} m_{n}^{i j}}\right)\right)
Lmask(θ,ϕ)=n∑(2wh1+ynij∑log(1+e−cnijmnij))如果计算Mask分支的损失函数就需要对RoW和Mask进行标记。
首先,对于17×17×256的featuremap中的每一层的每个RoW都需要进行标记,这里256个通道的17×17的featuremap都是相同的,目标的RoW就标记为+1,背景的RoW标记为-1,这个标记就是公式中的
y
n
y_{n}
yn,可以从公式看出,只有
y
n
=
+
1
y_{n}=+1
yn=+1时才会有损失,所以这里在每一个通道中只会选取一个RoW,n就代表的第几个通道。
另外,在Mask分支最后生成一个127×127×1的二进制掩码也需要对其进行标记,目标像素标记为+1,背景像素标记为-1,所以假设一个RoW中会有
w
×
h
w×h
w×h个像素,
c
n
i
j
c^{ij}_{n}
cnij为Mask中第n个RoW中第i,j个像素的真实标记,
m
n
i
j
m^{ij}_{n}
mnij为对应的网络的输出。所以这里的Mask分支只会计算一个目标RoW在二进制掩码中的所有像素。
[二分支SiamMask]
二分支的SiamMask的损失函数如下式所示,其中
λ
1
\lambda_{1}
λ1与
λ
2
\lambda_{2}
λ2为超参数,
λ
1
=
32
\lambda_{1}=32
λ1=32,
λ
2
=
1
\lambda_{2}=1
λ2=1,
L
m
a
s
k
\mathcal{L}_{m a s k}
Lmask是上面讲的Mask分支的损失函数,
L
s
i
m
\mathcal{L}_{sim}
Lsim是SiamFC的损失函数,具体的可以阅读SiamFC的损失函数。 ? SiamFC:利用全卷积孪生网络进行视频跟踪
L
2
B
=
λ
1
⋅
L
m
a
s
k
+
λ
2
⋅
L
s
i
m
\mathcal{L}_{2 B}=\lambda_{1} \cdot \mathcal{L}_{m a s k}+\lambda_{2} \cdot \mathcal{L}_{s i m}
L2B=λ1⋅Lmask+λ2⋅Lsim
[三分支SiamMask]
三分支的SiamMask的损失函数如下式所示,其中
λ
1
\lambda_{1}
λ1与
λ
2
\lambda_{2}
λ2为超参数,
λ
1
=
32
\lambda_{1}=32
λ1=32,
λ
2
=
λ
3
=
1
\lambda_{2}=\lambda_{3}=1
λ2=λ3=1,
L
m
a
s
k
\mathcal{L}_{m a s k}
Lmask是上面讲的Mask分支的损失函数,
L
s
c
o
r
e
\mathcal{L}_{score}
Lscore和
L
b
o
x
\mathcal{L}_{box}
Lbox是SiamRPN的损失函数
L
c
l
s
\mathcal{L}_{cls}
Lcls和
L
r
e
g
\mathcal{L}_{reg}
Lreg,具体的可以阅读SiamRPN的损失函数。 ? SiamRPN:利用区域建议孪生网络进行视频跟踪
L
3
B
=
λ
1
⋅
L
m
a
s
k
+
λ
2
⋅
L
s
c
o
r
e
+
λ
3
⋅
L
b
o
x
\mathcal{L}_{3 B}=\lambda_{1} \cdot \mathcal{L}_{m a s k}+\lambda_{2} \cdot \mathcal{L}_{s c o r e}+\lambda_{3} \cdot \mathcal{L}_{b o x}
L3B=λ1⋅Lmask+λ2⋅Lscore+λ3⋅Lbox
[训练过程]
训练属性 | 参数取值 |
---|---|
梯度下降 | SGD |
迭代次数 | 20 |
随机平移 | ±8像素 |
学习率 | 0.001-0.0005 |
框架 | Pytorch |
配置 | 8×NVIDIA Titan Xp |
[结果分析]
[VOT-2018和VOT-2016]
作者将SiamMask与MBR策略和SiamMask–opt(用Opt·生成策略)的两个变体与最近在VOT-2018基准上发布的五个最先进的追踪器进行了比较。SiamMask默认采用MBR策略的三分支SiamMask。这两个变种都实现了卓越的性能和实时运行。特别是,我们的三分支SiamMask显著优于最新的、性能最好的DaSiamRPN,在以每秒55帧的速度运行时,实现了0.380的EAO。即使没有box回归分支,简单的双分支SiamMask(SiamMask-2B)也能达到0.334的高EAO,这与SA-siam R相当,并且优于已发表文献中的任何其他实时方法。最后,在SiamMask–Opt中,提出的从二进制掩码中找到最佳旋转矩形的策略带来了最佳的总体性能(和特别高的精度),但却要付出巨大的计算代价。
下表是在VOT-2016上不同边界框策略的性能。
下表是在VOT-2018上不同策略的性能。
下表是SiamMask在VOT-2016和VOT-2018上的性能。
[Davis-2016、DAVIS -2017和YouTube VOS]
这三个数据集是实例级分割的数据集,在这不做过多的阐述。
下表是在Davis-2016上不同策略的性能。
下表是在DAVIS -2017上不同策略的性能。
下表是在YouTube VOS上不同策略的性能。
🚪传送门
视频跟踪
视频跟踪数据集指标分析
SiamFC:利用全卷积孪生网络进行视频跟踪
SiamRPN:利用区域建议孪生网络进行视频跟踪
DaSiamRPN:用于视觉跟踪的干扰意识的孪生网络
SiamRPN++: 基于深度网络的孪生视觉跟踪的进化
SiamMask: 快速在线目标跟踪与分割的统一方法