论文地址:https://arxiv.org/abs/2104.14805

代码地址:https://github.com/fanq15/FewX

介绍

Few-Shot Video Object Detection小样本视频目标检测(FSVOD)即给予一些少量目标对象的图片,从而在一个查询视频中找到所有相同类的目标,如下图1。

包括SOT(单目标跟踪),MOT(多目标跟踪),VOS(视频目标分割)和VOD(视频目标检测)等任务在内,都局限于检测存在于训练集中的已知目标,都无法很好的实现FSVOD任务。

FSVOD需要一个具有大量基类的大规模、类平衡的数据集,以训练一个能够泛化到新类的类不可知的度量,将FSOD(小样本目标检测拓展到了时域领域。并且由于视频带来的额外挑战(运动模糊,遮挡,目标变形等)使得无法在不考虑时序信息直接将小样本图片检测简单拓展到小样本v视频检测任务。

首先作者提出的新的基于tube的小样本视频目标检测模型可以在不进行微调和再训练的情况下,在给定视频中检测出新的类。主要由于该模型依赖于TPN模块利用相邻帧的空间邻接和外观相似性产生的时间tube。具体的,通过引入帧间proposals来进行相邻帧目标检测,TPN可以捕获查询视频中的潜在对象,同时过滤掉背景和 ghost 对象。

其次作者提出的后续时间匹配网络(TMN+),是专门设计并在策略上改进的,以匹配TPN生成的时间tube proposals中的support特征和聚合的query特征。TMN+充分利用tube的特征,通过时序对齐分支,桥接训练和推理的gap。

并且使用了一个新的分类损失,用来学习高辨别性的特征,并且加上一个标签平滑正则化用于更好地泛化新的不可见类。TMN+在推理时不需要额外的计算开销的情况下提高新类的匹配性能。TMN+和TPN整合进一个网络实现端到端的训练。

Datasets

作者为了这个任务,构建了一个新的多类数据集FSVOD-500,用于FSVOD任务的发展和评估。在基于Youtube-VIS数据集上,构建了另一个FSYTV-40数据集。

并且这个用于该任务的数据集需要包含三种特点:

  1. 需要包含高度多样化的类用于学习新类的一般关系度量,
  2. 考虑到现实中多种新类的长尾分布,数据集中的类别需要平衡,避免某一类过多。
  3. 训练验证测试三个集合不能包含相同的类,以用于评估模型在新类上的泛化能力。

(详细数据集制作过程看原论文)

两个数据集对比:

方法

FSVOD任务旨在检测在训练集上未见的类。给定一个supprot图像(其中包含support类 c c c的一个主要目标)和一个 T T T帧的查询视频,任务就是在每一帧中检测出所有的属于该support类 c c c的目标。假设support集合包含 N N N个类,且每个类包含K个样本,定义这样的问题为N-way K-shot 检测。具体地说,在推理过程中,如果所有的support类都被用于检测,则称为全面评估。

小样本视频目标检测网络

下图展示了网路的整体框架,作者提出的这个基于tube的检测网络利用tube在时域来定位和表示目标,然后和support特征进行匹配。

Tube Proposal 网络

图片目标检测中,区域proposal网络RPN已经是一个典型的模型,过滤背景的同时生成潜在目标的proposal。

作者将RPN拓展到时域来生成tube proposal用于跨帧定位和表示目标,即tube proposal 网络(TPN),充分利用同一物体在相邻帧中往往具有相似的位置和外观高度相似的特点。网络结构如下:

位置:
作者提出inter-frame proposal,通过给相邻两帧提供相同proposal,来利用相邻帧的位置线索。proposal用于后面的精细回归的一个粗糙预测。相同proposal回归的边界框表示相同目标,因此inter-frame proposal可以用于跨帧关联目标。但是当运动过大时,可能存在两个位置会很远,或者被下一帧其他目标遮挡的问题,作者采用了可变性RoIAlign操作为目标对象放大搜索区域,根据输入特征,自动调整采样bin。

外貌:
为了应对以上问题,需要使用相邻帧的外貌信息,通过proposal回归的预测边界框的身份得分确认相同目标。

具体如图4,两个相邻帧 { f t , f t + 1 } \{f_t,f_{t+1}\} { ft,ft+1},首先提取他们的特征 { F t , F t + 1 } \{F_t,F_{t+1}\} { Ft,Ft+1},使用RPN为每一帧获得proposal构建proposal池 P P P P P P中的每个帧间proposal p i p_i pi同时送入两帧,通过可变性RoIAlign提取proposal特征 { F t i , F t + 1 i } \{F_t^i,F_{t+1}^i\} { Fti,Ft+1i}。独立帧中的proposal特征concat形成 F c a t i = concat ⁡ ( F t i , F t + 1 i ) \mathcal{F}_{c a t}^{i}=\operatorname{concat}\left(\mathcal{F}_{t}^{i}, \mathcal{F}_{t+1}^{i}\right) Fcati=concat(Fti,Ft+1i),然后送入预测网络为每一帧进行目标分类 { s t i , s t + 1 i } \{s_t^i,s^i_{t+1}\} { sti,st+1i}、目标边界框回归 { b t i , b t + 1 i } \{b_t^i,b^i_{t+1}\} { bti,bt+1i}和ID验证得分 v i v_i vi。损失函数定义为:
L t p n = 1 2 N o b j ∑ i ( L c l s ( s t i , s ^ t i ) + L c l s ( s t + 1 i , s ^ t + 1 i ) ) + 1 2 N r e g ∑ i ( L r e g ( b t i , b ^ t i ) + L r e g ( b t + 1 i , b t + 1 i ) ) + 1 N r e g ∑ i L i d ( v i , v ^ i ) (1) \begin{array}{l} \mathcal{L}_{\mathrm{tpn}}=\frac{1}{2 N_{o b j}} \sum_{i}\left(\mathcal{L}_{\mathrm{cls}}\left(s_{t}^{i}, \hat{s}_{t}^{i}\right)+\mathcal{L}_{\mathrm{cls}}\left(s_{t+1}^{i},\hat s_{t+1}^{i}\right)\right) \\ +\frac{1}{2 N_{r e g}} \sum_{i}\left(\mathcal{L}_{\mathrm{reg}}\left(b_{t}^{i}, \hat{b}_{t}^{i}\right)+\mathcal{L}_{\mathrm{reg}}\left(b_{t+1}^{i}, b_{t+1}^{i}\right)\right) \\ +\frac{1}{N_{r e g}} \sum_{i} \mathcal{L}_{\mathrm{id}}\left(v^{i}, \hat{v}^{i}\right) \end{array} \tag{1} Ltpn=2Nobj1i(Lcls(sti,s^ti)+Lcls(st+1i,s^t+1i))+2Nreg1i(Lreg(bti,b^ti)+Lreg(bt+1i,bt+1i))+Nreg1iLid(vi,v^i)(1)

∗ ^ \hat * ^为相应预测的GT标签, L c l s L_{cls} Lcls L i d L_{id} Lid都为交叉熵损失, L r e g L_{reg} Lreg为smooth L 1 L_1 L1损失, N o b j N_{obj} Nobj N r e g N_{reg} Nreg分别为proposal和前景proposal的数量。

训练和推理:
训练实现于两帧 { f t , f t + 1 } \{f_t,f_{t+1}\} { ft,ft+1},推理阶段,模型需要连接所有给定视频的所有帧。考虑3帧的情况(T帧可泛化),给定 { f t − 1 , f t , f t + 1 } \{f_{t-1},f_t,f_{t+1}\} { ft1ft,ft+1},首先将 { f t − 1 , f t } \{f_{t-1},f_t\} { ft1ft}送入模型,获得两帧的tube { b t − 1 , b t } \{b_{t-1},b_t\} { bt1,bt}。然后将后一帧 f t f_t ft的tube 边界 b t b_t bt送入 { f t , f t + 1 } \{f_t,f_{t+1}\} { ft,ft+1}作为帧间proposal,生成tube边界框 b t + 1 b_{t+1} bt+1,最终构建3帧的tube { b t − 1 , b t , b t + 1 } \{b_{t-1},b_t,b_{t+1}\} { bt1,bt,bt+1}。重叠帧 f t f_t ft用于验证两个帧对之间的相同对象,其特征在过程中被重用,以避免像CTracker一样重复计算。最终我们可以依次检测视频中所有帧的tube边界并生成tube。

基于tube的匹配网络

获得所有proposal后,提取tube特征并且使用一个匹配网络和supprot特征进行对比。这里利用tube特征将匹配网络(MN)引入时域,提出了时域匹配网络(TMN+),和TPN共享backbone特征,联合训练优化。

TMN:
MN不适合时域任务的匹配,作者首先通过引入时域对齐分支(TAB)为查询特征进行对齐,提出了TMN。给定视频中的一个目标对象,TAB随机从剩下的帧 { f j } \{f_j\} { fj}中选择图片,为目标对象提取对齐的查询特征: Q a i = 1 M ∑ j Q j i \mathcal{Q}^{i}_{a} = \frac{1}{M} \sum_{j} \mathcal{Q}_{j}^{i} Qai=M1jQji,其中 { j ∈ [ 1 , T ] , j ≠ t , j ≠ t + 1 } \{j\in [1,T],j≠t,j≠t+1\} { j[1,T],j=t,j=t+1} M M M是选择对齐查询图片的数量。然后聚集对齐查询特征 Q a d i = α Q t r a i n i + ( 1 − α ) Q a i \mathcal{Q}^{i}_{ad}=\alpha \mathcal{Q}^{i}_{train}+(1-\alpha)\mathcal{Q}^{i}_{a} Qadi=αQtraini+(1α)Qai,用以表示目标对象和在训练阶段和supprots进行匹配。由此,TMN在不中断TPN设计的情况下填补了这个缺口,也不引入额外的计算开销(在推理时删除TAB)。

损失函数为 L t m n = L match  + L box  \mathcal{L}_{\mathrm{tmn}}=\mathcal{L}_{\text {match }}+\mathcal{L}_{\text {box }} Ltmn=Lmatch +Lbox  L match  \mathcal{L}_{\text {match }} Lmatch 为交叉熵损失用于二分类, L box  \mathcal{L}_{\text {box }} Lbox 为smooth L 1 \mathcal{L}_1 L1损失,用于回归边界框。

TMN+:
为了增强辨别能力,作者在TMN中整合标签平滑正则化,形成TMN+。

首先对TMN中的 L match  \mathcal{L}_{\text {match }} Lmatch 引入标签平滑(用于抑制分类任务过拟合),具体做法就是改变GT标签 y i y_i yi y ∗ = ( 1 − ε ) y i + ε / β y^* = (1-ε)y_i+ε/\beta y=(1ε)yi+ε/β ε ε ε为常数平滑参数, β \beta β为类数,如此可以让模型避免对于训练集合的类过分相信,从而可以更好的泛化到新类中。

然后在supprot分支中加入support分类模块,增强欧几里得空间的类内紧性和类间可分性,从而生成更有代表性的TMN匹配特征。通过采用交叉熵损失作为其损失函数 L scls \mathcal{L}_{\text {scls}} Lscls

端到端训练

最终训练过程中,TPN和TMN+是联合端到端优化的,共享一个backbone,损失函数如下:
L = λ 1 L t p n + λ 2 L t m n + λ 3 L s c l s (2) \mathcal{L}=\lambda_{1} \mathcal{L}_{\mathrm{tpn}}+\lambda_{2} \mathcal{L}_{\mathrm{tmn}}+\lambda_{3} \mathcal{L}_{\mathrm{scls}} \tag{2} L=λ1Ltpn+λ2Ltmn+λ3Lscls(2)
其中 λ 1 , λ 2 , λ 3 λ_1,λ_2,λ_3 λ1,λ2,λ3都为超参,实验中设为1。

实验

详细细节看论文,这里贴出一些实验数据。