《ReferTransformer》论文笔记


论文链接: https://arxiv.org/abs/2201.00487

代码链接: https://github.com/wjn922/ReferFormer

由于之前看图片相关的论文比较多,而这篇论文偏向于视频理解的任务,为了避免有其他不了解这篇论文领域的同学看的时候比较吃力,在解读这篇论文前先介绍这篇论文的任务。

任务定义: R-VOS(Referring video object segmentation): 给出一种物体对应的语言描述,分割出该物体对应的mask。
这篇论文的相关视频在reddit上热度非常高,感兴趣的同学可以看下视频,相信也能对这篇论文应用的方向有更清晰的了解。[R] End-to-End Referring Video Object Segmentation with Multimodal Transformers

相关工作

enter description here

Bottom-up

  • 方法: 如图1(a)所示,用early-feature的方式融合视觉和语言特征,再用FCN decoder目标的掩码。
  • 缺点: early-feature的方法无法获得较好的多模态特征,无法为跨模态推理提供明确的知识,并且会遇到由于场景变化而导致预测对象的差异。

Top-down

  • 方法: 如图1(b)所示,两阶段的方式,先对图片/视频中所有的物体做实例分割,将实例分割的结果在视频中关联起来,形成一系列候选,再通过语言模型和Grounding Model筛选出语言描述提到的物体
  • 缺点: 相比bottom-up的方式有更好的性能,但整个pipeline由于多阶段的方式太重。例如最近的一些方法,如HTC,CFBI中都需要再ImageNet,COCO,RefCOCO中预训练,然后在R-VOS数据集中fintune。而且将R-VOS的任务拆解为几个子问题分别优化由于误差传递等问题会造成次优的解决方案。

本文方法

该论文的方法图1(c):

  • 将文字的特征和queries的特征融合,作为conditional queries,生成的queries可以只聚焦在文字所提到的目标特征上,可以极大的减少queries的数量(例如detr中的100个)
  • 考虑到需要从queries的特征中decode出object mask,使用instance-aware dynamic kernels从提取分割的mask特征
  • 受启发于FPN,设计了CM-FPN(cross modal features pyramid network), 提取多模态的金字塔特征

网络结构如图2所示,主要由backbone,language as queries,Cross-modal Feature Pyramid Network,Instance Sequence Matching and Loss,inference五部分组成。下面我写的尽量详细点。
enter description here

backbone

visual encoder
使用通用的视觉backbone做视觉特征的编码器,例如可以使用经典的ResNet网络或者3D的特征编码器,如Video swin transformer。生成的特征是如下Sequence $F_v=\{F_t\}^T_{t=1}$,其中T表示T桢图像
linguistic encoder
使用现成的语言模型,如RoBERTa,提取文本的特征$F_e=\{F_i\}^L_{i=1}$,其中L表示L个word。在该任务中需要将$F_e$通过pooling提取句子级别的特征,这是由于该任务使用句子级别的特征和queries融合用于跨模态的特征融合

language as queries

transformer encoder: encoder部分和detr中一样,先用1x1卷积进行通道数压缩,再把宽和高压缩为一个维度,将特征序列化,再做位置编码
transformer decoder: decoder部分也和detr比较类似,但有些差异。使用N个object queries提取每帧实例中的特征,区别在于queries在视频帧之间共享权重,好处是可以更灵活的处理长视频,并且对于同样的实例queries学习的特征更鲁棒。将句子级别的特征$F_e$复制N份和每一个object queries一起作为decoder的输入。对于T帧图像,会得到$N_q=TN$的预测集合
prediction heads:具有三个预测头,分别是box head,mask head,class head(二分类,输出是否是文本中提到的目标)
dynamic convolution: 使用动态卷积生成binary segmentation masks
*illustration of conditional queries
:得益于transformer的注意力机制,输入object queries和text embedding可以让object queries聚焦于text提到的物体

cross-model Feature Pyramid Network

enter description here

该部分可以认为是这篇论文最大的创新点,提出了多模态融合的FPN网络,网络结构图如图4所示,和传统FPN网络的区别在于加入了vision-language fusion模块,该模块的结构类似transformer网络,图像特征作为encoder部分qkv的输入,文本特征作为decoder部分k和v的输入。

Instance Sequence Matching and Loss

前面提到过,对于T帧图像,N个object queries,会得到$N_q=T*N$个预测结果。由于视频中跨帧的物体在相邻帧间保持相对相同的位置,可以将预测结果看成是N个实例在T帧上的轨迹

因此可以用instance matching strategy的方式对预测整体监督。将预测集集表示为$y=\{y_i\}^N_{i=1}$,第i个实例的预测表示为:

$p^t$表示一个概率的标量,用于表示实例是否在文本中被提到且在当前帧出现的概率;$b^t_i$是一个长度为4的向量,表示实例的坐标,具体定义是目标的中心坐标和宽高;
$s^t_i$的维度为(H/4 * W/4),表示实例的分割mask。
enter description here

损失函数部分由3部分组成,分类loss为focal loss,坐标回归loss为L1 Loss和GIOU Loss,分割loss为DICE Loss和binary mask focal loss

Inference

在推理时,模型会预测所有帧中对应实例类别的置信度,选择平均置信度最高的实例类别对应的定位和分割结果作为最终的输出结果

实验

论文中有非常详细的和其他方法的对比和消融实验
enter description here

enter description here

enter description here

表4中baseline的方法训练和推理阶段使用的都是长度为5帧的视频,baseline的方法不能有效的区分距离较近的相似物体,容易分割出最显著的区域,相比之下,通过表6(a)可以看出,只需要一个object queries就可以获得比baseline更好的效果,也证明了动态卷积对于分割任务是必要的

  • baseline的方式使用图像level的特征分割物体,而本文的方法是用图像-文本融合后的多模态特征
  • 本文将动态卷积核的相对坐标和掩码特征融合起来,有助于模型定位出文本中提到的目标

enter description here

不同backbone的影响
enter description here

object queries数量的影响,从实验结果来看数量也不是越多越好,5个是实验中的最好效果。
训练和测试帧数的影响,最好的是5帧的参数,但理论上应该帧数增多,效果还会提升,可能是受限于计算资源的影响
预测头的影响,类别,边框回归,分割三个任务都预测,效果是最好的
enter description here

欢迎关注我的公众号!

enter description here

-------------本文结束感谢您的阅读-------------