Convolutional Two-Stream Network Fusion for Video Action Recognition
Recent applications of Convolutional Neural Networks (ConvNets) for human action recognition in videos have proposed different solutions for incorporating the appearance and motion information. We study a number of ways of fusing ConvNet towers both spatially and temporally in order to best take advantage of this spatio-temporal information. We make the following findings: (i) that rather than fusing at the softmax layer, a spatial and temporal network can be fused at a convolution layer without loss of performance, but with a substantial saving in parameters; (ii) that it is better to fuse such networks spatially at the last convolutional layer than earlier, and that additionally fusing at the class prediction layer can boost accuracy; finally (iii) that pooling of abstract convolutional features over spatiotemporal neighbourhoods further boosts performance. Based on these studies we propose a new ConvNet architecture for spatiotemporal fusion of video snippets, and evaluate its performance on standard benchmarks where this architecture achieves state-of-the-art results. Our code and models are available at http://www.robots.ox.ac.uk/ vgg/software/two_stream_action
Action recognition in video is a highly active area of research with state of the art systems still being far from human performance. As with other areas of computer vision, recent work has concentrated on applying Convolutional Neural Networks (ConvNets) to this task, with progress over a number of strands: learning local spatiotemporal filters [11, 28, 30]), incorporating optical flow snippets , and modelling more extended temporal sequences [6, 17].
However, action recognition has not yet seen the substantial gains in performance that have been achieved in other areas by ConvNets, e.g. image classification [12, 23, 27], human face recognition , and human pose estimation . Indeed the current state of the art performance [30, 34] on standard benchmarks such as UCF-101  and HMDB51  is achieved by a combination of ConvNets and a Fisher Vector encoding  of hand-crafted features (such as HOF  over dense trajectories ).
Part of the reason for this lack of success is probably that current datasets used for training are either too small or too noisy (we return to this point below in related work). Compared to image classification, action classification in video has the additional challenge of variations in motion and viewpoint, and so might be expected to require more training examples than that of ImageNet (1000 per class) – yet UCF-101 has only 100 examples per class. Another important reason is that current ConvNet architectures are not able to take full advantage of temporal information and their performance is consequently often dominated by spatial (appearance) recognition.
As can be seen from Fig. 1, some actions can be identified from a still image from their appearance alone (archery in this case). For others, though, individual frames can be ambiguous, and motion cues are necessary. Consider, for example, discriminating walking from running, yawning from laughing, or in swimming, crawl from breast-stroke. The two-stream architecture  incorporates motion information by training separate ConvNets for both appearance in still images and stacks of optical flow. Indeed, this work showed that optical flow information alone was sufficient to discriminate most of the actions in UCF101.
Nevertheless, the two-stream architecture (or any previous method) is not able to exploit two very important cues for action recognition in video: (i) recognizing what is moving where, i.e. registering appearance recognition (spatial cue) with optical flow recognition (temporal cue); and (ii) how these cues evolve over time.
Our objective in this paper is to rectify this by developing an architecture that is able to fuse spatial and temporal cues at several levels of granularity in feature abstraction, and with spatial as well as temporal integration. In particular, Sec. 3 investigates three aspects of fusion: (i) in Sec. 3.1 how to fuse the two networks (spatial and temporal) taking account of spatial registration? (ii) in Sec. 3.2 where to fuse the two networks? And, finally in Sec. 3.3 (iii) how to fuse the networks temporally? In each of these investigations we select the optimum outcome (Sec. 4) and then, putting this together, propose a novel architecture (Sec. 3.4) for spatiotemporal fusion of two stream networks that achieves state of the art performance in Sec. 4.6.
2 Related work
Several recent work on using ConvNets for action recognition in temporal sequences have investigated the question of how to go beyond simply using the framewise appearance information, and exploit the temporal information. A natural extension is to stack consecutive video frames and extend 2D ConvNets into time  so that the first layer learns spatiotemporal features.  study several approaches for temporal sampling, including early fusion (letting the first layer filters operate over frames as in ), slow fusion (consecutively increasing the temporal receptive field as the layers increase) and late fusion (merging fully connected layers of two separate networks that operate on temporally distant frames). Their architecture is not particularly sensitive to the temporal modelling, and they achieve similar levels of performance by a purely spatial network, indicating that their model is not gaining much from the temporal information.
The recently proposed C3D method  learns 3D ConvNets on a limited temporal support of 16 consecutive frames with all filter kernels of size 333. They report better performance than  by letting all filters operate over space and time. However, their network is considerably deeper than [10, 11] with a structure similar to the very deep networks in . Another way of learning spatiotemporal relationships is proposed in , where the authors factorize 3D convolution into a 2D spatial and a 1D temporal convolution. Specifically, their temporal convolution is a 2D convolution over time as well as the feature channels and is only performed at higher layers of the network.
 compares several temporal feature pooling architectures to combine information across longer time periods. They conclude that temporal pooling of convolutional layers performs better than slow, local, or late pooling, as well as temporal convolution. They also investigate ordered sequence modelling by feeding the ConvNet features into a recurrent network with Long Short-Term Memory (LSTM) cells. Using LSTMs, however did not give an improvement over temporal pooling of convolutional features.
The most closely related work to ours, and the one we extend here, is the two-stream ConvNet architecture proposed in . The method first decomposes video into spatial and temporal components by using RGB and optical flow frames. These components are fed into separate deep ConvNet architectures, to learn spatial as well as temporal information about the appearance and movement of the objects in a scene. Each stream is performing video recognition on its own and for final classification, softmax scores are combined by late fusion. The authors compared several techniques to align the optical flow frames and concluded that simple stacking of horizontal and vertical flow fields performs best. They also employed multitask learning on UCF101 and HMDB51 to increase the amount of training data and improve the performance on both. To date, this method is the most effective approach of applying deep learning to action recognition, especially with limited training data. The two-stream approach has recently been employed into several action recognition methods [4, 6, 7, 17, 25, 32, 36].
Also related to our work is the bilinear method  which correlates the output of two ConvNet layers by performing an outer product at each location of the image. The resulting bilinear feature is pooled across all locations into an orderless descriptor. Note that this is closely related to second-order pooling  of hand-crafted SIFT features.
In terms of datasets,  introduced the Sports-1M dataset which has a large number of videos (1M) and classes (487). However, the videos are gathered automatically and therefore are not free of label noise. Another large scale dataset is the THUMOS dataset  that has over 45M frames. Though, only a small fraction of these actually contain the labelled action and thus are useful for supervised feature learning. Due to the label noise, learning spatiotemporal ConvNets still largely relies on smaller, but temporally consistent datasets such as UCF101  or HMDB51  which contain short videos of actions. This facilitates learning, but comes with the risk of severe overfitting to the training data.
We build upon the the two-stream architecture in . This architecture has two main drawbacks: (i) it is not able to learn the pixel-wise correspondences between spatial and temporal features (since fusion is only on the classification scores), and (ii) it is limited in temporal scale as the spatial ConvNet operates only on single frames and the temporal ConvNet only on a stack of temporally adjacent optical flow frames (e.g. ). The implementation of  addressed the latter problem to an extent by temporal pooling across regularly spaced samples in the video, but this does not allow the modelling of temporal evolution of actions.
3.1 Spatial fusion
In this section we consider different architectures for fusing the two stream networks. However, the same issues arise when spatially fusing any two networks so are not tied to this particular application.
To be clear, our intention here is to fuse the two networks (at a particular convolutional layer) such that channel responses at the same pixel position are put in correspondence. To motivate this, consider for example discriminating between the actions of brushing teeth and brushing hair. If a hand moves periodically at some spatial location then the temporal network can recognize that motion, and the spatial network can recognize the location (teeth or hair) and their combination then discriminates the action.
This spatial correspondence is easily achieved when the two networks have the same spatial resolution at the layers to be fused, simply by overlaying (stacking) layers from one network on the other (we make this precise below). However, there is also the issue of which channel (or channels) in one network corresponds to the channel (or channels) of the other network.
Suppose for the moment that different channels in the spatial network are responsible for different facial areas (mouth, hair, etc), and one channel in the temporal network is responsible for periodic motion fields of this type. Then, after the channels are stacked, the filters in the subsequent layers must learn the correspondence between these appropriate channels (e.g. as weights in a convolution filter) in order to best discriminate between these actions.
To make this more concrete, we now discuss a number of ways of fusing layers between two networks, and for each describe the consequences in terms of correspondence.
A fusion function fuses two feature maps and , at time , to produce an output map , where and are the width, height and number of channels of the respective feature maps. When applied to feedforward ConvNet architectures, consisting of convolutional, fully-connected, pooling and nonlinearity layers, can be applied at different points in the network to implement e.g. early-fusion, late-fusion or multiple layer fusion. Various fusion functions can be used. We investigate the following ones in this paper, and, for simplicity, assume that , , , and also drop the subscript.
Sum fusion. computes the sum of the two feature maps at the same spatial locations and feature channels :
Since the channel numbering is arbitrary, sum fusion simply defines an arbitrary correspondence between the networks. Of course, subsequent learning can employ this arbitrary correspondence to its best effect, optimizing over the filters of each network to make this correspondence useful.
Max fusion. similarly takes the maximum of the two feature map:
where all other variables are defined as above (1).
Similarly to sum fusion, the correspondence between network channels is again arbitrary.
Concatenation fusion. stacks the two feature maps at the same spatial locations across the feature channels :
Concatenation does not define a correspondence, but leaves this to subsequent layers to define (by learning suitable filters that weight the layers), as we illustrate next.
Conv fusion. first stacks the two feature maps at the same spatial locations across the feature channels as above (3) and subsequently convolves the stacked data with a bank of filters and biases
where the number of output channels is , and the filter has dimensions . Here, the filter is used to reduce the dimensionality by a factor of two and is able to model weighted combinations of the two feature maps at the same spatial (pixel) location. When used as a trainable filter kernel in the network, is able to learn correspondences of the two feature maps that minimize a joint loss function. For example, if is learnt to be the concatenation of two permuted identity matrices , then the th channel of the one network is only combined with the th channel of the other (via summation).
Note that if there is no dimensionality reducing conv-layer injected after concatenation, the number of input channels of the upcoming layer is .
Bilinear fusion. computes a matrix outer product of the two features at each pixel location, followed by a summation over the locations:
The resulting feature captures multiplicative interactions at corresponding spatial locations. The main drawback of this feature is its high dimensionality. To make bilinear features usable in practice, it is usually applied at ReLU5, the fully-connected layers are removed  and power- and -normalisation is applied for effective classification with linear SVMs.
The advantage of bilinear fusion is that every channel of one network is combined (as a product) with every channel of the other network. However, the disadvantage is that all spatial information is marginalized out at this point.
Discussion: These operations illustrate a range of possible fusion methods. Others could be considered, for example: taking the pixel wise product of channels (instead of their sum or max), or the (factorized) outer product without sum pooling across locations .
Injecting fusion layers can have significant impact on the number of parameters and layers in a two-stream network, especially if only the network which is fused into is kept and the other network tower is truncated, as illustrated in Fig. 2 (left). Table 1 shows how the number of layers and parameters are affected by different fusion methods for the case of two VGG-M-2048 models (used in ) containing five convolution layers followed by three fully-connected layers each. Max-, Sum and Conv-fusion at ReLU5 (after the last convolutional layer) removes nearly half of the parameters in the architecture as only one tower of fully-connected layers is used after fusion. Conv fusion has slightly more parameters (97.58M) compared to sum and max fusion (97.31M) due to the additional filter that is used for channel-wise fusion and dimensionality reduction. Many more parameters are involved in concatenation fusion, which does not involve dimensionality reduction after fusion and therefore doubles the number of parameters in the first fully connected layer. In comparison, sum-fusion at the softmax layer requires all layers (16) and parameters (181.4M) of the two towers.
In the experimental section (Sec. 4.2) we evaluate and compare the performance of each of these possible fusion methods in terms of their classification accuracy.
3.2 Where to fuse the networks
As noted above, fusion can be applied at any point in the two networks, with the only constraint that the two input maps and , at time , have the same spatial dimensions; i.e. , . This can be achieved by using an “upconvolutional” layer , or if the dimensions are similar, upsampling can be achieved by padding the smaller map with zeros.
Table 2 compares the number of parameters for fusion at different layers in the two networks for the case of a VGG-M model. Fusing after different conv-layers has roughly the same impact on the number of parameters, as most of these are stored in the fully-connected layers. Two networks can also be fused at two layers, as illustrated in Fig. 2 (right). This achieves the original objective of pixel-wise registration of the channels from each network (at conv5) but does not lead to a reduction in the number of parameters (by half if fused only at conv5, for example). In the experimental section (Sec. 4.3) we evaluate and compare both the performance of fusing at different levels, and fusing at multiple layers simultaneously.
3.3 Temporal fusion
We now consider techniques to combine feature maps over time , to produce an output map . One way of processing temporal inputs is by averaging the network predictions over time (as used in ). In that case the architecture only pools in 2D (); see Fig. 3(a).
Now consider the input of a temporal pooling layer as feature maps which are generated by stacking spatial maps across time .
3D Pooling: applies max-pooling to the stacked data within a 3D pooling cube of size . This is a straightforward extension of 2D pooling to the temporal domain, as illustrated in Fig. 3(b). For example, if three temporal samples are pooled, then a max pooling could be used across the three stacked corresponding channels. Note, there is no pooling across different channels.
3D Conv + Pooling: first convolves the four dimensional input with a bank of filters and biases
as e.g. in , followed by 3D pooling as described above. This method is illustrated in Fig. 3(c). The filters are able to model weighted combinations of the features in a local spatio-temporal neighborhood using kernels of size . Typically the neighborhood is (spatial temporal).
Discussion. The authors of  evaluate several additional methods to combine two-stream ConvNets over time. They find temporal max-pooling of convolutional layers among the top performers. We generalize max-pooling here to 3D pooling that provides invariance to small changes of the features’ position over time. Further, 3D conv allows spatio-temporal filters to be learnt [30, 28]. For example, the filter could learn to center weight the central temporal sample, or to differentiate in time or space.
3.4 Proposed architecture
We now bring together the ideas from the previous sections to propose a new spatio-temporal fusion architecture and motivate our choices based on our empirical evaluation in Sec. 4. The choice of the spatial fusion method, layer and temporal fusion is based on the experiments in sections 4.2, 4.3 and 4.5, respectively.
Our proposed architecture (shown in Fig. 4) can be viewed as an extension of the architecture in Fig. 2 (left) over time. We fuse the two networks, at the last convolutional layer (after ReLU) into the spatial stream to convert it into a spatiotemporal stream by using 3D Conv fusion followed by 3D pooling (see Fig. 4, left). Moreover, we do not truncate the temporal stream and also perform 3D Pooling in the temporal network (see Fig. 4, right). The losses of both streams are used for training and during testing we average the predictions of the two streams. In our empirical evaluation (Sec. 4.6) we show that keeping both streams performs slightly better than truncating the temporal stream after fusion.
Having discussed how to fuse networks over time, we discuss here the issue of how often to sample the temporal sequence. The temporal fusion layer receives temporal chunks that are frames apart; i.e. the two stream towers are applied to the input video at time . As shown in Fig. 4 this enables us to capture short scale () temporal features at the input of the temporal network (e.g. the drawing of an arrow) and put them into context over a longer temporal scale () at a higher layer of the network (e.g. drawing an arrow, bending a bow, and shooting an arrow).
Since the optical flow stream has a temporal receptive field of frames, the architecture operates on a total temporal receptive field of . Note that results in overlapping inputs for the temporal stream, whereas produces temporally non-overlapping features.
After fusion, we let the 3D pooling operate on spatial feature maps that are frames apart. As features may change their spatial position over time, combining spatial and temporal pooling to 3D pooling makes sense. For example, the output of a VGG-M network at conv5 has an input stride of pixels and captures high level features from a receptive field of pixels. Spatiotemporal pooling of conv5 maps that are frames distant in time can therefore capture features of the same object, even if they slightly move.
3.5 Implementation details
Two-Stream architecture. We employ two pre-trained ImageNet models. First, for sake of comparison to the original two-stream approach , the VGG-M-2048 model  with 5 convolutional and 3 fully-connected layers. Second, the very deep VGG-16 model  that has 13 convolutional and 3 fully-connected layers. We first separately train the two streams as described in , but with some subtle differences: We do not use RGB colour jittering; Instead of decreasing the learning rate according to a fixed schedule, we lower it after the validation error saturates; For training the spatial network we use lower dropout ratios of 0.85 for the first two fully-connected layers. Even lower dropout ratios (up to 0.5) did not decrease performance significantly.
For the temporal net, we use optical flow [1, 37] stacking with frames . We also initialised the temporal net with a model pre-trained on ImageNet, since this generally facilitates training speed without a decrease in performance compared to our model trained from scratch. The network input is rescaled beforehand, so that the smallest side of the frame equals 256. We also pre-compute the optical flow before training and store the flow fields as JPEG images (with clipping of displacement vectors larger than 20 pixels). We do not use batch normalization .
Two-Stream ConvNet fusion. For fusion, these networks are finetuned with a batch size of and a learning rate starting from which is reduced by a factor of as soon as the validation accuracy saturates. We only propagate back to the injected fusion layer, since full backpropagation did not result in an improvement. In our experiments we only fuse between layers with the same output resolution; except for fusing a VGG-16 model at ReLU5_3 with a VGG-M model at ReLU5, where we pad the slightly smaller output of VGG-M (, compared to ) with a row and a column of zeros. For Conv fusion, we found that careful initialisation of the injected fusion layer (as in (4)) is very important. We compared several methods and found that initialisation by identity matrices (to sum the two networks) performs as well as random initialisation.
Spatiotemporal architecture. For our final architecture described in Sec. 3.4, the 3D Conv fusion kernel has dimension and , i.e. the spatio-temporal filter has dimension , the results from concatenating the ReLU5 from the spatial and temporal streams, and the matches the number of input channels of the following FC6 layer.
The 3D Conv filters are also initialised by stacking two identity matrices for mapping the feature channels to . Since the activations of the temporal ConvNet at the last convolutional layer are roughly 3 times lower than its appearance counterpart, we initialise the temporal identity matrix of by a factor of 3 higher. The spatiotemporal part of is initialised using a Gaussian of size and . Further, we do not fuse at the prediction layer during training, as this would bias the loss towards the temporal architecture, because the spatiotemporal architecture requires longer to adapt to the fused features.
Training 3D ConvNets is even more prone to overfitting than the two-stream ConvNet fusion, and requires additional augmentation as follows. During finetuning, at each training iteration we sample the frames from each of the 96 videos in a batch by randomly sampling the starting frame, and then randomly sampling the temporal stride () (so operating over a total of between and frames). Instead of cropping a fixed sized input patch, we randomly jitter its width and height by and rescale it to . The rescaling is chosen randomly and may change the aspect-ratio. Patches are only cropped at a maximum of distance from the image borders (relative to the width and height). Note, the position (and size, scale, horizontal flipping) of the crop is randomly selected in the first frame (of a multiple-frame-stack) and then the same spatial crop is applied to all frames in the stack.
Testing. Unless otherwise specified, only the frames (and their horizontal flips) are sampled, compared to the 25 frames in , to foster fast empirical evaluation. In addition we employ fully convolutional testing where the entire frame is used (rather than spatial crops).
4.1 Datasets and experimental protocols
We evaluate our approach on two popular action recognition datasets. First, UCF101 , which consists of 13320 action videos in 101 categories. The second dataset is HMDB51 , which contains 6766 videos that have been annotated for 51 actions. For both datasets, we use the provided evaluation protocol and report the mean average accuracy over the three splits into training and test data.
4.2 How to fuse the two streams spatially?
For these experiments we use the same network architecture as in ; i.e. two VGG-M-2048 nets . The fusion layer is injected at the last convolutional layer, after rectification, i.e. its input is the output of ReLU5 from the two streams. This is chosen because, in preliminary experiments, it provided better results than alternatives such as the non-rectified output of conv5. At that point the features are already highly informative while still providing coarse location information. After the fusion layer a single processing stream is used.
We compare different fusion strategies in Table 1 where we report the average accuracy on the first split of UCF101. We first observe that our performance for softmax averaging (85.94%) compares favourably to the one reported in . Second we see that Max and Concatenation perform considerably lower than Sum and Conv fusion. Conv fusion performs best and is slightly better than Bilinear fusion and simple fusion via summation. For the reported Conv-fusion result, the convolution kernel is initialised by identity matrices that perform summation of the two feature maps. Initialisation via random Gaussian noise ends up at a similar performance 85.59% compared to identity matrices (85.96%), however, at a much longer training time. This is interesting, since this, as well as the high result of Sum-fusion, suggest that simply summing the feature maps is already a good fusion technique and learning a randomly initialised combination does not lead to significantly different/better results.
For all the fusion methods shown in Table 1, fusion at FC layers results in lower performance compared to ReLU5, with the ordering of the methods being the same as in Table 1, except for bilinear fusion which is not possible at FC layers. Among all FC layers, FC8 performs better than FC7 and FC6, with Conv fusion at 85.9%, followed by Sum fusion at 85.1%. We think the reason for ReLU5 performing slightly better is that at this layer spatial correspondences between appearance and motion are fused, which would have already been collapsed at the FC layers .
|Fusion Method||Fusion Layer||Acc.||#layers||#parameters|
4.3 Where to fuse the two streams spatially?
Fusion from different layers is compared in Table 2. Conv fusion is used and the fusion layers are initialised by an identity matrix that sums the activations from previous layers. Interestingly, fusing and truncating one net at ReLU5 achieves around the same classification accuracy on the first split of UCF101 (85.96% vs 86.04%) as an additional fusion at the prediction layer (FC8), but at a much lower number of total parameters (97.57M vs 181.68M). Fig. 2 shows how these two examples are implemented.
|ReLU5 + FC8||86.04%||17||181,68M|
|ReLU3 + ReLU5 + FC6||81.55%||17||190,06M|
4.4 Going from deep to very deep models
For computational complexity reasons, all previous experiments were performed with two VGG-M-2048 networks (as in ). Using deeper models, such as the very deep networks in  can, however, lead to even better performance in image recognition tasks [5, 15, 27]. Following that, we train a 16 layer network, VGG-16,  on UCF101 and HMDB51. All models are pretrained on ImageNet and separately trained for the target dataset, except for the temporal HMDB51 networks which are initialised from the temporal UCF101 models. For VGG-16, we use TV-L1 optical flow  and apply a similar augmentation technique as for 3D ConvNet training (described in Sec. 3.5) that samples from the image corners and its centre . The learning rate is set to and decreased by a factor of as soon as the validation objective saturates.
|UCF101 (split 1)||HMDB51 (split 1)|
The comparison between deep and very deep models is shown in Table 3. On both datasets, one observes that going to a deeper spatial model boosts performance significantly (8.11% and 10.29%), whereas a deeper temporal network yields a lower accuracy gain (3.91% and 3.73%).
4.5 How to fuse the two streams temporally?
|2D Conv||3D||ReLU5 +||89.64%||57.58%|
|3D Conv||3D||ReLU5 +||90.40%||58.63%|
Different temporal fusion strategies are shown in Table 4. In the first row of Table 4 we observe that conv fusion performs better than averaging the softmax output (cf. Table 3). Next, we find that applying 3D pooling instead of using 2D pooling after the fusion layer increases performance on both datasets, with larger gains on HMDB51. Finally, the last row of Table 4 lists results for applying a 3D filter for fusion which further boosts recognition rates.
4.6 Comparison with the state-of-the-art
Finally, we compare against the state-of-the-art over all three splits of UCF101 and HMDB51 in Table 6. We use the same method as shown above, i.e. fusion by 3D Conv and 3D Pooling (illustrated in Fig. 4). For testing we average 20 temporal predictions from each network by densely sampling the input-frame-stacks and their horizontal flips. One interesting comparison is to the original two-stream approach , we improve by 3% on UCF101 and HMDB51 by using a VGG-16 spatial (S) network and a VGG-M temporal (T) model, as well as by 4.5% (UCF) and 6% (HMDB) when using VGG-16 for both streams. Another interesting comparison is against the two-stream network in , which employs temporal conv-pooling after the last dimensionality reduction layer of a GoogLeNet  architecture. They report 88.2% on UCF101 when pooling over 120 frames and 88.6% when using an LSTM for pooling. Here, our result of 92.5% clearly underlines the importance of our proposed approach. Note also that using a single stream after temporal fusion achieves 91.8%, compared to maintaining two streams and achieving 92.5%, but with far fewer parameters and a simpler architecture.
As a final experiment, we explore what benefit results from a late fusion of hand-crafted IDT features  with our representation. We simply average the SVM scores of the FV-encoded IDT descriptors (i.e. HOG, HOF, MBH) with the predictions (taken before softmax) of our ConvNet representations. The resulting performance is shown in Table 6. We achieve 93.5% on UCF101 and 69.2% HMDB51. This state-of-the-art result illustrates that there is still a degree of complementary between hand-crafted representations and our end-to-end learned ConvNet approach.
|Spatiotemporal ConvNet ||65.4%||-|
|Composite LSTM Model ||84.3%||44.0|
|Two-Stream ConvNet (VGG-M) ||88.0%||59.4%|
|Factorized ConvNet ||88.1%||59.1%|
|Two-Stream Conv Pooling ||88.2%||-|
|Two-Stream ConvNet (VGG-16, )||91.4%||58.5%|
|Two-Stream ConvNet (VGG-16, ours)||91.7%||58.7%|
|Ours (S:VGG-16, T:VGG-M)||90.8%||62.1%|
|Ours (S:VGG-16, T:VGG-16,||91.8%||64.6%|
|single tower after fusion)|
|Ours (S:VGG-16, T:VGG-16)||92.5%||65.4%|
|IDT+higher dimensional FV ||87.9%||61.1%|
|Ours+IDT (S:VGG-16, T:VGG-M)||92.5%||67.3%|
|Ours+IDT (S:VGG-16, T:VGG-16)||93.5%||69.2%|
We have proposed a new spatiotemporal architecture for two stream networks with a novel convolutional fusion layer between the networks, and a novel temporal fusion layer (incorporating 3D convolutions and pooling). The new architecture does not increase the number of parameters significantly over previous methods, yet exceeds the state of the art on two standard benchmark datasets. Our results suggest the importance of learning correspondences between highly abstract ConvNet features both spatially and temporally. One intriguing finding is that there is still such an improvement by combining ConvNet predictions with FV-encoded IDT features. We suspect that this difference may vanish in time given far more training data, but otherwise it certainly indicates where future research should attend.
Finally, we return to the point that current datasets are either too small or too noisy. For this reason, some of the conclusions in this paper should be treated with caution.
We are grateful for discussions with Karen Simonyan. Christoph Feichtenhofer is a recipient of a DOC Fellowship of the Austrian Academy of Sciences. This work was supported by the Austrian Science Fund (FWF) under project P27076, and also by EPSRC Programme Grant Seebibyte EP/M013774/1. The GPUs used for this research were donated by NVIDIA.
-  T. Brox, A. Bruhn, N. Papenberg, and J. Weickert. High accuracy optical flow estimation based on a theory for warping. In Proc. ECCV, 2004.
-  J. Carreira, R. Caseiro, J. Batista, and C. Sminchisescu. Semantic segmentation with second-order pooling. In Proc. ECCV, 2012.
-  K. Chatfield, K. Simonyan, A. Vedaldi, and A. Zisserman. Return of the devil in the details: Delving deep into convolutional nets. In Proc. BMVC., 2014.
-  G. ChÃ©ron, I. Laptev, and C. Schmid. P-CNN: Pose-based CNN features for action recognition. In Proc. ICCV, 2015.
-  M. Cimpoi, S. Maji, and A. Vedaldi. Deep filter banks for texture recognition and segmentation. In Proc. CVPR, 2015.
-  J. Donahue, L. A. Hendricks, S. Guadarrama, M. Rohrbach, S. Venugopalan, K. Saenko, and T. Darrell. Long-term recurrent convolutional networks for visual recognition and description. In Proc. CVPR, 2015.
-  G. Gkioxari and J. Malik. Finding action tubes. In Proc. CVPR, 2015.
-  A. Gorban, H. Indrees, Y. Jiang, A. R. Zamir, I. Laptev, M. Shah, and R. Sukthankar. Thumos challenge: Action recognition with a large number of classes. http://wwwthumos.info/, 2015.
-  S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In Proc. ICML, 2015.
-  S. Ji, W. Xu, M. Yang, and K. Yu. 3D convolutional neural networks for human action recognition. IEEE PAMI, 35(1):221–231, 2013.
-  A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei. Large-scale video classiï¬cation with convolutional neural networks. In Proc. CVPR, 2014.
-  A. Krizhevsky, I. Sutskever, and G. E. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, 2012.
-  H. Kuehne, H. Jhuang, E. Garrote, T. Poggio, and T. Serre. HMDB: a large video database for human motion recognition. In Proc. ICCV, 2011.
-  I. Laptev, M. Marszałek, C. Schmid, and B. Rozenfeld. Learning realistic human actions from movies. In Proc. CVPR, 2008.
-  T.-Y. Lin, A. RoyChowdhury, and S. Maji. Bilinear CNN models for fine-grained visual recognition. In Proc. ICCV, 2015.
-  A. Mahendran and A. Vedaldi. Understanding deep image representations by inverting them. In Proc. CVPR, 2015.
-  J. Y.-H. Ng, M. Hausknecht, S. Vijayanarasimhan, O. Vinyals, R. Monga, and G. Toderici. Beyond short snippets: Deep networks for video classification. In Proc. CVPR, 2015.
-  J. Oh, X. Guo, H. Lee, S. Singh, and R. Lewis. Action-conditional video prediction using deep networks in atari game. In NIPS, 2015.
-  X. Peng, L. Wang, X. Wang, and Y. Qiao. Bag of visual words and fusion methods for action recognition: Comprehensive study and good practice. CoRR, abs/1405.4506, 2014.
-  F. Perronnin, J. Sánchez, and T. Mensink. Improving the Fisher kernel for large-scale image classification. In Proc. ECCV, 2010.
-  F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A unified embedding for face recognition and clustering. In Proc. CVPR, 2015.
-  K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos. In NIPS, 2014.
-  K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In Proc. ICLR, 2014.
-  K. Soomro, A. R. Zamir, and M. Shah. UCF101: A dataset of 101 human actions calsses from videos in the wild. Technical Report CRCV-TR-12-01, UCF Center for Research in Computer Vision, 2012.
-  N. Srivastava, E. Mansimov, and R. Salakhutdinov. Unsupervised learning of video representations using LSTMs. In Proc. ICML, 2015.
-  L. Sun, K. Jia, D.-Y. Yeung, and B. Shi. Human action recognition using factorized spatio-temporal convolutional networks. In Proc. ICCV, 2015.
-  C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. In Proc. CVPR, 2015.
-  G. W. Taylor, R. Fergus, Y. LeCun, and C. Bregler. Convolutional learning of spatio-temporal features. In Proc. ECCV, 2010.
-  J. Tompson, R. Goroshin, A. Jain, Y. LeCun, and C. Bregler. Efficient object localization using convolutional networks. In Proc. CVPR, 2015.
-  D. Tran, L. Bourdev, R. Fergus, L. Torresani, and M. Paluri. Learning spatiotemporal features with 3D convolutional networks. In Proc. ICCV, 2015.
-  A. Vedaldi and K. Lenc. MatConvNet – convolutional neural networks for MATLAB. In Proceeding of the ACM Int. Conf. on Multimedia, 2015.
-  S. Venugopalan, M. Rohrbach, R. Mooney, T. Darrell, and K. Saenko. Sequence to sequence video to text. In Proc. ICCV, 2015.
-  H. Wang and C. Schmid. Action recognition with improved trajectories. In Proc. ICCV, 2013.
-  L. Wang, Y. Qiao, and X. Tang. Action recognition with trajectory-pooled deep-convolutional descriptors. In Proc. CVPR, 2015.
-  L. Wang, Y. Xiong, Z. Wang, and Y. Qiao. Towards good practices for very deep two-stream convnets. arXiv preprint arXiv:1507.02159, 2015.
-  P. Weinzaepfel, Z. Harchaoui, and C. Schmid. Learning to track for spatio-temporal action localization. In Proc. ICCV, 2015.
-  C. Zach, T. Pock, and H. Bischof. A duality based approach for realtime TV-L1 optical flow. In Proc. DAGM, pages 214–223, 2007.
-  M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. In Proc. ECCV, 2014.