【阅读笔记】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/

目录

  • 摘要
  • 1.引言
  • 2.相关工作
    • 2.1 Siamese network
    • 2.2 SiamFC(Fully-convolutional Siamese)
    • 2.2 SiamRPN
  • 3.SiamMask
    • 3.1 Mask generation
    • 3.2 Box generation
    • 3.3 训练
    • 3.4 推断
  • 4.实验
    • 4.1 目标跟踪
    • 4.1 目标分割
  • 5.总结

摘要

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

1.引言

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


如果能够在跟踪的同时做分割的话就可以做更多的应用。(比如前段时间浙江卫视和北京卫视如果有了这套软件,想让某位吴姓演员从节目中消失就简单多了)

文章提出的多任务学习方法,可同时运用于VOT(视频目标跟踪)和VOS(视频目标分割)。模型主要是在全卷积的孪生神经网络(siamese network)上进行改进的,所以下面我先简单介绍一下孪生神经网络和直接相关的两篇文章siamFC和siamFPN。

2.相关工作

2.1 Siamese network

Simese是孪生的意思。Siamese Network 是一种神经网络的框架,而不是具体的某种网络,用于评估两个输入样本的相似度。如下图所示:
【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第1张图片

这里的network_1和network_2可以是任意的一种网络,比如全连接网络、cnn或者是rnn,根据具体的任务而定。特殊的是,这两个网络是共享权重的,也就是说在代码实现的时候可以使用同一个网络。两个网络分别接收输入X1、X2,输出向量G(X1)和G(X2),然后通过某种距离度量的方式计算两个输出向量的距离,或者计算相似度。简单来说,就是将两个输入分别经过一个网络,编码成两个向量,再来计算向量的相似度,以此来判别原输入的相似性。这种方法可以用来做很多事情,比如比较两张人脸是否为同一个人的,两个签名是否为同一个人所作等。当然,siamese network不仅只适用这种二分类问题,在目标跟踪领域也被广泛的应用,本文还有siamFC和siamRPN都是基于它的。

2.2 SiamFC(Fully-convolutional Siamese)

SiamFC这篇文章算是将深度学习应用于目标跟踪的开山之作,也是第一个将siamese network用于目标跟踪的,网络的结构很简单,如下图:
【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第2张图片

这里的z是目标图像,也就是视频初始时框出来的那个目标区域,这里的x就是需要找到目标位置的图像,可以理解为视频中的每一帧图像。φ就是前面讲的siamese network,这里是卷积网络,用于提取图像特征。由于z比x的尺寸小,所以生成的特征图F1肯定也是小于x生成的特征图F2。然后将F1在F2上进行滑动,利用一种相似性度量函数将两个矩阵合并成一个得分矩阵。最后,在得分矩阵里面取最大值,也就是置信度最大的点,在图像x上所对应区域即为该帧图像的预测区域。
SiamFC的方法很简单,但其缺点也是很明显的,就是预测的区域的比例是固定的,而且位置很粗糙(如上图,1717的得分矩阵对应的只有1717个原图的位置)。因此,SiamRPN在SiamFC的基础上进行改进,解决了这个缺陷。

2.2 SiamRPN

SiamRPN也是做目标跟踪的,就是在SiamFC的基础上增加了一个bounding box的预测分支。结构如下:
【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第3张图片
和SiamFC一样,SiamRPN也是先将模板(上)和待搜索区域(下)送入孪生网络得到特征。不同的是,SiamRPN在得到两者的特征之后,并不是直接将两者融合生成得分矩阵。而是对两者(经过上图橙色的卷积,这里不是孪生的)分别生成了分类分支和回归分支的特征,然后再两两组合,经过相关性的操作(星号处)得到后面的分类响应和回归响应。

图中的k指的是anchor数量,也就是每一个位置对应的不同尺寸的anchor的数量。在预测时,在score分支中排序筛选出k个proposal,然后再通过余弦窗和尺度惩罚来对其进行排序,根据回归分支得到各个proposal的边界框,最后使用NMS(非极大值抑制)得到最终结果。

SiamRPN通过增加了回归分支,可以让网络学习物体所在的具体位置进行回归,即可得到更加精准的预测,而且尺寸也可以通过预测得到,而不像siamFC中只能是固定比例。

总的来说,将全卷积的siamese network用于目标跟踪,生成得分矩阵,即得到了siamFC;在siamFC的基础上加上box分支,用于预测box的具体位置和长宽,即得到了siamRPN。那么再接下来,作者在siamRPN的基础上增加mask分支,就得到了本文要讲的siamMask。

3.SiamMask

【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第4张图片

SiamMask同样是基于孪生网络,和SiamFC不同的是,这里的*d是depth-wise的cross correlation操作,也就是说这里是对逐通道进行相关性计算,所以得到的响应保持了通道数不变(这里是256)。文章把中间的这个响应称为RoW(response of candidate window),而后在这个RoW的基础上分出了三个分支,分别进行分割,回归和分类。

【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第5张图片
这个是作者提出的SiamMask的一个变种,也就是把box分支去掉了。因为根据预测的mask,也可以直接生成对应的bounding box,后面会讲到。

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图像是非常粗糙的,而且尺寸也小于原图。因此,后面其实还有一个上采样和调整的过程,文中说为了简洁性,没有在图中画出,而是放到了不中材料里面。如下图所示:

【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第6张图片
这个网络结构我就不细讲了,总之是一个u-shape的结构,结合了backbone的feature map,进行上采样得到了更加精细的分割结果。

3.2 Box generation

【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第7张图片
在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,λ23=1。

这里的训练样本是由很多对目标图像(小)和待搜索图像(大)。直观来说,通过训练,可以让网络学会如何提取图片的特征,并且根据目标图像特征搜索待识别的图像,找到目标的位置并精细分割。

3.4 推断

【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第8张图片
网络推断的过程大致如下:
(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 目标跟踪

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

4.1 目标分割

【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation_第10张图片
在视频分割任务中,作者在DAVIS-2016和DAVIS-2017数据集上做了实验,这个坐标图的横坐标是fps,纵坐标是mIoU。可以看到,虽然效果不是最好,但是速度远超于其他。按照作者的话说,他们的模型可以作为视频目标分割的一个strong baseline。一方面,siamMask比几乎所有的state of the art模型都要快,而且快了很多。另一方面,siamMask在不需要做fine-tune,只需要离线学习的情况下也产生了很具有竞争力的效果。

5.总结

总结来说,siamMask在目标跟踪领域超过了state of the art,而且速度比较快。在视频目标分割领域,做到了最快,而且效果也很不错。网络还具有一些别的优势,比如不需要在线学习,而且初始化只需要一个bbox。

你可能感兴趣的:(【阅读笔记】SiamMask: Fast Online Object Tracking and Segmentation)