
摘要
视频动作识别领域的最先进方法通常采用两个网络的组合:空间流,其输入为RGB帧;时间流,其输入为光流。在最近的研究中,这两个流均采用了三维卷积神经网络(3D CNN),该网络在对视频片段进行分类之前应用时空滤波器。从概念上讲,时间滤波器应该使空间流能够学习运动表示,从而使时间流变得多余。然而,我们仍然发现在动作识别性能方面通过加入一个完全独立的时间流可以获得显著提升,这表明空间流“遗漏”了时间流所捕捉到的一些信号。在这项工作中,我们首先调查了3D CNN的空间流中是否确实缺失了运动表示。其次,我们展示了这些运动表示可以通过蒸馏技术得到改进,即通过调整空间流以预测时间流的输出,从而有效地将两个模型合并为一个单一流。最后,我们证明了我们的蒸馏三维网络(Distilled 3D Network, D3D)仅使用单一模型且无需计算光流的情况下,就能达到与双流方法相当的性能。
代码仓库
princeton-vl/d3dhelper
tf
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| action-classification-on-kinetics-400 | D3D (RGB) | Acc@1: 75.9 |
| action-classification-on-kinetics-400 | D3D+S3D-G (RGB + RGB) | Acc@1: 76.5 |
| action-classification-on-kinetics-600 | D3D+S3D-G | Top-1 Accuracy: 79.1 |
| action-classification-on-kinetics-600 | D3D | Top-1 Accuracy: 77.9 |
| action-recognition-in-videos-on-ava-v21 | D3D (ResNet RPN, Kinetics-400 pretraining) | mAP (Val): 23 |
| action-recognition-in-videos-on-hmdb-51 | D3D + D3D | Average accuracy of 3 splits: 80.5 |
| action-recognition-in-videos-on-hmdb-51 | D3D (Kinetics-400 pretraining) | Average accuracy of 3 splits: 78.7 |
| action-recognition-in-videos-on-hmdb-51 | D3D (Kinetics-600 pretraining) | Average accuracy of 3 splits: 79.3 |
| action-recognition-in-videos-on-ucf101 | D3D (Kinetics-400 pretraining) | 3-fold Accuracy: 97 |
| action-recognition-in-videos-on-ucf101 | D3D + D3D | 3-fold Accuracy: 97.6 |
| action-recognition-in-videos-on-ucf101 | D3D (Kinetics-600 pretraining) | 3-fold Accuracy: 97.1 |