【CV-Action Recognition】Real-time Action Recognition with Enhanced Motion Vector CNNs阅读笔记

原论文链接:Real-time Action Recognition with Enhanced Motion Vector CNNs

motivation

之前阅读基于two-stream(Two-Stream Convolutional Networks for Action Recognition in Videos)的行为识别论文,准确率高,但缺陷在于无法实现实时性,最大的原因在于经典的two-stream的人体行为识别temporal net输入使用optical flow,而光流法速度慢,同时光流需要提前用opencv计算,不能实现end-to-end的方式。

论文同样采用two-stream方式,使用运动矢量替代光流的方式。运动矢量相比光流的方式,分辨率低,包含噪声和不正确的运动模式(GOP包含I,P,B帧。I帧不包含运动信息,论文中直接用上一帧的I帧代替当前不包含运动信息的I帧),导致识别性能明显下降。论文的图1,是两者的视觉对比。Motion Vector原本用于视频压缩,比如MPEG。与光流图的点状形式存在不同,运动向量图以块状存在,因此图片不清晰,噪声多,势必带来识别准确率的下降。

论文基于迁移学习的思路,OF-CNN( optical flow CNN)指导MV-CNN (motion vector CNN)的训练,显著提升MV-CNN的性能。另外知识蒸馏的思想来自Hinton的Distilling the Knowledge in a Neural Network,建议精读。实验结果表明论文提出算法的性能state-of-the-art(其实accuracy略低),而可以处理390.7帧/秒视频图像,这是比原来的双流法快27倍。

论文有主要以下贡献:

1、提出实时CNN实现行为识别,算法的性能(accuracy)还可以。

2、第一次使用运动矢量作为CNN的输入,减轻模型的计算。

3、提出迁移OF-CNN到MV-CNN,显著提高行为识别的性能。

论文的核心是:Our key insight is that the knowledge and features learned with optical flow CNN (OF-CNN) can be helpful for MV-CNN。用OF-CNN指导MV-CNN的训练。

Architecture



如上图所示论提出的架构,包含两部分:Video decoder和two-stream。Video decoder用于从压缩的视频中解压RGB图像和运动矢量。two-stream分解成spatial CNN (RGB-CNN) 和 temporal CNN (MV-CNN),MV-CNN输入的是运动矢量,而经典two-stream输入的是光流。RGB图像和运动矢量可以直接从Video decoder获取,避免传统two-stream耗费时间的光流计算。

在训练阶段,RGB图像和运动矢量可以直接从Video decoder解压,并且继承来自原始video的标签。为了避免过拟合,采用在原来RGB图像和运动矢量裁剪的方式,训练阶段使用增广数据集,但是在测试阶段,使用原始Video decoder数据,采用求平均值的方式计算最终行为检测得分。

因为运动矢量缺乏细节信息,包含噪音和不准确的运动模式,这使得训练运动矢量CNN(MV-CNN)更具挑战性。论文简单地用运动矢量代替光流可以导致显着的识别性能降解约7%。论文中使用了两种方法来防止精度过度下降。

1.Teacher Initialization:使用Teacher Initialization进行初始化。即使用opticalflow的model进行初始化,再用motion vector进行fine-tune。

2.Supervision Transfer:考虑到直接使用OF-CNN(Teacher CNN)权重初始化MV-CNN(Student CNN)存在信息丢失,采用supervision transfer的方式对网络进行训练。即定义一种新的loss。该loss称之为Teacher superivision loss(TSL)。使用softmax loss 和TSL共同监督网络。

3、论文最终采用两种方式以上两种方式结合:使用OF-CNN训练好的参数,直接赋值给MV-CNN,然后使用ground truth和OF-CNN训练MV-CNN。通过这种方式,MV-CNN不仅继承OF-CNN的参数,而且在微调过程中模仿MV-CNN的预测,采用两种方式结合,提高MV-CNN的泛化能力。

Experiment

Datasets and Evaluation Protocol

作者的模型在UCF101和THUMOS14评估。UCF101包含13320个视频,并且分割成3个训练和测试集。论文采用标准设置和在3个数据集取平局值方式计算accuracy。THUMOS14来自于行为识别挑战赛2014。包含用于训练的13320个视频,用于验证的1010个视频,用于测试的1574个视频。因为THUMOS14过于庞大,论文每20帧做一次测试。论文的硬件配置是个CPU (E5-2640 v3) + 1个K40 GPU。

为了提高模型鲁棒性,论文采用3中数据增广策略。1、随机裁剪224×224的图像。2、随机翻转裁剪的图像。3、缩放裁剪的图像并调整到224×224。在测试阶段并没有使用数据增广。最终在UCF101精度是81.6%,而原方式是81.2% Parameter Sensitivity

此阶段主要是调整Supervision Transfer的参数temp和w。论文经过验证w=4,temp=2。

Evaluation of MV-CNNs and EMV-CNNs

主要是对比MV-CNNs和加强版的 EMV-CNNs性能对比。

Speed Evaluation

论文中使用CPU计算运动矢量,GPU计算CNN。模式同时处理10帧运动矢量和1帧RGB。论文主要是比较各个trick的速度对比。

Conclusion

使用基于光流的two-stream比较慢,运动矢量也不是第一次使用,之前论文《Efficient feature extraction,encoding, and classification for action recognition》就介绍运动矢量用于行为识别,但是作者将两者结合起来,实现速度质的飞跃。

精度论文就是要明白作者在想什么,为什么可以这样做,在这基础上我可以做什么。在一个子领域就是前后二十年的trick相结合(当然也有不同领域的trick结合)。每每看到别人的CVPR不过如此,但是,怎么去实现这些idea?



返回CV-Action Recognition目录

返回CV总目录

发布于 2017-12-12

文章被以下专栏收录