记录分割:分割精度和实时性取得平衡的FEELVOS和SiamMask。

       这种视频里目标的像素级标注,很有用,比如给视频叠加特效可以不覆盖目标人物,或者视频编辑中扣掉特定目标。比如让某能让人谈坐牢恋爱的某吴姓大叔从节目中消失就轻松多了。心疼扣了三天三夜的工作人员。

Fast Online Object Tracking and Segmentation: A Unifying Approach

【论文地址。】   【Github项目地址。】

  以往大多数目标跟踪得到的结果是目标的包围框,而作者希望将跟踪与分割结合起来,算法“实时“给出目标的像素级标注。Siammask在视频跟踪领域(VOT),VOT2016和VOT2018数据集上的性能,我们的方法已经到达到SOTA的结果,同时保持了56fps的超实时的性能表现。Siammask在视频目标分割领域(VOS), DAVIS2017和Youtube-VOS数据集精度表现尚可,但是实时性提高1-2个数量级,56fps的处理速度可以满足移动终端的需求。

两个分支共享同一个backbone,分别得到15*15*256和31*31*256的特征图,再经过 (depth-wise卷积)得到17*17*256特征图。Mask分支是在Siamese Net新增,使用的表述方法是利用一个vector来编码一个RoW(response of a candidate window,候选窗口响应)的mask。这使得每个prediction位置具有非常高的输出维度(63*63),论文通过depthwise的卷积后级联1x1卷积来升维来实现高效运行

算法流程。左侧上面图像为框出来的目标图像,左侧下面图像为要搜索目标位置的视频中的一帧,经过卷积网络,生成Row(response of a candidate window,候选窗口响应),网络后面有三个head,除了在SiamFC法中已经存在的预测box(目标位置)的head和预测响应score(目标出现概率)的head,作者增加了预测目标mask(目标二值掩码)的head

 

记录分割:分割精度和实时性取得平衡的FEELVOS和SiamMask。_第1张图片

 另外也可以直接去掉预测box的head,提高计算速度,包围框也可以通过mask计算得到。网络结构如上图右侧b。

记录分割:分割精度和实时性取得平衡的FEELVOS和SiamMask。_第2张图片

图 14所示的mask预测类似于encode-decode模型,在卷积过程不断损失特征,预测的Mask分支的精度并不太高。论文提出利用SharpMask语义分割模型,Refine Module用来提升分割的精度。这一部分借鉴了 SharpMask 的思路。deepmask 和 sharpmask 是 facebook 在 2015-2016 年提出的物体分割 proposal 框架。我进行了一个重现 foolwood/deepmask-pytorch

记录分割:分割精度和实时性取得平衡的FEELVOS和SiamMask。_第3张图片

1、Siammask的多任务学习方法,同时在VOT和VOS取得精度和实时性的trade off,学术界的研究比较容易落地工业级。

2、Siammask的mask预测分支采用SharpMask语义分割模型,精度带提高,替代这部分的模型可以进一步提高mask预测精度。

3、目前tracking没有专门处理消失问题(object traker如果从当前画面离开或完全遮挡),特别的,siammask挺容易受到具有语义的distractor影响。当遮挡时,它预测的mask是两个物体的mask。VOS领域处理遮挡和消失也比较困难。

应用领域:

自动驾驶场景中的视频跟踪分割简单应用:带字幕表情包生成Adobe MAX 2018 FastMask 项目,b 站的智能防挡弹幕。

CVPR2019 跟踪领域发展

从今年接收的文章已经可以明显看出来,跟踪领域已经基本完成换代更新。接收的文章中 Siamese 网络的改进工作已经占据了主导的地位。

SiamRPN++,CIR两篇都是围绕如何使用深度网络主干这个问题,两篇文章都中了 oral。这个问题一直困扰着整个跟踪圈子,在此之前的所有工作都采用的是 alexnet 为主的网络架构。不能使用现代网络架构一直困扰着整个跟踪领域的发展。SiamRPN++ 通过数据增强的方法解决训练的空间位置偏见。CIR 通过 crop 操作从网络架构上减弱网络 padding 带来的学习偏见,通过大量的实验分析了感受野等因素对学习的影响。总的来说,当网络问题被解决了之后直接导致了现在在几乎所有的数据集上,SiamRPN++ 已经超过了相关滤波的方法。

在 SiamRPN++ 的基础上,网络主干问题已经被解决,我们可以做更多方向的探索。我们可以非常简单的让输出做更复杂的预测,这就催生了 SiamMask这篇文章。

SPM和 C-RPN 两篇都算是多阶段的 SiamRPN 扩展。SPM 就是典型的 faster-RCNN 的思路做跟踪,只是最后的 score fusion 的方式可以再优雅一些。C-RPN 当然就是 Cascade R-CNN: Delving into High Quality Object Detection 在跟踪领域的翻版。两者的思路都很直接,通过第二 / N 阶段来学习更精细的判别。

Martin Danelljan 大神的 ATOM: Accurate Tracking by Overlap Maximization 这篇肯定也是重量级的文章。Martin 大神并没有 fellow SiamRPN 的架构,转而使用粒子滤波采样搭配 IoU 预测,多次迭代得到目标结果。在多个库上取得了非常惊人的结果。这项工作我觉得最突破的点是网络学习的问题实际上更 hard,更符合跟踪的需求。

思考:

  • SharpMask 的思路。
  • 论文通过depthwise的卷积后级联1x1卷积来升维来实现高效运行
  • Siammask的mask预测分支采用SharpMask语义分割模型,精度带提高,替代这部分的模型可以进一步提高mask预测精度。
  • 关于 Siamese Tracking 的未来研究方向(转载自知乎,原标题《[CVPR2019] 我对 Siamese 网络的一点思考(SiamMask)》,作者Qiang Wang)

    当你阅读了一定的文章以及有现成的代码之后,下面当然是如何着手改进。我自己总结了一些小的可以改进的方向,仅供参考。

    1)高效的在线学习算法:进展到目前为止,我的所有实验研究表明。Siamese 网络无法真正意义上抑制背景中的困难样本。离线的学习从本质上无法区分两个长相相似的人或者车。而 CF 相关算法可以通过分析整个环境的上下文关系来进行调整。如果对于提升整个算法的上界(偏学术)的角度考虑,在线学习有必要。如果正常的工程使用,我认为目前的算法只要在相应的场景中进行训练就足够了。

    2)精确输出表达:今年我们的工作提出额外的 mask 输出。可直接扩展的思路为关键点输出(CornerNet / PoseTrack),极点预测(ExtremeNet),甚至 6D pose 跟踪。本质上是通过网络可以预测任何与目标相关的输出。大家可以任意的发散思维。

    3)定制网络架构:其中包含两个子方向,一个是追求精度的去探索究竟什么样的网络架构会有利于当前的跟踪框架的学习。另一个有价值的子方向是如何构建超快速的小网络用于实际工程。工程项目中有时并没有 GPU 的资源供使用,如何提供 “廉价” 的高质量跟踪算法也具有很强的实际意义。当对网络进行裁剪之后,很容易达到 500FPS 的高性能算法来对传统的 KCF 进行真正的替换。

    4)离线训练学习优化:目前的跟踪算法在相似性学习方向还是过于简单,如果去设计更为有效的度量学习方案,应该会有一定的提升。同时我们也并没有很好的掌握网络的训练。当前的训练策略是将网络主干的参数进行固定,先训练 head。然后逐步放开。实际上我们发现,当直接将所有层全部放开一起训练的时候,网络的泛化性能会显著下降。另一个方面,train from scratch 的概念已经在检测领域非常普遍了。跟踪的网络目前我们的经验在跟踪方面并不 work。

    5)更细粒度预测:这一条实际上是上一条的续集,就是专注于 score 分支的预测。现在大家的做法是 > 0.6 IoU 的都当做前景(正样本),但实际上正样本之间还是有较大的差异的。跟踪本质上也是不断预测一个非常细小物体帧间运动的过程,如果一个网络不能很好的分辨细小的差异,他可能并不是一个最优的设计选择。这也是 ATOM 的 IoUNet 主攻的方向。

    6)泛化性能提升:非常推荐自动化所黄凯奇老师组的 GOT-10k 数据集,数据组织的非常棒。黄老师组在 one-shot learning 领域有着深厚的积淀,(One/zero-shot learning都是用来进行学习分类的算法。

    Zero-shot Learing 就是训练样本里没有这个类别的样本,但是如果我们可以学到一个牛逼的映射,这个映射好到我们即使在训练的时候没看到这个类,但是我们在遇到的时候依然能通过这个映射得到这个新类的特征。

    One-shot Learing 就是类别下训练样本只有一个或者很少,我们依然可以进行分类。比如我们可以在一个更大的数据集上或者利用knowledge graph、domain-knowledge 等方法,学到一个一般化的映射,也就是学习一个映射,然后再到小数据集上进行更新升级映射。

    关键就在于如何学到一个好的映射,能应用到没有看到的问题上。)所以站在这个领域的角度,他们提出了严格分离训练集和测试集的物体类别来验证泛化性能。所以原则上所有 one-shot learning 方向的一些嵌入学习方法都可以移过来用。同时,我觉得 Mask-X-RCNN,segment everything 这个思路可以借鉴。本质上我也不得不承认,基于深度学习的跟踪算法存在泛化性能问题。我们有理由怀疑跟踪是否会在未知的类别上有较好的泛化性能,实际上肯定是会下降。

    7)long-term 跟踪框架:截止到目前为止,虽然 VOT 组委会以及牛津这边的 OxUVA 都有专门的 long-term 的数据集,但 long-term 算法并没有一个较好的统一框架出来。关于这方面的研究似乎有点停滞,今年大连理工的文章非常可惜,我觉得质量非常不错。

你可能感兴趣的:(论文学习)