0. 前言
1. 要解决什么问题
- 如何保留 long-term 信息
- 常用的行为识别方法都是通过过去若干帧作为输入,这样一般也就能预测几秒内的信息。
- 有些行为持续时间超过几秒,那要怎么保留整段视频的信息呢?
- 之前的行为识别模型都没有结构用来保存历史信息。
- 之前也有保存 long-term 信息的方法
- 一般都是通过2D CNN提取特征,然后作为pooling或rnn的输入。也就是说,同样的特征同时用于long-term信息和当前信息。
2. 用了什么方法
- 提出了一个模块 Long-term Feature Bank
- 该模块的定位是提供辅助功能。
- 有两种模式:离线模式(Batch,可获取所有视频)与在线模式(Casual,在预测t时刻时,只能获取过去的若干数据)。
- 该模块主要分为两个部分
- Long-term Feature Bank,保留所有帧信息,在训练/预测时,使用滑动窗口获取对应帧的数据。
- 大概过程是:先通过Human Detector检测整个视频的bbox,再通过一定间隔利用3D CNN提取特征(如1s一次),通过ROI Pooling提取3D CNN中的特征,最后将提取到的特征放到一起,这就是Long-term Feature Bank。
- Feature Bank Operator(FBO):如何融合long-term ROI Pool的信息与短期ROI Pool的信息。做过实验的有Non-local/Avg pool/Max pool三种。
- NL形式:将长期-短期数据同时放入NL中提取特征,就结果与原始短期特征concat,然后再进行分类。
- AvgPool:长期、短期特征avg pool到一个尺寸(都是2048)后concat。
- MaxPool:长期、短期特征max pool到一个尺寸(都是2048)后concat。
- Long-term Feature Bank,保留所有帧信息,在训练/预测时,使用滑动窗口获取对应帧的数据。
- 改进了Non-local的结构
3. 效果如何
- 在AVA上做了大量笑容实验,结果也很好
- Epic-Kiechen上结果也不错
- Charades更是当时最优
4. 还存在什么问题&可借鉴之处
-
这家伙,用于在线恐怕不太行。
-
长期特征随着输入视频增加,数据也增加。