【论文笔记】视频实例分割 CVPR2021 Oral——VisTR:End-to-End Video Instance Segmentation with Transformers

视频实例分割video instance segmentation,在vos的基础上,对每个实例打标签。

实例分割是目标检测+语义分割,在图像中将目标检测出来,然后对目标的每个像素分配类别标签,能够对前景语义类别相同的不同实例进行区分

数据集:Youtube-VIS

前身: Video instance segmentation

image-20220514164204594

VisTR:End-to-End Video Instance Segmentation with Transformers

解决的问题

VIS不光要对单帧图像中的物体进行检测和分割,还要在多帧下找到每个物体的对应关系,即对其进行关联和跟踪。

  • 视频本身是序列级的数据,将其建模为序列预测的任务,给定多帧的输入,输出多帧的分割掩码序列,需要一个能够并行处理多帧的模型
  • 将分割和目标跟踪两个任务统一,分割是像素特征的相似度学习,目标跟踪是实例特征的相似度学习

将transformer应用于视频实例分割

  • 本身用于序列到序列
  • transformer擅长对长序列建模,可以用于建立长距离依赖,学习跨多帧的时间信息
  • self-attention可以基于两两之间的相似度进行特征的学习和更新,可以更好的学习帧与帧的相关性

端到端,将视频的时间和空间特征看作一个整体,参考了DETR

介绍

任务:对每一帧进行实例分割,同时在连续的帧中建立实例的数据关联——追踪tracking

总结:它将VIS任务视为一个并行的序列解码/预测问题。给定一个由多个图像帧组成的视频片段作为输入,VisTR直接输出视频中每个实例的掩码序列。每个实例的输出序列在本文中被称为实例序列

在下图中,用形状区分帧,用颜色区分实例,三帧,4个实例

image-20220514165143772

  • 第一阶段,给定一个视频帧序列,一个标准的CNN模块提取单个图像帧的特征,然后将多个图像特征按帧顺序串联起来,形成特征序列。

    注:在提取特征的阶段网络的选择可以根据图片类型进行更改

  • 第二阶段,transformer将片段级特征序列作为输入,并按顺序输出一串实例预测。预测序列遵循输入帧的顺序,而每帧的预测也遵循相同的实例顺序

挑战:建模为一个序列预测问题

虽然在最开始的输入时,在时序维度多帧的输入和输出是有序的,但是对于单帧而言,实例的序列在初始状态下是无序的,无法实现实例的跟踪关联,因此要强制使得每帧图像输出的实例的顺序一致,这样只要找到对应位置的输出,便可以自然的实现同一实例的关联。

  • 如何保持输出的顺序

    实例序列匹配策略:对同一个实力位置处的特征进行序列维度

    在输出的与真实的序列之间进行二方图匹配,并将序列作为一个整体进行监督

  • 如何从transformer网络中获取每个实例的掩码序列

    实例序列分割模块:自注意力获取每个实例在多帧中的掩码特征,并利用三维卷积对每个实例的掩码序列进行分割

VisTR整体架构

一个CNN主干来提取多帧特征表示(此处可以根据不同的场景需求采用不同的特征提取网络)

一个编码器-解码器transformer来模拟像素级和实例级特征的相似性

一个实例序列匹配模块

一个实例序列分割模块
整体架构

backbone

初始输入:T帧 * 通道数3 * H’ * W’

输出特征矩阵(将每帧concat):T * C * H * W

transformer 编码器

学习点和点之间的相似度,输出的是密集的像素特征序列

先将backbone提取到的特征用1*1卷积降维操作:T * C * H * W => T * d * H * W

展平:transformer的输入需要是二维的,所以对空间(H, W)和时间(T)进行flatten,T * d * H * W => d * (T * H * W)

展平的理解:d类似于通道,而T * H * W就是此序列所有T帧的所有像素点

时间和空间的位置编码

Temporal and spatial positional encoding.

最终的位置编码的维度是d

Transformer的结果是与输入的序列无关的,而实例分割任务需要精确的位置信息,所以用固定的位置编码信息来补充特征,这些信息包含片段中的三维(时间、空间——H, W)位置信息,与backbone提取到的特征信息一起送入编码器

在原始的transformer中,位置信息是一维的,所以 i i i是从1到d维,所以 2 k 2k 2k从0到d, w k w_k wk从1逐渐到无限接近于0
请添加图片描述
请添加图片描述

那么最终t位置的向量也是d维的:
p t = [ s i n ( w 1 . t ) c o s ( w 1 . t ) s i n ( w 2 . t ) c o s ( w 2 . t ) s i n ( w d / 2 . t ) c o s ( w d / 2 . t ) ] d p_t = \left[ \begin{matrix} sin(w_1 .t)\\ cos(w_1 .t)\\ sin(w_2 .t)\\ cos(w_2 .t)\\ \\ \\ sin(w_{d/2}.t)\\ cos(w_{d/2}.t)\\ \end{matrix} \right] _d pt=sin(w1.t)cos(w1.t)sin(w2.t)cos(w2.t)sin(wd/2.t)cos(wd/2.t)d
而本文中,需要考虑的是三个维度的位置,H, W , T,也就是说对于一个像素点,他的坐标有三个值,所以对于三个维度,独立的生成 d / 3 d/3 d/3维的位置向量

对于每个维度的坐标,独立使用正弦和余弦函数,生成 d / 3 d/3 d/3维度的向量

p o s pos pos代表坐标( h , w , t h, w, t h,w,t), i i i代表维度,假设只看 h h h,则 i i i从1到 d / 3 d/3 d/3维,同时为了保证 w k w_k wk的取值在0到1之间,所以此处的 w k w_k wk与原始的transformer不一样。

image-20220515153825709

image-20220518133305019

最终在H维度的位置向量表示如下
P E ( p o s ) H = [ s i n ( w 1 . t ) c o s ( w 1 . t ) s i n ( w 2 . t ) c o s ( w 2 . t ) s i n ( w d / 6 . t ) c o s ( w d / 6 . t ) ] d / 3 PE(pos)_H = \left[ \begin{matrix} sin(w_1 .t)\\ cos(w_1 .t)\\ sin(w_2 .t)\\ cos(w_2 .t)\\ \\ \\ sin(w_{d/6}.t)\\ cos(w_{d/6}.t)\\ \end{matrix} \right] _{d/3} PE(pos)H=sin(w1.t)cos(w1.t)sin(w2.t)cos(w2.t)sin(wd/6.t)cos(wd/6.t)d/3

然后将位置编码(d * H * W * T)与backbone提取到的特征一起输入到编码器中

transformer解码器

将encoder输出的密集像素特征序列解码为稀疏的实例特征序列

待看:受DETR的启发,假设每一帧有n个实例,则预设每一帧有固定n个input embedding用于提取实例的特征,命名为instance query,那么T帧的实例查询有N = n * T。是可学习的,与像素特征有相同的维度

instance query:用于和密集的输入特征序列进行attention运算,选取能够代表每个实例的特征

输入:E + 实例查询(instance query)

输出:每个实例的预测序列O,后续过程将单个实例的所有帧的预测序列看成一个整体,按照原始视频帧序列的顺序输出,为n * T个实例向量

实例序列匹配

decoder的输出是n * T个预测序列,按照帧的顺序,但每一帧中的n个实例顺序不确定

此模块的功能是使得不同帧中,对于同一个实例的预测,保持相对位置不变

将每个实例的预测序列和标注数据中每个实例的GT序列进行二分匹配,利用匈牙利匹配的方式找到每个预测最近的标注数据

补充FFN:其实也就是MLP多层感知机,就是FC+GeLU+FC

在 Transformer中,MSA 后跟一个 FFN (Feed-forward network),其包含 两个 FC 层,第一个 FC 将特征从维度 D变换成4D,第二个 FC 将特征从维度4D恢复成D,中间的非线性激活函数均采用 GeLU (Gaussian Error Linear Unit,高斯误差线性单元) —— 这实质是一个 MLP (多层感知机与线性模型类似,区别在于 MLP 相对于 FC 层数增加且引入了非线性激活函数,例如 FC + GeLU + FC)

主要是保持不同图像中同一实例的预测的相对位置

实例序列分割

任务:计算每一个实例在对应帧中的掩码

O是decoder的输出,E是encoder的输出,B是CNN提取到的特征

实例分割的本质是像素相似度的学习,对于每一帧,先将预测图O与编码特征E送入self-attention,计算相似度,将结果作为该实例该帧的初始mask,然后与该帧的初始backbone特征和编码特征E融合,得到该帧该实例的最终掩码特征。为了更好的利用时序信息,将该实例的多帧mask concat生成mask序列,送入3D卷积模块进行分割

这种方式通过利用多帧同一实例的特征对单帧的分割进行加强,发挥时序的优势

原因:当物体处于challenge状态下,比如运动模糊、遮盖等情况,可以通过学习来自其他帧的信息,来帮助分割,也就是,来自多个帧的同一实例的特征可以帮助网络更好的识别该实例

假设第t帧的实例i的掩码特征g(i, t):1 * a * H’/4 * W’/4,其中a为通道号,将T帧的特征串联,得到该实例在所有帧中的掩码1 * a * T * H’/4 * W’/4

此处4是因为例子里是4个实例

image-20220515160846905

消融实验

视频序列的长度

18到36,效果变好,更多的时间信息有助于提升结果
在这里插入图片描述

视频序列的顺序

image-20220515162424531

位置编码

视频序列中的相对位置

第一行没有位置编码取得的效果是:序列监督的有序格式和transformer输入输出顺序之间的对应关系隐含了部分的相对位置信息

image-20220515162527332

可学习的实例查询嵌入

默认prediction. level:一个嵌入负责一个预测,共n * T

video level:只有一个嵌入,被重复利用n * T次

frame level:对于每帧,使用一个嵌入,也就是T个嵌入,对于每个嵌入,重复n次

instance level:对于每个实例,使用一个嵌入,也就是n个嵌入,重复T次

一个实例的查询可以共享,可以用来改善速度

image-20220515162914171

实验结果

数据集:YouTube-VIS

速度快归功于:并行解码

可视化结果:(a)实例重叠,(b)实例之间相对位置的变化,©同一类别的实例靠近时产生的混淆,(d)各种姿势的实例。
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: YOLO V7实例分割是一种基于YOLO算法的目标检测和分割方法。YOLO(You Only Look Once)是一种实时物体检测算法,通过单次前向传递将图像分割为网格,并在每个单元格中预测边界框和类别概率。 YOLO V7实例分割在YOLO V5的基础上进行了改进,引入了语义分割技术。在每个单元格中,除了预测边界框和类别概率外,还预测每个像素的语义标签。这样可以将图像中的每个像素与相应的目标实例进行关联,实现实例级别的分割。同时,YOLO V7还使用了深度特征融合和多尺度训练等技术来提升分割的精度和效果。 YOLO V7实例分割具有以下优点: 1. 实时性:YOLO算法的前向传递速度非常快,可以在实时视频流中快速准确地检测和分割目标实例。 2. 精度和效果:通过引入语义分割技术,YOLO V7可以实现实例级别的分割,提供更准确和细粒度的目标分割结果。 3. 简单性:YOLO V7基于YOLO算法,相对于其他复杂的实例分割方法,操作相对简单,便于应用和部署。 总而言之,YOLO V7实例分割是一种高效、精确且易于应用的目标检测和分割方法,可以广泛应用于计算机视觉领域,如自动驾驶、安防监控、智能交通等。 ### 回答2: YOLO V7是基于YOLO算法的一个版本,主要用于实例分割任务。实例分割计算机视觉领域的一个重要任务,它需要同时完成目标检测和语义分割两个任务。目标检测是指在图像中识别出目标的位置和类别,而语义分割是指将图像分割成不同的语义区域。 YOLO V7采用的是一种单阶段的目标检测算法,相对于传统的两阶段算法,具有速度快的优势。同时,YOLO V7还引入了语义分割的思想,使得算法不仅能够检测目标的位置和类别,还能够将目标进行精确的分割。 YOLO V7的实例分割过程如下:首先,输入一张图像经过卷积神经网络进行特征提取,得到特征图。然后,将特征图经过卷积操作得到不同尺度的特征图,用于检测不同尺寸的目标。 接下来,将尺度不同的特征图与预先定义的锚框进行匹配,得到目标的位置和类别的初步预测。然后,利用Mask R-CNN的思想,将特征图输入到分割网络中,得到目标的分割结果。 最后,通过后处理步骤,如非极大值抑制,滤除重叠较大的预测框,得到最终的实例分割结果。 总结来说,YOLO V7是一种快速而准确的实例分割算法,它通过结合目标检测和语义分割的思想,在保证高效性能的同时,实现了对目标的精确分割。 ### 回答3: YOLO V7是一种先进的实例分割算法,它结合了YOLO(You Only Look Once)目标检测算法和实例分割技术。相比于传统的目标检测算法,YOLO V7能够实时进行目标检测和实例分割,具有更快的速度和更好的效果。 实例分割计算机视觉中的一个重要研究领域,目标是在图像中同时识别出不同的物体实例并进行像素级别的分割。YOLO V7使用深度卷积神经网络(CNN)来学习图像特征,并通过多层级的特征融合和上采样等技术来获取更丰富的特征表示。 与传统的实例分割算法相比,YOLO V7具有以下优势: 1. 实时性能:YOLO V7能够在实时视频中进行目标检测和实例分割,实现了高效的处理速度。 2. 精确度:YOLO V7在目标检测和实例分割任务上取得了很好的准确度,能够准确地标记出图像中的不同物体实例,并进行像素级别的分割。 3. 鲁棒性:YOLO V7对于各种环境和场景都具有很好的适应性,可以应对不同姿态、光照条件和遮挡等问题。 4. 可拓展性:YOLO V7的网络结构可以通过不断的训练和调优来适应不同的目标类别和场景,具有很好的可拓展性。 总之,YOLO V7是一种先进的实例分割算法,它融合了目标检测和实例分割技术,在实时性、精确度、鲁棒性和可拓展性等方面都具有明显优势,为计算机视觉领域的目标检测和实例分割任务提供了一种高效而准确的解决方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值