实例宰割是计算机视觉中的根底问题之一。尽管动态图像中的实例宰割曾经有很多的钻研,对视频的实例宰割(Video Instance Segmentation,简称VIS)的钻研却绝对较少。而真实世界中的摄像头所接管的,无论主动驾驶背景下车辆实时感知的四周场景,还是网络媒体中的长短视频,大多数为视频流的信息而非纯图像信息。因此钻研对视频建模的模型有着非常重要的意义,本文系美团无人配送团队在CVPR 2021发表的一篇论文解读。
前言
实例宰割是计算机视觉中的根底问题之一。目前,动态图像中的实例宰割业界曾经进行了很多的钻研,然而对视频的实例宰割(Video Instance Segmentation,简称VIS)的钻研却绝对较少。而真实世界中的摄像头所接管的,无论是主动驾驶背景下车辆实时感知的四周场景,还是网络媒体中的长短视频,大多数都是视频流信息而非纯图像信息。因此钻研对视频建模的模型有着非常重要的意义,本文系美团无人配送团队在CVPR2021发表的一篇Oral论文: 《End-to-End Video Instance Segmentation with Transformers》的解读。本届CVPR大会共收到7015篇无效投稿,最终共1663篇论文被接管,论文录用率为23.7%,Oral的录用率仅为4%。
背景
图像的实例宰割指的是对动态图像中感兴趣的物体进行检测和宰割的工作。视频是蕴含多帧图像的信息载体,绝对于动态图像来说,视频的信息更为丰盛,因此建模也更为简单。不同于动态图像仅含有空间的信息,视频同时含有工夫维度的信息,因此更靠近对真实世界的刻画。其中,视频的实例宰割指的是对视频中感兴趣的物体进行检测、宰割和跟踪的工作。如图1所示,第一行为给定视频的多帧图像序列,第二行为视频实例宰割的后果,其中雷同色彩对应同一个实例。视频实例宰割不光要对单帧图像中的物体进行检测和宰割,而且要在多帧的维度下找到每个物体的对应关系,即对其进行关联和跟踪。
相干工作
现有的视频实例宰割算法通常为蕴含多模块、多阶段的简单流程。最早的Mask Track R-CNN[1]算法同时蕴含实例宰割和跟踪两个模块,通过在图像实例宰割算法Mask R-CNN[2]的网络之上减少一个跟踪的分支实现,该分支次要用于实例特色的提取。在预测阶段,该办法利用内部Memory模块进行多帧实例特色的存储,并将该特色作为实例关联的一个因素进行跟踪。该办法的实质依然是单帧的宰割加传统办法进行跟踪关联。Maskprop[3]在Mask Track R-CNN的根底上减少了Mask Propagation的模块以晋升宰割Mask生成和关联的品质,该模块能够实现以后帧提取的mask到四周帧的流传,但因为帧的流传依赖于事后计算的单帧的宰割Mask,因而要失去最终的宰割Mask须要多步的Refinement。该办法的实质依然是单帧的提取加帧间的流传,且因为其依赖多个模型的组合,办法较为简单,速度也更慢。
Stem-seg[4]将视频实例宰割划分为实例的辨别和类别的预测两个模块。为了实现实例的辨别,模型将视频的多帧Clip构建为3D Volume,通过对像素点的Embedding特色进行聚类实现不同物体的宰割。因为上述聚类过程不蕴含实例类别的预测,因而须要额定的语义宰割模块提供像素的类别信息。依据以上形容,现有的算法大多因循单帧图像实例宰割的思维,将视频实例宰割工作划分为单帧的提取和多帧的关联多个模块,针对单个工作进行监督和学习,处理速度较慢且不利于施展视频时序连续性的劣势。本文旨在提出一个端到端的模型,将实例的检测、宰割和跟踪对立到一个框架下实现,有助于更好地开掘视频整体的空间和时序信息,且可能以较快的速度解决视频实例宰割的问题。
VisTR算法介绍
从新定义问题
首先,咱们对视频实例宰割这一工作进行了从新的思考。相较于单帧图像,视频含有对于每个实例更为齐备和丰盛的信息,比方不同实例的轨迹和静止模态,这些信息可能帮忙克服单帧实例宰割工作中一些比拟艰难的问题,比方外观类似、物体邻近或者存在遮挡的情景等。另一方面,多帧所提供的对于单个实例更好的特色示意也有助于模型对物体进行更好的跟踪。因而,咱们的办法旨在实现一个端到端对视频实例指标进行建模的框架。为了实现这一指标,咱们第一个思考是:视频自身是序列级别的数据,是否间接将其建模为序列预测的工作?比方,借鉴自然语言解决(NLP)工作的思维,将视频实例宰割建模为序列到序列(Seq2Seq)的工作,即给定多帧图像作为输出,间接输入多帧的宰割Mask序列,这时须要一个可能同时对多帧进行建模的模型。
第二个思考是:视频的实例宰割理论同时蕴含实例宰割和指标跟踪两个工作,是否将其对立到一个框架下实现?针对这个咱们的想法是:宰割自身是像素特色之间类似度的学习,而跟踪实质是实例特色之间类似度的学习,因而实践上他们能够对立到同一个类似度学习的框架之下。
基于以上的思考,咱们选取了一个同时可能进行序列的建模和类似度学习的模型,即自然语言解决中的Transformer[5]模型。Transformer自身能够用于Seq2Seq的工作,即给定一个序列,能够输出一个序列。并且该模型非常善于对长序列进行建模,因而非常适合利用于视频畛域对多帧序列的时序信息进行建模。其次,Transformer的外围机制,自注意力模块(Self-Attention),能够基于两两之间的类似度来进行特色的学习和更新,使得将像素特色之间类似度以及实例特色之间类似度对立在一个框架内实现成为可能。以上的个性使得Transformer成为VIS工作的失当抉择。除此之外,Transformer曾经有被利用于计算机视觉中进行指标检测的实际DETR[6]。因而咱们基于transformer设计了视频实例宰割(VIS)的模型VisTR。
VisTR算法流程
遵循上述思维,VisTR的整体框架如图2所示。图中最右边示意输出的多帧原始图像序列(以三帧为例),左边示意输入的实例预测序列,其中雷同形态对应同一帧图像的输入,雷同色彩对应同一个物体实例的输入。给定多帧图像序列,首先利用卷积神经网络(CNN)进行初始图像特色的提取,而后将多帧的特色联合作为特色序列输出Transformer进行建模,实现序列的输出和输入。
不难看出,首先,VisTR是一个端到端的模型,即同时对多帧数据进行建模。建模的形式即:将其变为一个Seq2Seq的工作,输出多帧图像序列,模型能够间接输入预测的实例序列。尽管在时序维度多帧的输出和输入是有序的,然而单帧输出的实例的序列在初始状态下是无序的,这样依然无奈实现实例的跟踪关联,因而咱们强制使得每帧图像输入的实例的程序是统一的(用图中同一形态的符号有着雷同的色彩变动程序示意),这样只有找到对应地位的输入,便可自然而然实现同一实例的关联,无需任何后处理操作。为了实现此指标,须要对属于同一个实例地位处的特色进行序列维度的建模。针对性地,为了实现序列级别的监督,咱们提出了Instance Sequence Matching的模块。同时为了实现序列级别的宰割,咱们提出了Instance Sequence Segmentation的模块。端到端的建模将视频的空间和工夫特色当做一个整体,能够从全局的角度学习整个视频的信息,同时Transformer所建模的密集特色序列又可能较好的保留细节的信息。
VisTR网络结构
VisTR的具体网络结构如图3所示,以下是对网络的各个组成部分的介绍:
- Backbone:次要用于初始图像特色的提取。针对序列的每一帧输出图像,首先利用CNN的Backbone进行初始图像特色的提取,提取的多帧图像特色沿时序和空间维度序列化为多帧特色序列。因为序列化的过程损失了像素原始的空间和时序信息,而检测和宰割的工作对于地位信息非常敏感,因而咱们将其原始的空间和程度地位进行编码,作为Positional Encoding叠加到提取的序列特色上,以放弃原有的地位信息。Positional Encoding的形式遵循Image Transformer[7]的形式,只是将二维的原始地位信息变为了三维的地位信息,这部分在论文中有具体的阐明。
- Encoder:次要用于对多帧特色序列进行整体的建模和更新。输出后面的多帧特色序列,Transformer的Encoder模块利用Self-Attention模块,通过点和点之间类似度的学习,进行序列中所有特色的交融和更新。该模块通过对时序和空间特色的整体建模,可能对属于同一个实例的特色进行更好的学习和加强。
- Decoder:次要用于解码输入预测的实例特色序列。因为Encoder输出Decoder的是密集的像素特色序列,为了解码出稠密的实例特色,咱们参考DETR的形式,引入Instance Query进行代表性的实例特色的解码。Instance Query是网络本身学习的Embedding参数,用于和密集的输出特色序列进行Attention运算选取可能代表每个实例的特色。以解决3帧图像,每帧图像预测4个物体为例,模型一共须要12个Instance Query,用于解码12个实例预测。和后面的示意统一,用同样的形态示意对应同一帧图像的预测,同样的色彩示意同一个物体实例在不同帧的预测。通过这种形式,咱们能够结构出每个实例的预测序列,对应为图3中的Instance 1...Instance 4,后续过程中模型都将单个物体实例的序列看作整体进行解决。
- Instance Sequence Matching:次要用于对输出的预测后果进行序列级别的匹配和监督。后面曾经介绍了从序列的图像输出到序列的实例预测的过程。然而预测序列的程序其实是基于一个假如的,即在帧的维度放弃帧的输出程序,而在每帧的预测中,不同实例的输入程序保持一致。帧的程序比拟容易放弃,只有管制输出和输入的程序统一即可,然而不同帧外部实例的程序其实是没有保障的,因而咱们须要设计专门的监督模块来维持这个程序。在通用指标检测之中,在每个地位点会有它对应的Anchor,因而对应每个地位点的Ground Truth监督是调配好的,而在咱们的模型中,实际上是没有Anchor和地位的显式信息,因而对于每个输出点咱们没有现成的属于哪个实例的监督信息。为了找到这个监督,并且间接在序列维度进行监督,咱们提出了Instance Sequence Matching的模块,这个模块将每个实例的预测序列和标注数据中每个实例的Ground Truth序列进行二分匹配,利用匈牙利匹配的形式找到每个预测最近的标注数据,作为它的Groud Truth进行监督,进行前面的Loss计算和学习。
- Instance Sequence Segmentation:次要用于获取最终的宰割后果序列。后面曾经介绍了Seq2Seq的序列预测过程,咱们的模型曾经可能实现序列的预测和跟踪关联。然而到目前为止,咱们为每个实例找到的只是一个代表性的特征向量,而最终要解决的是宰割的工作,如何将这个特征向量变为最终的Mask序列,就是Instance Sequence Segmentation模块要解决的问题。后面曾经提到,实例宰割实质是像素类似度的学习,因而咱们初始计算Mask的形式就是利用实例的预测和Encode之后的特色图计算Self-Attention类似度,将失去的类似度图作为这个实例对应帧的初始Attention Mask特色。为了更好的利用时序的信息,咱们将属于同一个实例的多帧的Attention Mask 作为Mask序列输出3D卷积模块进行宰割,间接失去最终的宰割序列。这种形式通过利用多帧同一实例的特色对单帧的宰割后果进行加强,能够最大化的施展时序的劣势。
VisTR损失函数
依据后面的形容,网络学习中须要计算损失的次要有两个中央,一个是Instance Sequence Matching阶段的匹配过程,一个是找到监督之后最终整个网络的损失函数计算过程。
Instance Sequence Matching过程的计算公式如式1所示:因为Matching阶段只是用于寻找监督,而计算Mask之间的间隔运算比拟密集,因而在此阶段咱们只思考Box和预测的类别c两个因素。第一行中的yi示意对应第i个实例的Ground Truth序列,其中c示意类别,b示意Boundingbox,T示意帧数,即T帧该实例对应的类别和Bounding Box序列。第二行和第三行别离示意预测序列的后果,其中p示意在ci这个类别的预测的概率,b示意预测的Bounding Box。序列之间间隔的运算是通过两个序列对应地位的值两两之间计算损失函数失去的,图中用Lmatch示意,对于每个预测的序列,找到Lmatch最低那个Ground Truth序列作为它的监督。依据对应的监督信息,就能够计算整个网络的损失函数。
因为咱们的办法是将分类、检测、宰割和跟踪做到一个端到端网络里,因而最终的损失函数也同时蕴含类别、Bounding Box和Mask三个方面,跟踪通过间接对序列算损失函数体现。公式2示意宰割的损失函数,失去了对应的监督后果之后,咱们计算对应序列之间的Dice Loss和Focal Loss作为Mask的损失函数。
最终的损失函数如公式3所示,为同时蕴含分类(类别概率)、检测(Bounding Box)以及宰割(Mask)的序列损失函数之和。
试验后果
为了验证办法的成果,咱们在宽泛应用的视频实例宰割数据集YouTube-VIS上进行了试验,该数据集蕴含2238个训练视频,302个验证视频以及343个测试视频,以及40个物体类别。模型的评估规范蕴含AP和AR,以视频维度多帧Mask之间的IOU作为阈值。
时序信息的重要性
绝对于现有的办法,VisTR的最大区别是间接对视频进行建模,而视频和图像的次要区别在于视频蕴含着丰盛的时序信息,如果无效的开掘和学习时序信息是视频了解的要害,因而咱们首先探索了时序信息的重要性。时序蕴含两个维度:时序的多少(帧数)以及有序和无序的比照。
表1中展现了咱们利用不同帧数的Clip训练模型最终的测试成果,不难看出,随着帧数从18晋升至36,模型的精度AP也在一直晋升,证实多帧提供的更丰盛的时序信息对模型的学习有所帮忙。
表2中展现了利用打乱物理时序的Clip以及依照物理时序的Clip进行模型训练的成果比照,能够看出,依照工夫程序训练的模型有一个点的晋升,证实VisTR有学到物理工夫下物体变动和法则,而依照物理工夫程序对视频建模也有助于视频的了解。
Query探索
第二个试验是对于Query的探索。因为咱们的模型间接建模的36帧图像,对每帧图像预测10个物体,因而须要360个Query,对应表3最初一行的后果(Prediction Level)。咱们想探索属于同一帧或者同一个实例的Query之间是否存在肯定的关联,即是否能够共享。针对这个指标,咱们别离设计了Frame Level的试验:即一帧只应用一个Query的特色进行预测,以及Instance level的试验:一个实例只应用一个Query的特色进行预测。
能够看到,Instance Level的后果只比Prediction Level的后果少一个点,而Frame Level的后果要低20个点,证实不同帧属于同一个Instance的Query能够共享,而同一帧不同Instance的Query信息不可共享。Prediction Level的Query是和输出的图像帧数成正比的,而Instance Level的Query能够实现不依赖输出帧数的模型。只限度模型要预测的Instance个数,不限度输出帧数,这也是将来能够持续钻研的方向。除此之外,咱们还设计了Video Level的试验,即整个视频只用一个Query的Embedding特色进行预测,这个模型能够实现8.4的AP。
其余设计
以下是试验过程中咱们发现无效的其余设计。
因为在特色序列化的过程中会损失原有的空间和工夫信息,咱们提供了原始的Positional Encoding特色以保留原有的地位信息。在表5中进行了有无该模块的比照,Positional Encoding提供的地位信息能够带来约5个点的晋升。
在宰割的过程中,咱们通过计算实例的Prediction与Encoded之后特色的Self-Attention来获取初始的Attention Mask。在表6中,咱们进行了利用CNN-Encoded的特色和利用Transformer-Encoded的特色进行宰割的成果比照,利用Transformer的特色能够晋升一个点。证实了Transformer进行全局特色更新的有效性。
表6中展现了在宰割模块有无3D卷积的成果比照,应用3D卷积能够带来一个点的晋升,证实了利用时序信息间接对多帧mask宰割的有效性。
可视化后果
VisTR在YouTube-VIS的可视化成果如图4所示,其中每行示意同一个视频的序列,雷同色彩对应同一个实例的宰割后果。能够看出无论是在 (a).实例存在遮挡(b).实例地位存在绝对变动 (c).同类紧邻易混同的实例 以及 (d).实例处于不同姿势情景下,模型都可能实现较好的宰割个跟踪,证实在有挑战性的状况下,VisTR仍具备很好的成果。
办法比照
表7是咱们的办法和其余办法在YoutubeVIS数据集上的比照。咱们的办法实现了繁多模型的最好成果(其中MaskProp蕴含多个模型的组合),在57.7FPS的速度下实现了40.1的AP。其中后面的27.7指的是加上程序的Data Loading局部的速度(这部分能够利用并行进行优化),57.7指的是纯模型Inference的速度。因为咱们的办法间接对36帧图像同时进行建模,因而绝对于同样模型的单帧解决,现实状况下能带来大概36倍的速度晋升,更有助于视频模型的广泛应用。
总结与瞻望
视频实例宰割指的是同时对视频中感兴趣的物体进行分类,宰割和跟踪的工作。现有的办法通常设计简单的流程来解决此问题。本文提出了一种基于Transformer的视频实例宰割新框架VisTR,该框架将视频实例宰割工作视为间接端到端的并行序列解码和预测的问题。给定一个含有多帧图像的视频作为输出,VisTR间接按程序输入视频中每个实例的掩码序列。该办法的外围是一种新的实例序列匹配和宰割的策略,可能在整个序列级别上对实例进行监督和宰割。 VisTR将实例宰割和跟踪对立到了类似度学习的框架下,从而大大简化了流程。在没有任何trick的状况下,VisTR在所有应用繁多模型的办法中取得了最佳成果,并且在YouTube-VIS数据集上实现了最快的速度。
据咱们所知,这是第一个将Transformers利用于视频宰割畛域的办法。心愿咱们的办法可能启发更多视频实例宰割的钻研,同时也心愿此框架将来可能利用于更多视频了解的工作。对于论文的更多细节,请参考原文:《End-to-End Video Instance Segmentation with Transformers》,同时代码也曾经在GitHub上开源:https://github.com/Epiphqny/VisTR,欢送大家来理解或应用。
作者
- 美团无人车配送核心: 钰晴、昭良、保山、申浩等。
- 阿德莱德大学:王鑫龙、沈春华。
参考文献
- Video Instance Segmentation, https://arxiv.org/abs/1905.04...
- Mask R-CNN, https://arxiv.org/abs/1703.06...
- Classifying, Segmenting, and Tracking Object Instances in Video with Mask Propagation, https://arxiv.org/abs/1912.04...
- STEm-Seg: Spatio-temporal Embeddings for Instance Segmentation in Videos, https://arxiv.org/abs/2003.08...
- Attention Is All You Need, https://arxiv.org/abs/1706.03...
- End-to-End Object Detection with Transformers, https://arxiv.org/abs/2005.12...
- Image Transformer, https://arxiv.org/abs/1802.05...
招聘信息
美团无人车配送核心大量岗位继续招聘中,诚招算法/零碎/硬件开发工程师及专家。欢送感兴趣的同学发送简历至:ai.hr@meituan.com(邮件题目注明:美团无人车团队)。
浏览美团技术团队更多技术文章合集
前端 | 算法 | 后端 | 数据 | 平安 | 运维 | iOS | Android | 测试
| 在公众号菜单栏对话框回复【2020年货】、【2019年货】、【2018年货】、【2017年货】等关键词,可查看美团技术团队历年技术文章合集。
| 本文系美团技术团队出品,著作权归属美团。欢送出于分享和交换等非商业目标转载或应用本文内容,敬请注明“内容转载自美团技术团队”。本文未经许可,不得进行商业性转载或者应用。任何商用行为,请发送邮件至tech@meituan.com申请受权。