SiamMask

原文链接: https://blog.csdn.net/weixin_43246440/article/details/99677258
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43246440/article/details/99677258

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

Abstract

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

1.Introduction

目标跟踪有很多应用,比如自动监控、车辆导航、视频标注等。以往的目标跟踪方法通常只能预测出一个跟踪物体的矩形框,也有一些做视频目标分割的方法可以对目标进行分割,但是这些方法在使用时都需要给出第一帧的分割mask。而文章提出的模型,在infernce阶段,只需要在开始时框出目标物体,就可以对目标进行自动的跟踪以及分割。效果如下图:
在这里插入图片描述
与传统的对象跟踪器一样,作者提出的跟踪器依赖于初始化的bounding box(蓝色)。与ECO (红色)等最先进的跟踪器不同,SiamMask(绿色)能够生成二进制分割掩码,可以更准确地描述目标对象。
作者结合了SiamMask网络,同时在三个任务中进行训练,每个任务对应于不同的策略,以便在新的一帧中建立目标对象与候选区域之间的对应关系。作者提出的架构,每个任务由不同的分支表示,最终的损失是三者加在一起。下面讲介绍一下关于Siamese网络一些相关的工作。

2.Related Work

2.1 Visual Object Tracking

直到最近,最主流的用于物体跟踪的方法仍然是在线训练一个分类器,基于视频第一帧的信息,然后在线更新它。这个策略通常被称作"tracking-by-detection"。在过去几年,相关滤波器(Correlation Filter)成为解决 tracking-by-detection 的一个快速而有效的策略。

最近,有人提出了一个完全不同的方法。它不在线学习一个判别分类器,而是线下训练相似度函数。全卷积Siamese方法的改进版通过region proposals, hard negative mining, ensembling, 和 memory networks,极大地提升了跟踪性能。

绝大多数的跟踪器都使用一个bounding box来初始化目标物体,然后在接下来的画面上预测位置。尽管很方便,但是一个简单的矩形框通常无法很好地表现一个物体。这促使我们提出一个能够生成二元分割mask的跟踪器,同时也只需要初始化一个物体边框。

2.2 Semi-supervised Video Object Segmentation

没有研究分割领域,跳过。

3.Methodology

为了实现在线可操作性和快速性,我们采用了完全卷积的Siamese框架。首先先介绍一下先前流行的SiamFC,SiamRPN这两个方法。

3.1 SiamFC&&SiamRPN

SiamFC这篇文章算是将深度学习应用于目标跟踪的开山之作(开篇之作应该是SINT),也是第一个将siamese network用于目标跟踪的,网络的结构很简单,如下图:
在这里插入图片描述
这里的z就是初始帧的bounding box目标图像,这里的x就是后面的每一帧图像。φ就是siamese network,用于提取图像特征。由于z比x的尺寸小,所以生成的特征图F1肯定也是小于x生成的特征图F2。然后将F1在F2上进行滑动,利用一种相似性度量函数将两个矩阵合并成一个得分矩阵。最后,在得分矩阵里面取最大值,也就是置信度最大的点,在图像x上所对应区域即为该帧图像的预测区域。
SiamFC的方法很简单,但其缺点也是很明显的,就是预测的区域的比例是固定的,而且位置很粗糙(如上图,1717的得分矩阵对应的只有1717个原图的位置)。因此,SiamRPN在SiamFC的基础上进行改进,解决了这个缺陷。

SiamRPN在SiamFC的基础上增加了一个bounding box的预测分支。结构如下:
在这里插入图片描述
和SiamFC一样,SiamRPN也是先将模板(上)和待搜索区域(下)送入孪生网络得到特征。不同的是,SiamRPN在得到两者的特征之后,并不是直接将两者融合生成得分矩阵。而是对两者(经过上图橙色的卷积,这里不是孪生的)分别生成了分类分支和回归分支的特征,然后再两两组合,经过相关性的操作(星号处)得到后面的分类响应和回归响应。

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

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

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

3.2 SiamMask

作者通过一个简单的两层神经网络 h ϕ h ϕ h ϕ hϕhϕ h_\phi 17×17×256

分支部分:
其中两个变种头部网络的mask分支结构都一样,至于为什么是63x63,作者提到:
设置成63x63x1主要是为了节约计算资源。预测127*127需要1w多的channel。太大了。上采样到127是为了和exemplar一样

其他分支卷积核的设置为了改变通道数,具体作用可参考siamFC,siamRPN。两个变种的卷积具体结构如下:
两分支:
在这里插入图片描述
三分支:
在这里插入图片描述
作者提到,直接这样预测mask的方式得到的精度并不太高,所以提出了如下图所示的Refine模块U来提升分割的精度:在原始的响应图上对每个RoW不采用升维到63x63的方式,而是直接对RoW进行deconv上采样得到mask。
在这里插入图片描述Refine Module借鉴了SharpMask的思路:
在这里插入图片描述

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
                </div>
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43246440/article/details/99677258

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

Abstract

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

1.Introduction

目标跟踪有很多应用,比如自动监控、车辆导航、视频标注等。以往的目标跟踪方法通常只能预测出一个跟踪物体的矩形框,也有一些做视频目标分割的方法可以对目标进行分割,但是这些方法在使用时都需要给出第一帧的分割mask。而文章提出的模型,在infernce阶段,只需要在开始时框出目标物体,就可以对目标进行自动的跟踪以及分割。效果如下图:
在这里插入图片描述
与传统的对象跟踪器一样,作者提出的跟踪器依赖于初始化的bounding box(蓝色)。与ECO (红色)等最先进的跟踪器不同,SiamMask(绿色)能够生成二进制分割掩码,可以更准确地描述目标对象。
作者结合了SiamMask网络,同时在三个任务中进行训练,每个任务对应于不同的策略,以便在新的一帧中建立目标对象与候选区域之间的对应关系。作者提出的架构,每个任务由不同的分支表示,最终的损失是三者加在一起。下面讲介绍一下关于Siamese网络一些相关的工作。

2.Related Work

2.1 Visual Object Tracking

直到最近,最主流的用于物体跟踪的方法仍然是在线训练一个分类器,基于视频第一帧的信息,然后在线更新它。这个策略通常被称作"tracking-by-detection"。在过去几年,相关滤波器(Correlation Filter)成为解决 tracking-by-detection 的一个快速而有效的策略。

最近,有人提出了一个完全不同的方法。它不在线学习一个判别分类器,而是线下训练相似度函数。全卷积Siamese方法的改进版通过region proposals, hard negative mining, ensembling, 和 memory networks,极大地提升了跟踪性能。

绝大多数的跟踪器都使用一个bounding box来初始化目标物体,然后在接下来的画面上预测位置。尽管很方便,但是一个简单的矩形框通常无法很好地表现一个物体。这促使我们提出一个能够生成二元分割mask的跟踪器,同时也只需要初始化一个物体边框。

2.2 Semi-supervised Video Object Segmentation

没有研究分割领域,跳过。

3.Methodology

为了实现在线可操作性和快速性,我们采用了完全卷积的Siamese框架。首先先介绍一下先前流行的SiamFC,SiamRPN这两个方法。

3.1 SiamFC&&SiamRPN

SiamFC这篇文章算是将深度学习应用于目标跟踪的开山之作(开篇之作应该是SINT),也是第一个将siamese network用于目标跟踪的,网络的结构很简单,如下图:
在这里插入图片描述
这里的z就是初始帧的bounding box目标图像,这里的x就是后面的每一帧图像。φ就是siamese network,用于提取图像特征。由于z比x的尺寸小,所以生成的特征图F1肯定也是小于x生成的特征图F2。然后将F1在F2上进行滑动,利用一种相似性度量函数将两个矩阵合并成一个得分矩阵。最后,在得分矩阵里面取最大值,也就是置信度最大的点,在图像x上所对应区域即为该帧图像的预测区域。
SiamFC的方法很简单,但其缺点也是很明显的,就是预测的区域的比例是固定的,而且位置很粗糙(如上图,1717的得分矩阵对应的只有1717个原图的位置)。因此,SiamRPN在SiamFC的基础上进行改进,解决了这个缺陷。

SiamRPN在SiamFC的基础上增加了一个bounding box的预测分支。结构如下:
在这里插入图片描述
和SiamFC一样,SiamRPN也是先将模板(上)和待搜索区域(下)送入孪生网络得到特征。不同的是,SiamRPN在得到两者的特征之后,并不是直接将两者融合生成得分矩阵。而是对两者(经过上图橙色的卷积,这里不是孪生的)分别生成了分类分支和回归分支的特征,然后再两两组合,经过相关性的操作(星号处)得到后面的分类响应和回归响应。

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

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

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

3.2 SiamMask

作者通过一个简单的两层神经网络 h ϕ h ϕ h ϕ hϕhϕ h_\phi 17×17×256

分支部分:
其中两个变种头部网络的mask分支结构都一样,至于为什么是63x63,作者提到:
设置成63x63x1主要是为了节约计算资源。预测127*127需要1w多的channel。太大了。上采样到127是为了和exemplar一样

其他分支卷积核的设置为了改变通道数,具体作用可参考siamFC,siamRPN。两个变种的卷积具体结构如下:
两分支:
在这里插入图片描述
三分支:
在这里插入图片描述
作者提到,直接这样预测mask的方式得到的精度并不太高,所以提出了如下图所示的Refine模块U来提升分割的精度:在原始的响应图上对每个RoW不采用升维到63x63的方式,而是直接对RoW进行deconv上采样得到mask。
在这里插入图片描述Refine Module借鉴了SharpMask的思路:
在这里插入图片描述

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
                </div>

猜你喜欢

转载自blog.csdn.net/weixin_43489950/article/details/100061385