Command Palette
Search for a command to run...
Dan Kondratyuk Liangzhe Yuan Yandong Li Li Zhang Mingxing Tan Matthew Brown Boqing Gong

Abstract
We present Mobile Video Networks (MoViNets), a family of computation and memory efficient video networks that can operate on streaming video for online inference. 3D convolutional neural networks (CNNs) are accurate at video recognition but require large computation and memory budgets and do not support online inference, making them difficult to work on mobile devices. We propose a three-step approach to improve computational efficiency while substantially reducing the peak memory usage of 3D CNNs. First, we design a video network search space and employ neural architecture search to generate efficient and diverse 3D CNN architectures. Second, we introduce the Stream Buffer technique that decouples memory from video clip duration, allowing 3D CNNs to embed arbitrary-length streaming video sequences for both training and inference with a small constant memory footprint. Third, we propose a simple ensembling technique to improve accuracy further without sacrificing efficiency. These three progressive techniques allow MoViNets to achieve state-of-the-art accuracy and efficiency on the Kinetics, Moments in Time, and Charades video action recognition datasets. For instance, MoViNet-A5-Stream achieves the same accuracy as X3D-XL on Kinetics 600 while requiring 80% fewer FLOPs and 65% less memory. Code will be made available at https://github.com/tensorflow/models/tree/master/official/vision.
Code Repositories
Benchmarks
| Benchmark | Methodology | Metrics |
|---|---|---|
| action-classification-on-charades | MoViNet-A2 | MAP: 32.5 |
| action-classification-on-charades | MoViNet-A6 | MAP: 63.2 |
| action-classification-on-charades | MoViNet-A4 | MAP: 48.5 |
| action-classification-on-kinetics-400 | MoViNet-A4 | Acc@1: 80.5 Acc@5: 94.5 FLOPs (G) x views: 105x1 |
| action-classification-on-kinetics-400 | MoViNet-A6 | Acc@1: 81.5 FLOPs (G) x views: 386x1 |
| action-classification-on-kinetics-400 | MoViNet-A1 | Acc@1: 72.7 Acc@5: 91.2 FLOPs (G) x views: 6.0x1 |
| action-classification-on-kinetics-400 | MoViNet-A2 | Acc@1: 75.0 Acc@5: 92.3 FLOPs (G) x views: 10.3x1 |
| action-classification-on-kinetics-400 | MoViNet-A5 | Acc@1: 80.9 Acc@5: 94.9 FLOPs (G) x views: 281x1 |
| action-classification-on-kinetics-400 | MoViNet-A3 | Acc@1: 78.2 Acc@5: 93.8 FLOPs (G) x views: 56.9x1 |
| action-classification-on-kinetics-400 | MoViNet-A0 | Acc@1: 65.8 Acc@5: 87.4 FLOPs (G) x views: 2.7x1 |
| action-classification-on-kinetics-600 | MoViNet-A5 | GFLOPs: 281x1 Top-1 Accuracy: 82.7 Top-5 Accuracy: 95.7 |
| action-classification-on-kinetics-600 | MoViNet-A2 | GFLOPs: 10.3x1 Top-1 Accuracy: 77.5 Top-5 Accuracy: 93.4 |
| action-classification-on-kinetics-600 | MoViNet-A6 | GFLOPs: 386x1 Top-1 Accuracy: 83.5 Top-5 Accuracy: 96.5 |
| action-classification-on-kinetics-600 | MoViNet-A1 | GFLOPs: 6.0x1 Top-1 Accuracy: 76.0 Top-5 Accuracy: 92.6 |
| action-classification-on-kinetics-600 | MoViNet-A4 | GFLOPs: 105x1 Top-1 Accuracy: 81.2 Top-5 Accuracy: 94.9 |
| action-classification-on-kinetics-600 | MoViNet-A5 (AutoAugment) | GFLOPs: 281x1 Top-1 Accuracy: 84.3 Top-5 Accuracy: 96.4 |
| action-classification-on-kinetics-600 | MoViNet-A0 | GFLOPs: 2.7x1 Top-1 Accuracy: 71.5 Top-5 Accuracy: 90.4 |
| action-classification-on-kinetics-600 | MoViNet-A3 | GFLOPs: 56.9x1 Top-1 Accuracy: 80.8 Top-5 Accuracy: 80.8 |
| action-classification-on-kinetics-700 | MoViNet-A1 | Top-1 Accuracy: 63.5 |
| action-classification-on-kinetics-700 | MoViNet-A2 | Top-1 Accuracy: 66.7 |
| action-classification-on-kinetics-700 | MoViNet-A3 | Top-1 Accuracy: 68.0 |
| action-classification-on-kinetics-700 | MoViNet-A4 | Top-1 Accuracy: 70.7 |
| action-classification-on-kinetics-700 | MoViNet-A5 | Top-1 Accuracy: 71.7 |
| action-classification-on-kinetics-700 | MoViNet-A6 | Top-1 Accuracy: 72.3 |
| action-classification-on-kinetics-700 | MoViNet-A0 | Top-1 Accuracy: 58.5 |
| action-classification-on-moments-in-time | MoViNet-A5 | Top 1 Accuracy: 39.1 |
| action-classification-on-moments-in-time | MoViNet-A4 | Top 1 Accuracy: 37.9 |
| action-classification-on-moments-in-time | MoViNet-A0 | Top 1 Accuracy: 27.5 |
| action-classification-on-moments-in-time | MoViNet-A2 | Top 1 Accuracy: 34.3 |
| action-classification-on-moments-in-time | MoViNet-A6 | Top 1 Accuracy: 40.2 |
| action-classification-on-moments-in-time | MoViNet-A1 | Top 1 Accuracy: 32.0 |
| action-classification-on-moments-in-time | MoViNet-A3 | Top 1 Accuracy: 35.6 |
| action-recognition-in-videos-on-something | MoViNet-A0 | GFLOPs: 2.7x1 Parameters: 3.1M Top-1 Accuracy: 61.3 Top-5 Accuracy: 88.2 |
| action-recognition-in-videos-on-something | MoViNet-A1 | GFLOPs: 6.0x1 Parameters: 4.6M Top-1 Accuracy: 62.7 Top-5 Accuracy: 89.0 |
| action-recognition-in-videos-on-something | MoViNet-A3 | GFLOPs: 23.7x1 Parameters: 5.3M |
| action-recognition-in-videos-on-something | MoViNet-A2 | GFLOPs: 10.3x1 Parameters: 4.8M Top-1 Accuracy: 63.5 Top-5 Accuracy: 89.0 |
| action-recognition-on-epic-kitchens-100 | MoViNet-A5 | Action@1: 44.5 GFLOPs: 74.9x1 Noun@1: 55.1 Verb@1: 69.1 |
| action-recognition-on-epic-kitchens-100 | MoViNet-A2 | Action@1: 41.2 GFLOPs: 7.59x1 Noun@1: 52.3 Verb@1: 67.1 |
| action-recognition-on-epic-kitchens-100 | MoViNet-A6 | Action@1: 47.7 GFLOPs: 117x1 Noun@1: 57.3 Verb@1: 72.2 |
| action-recognition-on-epic-kitchens-100 | MoViNet-A4 | Action@1: 44.4 GFLOPs: 42.2x1 Noun@1: 56.2 Verb@1: 68.8 |
| action-recognition-on-epic-kitchens-100 | MoViNet-A0 | Action@1: 36.8 GFLOPs: 1.74x1 Noun@1: 47.4 Verb@1: 64.8 |
Build AI with AI
From idea to launch — accelerate your AI development with free AI co-coding, out-of-the-box environment and best price of GPUs.