视频分割VisTR算法

CVPR 2021 | 基于Transformer的端到端视频实例分割方法 - 知乎

目录

1 引言

1.1 重新定义问题

第一个思考是:视频本身是序列级别的数据,能否直接将其建模为序列预测的任务?比如,借鉴自然语言处理(NLP)任务的思想,将视频实例分割建模为序列到序列(Seq2Seq)的任务,即给定多帧图像作为输入,直接输出多帧的分割Mask序列,这时需要一个能够同时对多帧进行建模的模型。

第二个思考是:视频的实例分割实际同时包含实例分割和目标跟踪两个任务,能否将其统一到一个框架下实现?针对这个我们的想法是:分割本身是像素特征之间相似度的学习,而跟踪本质是实例特征之间相似度的学习,因此理论上他们可以统一到同一个相似度学习的框架之下。

基于以上的思考,我们选取了一个同时能够进行序列的建模和相似度学习的模型,即自然语言处理中的Transformer[5]模型。Transformer本身可以用于Seq2Seq的任务,即给定一个序列,可以输入一个序列。并且该模型十分擅长对长序列进行建模,因此非常适合应用于视频领域对多帧序列的时序信息进行建模。其次,Transformer的核心机制,自注意力模块(Self-Attention),可以基于两两之间的相似度来进行特征的学习和更新,使得将像素特征之间相似度以及实例特征之间相似度统一在一个框架内实现成为可能。

1.2 VisTR算法流程

VisTR的整体框架如图2所示。图中最左边表示输入的多帧原始图像序列(以三帧为例),右边表示输出的实例预测序列,其中相同形状对应同一帧图像的输出,相同颜色对应同一个物体实例的输出。给定多帧图像序列,首先利用卷积神经网络(CNN)进行初始图像特征的提取,然后将多帧的特征结合作为特征序列输入Transformer进行建模,实现序列的输入和输出。

虽然在时序维度多帧的输入和输出是有序的,但是单帧输入的实例的序列在初始状态下是无序的,这样仍然无法实现实例的跟踪关联,因此我们强制使得每帧图像输出的实例的顺序是一致的(用图中同一形状的符号有着相同的颜色变化顺序表示)。针对性地,为了实现序列级别的监督,我们提出了Instance Sequence Matching的模块。同时为了实现序列级别的分割,我们提出了Instance Sequence Segmentation的模块。

2 VisTR

2.1 网络结构

增强视频序列建模能力:乱序输入视频帧,对视频帧排序?

第一帧视频作为base,依次输入后面帧与第一帧的差?(稀疏数据处理?)

VisTR的详细网络结构如图3所示,以下是对网络的各个组成部分的介绍:

  • Backbone:主要用于初始图像特征的提取。

  • Encoder:主要用于对多帧特征序列进行整体的建模和更新。

  • Decoder:主要用于解码输出预测的实例特征序列。

  • Instance Sequence Matching: 保证不同帧内部实例的顺序。将每个实例的预测序列和标注数据中每个实例的Ground Truth序列进行二分匹配,利用匈牙利匹配的方式找到每个预测最近的标注数据,作为它的Groud Truth进行监督,进行后面的Loss计算和学习。

  • Instance Sequence Segmentation:实例分割本质是像素相似度的学习,因此我们初始计算Mask的方式就是利用实例的预测和Encode之后的特征图计算Self-Attention相似度,将得到的相似度图作为这个实例对应帧的初始Attention Mask特征。为了更好的利用时序的信息,我们将属于同一个实例的多帧的Attention Mask 作为Mask序列输入3D卷积模块进行分割,直接得到最终的分割序列。这种方式通过利用多帧同一实例的特征对单帧的分割结果进行增强,可以最大化的发挥时序的优势。

2.2 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)的序列损失函数之和。

3 实验结果

为了验证方法的效果,我们在广泛使用的视频实例分割数据集YouTube-VIS上进行了实验,该数据集包含2238个训练视频,302个验证视频以及343个测试视频,以及40个物体类别。模型的评估标准包含AP和AR,以视频维度多帧Mask之间的IOU作为阈值。

3.1 时序信息的重要性

探究了时序信息的重要性。时序包含两个维度:时序的多少(帧数)以及有序和无序的对比。

表1中展示了我们利用不同帧数的Clip训练模型最终的测试效果,不难看出,随着帧数从18提升至36,模型的精度AP也在不断提升,证明多帧提供的更丰富的时序信息对模型的学习有所帮助。

可以看出,按照时间顺序训练的模型有一个点的提升,证明VisTR有学到物理时间下物体变化和规律,而按照物理时间顺序对视频建模也有助于视频的理解。

3.2 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。

3.3 其他设计

由于在特征序列化的过程中会损失原有的空间和时间信息,我们提供了原始的Positional Encoding特征以保留原有的位置信息。在表5中进行了有无该模块的对比,Positional Encoding提供的位置信息可以带来约5个点的提升。

在分割的过程中,我们通过计算实例的Prediction与Encoded之后特征的Self-Attention来获取初始的Attention Mask。在表6中,我们进行了利用CNN-Encoded的特征和利用Transformer-Encoded的特征进行分割的效果对比,利用Transformer的特征可以提升一个点。证明了Transformer进行全局特征更新的有效性。

表6中展示了在分割模块有无3D卷积的效果对比,使用3D卷积可以带来一个点的提升,证明了利用时序信息直接对多帧mask分割的有效性。

3.4 方法对比

表7是我们的方法和其他方法在YoutubeVIS数据集上的对比。我们的方法实现了单一模型的最好效果(其中MaskProp包含多个模型的组合),在57.7FPS的速度下实现了40.1的AP。其中前面的27.7指的是加上顺序的Data Loading部分的速度(这部分可以利用并行进行优化),57.7指的是纯模型Inference的速度。由于我们的方法直接对36帧图像同时进行建模,因此相对于同样模型的单帧处理,理想情况下能带来大约36倍的速度提升,更有助于视频模型的广泛应用。

3.5 总结与展望

据我们所知,这是第一个将Transformers应用于视频分割领域的方法。

相关推荐
code_pgf2 小时前
Transformer 原理讲解及可视化算子操作
人工智能·深度学习·transformer
AI2512242 小时前
免费AI视频生成工具技术解析与功能对比
人工智能·音视频
昨夜见军贴06162 小时前
IA-Lab AI 检测报告生成助手:贯通电磁兼容与充电桩检测,打造新能源汽车报告全链路合规新体系
人工智能·汽车
学习永无止境@2 小时前
Sobel边缘检测的MATLAB实现
图像处理·opencv·算法·计算机视觉·fpga开发
新缸中之脑2 小时前
PufferLib高性能强化学习库
人工智能
FS_Marking2 小时前
短距离网络10G SFP+光模块选型指南
网络·人工智能
行走的小派2 小时前
本地跑模型+原生开源鸿蒙:拆解香橙派AI手机的12TOPS端侧硬核玩法
人工智能·开源·harmonyos
2501_948114242 小时前
从 Claude Code 源码泄露看 2026 年 Agent 架构演进与工程化实践
大数据·人工智能·架构
小悟空2 小时前
[AI生成]Iceberg 更新操作技术调研报告
人工智能