阅读笔记之SiamMask: Fast Online Object Tracking and Segmentation

SiamMask: Fast Online Object Tracking and Segmentation

这篇文章是CVPR2019的一篇关于目标跟踪及分割的文章,论文作者团队来自中科院自动化所、牛津大学、Five AI公司。

论文:https://arxiv.org/abs/1812.05050
Github:https://github.com/foolwood/SiamMask
项目网站:http://www.robots.ox.ac.uk/~qwang/SiamMask/

摘要:

在这篇文章中,作者提出了一个简单的模型,可以同时实现视频目标跟踪和视频目标分割这两个任务,并能达到实时的效果。文章提出的模型叫SiamMask,该模型通过在用于目标跟踪的全卷积孪生神经网络上增加mask分支来实现目标的分割,同时增强网络的loss,优化网络。一旦网络训练好之后,SiamMask仅依赖于初始的一个bounding box就可以实现类别无关的目标实时跟踪及分割(at 35 frames per second)。文章提出的模型不仅只是简单、功能多样以及速度快,其效果也超过了VOT-2018的其他实时跟踪网络,在目标跟踪领域建立了新的state of the art。同时,还在DAVIS-2016, DAVIS-2017视频分割数据集上取得了具有竞争力的表现和最快的速度。

1.引言

目标跟踪有很多应用,比如自动监控、车辆导航、视频标注等。以往的目标跟踪方法通常只能预测出一个跟踪物体的矩形框,也有一些做视频目标分割的方法可以对目标进行分割,但是这些方法在使用时都需要给出第一帧的分割mask。而文章提出的模型,在infernce阶段,只需要在开始时框出目标物体,就可以对目标进行自动的跟踪以及分割。效果如下图:
在这里插入图片描述

2.相关工作

1,为了实现这一目标,我们同时训练一个暹罗网络完成三个任务,每个任务对应一个不同的策略,在新框架中建立目标对象和候选区域之间的对应关系。
其中一项任务是以滑动窗口的方式学习目标对象和多个候选对象之间的相似性度量。输出是一个密集的response map,它只指示对象的位置,而不提供关于其空间范围的任何信息。为了提炼这一信息,我们同时学习了两项进一步的任务:使用区域建议网络(Region Proposal Network)进行边界框后悔(box regres- sion)和类无关的二进制分割。
二进制标签在离线追踪时计算分割的损失,并非在线跟踪,本文呢的方法中每一个任务都有不同的分支表示由一个共享的rpn网络,并且有不同的损失。
一旦经过训练,SiamMask只依赖于一个绑定框的初始化,在线操作,不需要更新,并以每秒55帧的速度生成对象分割掩码和旋转绑定框。都是一种半监督的方法。是经过简单的方法实现的也没经过微调和数据增强以及光流法的技术。
2,在这里插入图片描述
这里的network_1和network_2可以是任意的一种网络,比如全连接网络、cnn或者是rnn,根据具体的任务而定。特殊的是,这两个网络是共享权重的,也就是说在代码实现的时候可以使用同一个网络。两个网络分别接收输入X1、X2,输出向量G(X1)和G(X2),然后通过某种距离度量的方式计算两个输出向量的距离,或者计算相似度。简单来说,就是将两个输入分别经过一个网络,编码成两个向量,再来计算向量的相似度,以此来判别原输入的相似性。这种方法可以用来做很多事情,比如比较两张人脸是否为同一个人的,两个签名是否为同一个人所作等。
SiamFC的方法很简单,但其缺点也是很明显的,就是预测的区域的比例是固定的,而且位置很粗糙(如上图,1717的得分矩阵对应的只有1717个原图的位置)。因此,SiamRPN在SiamFC的基础上进行改进,解决了这个缺陷。
他们依靠一个全卷积网络进行分类训练,然后在测试时使用第一帧提供的ground-truth掩码对其进行微调

3.SiamMask

在这里插入图片描述
SiamMask同样是基于孪生网络,和SiamFC不同的是,这里的d是depth-wise的cross correlation操作,也就是说这里是对逐通道进行相关性计算,所以得到的响应保持了通道数不变(这里是256)。文章把中间的这个响应称为RoW(response of candidate window),而后在这个RoW的基础上分出了三个分支,分别进行分割,回归和分类
在这里插入图片描述
我们预测w×h二进制面具(为每一行一个)使用一个简单的两层神经网络hφ可学的pa -参数φ。设mn表示预测掩模对应于第n行,
在这里插入图片描述
损失函数:
在训练过程中,每一个row都被二进制标签正负一ground truth,并且与双像素值联系相对目标掩膜的像素值(i,j),对于掩膜函数的预测的损失函数是一个二进制logistic回归 。
在这里插入图片描述
因此,h fai的分类层包含了w h分支,每一个都表明了给定像素是否属于候选窗口中的对象。
L掩膜只考虑正样本。
3.1 Mask generation
上面的网络结构图中,三个分支中的函数h、b、s实际上都是由两层11的卷积组成的。mask分支对应的h,也就是由通道数为256和6363的两层1
1卷积构成。如果用mn表示第n个Row对应生成的mask,那么mn可以用如下公式表示:

在这里插入图片描述在这里插入图片描述
其中的z和x分别表示模板和待搜索区域,其余的函数与网络结构图中对应。可以发现,最后生成的mask是待分割图像x和目标图像z的一个函数,因此我们可以看成是用z去指导完成x上的分割。

然而,由网络结构图可以看到,每一个RoW对应生成的mask是一个11(63*63)的向量,我们将其展平,得到的mask图像是非常粗糙的,而且尺寸也小于原图。因此,后面其实还有一个上采样和调整的过程,文中说为了简洁性,没有在图中画出,而是放到了不中材料里面。如下图所示:
在这里插入图片描述
这个网络结构我就不细讲了,总之是一个u-shape的结构,结合了backbone的feature map,进行上采样得到了更加精细的分割结果。

3.2 Box generation

在这里插入图片描述
在VOS(视频目标分割)任务中,需要生成物体的mask;而在VOT(视频目标跟踪中),最终需要的是框出目标的bounding box。对于bounding box的生成,文章给出了多种方案。

利用mask生成
(1)axis-aligned bounding rectangle (Min-max):根据mask的最小最大x、y坐标值生成坐标轴对齐的bounding box,易知,这种方法生成的框是正的,如上图中的红框。
(2)rotated minimum bounding rectangle (MBR):根据mask计算最小外接矩形作为bounding box,这种方式生成的框可以是歪的,如上图中的绿框。
(3)Opt:最优的方法。这个最优的策略是在VOT-2016的挑战中被提出来的,(这个方法我没有去研究),生成的框也可以是歪的,如上图中的蓝框。

利用box分支预测(这种方法在二分支的变种中用不了)

至于这几种生成方式的优劣,后面有实验证明

3.3 训练

总的来说,文章的训练方式是端到端的训练,也就是三个分支同时进行训练。也就是每一对训练样本,都要给出三个分支的label。下面是文章给出的三个计算loss的公式:
在这里插入图片描述
(4)、
(5)中的2B和3B分别表示三分支网络和二分支变种,文中只具体给出了mask的loss计算公式(3),这里是一个binary logistic regression loss,具体的我就不解释了,也没有什么特别的地方。mask分支只计算正样本的loss,这里的样本是针对一个个RoW而言的,文章给的定义是,当一个RoW中有一个anchor box和ground truth的IOU大于0.6,就将其认为正样本,否则为负样本。至于score分支和box分支,文章分别采用了SiamFC和SiamRPN的计算方式。

λ1,λ2,λ3是超参数,文章中给的值为λ1=32,λ2=λ3=1。

这里的训练样本是由很多对目标图像(小)和待搜索图像(大)。直观来说,通过训练,可以让网络学会如何提取图片的特征,并且根据目标图像特征搜索待识别的图像,找到目标的位置并精细分割。
利用梯度下降法使得学习率在10 −3 to 5×10 −3
We train all our models using COCO [31],
ImageNet-VID [47] and YouTube-VOS [58].

3.4 推断

在这里插入图片描述
在跟踪过程中,每帧仅对SiamMask进行一次评估,不做任何调整。在这两种变体中,我们都使用位置选择输出掩码,以获得分类分支中的最大得分。然后,在应用了每个像素的sigmoid之后,我们将掩模分支的输出值在阈值0.5处进行二值化。
,在三分支变量中,我们发现更有效地利用box分支的最高得分输出作为参考。

网络推断的过程大致如下:
(1)在第一帧,用矩形框框出想要跟踪的物体,作为网络的模板z,即网络上半部分的输入。
(2)输入视频中的一帧作为待搜索图像x,即网络下半部分的输入。
(3)网络接收两个输入,得到三个分支的预测。
(4)根据score分支得到预测的目标区域,然后找到对应位置的mask作为输出,bounding box的生成方式即为3.2中所阐述的。
(5)若网络为二分支,则根据Min-max的方法生成一个box,然后用这个box去框出下一帧的对应区域作为下一次的待搜索图像x,再这之前,会先将这个box往外padding一定大小到x的输入尺寸。若是三分支的网络,文中说用box分支去生成这个待搜索区域效果更好。
(6)回到第(3)步进行下一帧的推断。

可以看到,网络只需要给出第一帧,后面就可以自动对目标进行分割和定位。容易产生疑问的是第(5)步中,根据这一帧的预测位置去确定下一帧的搜索区域。

首先,为什么不直接用下一帧的整张图像呢?如果直接用整张图像的话,当图片中有多个相同或者类似物体的时候就会让网络产生误判,比如上图中要跟踪一名球员,如果用整张图片作为输入,就可能会跟错人了。
其次,假如物体突然跳到另一个区域的话那不就找不到了吗?如果这样的话确实是会找不到,但是由于视频一般都是连续的,就算物体运动的比较快,也不怎么会出现这种情况,所以这种方法还是比较work的。

另外,还有两点值得一提。
(1)首先,整个训练和推断过程是类别无关的,也就是理论上无论你框的是一个什么物体,就算是训练的时候没见过的物体,网络也是能够进行跟踪的,但可以想象,效果肯定会差一些。
(2)训练过程是离线进行的,一旦训练完成,在inference的时候,网络就是固定不动的了,也正因此,网络推断速度比较快,能够达到实时的效果。相比之下,过去的很多方法,在推断的时候,在每一帧还需要对网络进行微调,比如修改bn层等,导致推断速度很慢。
4.实验
作者在两个任务上做了实验,一个是视频目标跟踪(VOT),也就是生成跟踪物体的bbox;另一个是视频目标分割(VOS),也就是生成跟踪物体的mask。由于实验表格太多,也比较无聊,我就选了其中两个有意思或者有代表性的实验。

4.1 目标跟踪

在这里插入图片描述
这个实验比较有意思,是在VOT-2016数据集上做的,其标注是带有旋转角度的bounding box。实验是为了对比SiamFC、SiamRPN、SiamMask三个网络的表现,并且找到这三者在这个数据集上的上限。第一大栏的三行分别表示再给出ground truth的基础上,用固定比例的框、按照gt的边缘生成和坐标轴平行的框以及用gt的最小外接框这三种方式预测能够得到的最好结果。也就分别对应了SiamFC、SiamRPN以及SiamMask三种方法能够达到的上界。下面两大行就是这几个网络实验结果的对比了,SiamMask明显好于其他两者。

4.1 目标分割

在这里插入图片描述
在视频分割任务中,作者在DAVIS-2016和DAVIS-2017数据集上做了实验,这个坐标图的横坐标是fps,纵坐标是mIoU。可以看到,虽然效果不是最好,但是速度远超于其他。按照作者的话说,他们的模型可以作为视频目标分割的一个strong baseline。一方面,siamMask比几乎所有的state of the art模型都要快,而且快了很多。另一方面,siamMask在不需要做fine-tune,只需要离线学习的情况下也产生了很具有竞争力的效果。
5.总结
总结来说,siamMask在目标跟踪领域超过了state of the art,而且速度比较快。在视频目标分割领域,做到了最快,而且效果也很不错。网络还具有一些别的优势,比如不需要在线学习,而且初始化只需要一个bbox。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值