本文最后更新于:2021年3月20日 晚上

阅读论文:

[1] Tang P, Wang C, Wang X, et al. Object detection in videos by high quality object linking[J]. IEEE transactions on pattern analysis and machine intelligence, 2019, 42(5): 1272-1278.

[2] Geng Q, Zhang H, Jiang N, et al. Object-aware Feature Aggregation for Video Object Detection[J]. arXiv preprint arXiv:2010.12573, 2020.

[3] Zheng Z, Wang P, Liu W, et al. Distance-IoU loss: Faster and better learning for bounding box regression[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(07): 12993-13000.

[4] Han W, Khorrami P, Paine T L, et al. Seq-nms for video object detection[J]. arXiv preprint arXiv:1602.08465, 2016.

1. Object detection in videos by high quality object linking

摘要

此前的方法大都在相邻帧关联目标,本文首次提出在同一帧内关联目标。与其他方法不同,作者在相同帧连接目标,并且跨帧传播box分数,而非传播特征。

本文创新点:

  1. 提出了一个cuboid proposal network(CPN,立方体提议网络),提取约束物体运动的时空候选长方体。
  2. 提出了一个短的tubelet detection网络,在短视频中监测short tuubelets。
  3. 提出了一个短的tubelet连接算法,连接有时间重叠的short tubelets来形成长的tubelets。

不使用Object Linking进行特征传播

FGFA STSN STMN MANet:当前帧的特征通过聚合来自其他相邻帧的特征进行增强,FGFA和MANet使用光流来对齐不同帧的特征,进而聚合。STSN使用变形卷积网络跨时空传播特征。STMN采用Conv-GRU来从相邻帧传播特征。此外,DFF也利用特征传播来加速目标检测。作者提出用非常深的高代价网络来计算关键帧的特征,从而将其通过shallow计算出的光流传播到非关键帧。以上这些方法都没有使用Object Linking。

使用Object Linking进行特征传播

Tubelet Proposal Network首先生成静态的目标proposals,进而预测之后帧的相对位移。tubelets中box的特征通过使用CNN-LSTM网络传播到每个box用于分类。MANet为当前真的每个proposal预测相邻帧的相对位移,相邻帧box的特征通过平均池化被传播到当前帧对应box。与这些方法不同,作者在相同帧连接目标,并且跨帧传播box分数,而非传播特征。此外,作者的方法直接为视频片段生成时空cuboid proposals,而非像Tubelet Proposal Network和MANet一样生成逐帧proposal。

使用Object Linking进行分数传播

Object detection from video tubelets witth convolutional neural networks.(Object Linking)
T-CNN:Tubelets with convolutional neral networks for object from videos(Object Linking)

以上两篇文章提出了两种Object Linking方法。第一种跟踪当前帧检测到的box到其相邻帧来用更高的召回率增强其原始的检测结果。分数也被传播来提升分类精度。这种连接是基于box内的平均光流向量。第二种使用跟踪算法连接目标和long tubelet,之后采用分类器来聚合tubelets中的检测分数。

Seq-NMS方法通过选择相邻帧box的空间重叠小来连接目标,不考虑运动信息,之后聚合所连接目标的分数作为最终的分数。Detect to track and track to detect中的方法同时预测两帧的目标位置,以及从前一帧到后一帧的目标位移。之后使用位移来连接检测到的目标和tubelets。相同tubelet的检测分数通过一些方式重新加权。

方法

视频目标检测的任务是:推断出视频每一帧目标的位置和类别。为了得到高质量的目标连接,作者提出在相同的帧连接目标,这可以提升分类精度。

给出被分割成具有时间重叠的视频片段作为输入,作者的方法由3步组成:

  1. 为一个片段生成立方体proposal。这一步旨在生成一组立方体(容器)来约束不同帧的相同目标。
  2. 为一个小片段执行Short tubelet detection。对于每个立方体proposal,回归和分类产生short tubelet(是边界框的序列,每个边界框定位一帧的目标位置)空间重叠的short tubelet通过tublet非极大值抑制移除。short tubelet是在视频片段中不同帧连接过的目标的一种表示。
  3. 对整个视频进行short tubelet linking。这一步将具有时间重叠的片段的目标连接起来,并且优化连接过的tubelets的分类分数。

其中,前两步cuboid proposal generation和short tubelet detection生成时间重叠的short tubelets,从而确保可以在short tubelet linking 这一步进行连接。

1.Cuboid Proposal Generation

Tubelet:一组ground turth box的集合。

Cuboid:我的理解是一组相同的bbox的集合,用来约束目标的位移。在cuboid中的不同帧的目标被看成相同的目标。

作者那个Faster R-CNN的 Region Proposal Network修改为 Cuboid Proposal Network。RPN的输入是单张图像,CPN的输入是K帧图像。输出whk个cuboid proposals,其中有wxh个空间网格,其中每个位置有k个参考boxes。每个cuboid proposal都与一个客观评分关联。

2.Short Tubelet Detection

作者采用Cuboid Proposal的二维形式,作为视频片段每一帧的2Dbox(区域)proposal,对每一帧分别进行分类和细化。(就是说,类似RPN生成的proposal是对目标位置的一个粗略回归,这里选择二维的CPN输出作为每一帧的粗略proposal)

对于视频片段某一帧,作者采用与Fast R-CNN相同的方法来精炼边界框并且计算其分类分数。输入是一个二维的Region Proposal b、通过CNN获得的响应图I,之后执行ROI池化操作,ROI池化的结果喂给分类层和回归层,分别产生(C+1)维的分类分数向量、形成精炼后的边界框。

最终,对K帧分别生成K个精炼过的边界框,即为Short tubelet detection result。

为了移除冗余的short tubelets,作者将标准的非极大值抑制方法(NMS)扩展为Tubelet-NMS(T-NMS)来移除位置重叠的short tubelets。(与单张图像类似,若没有NMS会有许多重叠的冗余框,作者将标准NMS扩展到Tubelet)这种策略通过助阵NMS独立的为每一帧移除2D框,保证tubelets不被破坏(如果逐帧进行NMS,会打破现有Tubelet)。

作者依据相同帧的边界框IOU来度量两个tubelets的空间重叠度。(此处可能是因为一个视频片段可能产生了多个tubelets,就需要一种方式来度量两个Tubelets的相似性,也就是说只要有一堆边界框没有完全重合,那么这两个tubelets就不相同)

image-20210320220736103

image-20210314193845899

3.Short Tubelet Linking

作者将一段视频分为一系列长度为K帧的具有重叠帧的小片段(步长为K-1),每个小片段分别生成一个tubelet,当不同tubelet的重叠帧(相同帧)的空间重合度高于一个预定义的阈值时,将其连接在一起。

作者采用了一种贪婪地连接算法:开始时将所有视频片段的short tubelets放到一个池中,并且记录每个tubelet对应的视频片段。然后算法首先从池中选出分类得分最高的short tubelet,计算其重叠帧与其他tubelet的IOU,当IOU大于0.4时,将这两个short tubelets合并为一个长的tubelet,并且移除两个Tubelet的重叠帧中较低的分数,根据等式(2)$Aggregation(·)=\frac{1}{2}(mean(·)+max(·))$计算出新的分类分数。重复以上过程,直到没有tubelet可以合并。

最终,池中剩余的tubelets形成了视频目标检测的结果。tubelet的分数被分给每一个box。

image-20210314193330219

总结

本篇论文提出的cuboid proposal network(CPN)让人眼前一亮,其主要思路是将一个长的视频片段分割成一个个短的片段,每个短的片段之间都有一帧重合。之后通过对不同tubelet之间重叠帧进行相似性度量,将多个tubelet连接在一起,并且优化连接过的tubelets的分类分数。

这种方法与此前的聚合方法有很大不同,此前方法大都集中在选择关键帧与非关键帧,而本文的方法是将长的视频片段分割成小片段。这种思路以后可以借鉴。

存在的问题:

  • 分割片段的长度如何选择?2
  • 图(b)中出现错误的分类,如何度量其相似性?
  • 如果某个tubelet与其他的tubelet的IOU都很低怎么办?允许broken links

2. Object-aware Feature Aggregation for Video Object Detection

本文提出了一个Object-aware Feature Aggregation(OFA)模块,有选择的聚合与proposal相对应的特征。具体来说,输入特征被分为两个部分,并喂给两个路径:语义路径和定位路径。a)语义路径。首先从整个视频的proposal中收集object-aware知识。与此同时,通过计算proposal之间的相似性得到成对的语义上下文。通过聚合以上得到的成对的语义上下文和proposal的object-aware知识,这些特征编码了更多关于其他区域和整个视频的知识。b)定位路径。定位特征也可以通过成对定位上下文来增强。对比于语义路径,作者局部增强这些特征来确保特征对相对位置敏感。

OFA模块

image-20210320220246050

给出参考帧和支持帧,使用Faster-rcnn的方式提取proposal。之后将proposal的特征用两个堆叠的OFA模块进行增强。作者设计了两条独立的路径(语义路径和定位路径)来用语义信息和的定位信息增强object-aware feature。在随后的后处理过程中,使用DIoU NMS来进一步提升性能。

总结:

创新点:

  • 提出OFA模块,分别用两条路径并行的进行分类和回归。
  • 使用成对的先验上下文知识来提升性能。
  • 使用DIoU NMS的后处理方法提高性能。

3. Distance-IoU loss: Faster and better learning for bounding box regression

边界框回归是目标检测中重要的一步。现有方法大多采用Ln-norm loss用于边界框回归,如交并比IOU。本文提出了Distance-IoU Loss(DIoU),合并预测框和目标框的正规化距离。使用DIOU Loss的收敛速度比IOU Loss和GIoU Loss更快。此外,本文总结了边界框回归中三个几何因素:1.重叠区域 2.中心点距离 3.长宽比。基于此提出了Complete Iou Loss(CIoU),收敛更快,性能更好。通过同时应用DIoU Loss和CIoU Loss,SOTA方法的性能有所提高。此外DIoU可以作为NMS的标准,进一步加速性能提升。

传统的IoU

image-20210320220303374

其中$B(x,y,w,h)$是预测框的坐标,$B^{gt}(x^{gt},y^{gt},w^{gt},h^{gt})$是ground-truth的坐标。通常在$B$和$B^{gt}$上采用L1或L2 norm loss 来度量边界框之间的距离。之后有学者指出,Ln-norm Loss不是包含最优IoU度量的合适选择,并且提出了IoU loss,提升IoU度量:

image-20210320220311046

但是IoU Loss只能在bbox有重叠的情况下使用,并不能对非重叠的情况提供任何运动梯度。

GIoU Loss

之后,有学者通过对IoU loss增加一个惩罚项,提出了generalized IoU Loss(GIoU)。

image-20210320220321860

其中C是覆盖$B$和$B^{gt}$的最小的框,惩罚项的加入使得预测框朝着目标框移动。(此前两框并不重叠)。

GIoU可以减轻当两框不重叠时的梯度消失问题,但仍然有一些局限性。

image-20210320220330072

上图展示了GIoU loss(第一行)和DIoU Loss(第二行)的回归过程。绿色框表示目标框,黑色框是anchor box。蓝色和红色是预测框。

如上图所示,从图中可以看出GIoU Loss首先倾向于增加预测框的尺寸,使其与目标框重叠(这是惩罚项在起作用)。之后IoU项才起作用,使得bbox的重叠区域最大。

image-20210320220337240

从图二可以看出,GIoU loss在封闭框内将退化为IoU Loss。GIoU由于过度依赖IoU项,需要更多的迭代次数才能收敛(特别是对于水平和垂直框)。

DIoU Loss

本文提出了Distance-IoU Loss,简单的在IoU Loss后加了一个惩罚项,直接最小化两个边界框中心点之间的距离。这样以来使得其比GIoU Loss收敛更快。DIoU只需120个迭代就能很好的匹配目标框,而GIoU在400次迭代后也没有收敛。作者进一步进行了总结:一个好的边界框损失应该包含三个重要的几何度量:1.重叠区域 2.中心点距离 3.长宽比。这三点被长期忽略掉。

image-20210320220404602

其中b和$b^{gt}$表示B和$B^{gt}$的中心点,$\rho(·)$是欧氏距离,c是能包含两个框的最小框的对角线长度。$d=\rho(b,b^{gt})$

image-20210320220419929

与IoU和GIoU loss对比:
  • DIoU损失对回归问题的尺度仍然是不变的
  • 与GIoU一样,可以为与目标框不重叠的bbox提供移动方向
  • 当两个边界框完全匹配时$L_{IoU}=L_{GIoU}=L_{DIoU}=0$,当两个边界框离的很远时$L_{GIoU}=L_{DIoU}\rightarrow2$

CIoU Loss

通过联合这三个几何度量,作者进一步提出了Complete IoU Loss(CIoU),比IoU loss 和 GIoU loss收敛更快,性能更高。

image-20210320220445954

其中α是一个正的平衡参数,v度量长宽比的一致性:

image-20210320220455608

平衡因子定义为:

image-20210320220506354

作者提出的DIoU和CIoU Loss可以轻易的整合到现有SOTA方法中。此外,DIoU可以作为NMS的标准,在抑制冗余框的时候,不仅考虑重叠区域,也考虑两个边界框中心点的距离,使得其在有遮挡的情况下更鲁棒。

总结:

创新点:
  • 提出DIoU Loss用于边界框回归,比IoU和GIoU loss收敛更快
  • 考虑三个几何度量,提出CIoU Loss,更好的描述矩形框的回归
  • 所提出的DIoU可以应用在NMS,在抑制冗余框上比原始NMS效果更好

4. Seq-NMS for Video Object Detection

本文是一种基于后处理的方法,给出一个包含region proposals和对应类别分数的视频序列,作者的方法通过使用一个简单的重叠判据,将相邻帧的bbox 相关联。之后选择box来最大化序列分数,这些box之后被用于在其各自对应的帧内抑制重叠box,随后被重新评分来加速弱检测。

Seq-NMS

image-20210320220530693

Seq-NMS有3步:1.序列选择,选择具有最高序列分数的序列box 2.序列Re-Scoring:重新对序列中box的分数进行评估计算。3.抑制:抑制重叠度高的任何box。

序列选择

对于视频序列中相邻的两帧,当两帧的IoU大于某个阈值时,第一帧的一个bbox可以与第二帧的一个bbox建立连接。作者为视频片段中每一对相邻帧寻找潜在的连接。之后尝试找到整个序列最大化的分数序列。也就是说,作者试图找到符合约束条件的box序列,即所有相邻的box必须被链接,且具有最大的目标分数之和。

image-20210320220540137

文中提到的序列选择过程。当相邻帧的box之间的IoU>0.5时,从中选择总分最高的一组序列。在序列选择之和,每一帧最多只有一个box,删除IoU>0.3的其他box。

序列Re-Scoring

在选择完序列之后,将该序列的分数提升。作者尝试使用了平均值和最大值。

抑制

被选择序列中的box被从连接过的box集合中移除。如果某一帧的bbox与选中的bbox的IoU大于某个阈值,则从候选框中移除它。

总结

优点:

  • 本文提出了一种基于后处理的方法,在一定程度上可以提升视频目标检测的性能。

缺点:

  • 在有多个相似的目标比较靠近时,容易出现错误检测。
  • 有时会增加更多的误警