这篇博客是五篇论文的翻译和大概理解:
Fast Online Object Tracking and Segmentation: A Unifying Approach
VITAL: VIsual Tracking via Adversarial Learning
Learning Discriminative Model Prediction for Tracking(DIMP)
SPM-Tracker: Series-Parallel Matching for Real-Time Visual Object Tracking
UpdateNet: Learning the Model Update for Siamese Trackers
论文一:Fast Online Object Tracking and Segmentation: A Unifying Approach(SiamMask)
论文阐述如何进行实时且单阶段的目标追踪和视频中的物体分割。SiamMask用一个二元分割任务增强损失函数,优化目前流行的全卷积Siamese方法的线下训练。
在视频上进行物体追踪是一个很基础的任务,它需要在不同帧之间建立物体的联系以进行物体追踪。视觉物体追踪追踪的目标是特定的单目标物体,基本工作就是:给定第一帧中某物体的位置和边框,它需要在接下来所有帧上进行位置预测和边框预测。
视觉追踪和视频物体分割的共同目标是需要预测第一帧中选定的任意物体的位置,但是视觉追踪通过边框坐标来表现目标物体;视频物体分割(VOS)中物体的呈现是由一个二元分割mask构成,也就是某个像素点是否属于目标物体。相比视觉追踪来说,视频物体分割是像素级上的预测,更加关注的是准确的物体表现,但实际上计算资源大且耗时。视觉追踪总的目的就是怎么用更好的 Bounding Box 框柱物体,以适应物体的形变等导致的跟踪不准确问题,这篇文章将视觉追踪和物体分割结合起来进行追踪,是一个多任务学习方法,只需要初始化一个物体边框,就可以进行预测,相当于一定程度上解决了目标尺度变化的问题。如下图,篮框为初始框,绿色框为SiamMask运行效果,红色为ECO算法运行结果
基于全卷积孪生网络在目标追踪上表现出的优势,文章在三个任务上优化线下训练的全卷积孪生网络,每一个任务对应不同的策略,第一个任务是以滑动窗口的方式,学习目标物体和候选区的相似度,然后输出一个 dense response map,它表明物体的位置而没有提供任何的空间范围信息。为了优化此信息,同时学习两个额外的任务:利用RPN进行的边框回归,以及二元分割。当然,为了保证追踪的实时性,二元标签只在线下训练的时候用到,用于计算分割损失,而在追踪时候没有使用。
全卷积孪生网络的典型代表是SiamFC和SiamRPN:
①对于SiamFC,将一个模板图片z和一个搜索图片x的特征进行比较输出一个dense response map,而response map 上的最大值就对应着目标物体在搜索区域x上的位置。文中将response map上的每个空间元素称作 response of a candidate window(RoW),为了让每一个RoW都能包含目标物体的丰富信息,将特征比较操作simple cross-correlation替换为depth-wise cross correlation,产生一个多通道的 response map。SiamFC 在几百万个视频画面上进行线下训练,用了 Logistic 损失 :
②对于SiamRPN,RPN操作能通过高宽比变动的边框来预测目标物体的位置。在SiamRPN中,每一个RoW都编码着一组k个 anchor box候选区以及对应的物体/背景置信度。因而,SiamRPN输出边框预测以及分类置信度。这两个输出分支通过 Smooth L1 和交叉熵损失来训练:和。
给每一帧添加二元分割mask,因为利用全卷积Siamese网络的RoW能对必要的信息进行编码,产生像素级的二元mask。可以用一个额外的分支和损失函数扩展现有的Siamese跟踪器。通过一个简单的两层神经网络和学习参数来预测w×h的二元masks(每个RoW都有一个)。用表示预测的mask,对应第n个RoW:
由公式可知:mask的预测是一个函数,此函数由用于x的图像和z中的目标物体组成,因此,给定一个图像z,网络就可对x生成一个不同的分割mask。
关于mask分支的损失函数:在训练过程中,每一个RoW都标注有一个真值二元预测标签: ,以及一个像素级的真值 mask :,其大小也是w×h。损失函数是一个覆盖所有RoWs的二元logistic回归损失:
因此,的分类层有w×h个分类器,每一个分类器表示某像素点是否属于候选框内的物体(需要注意的是:仅仅对正的RoWs进行考虑,即=1时才有损失进行叠加)
masks由一个平面的物体特征来产生,这个特征对应着一个1×1×256的RoW,此RoW由和之间进行depth-wise cross-correlation 产生。分割任务中的人工神经网络由两个1×1的卷积层组成,一个有256个通道,一个有63*63个通道。这里对于每个像素的分类都利用到了整个RoW内的信息,消除了那些与目标物体类似的对象造成的影响。同时,将低层特征和高层特征融合起来以产生更加准确的masks。这个过程为:多个上采样层和 skip connections构成的 refinement 模块实现。
两分支和三分支变体:
在追踪时,SiamMask 每一帧评估一次,不作任何改变。在两个分支的变体上,把score分支上的最高得分对应的mask输出。然后,逐个像素点对mask进行 sigmoid计算,对mask 分支的输出进行二值化,阈值设为0.5。对于two-branch变体,在第一帧后的每一帧,我们将输出mask用Min-max边框(Min-max边框是一种从二元mask上产生物体边框的方法)进行调节,然后用它来裁剪下一帧的搜索区域。然而,在three-branch变体,利用box分支上最高置信度的输出进行裁剪下一帧搜索区域是最有效的。
分割网络的具体结构为:
RoW经过反卷积并结合高级特征得到目标分割掩码,其中U的结构如下图: