painterdrown Blog - painterdrown CV

# Flow-Guided Feature Aggregation for Video Object Detection 学习笔记

⏰ 2018-06-02 09:40:36
👨🏻‍💻 painterdrown

# 0. Abstract

目前的视频目标检测网络都不是端到端的,作者提出了一个叫 flow-guided feature aggregation(流导向特征聚集),一个端到端的深度学习框架,加下来我简称为 FGFA

It leverages temporal coherence on feature level instead.

这句话的意思是说,FFA 关注如何利用 feature level 的时间连贯性信息,并且利用这些信息来达到好的检测效果。

FFA 聚集了同一运动路径 (motion path) 上的特征信息。

# 1. Introduction

目前最帅的图像目标检测框架基本都是 Deep Convolutional Neural Networks,但是它在视频帧中表现欠佳——原因是视频帧中 motion blur(图像运动的区域容易模糊) 的现象比较明显,还有 video defocusrare poses 等原因。

The performance improvement is from heuristic post-processing instead of principled learning.

目前的视频检测框架也是 box level 的:在检测出关键帧之后,后续的 bounding box 检测是比较传统粗暴的(基于 motion estimation 或者 optical flow)。这种做法效果往往很平庸。

但是,一些比较差的 feature aggregation 做法会受 video motion 的影响(同一个目标在相邻帧之间空间不对齐),所以我们应该研究如何在深度学习中模型化这些 motion。

FGFA 涉及了四个网络:

另外,FGFA 是 feature level 的,若是与一些 box level 的方法结合互补,可以提升效果。

# 3. Flow Guided Feature Aggregation

# 3.1. Model Design

首先,用深层卷积计算出 reference frame Ii 的特征,然后通过 FlowNet Nflow 来推导出其 neighbor frame Ij 的特征,紧接着这个特征再做一个 warping。

得到一系列的 warping 后的特征,就拿来做 feature aggregation。聚合后的特征包含了如 illuminations/viewpoints/poses/non-rigid 等信息。

特征聚集是通过加权相加得到的,离 reference frame 越近的帧,权重越大。用 cosine similarity metric 来衡量变性后特征与 reference frame 的特征之间的相似度。要注意的是,计算相似度不是直接用的 feature,而是把 feature 再经过一个 tiny fully convolutional network,目的是将特征投影成一个 new embedding(我也不懂是什么),这样能更方便后面的网络去做相似性计算。

# 3.2. Training and Inference

Inference 的伪代码如下,可以描述为:

  1. 首先用 Nfeat 对视频的每一帧都算出其卷积特征图
  2. 依次将每一帧作为 reference frame,通过上述的方法算出其聚集后的特征
  3. 将聚集后的特征放进 Ndet 进行目标检测
  4. 更新 feature buffer,这里对应伪代码的第 13 行。我思考了一下终于知道这一步的意义:算法一开始的时候,不是直接把所有帧的特征都算出来了,因为那样子太占内存。因此只虚先算前 K 个特征,维护一个长度为 K 的 feature buffer。在每一轮迭代之后,都会计算下一个 feature 塞进 buffer 里面。

整个 FGFA 架构是可导而且端到端的。训练的时候,由于内存的限制,K 只能取一个比较小的值 (K = 2)。值得注意的是,这里有一个 temporal dropout 的说法。不是说训练的时候只在前后各两个邻近帧之间采样,采样的范围是跟前面的 inference 的范围一样,只是训练的时候只前后各采样 2 帧,所以这里要理解好 K = 2 的含义。

# 3.3. Network Architecture

# 4. Experiments

参考以下两篇论文,训练的时候要用到 ImageNet DET 和 VID 两个数据集。

T-cnn: Tubelets with convolutional neural networks for object detection from videos.
Multi-Class Multi-Object Tracking using Changing Point Detection

训练分两个阶段:

  1. 使用 DET 数据集来训练 N~feat 和 Ndet(使用的标注数据是 VID 中的 30 个分类),相关细节:
+ 使用了 SGD (one image at each mini-batch)
+ 使用 4 个 GPU 来跑 120K 次迭代 (each GPU holding one mini-batch)
+ The learning rates are 10^−3^ and 10^−4^ in the first 80K and in the last 40K iterations
  1. 使用 VID 数据集来训练整个 FGFA 模型,相关细节:
+ 使用 4 个 GPU 来跑 60K 次迭代
+ The learning rates are 10^−3^ and 10^−4^ in the first 40K and in the last 20K iterations

在训练和测试的时候,图像会进行缩放:

# 5. Resources