《Video Instance Segmentation》论文解读

MaskTrack-RCNN《Video Instance Segmentation》论文解读

论文地址http://openaccess.thecvf.com/content_ICCV_2019/papers/Yang_Video_Instance_Segmentation_ICCV_2019_paper.pdf

代码地址:
https://github.com/ youtubevos/MaskTrackRCNN

数据集地址:
https://competitions.codalab.org/competitions/2898

相似任务区别

任务定义区别
VSS(Video Semantic Segmentation)在每一帧进行语义分割没有考虑不同帧之间目标实例的匹配
VOS (Video Object Segmentation)半监督:给定第一帧的mask,将目标从视频背景中分离出来 无监督:不需要给第一帧mask,不需要区分实例,只需要分分割出单个目标即可没有考虑实例信息
VOD (Video Object Detection)检测目标,但是不需要分割没有分割和追踪
VOT(video Object Tracking)DBT(Detection-Based Tracking):在每一帧进行目标检测,再利用目标检测的结果来进行目标跟踪 DFT(Detection-Free Tracking):在第一帧给定初始框,无需检测器进行追踪只进行检测,没有分割

要解决什么问题?

  1. 实例分割仅局限于图像领域,未扩展到视频领域。
  2. 没有合适的针对视频实例分割的数据集(无benchmark)。
  3. 相较于传统图像实例分割,视频实例分割要考虑在不同帧之间实例的追踪。

如何解决该问题?

  1. 提出了新的计算机视觉任务:视频实例分割VIS

目标是同时检测、分割和追踪视频中的实例。

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled.png

  1. 提出了大规模基准数据集YouTube-VIS,包含2883个高分辨率YouTube视频,40个种类,131k个高质量实例掩码标注。
  2. 提出了新的算法MaskTrackRCNN,在Mask R-CNN的基础上添加追踪分支。预测的实例信息被保存在外部存储器中,之后会和其它帧的实例进行匹配。

具体实现细节?

(1) 首先定义任务VIS:

  1. 给定预定义类别集合C, K是种类数量

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%201.png

  1. 给定视频序列T帧,假设该视频序列有N个属于C的目标

  2. 对于每个物体i,ci表示其类别

    MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%202.png

  3. 对于每个目标i,下式表示其在视频序列中的分割掩码,p属于[1,T],q属于[p,T],分别表示开始和结束时间

    MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%203.png

  4. 对于每一个视频序列,模型生成H个实例的预测信息,对于其中一个实例j,预测信息应包括:类别,置信度,掩码序列。(在最后生成预测结果时,p取第一帧,q取最后一一帧,如果某些帧该实例未存在,则该帧mask为NULL

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%204.png

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%205.png

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%206.png

(2) 评测标准

使用AP和AR进行评测,但IOU的计算稍有不同,因为是针对一个视频序列进行评测,因此把某个实例GT的mask序列和预测的mask序列都扩展到从视频帧开始到结束的时间段,如果某一帧不存在,就padding为0。

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%207.png

(3) YouTube-VIS

  • 每个视频长度为3-6s,速度为30fps,每1s取5帧图像,也就是每个视频大约15-30张图像。
  • 共4453个视频。
  • 总共有40个种类,131k个实例标注。
  • 在YouTube-VOS数据集的基础上采样并重新标注得到的。

(4) MaskTrack R-CNN算法

xMaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%208.png

  • 在Mask R-CNN原有的分类、回归和掩码生成分支上,增加了第四个分支,利用外部的存储空间(externel memory)来追踪不同帧之间的实例。追踪分支主要是利用物体的外观相似性(appearance similarity)来进行实例之间的匹配。同时,本文也提出了一种简单却有效的方法来结合其它线索,比如语义一致性(semantic consistency)和空间关联(spatial correlation)。
  • 推理阶段使用的在线推理的方法(只知道当前帧前面帧的信息,而不知道后面帧的信息)。

  1. 追踪分支

目的:给每个候选框分配实例标签(给实例标一个序号,以区分不同实例)。

  • 假设已经有了N个确认的实例,给新的候选框分配标签就只有两种可能

    (a) 新的候选框就是N个实例之一

    (b) 新的候选框是未曾出现的实例

  • 从而将问题转化为:多标签分类问题(N+1类,N代表已经确认的实例,1代表未曾出现的实例,用数字0表示),将标签分配给候选框的概率可以定义为下式(衡量两个实例的相似度)

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%209.png

  • 其中,fi代表新的候选框的特征,fj代表已经确认的N个候选框中第j个候选框的特征,它们都是一维向量(追踪分支用两层全连接层实现,输入是候选框的RoIAlign特征,输出是新的特征)。既然之前帧已经识别出的实例的特征已经经过计算,可以利用外部空间来存储其新特征提高效率。
  • 当一个新的候选框被分配实例标签时,我们会动态更新外部空间(如果候选框已经属于某个存在的实例,我们会将memory中的该实例的特征更新,换成最新的)。
  • 如果候选物体被分配为标签0,那么将他的特征嵌入memory中,并将所有已经识别出的实例标签增加1。loss

  • 该分支的损失使用交叉熵损失,yi是GT

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%2010.png

  • 总体网络的损失:

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%2011.png


  1. 训练过程(训练追踪分支)

随机从一个视频中选取两帧,第一帧为参考帧,第二帧为查询帧

  • reference frame 参考帧:不通过网络得到候选框,而是直接从GT的实例区域中提取特征,将他们保存到外部空间
  • query frame 查询帧:在第一阶段产生候选框,将IOU大于70%的候选框作为正样本,送入追踪分支,进行实例匹配。

  1. 结合其它线索

仅用外观特征相似度来计算实例匹配是否不太够,那么能否结合其它视觉线索,比如语义一致性、空间关联和检测置信度共同作为匹配标准?

  • 具体来说对于一个候选框i,bi、ci、si分别代表预测的bbox,class和score。bn、cn代表匹配的在外部空间中的实例的bbox和class,那么就可以定义分配分数(pi在上面有定义)

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%2012.png

  • 其中关于class的函数是一个脉冲函数,当类别相同时返回1,不同时返回0。

注意,分配分数只适用于在测试阶段,训练时仍只使用外观相似度


  1. 推理过程
  • 给出一个新的视频,外部空间设为空,已经识别出的实例个数设置为0。我们的方法会以online的方式顺序的处理每一帧。每一帧会产生很多预测的实例,这些实例先经过NMS(阈值为0.5),然后经过过滤的预测框会和之前帧产生的实例进行匹配。

注意:为了防止歧义,匹配的实例是之前所有帧产生使的实例,而不仅仅是上一帧。

  • 在预测第一帧时,其所有实例都会被送入memory中存储,对于我们的方法,一个标签可能会被分配给多个预测的实例,这个常识违背(一个视频中的每一个实例只能有一个),我们只保留得分最高的实例。
  • 当处理完所有帧,会产生一系列实例的预测,每个预测包含要给独一无二的实例标签、一个视频序列的二值分割图像和列别标签和检测置信度。我们将检测置信度取平均值作为整个视频序列中该实例的置信度,使用投票法获得该实例的类别。

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%2013.png


效果如何?

1. 数据集划分

集合数量性质
训练集2238
验证集302保证每个种类至少4个实例
测试集343保证每个种类至少4个实例

2. 参数:

  • backbone:resnet-50-fpn(在coco上预训练)
  • 跟踪分支:两个全连接层(第一层将77256的特征图→1024维向量,第二次将1024→1024)
  • epochs:12
  • lr:0.05 [8, 11](缩小10倍)
  • 超参数:a:1,b:2,y:10
  • 输入图像大小:640*360

3. 结果

在单块nvidia 1080ti上推理速度可以达到20FPS

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%2014.png

4. badcase分析:

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%2015.png

e:dear鹿在不同的姿势下其外形变换很大,算法将其视为两类不同的物体。

d:在水箱中有很多🐟移动,互相形成遮挡,算法在第二帧和第三帧将两个互相遮挡的🐟视为了同一条🐟,影响了后续的识别。

5. 消融实验:

MaskTrack-RCNN%EF%BC%9AVideo%20Instance%20Segmentation%20665c684dd5594646a53aaca569ed0d34/Untitled%2016.png

  • 对不同视觉线索对该方法的影响做了消融实验,分别有:检测置信度,bbox的iou,类别一致性

实验发现,iou和类别一致性影响最大(❓但是,明明看实验结果iou影响不大)

  • 解释:iou与空间联系有关,类别一致性提供了强有了的约束(一个视频序列中,一个实例的label应该不发生改变)。
  • 但是,过度依赖这些视觉线索会造成错误的预测,因此我们旨在测试阶段将其作为软限制,而不在训练阶段使用他们。

总结

本文的贡献点主要在于提出了新的视觉任务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值