基本步骤
- 假设视频一共有Z帧,T<Z,按照1到T的顺序随机选出一些帧贴上标签,那么该视频就会生成一个S={1,…,T}的索引序列。
- 边界框由位置特征「空间信息:高,宽,中心位置的x坐标和y坐标,时间信息:帧号」和语义特征组成,候选边界框Bt通过RPN在每一帧图片上生成,第t帧图片生成Bt={bti}i为第t帧图片上的第i个候选边界框。
- 局部池由检测帧前后n个相邻帧中的所有候选边界框组成。全局池由从S中连续选出的Tg个标签所对应的帧生成的候选边界框组成,从第g个标签开始选,g<或者=T。S为打乱顺序的视频帧集合。假设全局池是由打乱整个视频帧后形成的S的第k个标签到Tg+k-1标签对应的帧生成的候选边界框组成的全局池,那么全局池可以表示为G={BSi}i=k到k+Tg-1。
- 记忆模块M储存前一帧在检测过程产生的中间特征。(M缓存先前帧的局部融合堆栈的预先计算的中间特征。)
- 设计关系模块,对每个框计算m个关系特征(例如时间关系特征,空间关系特征),作为来自其他框不同语义特征的加权和,来改善边界框的检测效果。随着边界框间的时间跨度越来越大,空间信息和时间信息的影响也越来越弱,因此间隔超过一定范围的边界框,使用没有考虑位置特征影响的关系模块,也就是使用位置无关的关系模块。
更新原始特征:通过合并每个检测框与其他框计算得到的关系特征加权和到其原始特征上,形成检测框加强过的特征。
生成增强特征后,采用了一个全连接层和Relu非线性激活函数。
所有的检测框都要两两进行关系建模,以使所有边界框的特征得到增强。
方法:记忆增强的全局局部网络
(全局局部融合解决的是无效性,记忆增强解决的是不足性)
- 全局融合
出发点:充分利用全局的特征来增强局部特征。
首先将局部池和全局池按照位置无关的关系模块带入进去,局部池中的每个相邻帧中的边界框都需要计算m个关系特征(例如时间关系特征,空间关系特征),作为来自全局池中Tg个帧对应的所有边界框的加权和。将每个帧计算得到的加权和合并到其各自的原始特征上,得到最终全局增强版本的局部特征池。
以堆叠的方式迭代进行关系推理,后关系模块以前一个关系模块作为输入,以充分挖掘全局特征的潜力。
当前帧最后的特征增强生成后,他们被传播到传统的RCNN头部中,得出分类和回归结果。 - 局部融合
出发点:通过全局特征增强局部特征后,还可以利用这些局部特征下的语义和位置信息增强自身。
首先采用基于位置的关系模块,将局部池中边界框两两带入进去计算加权和。将每个帧计算得到的加权和合并到其各自的原始特征上,得到最终增强版本的局部特征池。
以堆叠的方式迭代进行关系推理,后关系模块以前一个关系模块作为输入,以充分挖掘局部特征自身的潜力。
当前帧最后的特征增强生成后,他们被传播到传统的RCNN头部中,得出分类和回归结果。 - 记忆增强版本
出发点:不足问题,受递归机制的启发,提出了一个长时记忆(LRM)的新方法。该方法采用预先计算,使模型能够捕捉更长的全局和局部信息。
首先采用记忆模块M储存前一帧在检测过程产生的中间特征,从而能够重新使用存储在模块中预先计算过的特征。
采用基于位置的关系模块,将局部池中边界框和记忆模块M中的边界框两两带入进去计算加权和。将每个帧计算得到的加权和合并到其各自的原始特征上,得到最终增强版本的局部融合特征。
以堆叠的方式迭代进行关系推理,后关系模块以前一个关系模块作为输入,以充分挖掘记忆特征的潜力。
将局部池和记忆模块M中的边界框代替基于位置的关系模块中的记忆模块M的边界框,采用基于位置的关系模块计算加权和。当前帧最后的特征增强生成后,他们被传播到传统的RCNN头部中,得出分类和回归结果。
最后也是最重要的一点是,由于每个帧的缓存特征都首先通过不同的全局特征集得到增强,因此长期记忆不仅会在本地增加融合大小还会在全局范围内增加融合大小。
作者认为MEGA的优越性能是由新颖的LRM模块带来的,该模块使一帧可以从更长的内容中有效地收集信息,无论是在全球还是在本地。 - 训练阶段对每帧都进行训练,当前输入帧被称为关键帧,采用ImageNet VID的30个类做数据集,其中包含训练集的3862个视频和验证集的555个视频。
- 主要是由ResNet-101和ResNeXt-101提取特征,为了增强特征图的分辨率,将卷积的最后一层conv5的第一个卷机块的步长从2修改到1。AlexNet当初使用分组卷积的动机是出自硬件资源有限,不得不将模型分到两块GPU上运行。他们并没有给出分组卷积的概念,而且没有对分组卷积的性能进行深入探讨。ResNeXt则是明确给出了分组卷积的定义,并证明和验证了分组卷积有接近普通卷积的精度。使用ResNeXt-101的效果要好于ResNet-101的效果。
- 使用Faster R-CNN作为检测模块,RPN加在conv4的头部。局部迟大小为24,局部时间窗口大小为25,实践中,关键帧两侧的时间跨度可能不一样。全局池大小为10。长时记忆大小为25。在训练和测试阶段,我们按照0.7IoU的NMS阈值为每个帧生成300边界框。为了提高效率,没有保留RPN为每个局部参考帧生成的所有候选框,而是选择了80个最高客观分数的候选框。
实验细节
- 使用ImageNet DET(30类图像)和VID组合训练MEGA模型,MEGA主要通过maskrcnn-benchmark实现。其实在Detectron向 Detectron2过渡期间,Facebook Research还开源了一个知名的项目:maskrcnn-benchmark,目前已获得 7k star!
- 图片的大小调整:较短的那边为600像素(论文),输入的图片的边的大小范围为800到1333像素(代码)。对于caffe2模型,输入的图片需要转化为BRG格式,范围为0-255。整个架构在带有SSD的4个RTX 2080Ti GPU进行训练,每个GPU做一个小批量处理,每个小批量包含一个图片/帧集。网络的迭代次数为120k,前80k的学习率为0.001,后40次的学习率为0.0001。
- 由于训练阶段不能够和推理阶段相同,因此采用时间丢(dropout)策略来训练MEGA模型。对于给定关键帧,从原来的局部池、全局池、记忆模块分别随机采样两个帧,作为新的局部池和全局池以及记忆模块。给定关键帧,我们随机采样原来局部池的两个帧和整个视频中的两个帧以近似形成ˆL,ˆG。从原来记忆模块选择两个帧作为新的记忆模块。之后,ˆL,ˆG,ˆM通过完整的MEGA传播以生成C。最后,对整个模型进行分类和回归损失的训练。我们希望模型在大多数相邻帧上给予更多关注,我们在ˆM的构造中停止了梯度流。
- 测试阶段:由于直接测试170000+帧图片是太费时,测试阶段直接对生成的候选框进行测试。
- 评价标准:沿用目标检测中的mAP,但是会根据目标的速度分为mAP(slow), mAP(medium), mAP(fast), 划分标准按照FAFG论文中的方法为求当前帧与前后10帧的IOU的平均得分值score,the objects are divided into slow (score > 0.9), medium (score ∈ [0.7, 0.9]), and fast (score < 0.7) groups。